HomeFreeBSD

vm_grab_pages_unlocked: read all the pages at once

Description

vm_grab_pages_unlocked: read all the pages at once

Define a function pctrie_lookup_range_unlocked, which looks up
consecutive elements in the pctrie, until a count limit is reached or
an item is discovered missing, and writes them into the first elements
of an array, returning the count of items found. It does not require
a lock. It uses an iterator, strictly between smr_enter and smr_exit,
when some of the nodes in the pctrie on entry may come to have only
one child, but none of them can be freed before exit.

Define a vm_radix interface to it for reading page ranges.

Change vm_page_grab_pages_unlocked to read all requested pages at
once, without relying on the existence of a linked list of pages.

Drop smr arguments from pctrie_iter_stride, since there's no smr
version in use. Drop _pctrie_iter_lookup, since it isn't needed.

Reviewed by: alc, kib, markj
Differential Revision: https://reviews.freebsd.org/D47114

Details

Provenance
dougmAuthored on Tue, Apr 29, 6:28 AM
Reviewer
alc
Differential Revision
D47114: vm_grab_pages_unlocked: read all the pages at once
Parents
rG7554a5b611fd: arm: Hack to make kernel.bin into a zImage
Branches
Unknown
Tags
Unknown