Skip to contentSkip to conversation

kqueue microbenchmark resul

DISCUSSION Dan Kegel 1 participant 1 message Oct 28, 2000

lore
Share & tools
lore

Dan Kegel

author
#0 lore raw
Quoted 3 lines
Quoted 3 lines

In fact, if you did leave the read queued in a daemon using select() before, you'd keep looping endlessly taking all CPU and never idle because there would always be read data available.

That would be a programming error on the part of the application. Any application using a level-triggered interface like select or poll must of course mask off events it is not interested in, to avoid getting them endlessly. That's just 'select 101'.

Quoted 5 lines

Also, level triggered notifications would also seem to cause multiple thread wakeups and thundering herd problems when there are multiple worker threads reading from the same queue.

How does (?) kevent avoid this from happening?

Easy - applications which have multiple threads reading from the same queue would use oneshot events instead of level-triggered events. Level-triggered events are only for applications where a single thread is reading from the queue.

- Dan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/