nvmm - Use a critical section around the vmrun again
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 15 Jul 2021 21:00:09 +0000 (14:00 -0700)
committerAaron LI <aly@aaronly.me>
Tue, 20 Jul 2021 23:28:27 +0000 (07:28 +0800)
commit665a79c84141f1c0d18b69b7cf1c016190578177
treea7a2fa3f2cab1954ef730cb1066716d79f2e3e05
parentd8a7506105a94efa46aa081628a34fd465090a5d
nvmm - Use a critical section around the vmrun again

* In DragonFly, a thread in kernel mode will not be preemptively migrated
  to another CPU or preemptively switched to another normal kernel thread,
  but can be preemptively switched to an interrupt thread (which switches
  back to the kernel thread it preempted the instant it is done or blocks).

  However, we still need to use a critical section to prevent this nominal
  interrupt thread preemption to avoid exposing interrupt threads to
  guest DB and FP register state.  We operate under the assumption that
  the hard interrupt code won't mess with this state.
sys/dev/virtual/nvmm/nvmm_os.h