Intercepting IPI (inter-processor interrupts) in a KVM guest

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,

I have a need to record all IPIs that are sent and received between
cores in a multi-core guest. Specifically, I have a need to record the
source CPU ID and the destination CPU ID of such interrupts.

I am using KVM with QEMU and I did read about "hypercalls", but I'm
not sure if IPIs are sent that way. I tried putting debug statements
in the host kernel at "kvm_emulate_hypercall" but I didn't get any
requisite logs. I am using Linux Kernel 5.8.0 on the host. I am using
QEMU version 5.0.1. My target and host architecture is x86_64.

The command line I use to start QEMU is as below -

sudo ./qemu-system-x86_64 -m 1024 --machine pc-i440fx-2.5 -cpu
qemu64,-kvmclock, -kvm_pv_eoi,+kvm_pv_ipi -smp 2 -enable-kvm -netdev
tap,id=tap1,ifname=tap0,script=no,downscript=no -device
virtio-net-pci,netdev=tap1,mac=00:00:00:00:00:00 -drive
file=~/os_images_for_qemu/ubuntu-16.04.server.qcow2,format=qcow2,if=none,id=img-direct
-device virtio-blk-pci,drive=img-direct

Is there a way to intercept IPIs in a multi-core guest ? I would like
to cause a VMEXIT in the guest when an IPI is sent so I could record
all the information I need.

Thank you very much.

Best Regards,
Arnabjyoti Kalita



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux