freebsd-nq/sys/amd64
Jason A. Harmening 713841afb2 Add two new pmap functions:
vm_offset_t pmap_quick_enter_page(vm_page_t m)
void pmap_quick_remove_page(vm_offset_t kva)

These will create and destroy a temporary, CPU-local KVA mapping of a specified page.

Guarantees:
--Will not sleep and will not fail.
--Safe to call under a non-sleepable lock or from an ithread

Restrictions:
--Not guaranteed to be safe to call from an interrupt filter or under a spin mutex on all platforms
--Current implementation does not guarantee more than one page of mapping space across all platforms. MI code should not make nested calls to pmap_quick_enter_page.
--MI code should not perform locking while holding onto a mapping created by pmap_quick_enter_page

The idea is to use this in busdma, for bounce buffer copies as well as virtually-indexed cache maintenance on mips and arm.

NOTE: the non-i386, non-amd64 implementations of these functions still need review and testing.

Reviewed by:	kib
Approved by:	kib (mentor)
Differential Revision:	http://reviews.freebsd.org/D3013
2015-08-04 19:46:13 +00:00
..
acpica If x86 CPU implementation of the MWAIT instruction reasonably 2015-05-09 12:28:48 +00:00
amd64 Add two new pmap functions: 2015-08-04 19:46:13 +00:00
cloudabi64 Let CloudABI use the SV_CAPSICUM flag. 2015-08-03 13:42:52 +00:00
conf Add pmspvc device back to GENERIC. The issues with the device playing 2015-08-03 13:49:46 +00:00
ia32 Remove several write-only variables, all reported by the gcc 4.9 2015-05-29 13:24:17 +00:00
include Clear the IA32_MISC_ENABLE MSR bit, which limits the max CPUID 2015-08-03 12:14:42 +00:00
linux Fixup the build after r284215. 2015-06-10 12:39:01 +00:00
linux32 pcb_gs32sd is unused for long time, remove it. Keep the padding in pcb. 2015-06-29 07:53:44 +00:00
pci Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
vmm Move the 'devmem' device nodes from /dev/vmm to /dev/vmm.io 2015-07-06 19:41:43 +00:00
Makefile