David Grothe wrote:
Sounds like a good thing to put in when 2.6 compatibility time comes (over the summer, maybe?).  Then there could be some backward compatibility to 2.4.

I see how the mechanism works within the kernel.  How does it manifest itself in user space?  Is it used as the underlying mechanism for poll() in the 2.6 kernel?

No.  /dev/epoll was rejected as-is by Linus. But as the idea was pretty good, Linux added a new syscall: sys_epoll, serving the same purpose. Davide Libdenzi implemented the initial version, now integrated in 2.5. There have been quite a few changes in sys_epoll since its initial inclusion. The top-most change is that sys_epoll is now "level triggered" as poll is, rather than "edge triggered" as the initial implemementation.
  • Edge: When epoll is invoked, only new data / event coming _after_ the call are taken into account to make epoll() return.
  • Level: If there is some data / event to be read at the time epoll() is called, it returns immediatly.
"Edge trigger" was rather counter intuitive for people used to work with poll() or select(). Also note that epoll does in no way replace existing implementation of poll() or select().

Most important thing: The driver developer (char for LiS) does not need to worry about the syscall called from user-land: The poll entry point remains unique to every methods.

Best regards.

FiX
-- 
Francois-Xavier "FiX" KOWALSKI     /_ __    Tel: +33 (0)4 76 14 63 27
OpenCall Business Unit -- OCBU    / //_/    Fax: +33 (0)4 76 14 43 23
Signalling Products                 /       HP Telnet: 779-6327
http://www.hp.com/go/opencall   i n v e n t


Reply via email to