kernel - Refactor Xinvltlb (3)
authorMatthew Dillon <dillon@apollo.backplane.com>
Sun, 17 Jul 2016 02:16:02 +0000 (19:16 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Sun, 17 Jul 2016 06:18:15 +0000 (23:18 -0700)
commitccd67bf614ec9cd72ba3afc5d73e88ba8be3bc70
tree494708c8ec9bc87e25031b720ca75d131459829c
parent67d1661cff40128269011cd05ce32ebf03b15da7
kernel - Refactor Xinvltlb (3)

* Rollup invalidation operations for numerous kernel-related pmap, reducing
  the number of IPIs needed (particularly for buffer cache operations).

* Implement semi-synchronous command execution, where target cpus do not
  need to wait for the originating cpu to execute a command.  This is used
  for the above rollups when the related kernel memory is known to be accessed
  concurrently with the pmap operations.

* Support invalidation of VA ranges.

* Support reduction of target cpu set for semi-synchronous commands, including
  invltlb's, by removing idle cpus from the set when possible.
12 files changed:
sys/cpu/x86_64/include/cpufunc.h
sys/kern/sys_vmm.c
sys/kern/vfs_bio.c
sys/platform/pc64/include/pmap.h
sys/platform/pc64/include/pmap_inval.h
sys/platform/pc64/x86_64/mp_machdep.c
sys/platform/pc64/x86_64/pmap.c
sys/platform/pc64/x86_64/pmap_inval.c
sys/platform/vkernel64/platform/pmap.c
sys/platform/vkernel64/platform/pmap_inval.c
sys/vm/pmap.h
sys/vm/vm_contig.c