]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
contig allocs: Don't retry forever on M_WAITOK.
authorBryan Drewery <bdrewery@FreeBSD.org>
Thu, 10 Dec 2020 20:44:29 +0000 (20:44 +0000)
committerBryan Drewery <bdrewery@FreeBSD.org>
Thu, 10 Dec 2020 20:44:29 +0000 (20:44 +0000)
commitbbfec1633b568b7868792ee319be56b68a303fbc
tree8dc2972bf6be9843f243cc509fdc4838410d6a28
parent1f67c37c1f9353e3a211795ff5e154884319a0cd
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