summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2014-06-07 17:12:26 +0000
committeralc <alc@FreeBSD.org>2014-06-07 17:12:26 +0000
commit39548e640ff6f29c6f53200627311914539728c3 (patch)
treeaeb037945519387b89b8f0cdc19329ee01c5f70a /lib
parent7f9a56066569916a7d20166171718f02f4511c1f (diff)
downloadFreeBSD-src-39548e640ff6f29c6f53200627311914539728c3.zip
FreeBSD-src-39548e640ff6f29c6f53200627311914539728c3.tar.gz
Add a page size field to struct vm_page. Increase the page size field when
a partially populated reservation becomes fully populated, and decrease this field when a fully populated reservation becomes partially populated. Use this field to simplify the implementation of pmap_enter_object() on amd64, arm, and i386. On all architectures where we support superpages, the cost of creating a superpage mapping is roughly the same as creating a base page mapping. For example, both kinds of mappings entail the creation of a single PTE and PV entry. With this in mind, use the page size field to make the implementation of vm_map_pmap_enter(..., MAP_PREFAULT_PARTIAL) a little smarter. Previously, if MAP_PREFAULT_PARTIAL was specified to vm_map_pmap_enter(), that function would only map base pages. Now, it will create up to 96 base page or superpage mappings. Reviewed by: kib Sponsored by: EMC / Isilon Storage Division
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud