Avi Kivity wrote: > 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. Ack. Will spin a new split series with your irqfd review changes > >> >> 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. How about "u64 cookie" ? > > >> * 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. Hmm...good point. I was trying to reflect "[MM/P]IO-FD". How about "IOSIGNALFD" > > Why have assign/deassign for irqfd and a single ioctl for iofd? Heh.. irqfd "liked" two because the deassign only needed a u32. iofd needed more or less the same structure for both so I guess I thought I would be "slick" and condense the vectors. Will fix so they are symmetrical. > > The rest looks good. > I will also submit a patch to fix the io_bus stuff so that registrations can gracefully fail instead of BUG_ON(), and to provide an unregister function. Thanks Avi, -Greg
Attachment:
signature.asc
Description: OpenPGP digital signature