Re: [KVM PATCH v7 3/3] kvm: add iofd support

Avi Kivity
2009-05-14T11:11:32Z

Gregory Haskins wrote:
> iofd is a mechanism to register PIO/MMIO regions to trigger an eventfd
> signal when written to. Userspace can register any arbitrary address
> with a corresponding eventfd.
>
>

Please start a separate patchset for this so I can merge irqfd.

>
> diff --git a/include/linux/kvm.h b/include/linux/kvm.h
> index dfc4bcc..99b6e45 100644
> --- a/include/linux/kvm.h
> +++ b/include/linux/kvm.h
> @@ -292,6 +292,17 @@ struct kvm_guest_debug {
> struct kvm_guest_debug_arch arch;
> };
>
> +#define KVM_IOFD_FLAG_DEASSIGN (1 << 0)
> +#define KVM_IOFD_FLAG_PIO (1 << 1)
> +
> +struct kvm_iofd {
> + __u64 addr;
> + __u32 len;
> + __u32 fd;
> + __u32 flags;
> + __u8 pad[12];
> +};
> +
>
Please add a data match capability. virtio uses a write with the data
containing the queue ID, and we want a separate event for each queue.

> * kvm trace categories
> @@ -508,6 +519,7 @@ struct kvm_irqfd {
> #define KVM_DEASSIGN_DEV_IRQ _IOW(KVMIO, 0x75, struct kvm_assigned_irq)
> #define KVM_ASSIGN_IRQFD _IOW(KVMIO, 0x76, struct kvm_irqfd)
> #define KVM_DEASSIGN_IRQFD _IOW(KVMIO, 0x77, __u32)
> +#define KVM_IOFD _IOW(KVMIO, 0x78, struct kvm_iofd)
>

Too general a name. It's not doing IO, just sending out notifications.

Why have assign/deassign for irqfd and a single ioctl for iofd?

The rest looks good.

--
error compiling committee.c: too many arguments to function