pci-passthrough logging
Hello,
I'm new to kvm and I'm trying to log pci config and mmio read/writes for a particular pci (pci-e to be precise) device that I've passthrough to qemu-kvm (dma=none).
I put a printk into kvm_iodevice_read/write() in linux/virt/kvm/iodev.h but the log seems to get corrupted when the action picks up.
I looked at qemu-kvm/hw/pci_host.c and found pci_host_data_write/read_mmio[]. But I don't know where those are implemented, nor exactly what they do for that matter.
I appologise for the n00b nature of my problem, but there isnt any documentation on the pci-passthrough architecture in linux/Documentation/kvm or in qemu-kvm.
Does anyone know where/how to log pci-passthrough accesses?
thanks,
Vik.
PS: This is a "one off" question, so I'm not subscribed to the list, please make sure my email addresses is in the reply fields.
Quoted 11 lines · Vikram Ambrose
Hello,
I'm new to kvm and I'm trying to log pci config and mmio read/writes for a particular pci (pci-e to be precise) device that I've passthrough to qemu-kvm (dma=none).
I put a printk into kvm_iodevice_read/write() in
linux/virt/kvm/iodev.hbut the log seems to get corrupted when the action picks up.I looked at
qemu-kvm/hw/pci_host.cand found pci_host_data_write/read_mmio[]. But I don't know where those are implemented, nor exactly what they do for that matter.I appologise for the n00b nature of my problem, but there isnt any documentation on the pci-passthrough architecture in linux/Documentation/kvm or in qemu-kvm.
Does anyone know where/how to log pci-passthrough accesses?
For config-space accesses, hook assigned_dev_pci_{read,write}_config(). For mmio, hook slow_bar_{read,write}*(), and hack assigned_dev_register_regions() to select the slow path (otherwise kvm will let the guest write directly to the device). For pio, hook assigned_dev_ioport_{read,write)*().
Signature · 1 line
error compiling committee.c: too many arguments to function