[Bug 253992] ufsdirhash_build() sleeps with directory vnode locked due to M_WAITOK

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Mar 3 18:34:43 UTC 2021


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253992

Konstantin Belousov <kib at FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kib at FreeBSD.org,
                   |                            |markj at FreeBSD.org

--- Comment #1 from Konstantin Belousov <kib at FreeBSD.org> ---
Generally, I agree that we should not do malloc(M_WAITOK) under vnode lock.
The main reason for this is that we might own vnode lock for the vnode which
owns too many pageable pages and that prevents pagedaemon from making progress,
or at least makes it life significantly harder.

That said, in your case there are two things that are questionable:
- we default to round-robin policy for zones which do not specify policy
  explicitly (what is isi_kern_openat, is it for isilon?)
- this is not real OOM, it is due to partitioning and strange policy that
  allocator has to wait for pagedaemon.  And still, pagedaemon must be able
  to make some progress, for overloaded domain.

I.e. I am leery of the necessity of the proposed change.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list