Define a function pctrie_lookup_range_unlocked, which looks up
consecutive elements in the pctrie, until count limit is reached
or an item is discovered missing, and fills them in the first elements
of an array, returning the count of items read. 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.