i386/hvf: In kick_vcpu use hv_vcpu_interrupt to force exit
authorPhil Dennis-Jordan <phil@philjordan.eu>
Wed, 5 Jun 2024 11:25:54 +0000 (13:25 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Sat, 8 Jun 2024 08:33:38 +0000 (10:33 +0200)
commitbf9bf2306cc8ea31b2b9bf28002aacb188ec2568
tree0c49f61880451918a92e63f7b3ba4569a8094953
parent3e2c6727cb6b6311ee129c24b561bb87495f1a25
i386/hvf: In kick_vcpu use hv_vcpu_interrupt to force exit

When interrupting a vCPU thread, this patch actually tells the hypervisor to
stop running guest code on that vCPU.

Calling hv_vcpu_interrupt actually forces a vCPU exit, analogously to
hv_vcpus_exit on aarch64. Alternatively, if the vCPU thread
is not
running the VM, it will immediately cause an exit when it attempts
to do so.

Previously, hvf_kick_vcpu_thread relied upon hv_vcpu_run returning very
frequently, including many spurious exits, which made it less of a problem that
nothing was actively done to stop the vCPU thread running guest code.
The newer, more efficient hv_vcpu_run_until exits much more rarely, so a true
"kick" is needed before switching to that.

Signed-off-by: Phil Dennis-Jordan <phil@philjordan.eu>
Message-ID: <20240605112556.43193-6-phil@philjordan.eu>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/hvf/hvf.c