]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Provide pmap_large_map() KPI on amd64.
authorkib <kib@FreeBSD.org>
Tue, 16 Oct 2018 17:28:10 +0000 (17:28 +0000)
committerkib <kib@FreeBSD.org>
Tue, 16 Oct 2018 17:28:10 +0000 (17:28 +0000)
commit62f96009c091e9db22738b9ff72c88c937e5a250
tree798f2c79b50673fb5cc1e0bc06367ec50040642d
parent1f8b04b5a3bd0a277495f23ae003740e1701cd1d
Provide pmap_large_map() KPI on amd64.

The KPI allows to map very large contigous physical memory regions
into KVA, which are not covered by DMAP.

I see both with QEMU and with some real hardware started shipping, the
regions for NVDIMMs might be very far apart from the normal RAM, and
we expect that at least initial users of NVDIMM could install very
large amount of such memory.  IMO it is not reasonable to extend DMAP
to cover that far-away regions both because it could overflow existing
4T window for DMAP in KVA, and because it costs in page table pages
allocations, for gap and for possibly unused NV RAM.

Also, KPI provides some special functionality for fast cache flushing
based on the knowledge of the NVRAM mapping use.

Reviewed by: alc, markj
Sponsored by: The FreeBSD Foundation
Approved by: re (gjb)
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D17070
sys/amd64/amd64/pmap.c
sys/amd64/include/pmap.h
sys/amd64/include/vmparam.h