Re: [KVM PATCH 2/3] eventfd: add a notifier mechanism

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 23 Apr 2009, Gregory Haskins wrote:

> Davide Libenzi wrote:
> > On Thu, 23 Apr 2009, Gregory Haskins wrote:
> >
> >   
> >> This allows synchronous notifications to register with the eventfd
> >> infrastructure.  Unlike traditional vfs based eventfd readers, notifiees
> >> do not implictly clear the counter on reception.  However, the clearing
> >> is primarily important to allowing threads to block waiting for events
> >> anyway, so its an acceptable trade-off since blocking doesn't apply to
> >> notifiers.
> >>     
> >
> > Do you really need to add a notifier? Eventfd already has a wait queue, 
> > and we support callback-based wakeups, so is there any reason we shouldn't 
> > use those and rely on the already existing wakeups?
> >   
> Well, IIUC the issue is that a wait queue implies that you are in fact
> waiting...which we may not. :)
> 
> The target in this particular application with kvm-irqfd is a vcpu
> context, which *may* be sleeping in something like a HLT, but it also
> could be in a number of other states such as non-root (guest) mode, it
> could be running in the kernel, it could be up in userspace, etc.
> 
> That said: I am not married to the concept that this has to be a
> notifier callback, but I do want to be able to meet the target
> application.  So if there is some way to do that within the existing
> wait-queue contstruct, I am open to suggestions.

Take a look at init_waitqueue_func_entry(), in particula at that "func" 
parameter. Then look at how __wake_up_common() does its thing.
You don't need to be "waiting" for our wakeup system to work. Callbacks 
works just fine, otherwise things like epoll could not work at all.



- Davide


--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux