vmm(4): reference count vm's and vcpu's
authordv <dv@openbsd.org>
Thu, 30 Jun 2022 13:17:58 +0000 (13:17 +0000)
committerdv <dv@openbsd.org>
Thu, 30 Jun 2022 13:17:58 +0000 (13:17 +0000)
commit3274ac03c1228abeb7adb241643861b71e1b476c
tree3a4a5fc145c0491a998fd32ebf0fe988805be7a4
parentd8495b0f7cb25cb475d30848735efc1f2377aa40
vmm(4): reference count vm's and vcpu's

Unlocking most of vmm last year at k2k21 exposed bugs related to
lifetime management of vm and vcpu objects.

Add reference counts to make sure we don't attempt to teardown vcpu
or vm related objects while a thread is holding a reference. This
also reduces abuse of rwlocks originally intended to protect the
linked lists cleaning things up quite a bit. While here, also
document assumptions on how struct members are protected for the
next brave soul wander in.

ok mlarkin@
sys/arch/amd64/amd64/vmm.c
sys/arch/amd64/include/vmmvar.h