Date: Fri, 19 Jul 2013 13:18:31 +0300 From: Andriy Gapon <avg@FreeBSD.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: freebsd-fs@FreeBSD.org, Adrian Chadd <adrian@FreeBSD.org> Subject: Re: Deadlock in nullfs/zfs somewhere Message-ID: <51E91277.3070309@FreeBSD.org> In-Reply-To: <20130718185215.GE5991@kib.kiev.ua> References: <CAJ-Vmomy3MrkSwJLQUGnDuD3EC3HzrudEghSDMeDwzVdaFNpLg@mail.gmail.com> <51DCFEDA.1090901@FreeBSD.org> <CAJ-VmokctCmV4%2By17uvqO9wXEyh0s%2BaXZ9nggvoAgP5%2BZHSgFA@mail.gmail.com> <51E59FD9.4020103@FreeBSD.org> <CAJ-VmokR8jJpdRc_kBJzhW4_R1pJnj3UPfsG5ANpq-kEGwCP9g@mail.gmail.com> <51E67F54.9080800@FreeBSD.org> <CAJ-Vmonk2HAzX38-mbL8hwxiUfL6JyJrMTq0dTBctW=P4dfyEQ@mail.gmail.com> <51E7B686.4090509@FreeBSD.org> <20130718112814.GA5991@kib.kiev.ua> <51E7F05A.5020609@FreeBSD.org> <20130718185215.GE5991@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
on 18/07/2013 21:52 Konstantin Belousov said the following: > There is VFS method VFS_SUSP_CLEAN, called when the suspension is > lifted. UFS uses it to clean the back-queue of work which were > not performed during the suspend, mostly inactivate the postponed > inactive vnodes. ZFS probably does not need it, since it does > not check for MNTK_SUSPEND, but if it starts care, there is a place > to put the code. I will keep this in mind. > On the other hand, I believe that your patch is notoriously incomplete, > because there should be a lot of threads which mutate ZFS mounts state > and which do not call vn_start_write() around the mutations. I.e. > all ZFS top-level code which calls into ZFS ops and which is not > coming from VFS. I agree. What I am trying to fix right now is VFS<->ZFS interaction. I think that ZFS<->ZFS should already be fine - it's protected by internal ZFS locking. OTOH, perhaps my understanding of what you said is incomplete or incorrect, because VFS suspension mechanism is completely unknown to me yet. -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51E91277.3070309>