On 03/12/2010 07:08 AM, Cam Macdonell wrote:
+ s->ivshmem_mmio_io_addr = cpu_register_io_memory(ivshmem_mmio_read,
+ ivshmem_mmio_write, s);
+ /* region for registers*/
+ pci_register_bar(&d->dev, 0, 0x100,
+ PCI_BASE_ADDRESS_SPACE_MEMORY, ivshmem_mmio_map);
You've selected the memory address space here.
my basic attempt looks like this:
struct kvm_ioeventfd ked;
ked.addr = s->otheraddr + Doorbell;
ked.len = 4;
ked.flags = KVM_IOEVENTFD_FLAG_PIO;
ked.fd = an_eventfd;
ret = kvm_vm_ioctl(kvm_state, KVM_IOEVENTFD,&ked);
But the PIO address space here.
but when the guest writes to the offset of Doorbell, I cannot see any
action (via a select on the fd). Is there something obviously wrong
that I'm doing?
Yes - they must match. Not PIO is faster on x86 but nonexistant elsewhere.
--
Do not meddle in the internals of kernels, for they are subtle and quick to
panic.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html