Page MenuHomeFreeBSD

Various improvements to vm_page_alloc_contig()
ClosedPublic

Authored by alc on Dec 21 2016, 4:48 PM.
Tags
None
Referenced Files
Unknown Object (File)
Apr 10 2017, 5:45 AM
Unknown Object (File)
Apr 9 2017, 10:00 AM
Unknown Object (File)
Apr 1 2017, 7:51 AM
Unknown Object (File)
Mar 12 2017, 8:35 AM
Unknown Object (File)
Feb 15 2017, 1:57 AM
Unknown Object (File)
Feb 5 2017, 12:57 AM
Unknown Object (File)
Jan 20 2017, 9:45 AM
Unknown Object (File)
Jan 20 2017, 9:25 AM
Subscribers

Details

Summary

Relax the object type restrictions on vm_page_alloc_contig(). Specifically, add support for object types that were previously prohibited because they could contain PG_CACHED pages.

Roughly halve the number of radix trie operations performed by vm_page_alloc_contig() using the same approach that is employed by vm_page_alloc(). Also, eliminate the radix trie lookup performed with the free page queues lock held.

Tidy up the handling of radix trie insert failures in vm_page_alloc() and vm_page_alloc_contig().

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

alc retitled this revision from to Various improvements to vm_page_alloc_contig().
alc updated this object.
alc edited the test plan for this revision. (Show Details)
alc added reviewers: kib, markj.
kib edited edge metadata.
This revision is now accepted and ready to land.Dec 21 2016, 5:22 PM
markj edited edge metadata.
alc added a subscriber: pho.

Peter, could you please test this patch?

In D8878#183786, @alc wrote:

Peter, could you please test this patch?

Sure.

In D8878#183788, @pho wrote:
In D8878#183786, @alc wrote:

Peter, could you please test this patch?

Sure.

Ran stress2 on a mix of i386 and amd64.
No problems seen.

This revision was automatically updated to reflect the committed changes.