[lkml]   [1999]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: Signal driven IO
On Tue, 16 Nov 1999, Theodore Y. Ts'o wrote:
> It's actually not clear poll() is a win; if you have scenario where you
> have multiple threads (possibly on an SMP system), by using signals, you
> can quickly and easily dispatch jobs to different worker threads by
> simply having different threads picking up the real-time signals.

i'm not sure threads can share an RT signal queue. wouldn't that be
required in order to dispatch work from RT signals amongst several

> One other observation, which an engineer from Netscape (who does IMAP
> server implementations for Linux and NT) points out is that NT
> completion ports have two features which RT SIGIO doesn't provide. One
> is processor affinity; on SMP systems, when a completion port becomes
> ready, the system will try to schedule the callback thread on the same
> processor which registered the callback originally. The other is thing
> which NT does is LIFO ordering when multiple completion ports are to be
> scheduled. Both of these strategies are an attempt to avoid cache
> misses.

while LIFO preserves CPU cache contents, it can be grossly unfair under
load, as you pointed out later. but that may even be moot if sigwaitinfo
can deliver a vector of events at once, instead of just a single event.

- Chuck Lever
corporate: <>
personal: <> or <>

The Linux Scalability project:

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

 \ /
  Last update: 2005-03-22 13:55    [W:0.031 / U:4.280 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site