[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
Qemu.
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.


Thanks,
Pierce

Attachment: config.gz
Description: GNU Zip compressed data