[Xorp-hackers] Selector overhead; SelectorList bugs
Bruce Simpson
bms at incunabulum.net
Tue Dec 1 01:32:16 PST 2009
Bruce Simpson wrote:
> Just thinking aloud here about the implications of the performance
> profiling experiments I've been doing.
>
> There's room for improvement here. If someone stepped up to rewriting
> the Selector to use poll(), that would give us more flexibility with I/O
> ordering, but remain portable to the UNIX platforms we support.
>
I had a brief exchange in private message with an old friend of mine.
She mentioned that she'd been hacking with OpenSolaris' port(3C). Looks
to me like Sun went ahead and 'did' I/O completion ports, NT style.
So it seems we've got 4 nifty alternatives, none of them particularly
portable: port, Apple's Grand Central Dispatch, kqueue, and epoll.
With epoll, lowest fds get highest dispatch priority. With GCD, you need
to explicitly push objects into priority queues; looks like it's coming
to Linux soon. It's not immediately clear to me how to do relative I/O
priority with port(3C). kqueue is BSD only.
Sounds like a job for good old poll().
More information about the Xorp-hackers
mailing list