On Mon, 14 May 2007, Avi Kivity wrote:

> Gregory Haskins wrote:
> > > 
> > > Is having a read() (or a write()) actually necessary?
> > >     
> > 
> > Based on what I know: yes.  It could be a case of ignorance, however ;)
> > 
> > Heres why I think its necessary:  You need poll to simply tell you when
> > something is pending.  You can't clear the pending status in poll because
> > you cannot predict the internal access pattern (e.g. I assume it could be
> > polled multiple times by the kernel without returning immediately to
> > userspace).  Therefore, you need a second method to actually clear the
> > pending "signal", which I use the read() method for.  I can be convinced
> > otherwise, but that was my original thinking.
> >   
> 
> I think you are right, but am cc'ing an expert. Davide, we're using an fd to
> signal something to userspace, but have nothing to actually read() or write().
> Is a read() or write() avoidable?

I don't know exactly what you want to do, but signalfd signal de-queueing 
competes with the standard Linux signal delivery, if signals are not 
blocked.
So if you don't want to read() the signal, you can just leave the signal 
unblocked, and it'll be delivered to the signal handler.
You can even leave the signal blocked and avoid read(), but poll() on the 
signalfd will always return POLLIN if the sigmask includes the pending 
signal.




- Davide



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to