vmm: Halt vcore 0 instead of spinning
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 20 Nov 2017 20:09:52 +0000 (15:09 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 22 Nov 2017 16:49:34 +0000 (11:49 -0500)
commitafa25fcf91a61590fbe40c3fef08864cde9cb942
treead5b4773a21f68c79700cd49e4de9b932a723131
parent4a21f7b57e99664c7b109456da93d40fe0cf045b
vmm: Halt vcore 0 instead of spinning

Spinning limits the sibling core's performance and limits the turbo mode
potential of the rest of the machine.

Instead, we'll mwait on notif_pending or an IPI.  Our ev_qs are already set
up to send IPIs with the notification, so things like syscalls and timers
will work fine.  If the 2LS enqueues a task thread - which are handled by
VC 0 - it'll make sure the vcore wakes up.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
user/vmm/sched.c