Re: Sub jiffy delay?

From: Lennart Sorensen
Date: Wed Nov 23 2005 - 15:50:50 EST


On Wed, Nov 23, 2005 at 03:39:17PM -0500, Rick Niles wrote:
> I need to service a piece of hardware about every 400-500
> microseconds, but I really don't want to change the value of HZ, which
> in my version of the 2.6 kernel is 1000. The hardware doesn't have an
> interrupt so the nasty hack I've been doing is to service the hardware
> repeatedly in a loop for about 600 microseconds by watching the
> do_gettimeofday(), set a timer for the next jiffy and repeat. This leaves less than 400 microseconds / millisecond for the kernel and anything else on the system to run.
>
> Obviously, this sucks, but it does work. I am working with the
> hardware guy to add an interrupt to the hardware. However, I don't
> want every user of the hardware without the interrupt to have to
> rebuild the kernel with a different value of HZ. So does anyone have
> any better ideas on what I can do?

Use the RTC interrupt generator perhaps (if you have one)? Call the
hardware people nasty things to tell them how dumb it is to make
hardware that requires frequent service without an efficient way to tell
the system when to do this. Polling is never efficient, although it is
sometimes faster (although not usually in my experience). :) After all
how did they think you were going to use the hardware?

Len Sorensen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/