[KVM]:could anyone give me some instruction for KVM pci driver? Thanks

From: liu pf
Date: Fri Aug 12 2011 - 04:33:55 EST

Hi guys,

When I develop a PCI device driver for qemu-kvm, I am suffering from
some problem, Could anyone give me some instruction? Thanks :)

My solution consists of two parts: emulated PCI device in Qemu and
corresponding PCI device driver in guest OS.
The emulated device has a PCI -memmap registers. So as expected, when
the guest device driver wrote this area, we will capture such event in
But it failed to do so. After tracing the host kernel, I found that
1. my guest PCI device driver had claimed the gpa from
pci_dev->resource[0].start=0xf0050000 to resource[0].end=0xf00500ff
and succeed to ioremap
2. In host kernel, I added "printk" after
handle_ept_violation(struct kvm_vcpu *vcpu) {gpa
=vmcs_read64(GUEST_PHYSICAL_ADDRESS); printk(..);}
BUT, when guest wrote this "ioremap" area, the host did NOT hit
the region [0xf0050000,0xf00500ff]

I had thought that when accessing the emulated device, the gva ->gpa
has been set up by guest, so EPT violation will be the only reason
which caused guest exit . And the event will be finally passed to the
user mode--qemu. Am I right?

And the most important is what I can do for the next step?

BTW, I am sure that "kvm_enable_tdp". and kernel is 2.6.39, for config
file, pls see attachment.


Attachment: config.gz
Description: GNU Zip compressed data