[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <a57051ba1001110229q2ca28ffbqea37d07735debb52@mail.gmail.com>
Date: Mon, 11 Jan 2010 11:29:14 +0100
From: Erik Rigtorp <erik@...torp.com>
To: linux-kernel@...r.kernel.org
Subject: Monitoring file descriptors without switching context
Hi!
I'm working on a low latency soft real time system. We currently run
on Solaris because it has a lower latency TCP stack and less IPC
overhead. I did some experiments with IPC using pipes on Linux. If i
use non-blocking pipes and do a busy reading loop I can achieve
latencies around 1µs. Using blocking pipes or select()/poll()
latencies increase to about 10µs. In general when I use some blocking
system call latencies increase because my process will be put on a
wait queue and the scheduler will do a context switch. However I have
more cores than I have processes/threads so I don't mind blocking a
whole core to wait for IO, that way I don't incur a full context
switch when the process waits for IO.
What I really need is some way to have the hardware block and monitor
IO for me. Would it be feasible to implement a special low latency
poll() syscall that uses MONITOR/MWAIT instructions to monitor file
descriptors?
I think in order to utilize new multicore CPUs like the Tileras we
need a better signaling mechanism with lower latency than what we
currently have using the scheduler.
Erik Rigtorp
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists