]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
contig allocs: Don't retry forever on M_WAITOK.
authorbdrewery <bdrewery@FreeBSD.org>
Thu, 10 Dec 2020 20:44:29 +0000 (20:44 +0000)
committerbdrewery <bdrewery@FreeBSD.org>
Thu, 10 Dec 2020 20:44:29 +0000 (20:44 +0000)
commit04477ecaf26f35042564a35ec01454c15843f832
tree8dc2972bf6be9843f243cc509fdc4838410d6a28
parentea2c2ca4d5d67abea69cf357513303498003c46a
contig allocs: Don't retry forever on M_WAITOK.

This restores behavior from before domain iterators were added in
r327895 and r327896.

The vm_domainset_iter_policy() will do a vm_wait_doms() and then
restart its iterator when M_WAITOK is set.  It will also force
the containing loop to have M_NOWAIT.  So we get an unbounded
retry loop rather than the intended bounded retries that
kmem_alloc_contig_pages() already handles.

This also restores M_WAITOK to the vmem_alloc() call in
kmem_alloc_attr_domain() and kmem_alloc_contig_domain().

Reviewed by: markj, kib
MFC after: 2 weeks
Sponsored by: Dell EMC
Differential Revision: https://reviews.freebsd.org/D27507
sys/vm/vm_kern.c