[cups.development] [RFE] STR #1261: New feature: use poll(2)instead of select(2)

Michael Sweet mike at easysw.com
Tue Nov 21 13:54:07 PST 2006


Jan Engelhardt wrote:
>> The changes to use poll(), epoll(), or kqueue() instead of select() have
>> been merged to trunk. The difference in performance is interesting - in
>> tests using the "make test" target with option 0 (keep cupsd running) and
>> the "testspeed" program with "-c 50 -r 1000", epoll() performed 5.5%
>> slower than select(), followed by kqueue() at 16% slower than select() and
>> poll() at 18% slower than select().  Similar results were seen with twice
>> the number of client connections.
> 
> Does the kernel mailing list know about this?

I haven't told them, but the current cupsd usage of epoll() isn't
optimal in part because we can't use all of the neat epoll() stuff
without designing the entire IO processing loop in CUPS around it.

Also, I was testing the previous select()-based main loop against the
new cupsdSelect APIs - I still need to do some more profiling to
determine where we can improve things, and once I have more data I
can go to the kernel folks to see what improvements can be made on
both sides...

-- 
______________________________________________________________________
Michael Sweet, Easy Software Products           mike at easysw dot com
Internet Printing and Document Software          http://www.easysw.com




More information about the cups-devel mailing list