mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 18:21:39 +01:00
Add monitor event that hooks the vmexit handler allowing for both sync and async monitoring of events. With async monitoring an event is placed on the monitor ring for each exit and the rest of the vmexit handler resumes normally. If there are additional monitor events configured those will also place their respective events on the monitor ring. With the sync version an event is placed on the monitor ring but the handler does not get resumed, thus the sync version is only useful when the VM is not expected to resume normally after the vmexit. Our use-case is primarily with the sync version with VM forks where the fork gets reset after sync vmexit event, thus the rest of the vmexit handler can be safely skipped. This is very useful when we want to avoid Xen crashing the VM under any circumstance, for example during fuzzing. Collecting all vmexit information regardless of the root cause makes it easier to reason about the state of the VM on the monitor side, hence we opt to receive all events, even for external interrupt and NMI exits and let the monitor agent decide how to proceed. Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com> Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>