Re: device driver / char module interrupt vector -> user space code

Jan Hudec (bulb@ucw.cz)
Fri, 9 Aug 2002 11:35:49 +0200


On Fri, Aug 09, 2002 at 11:34:00AM +0100, Alan Cox wrote:
> On Fri, 2002-08-09 at 09:49, SA wrote:
> > I am writing a char module for a PCI stage controller and want to add the
> > following functionality;
> >
> > The device will generate an interrupt (or software trigger) and I want this to
> > run a bit of user code with relatively latency. (<1ms). I am unclear how to
> > do this while still separating the user from the kernel code and maintaining
> > security - would this usually be handled by issuing a signal to the user space
> > process? if so how and what latency can I expect?
>
> You could deliver a signal, or if appropriate you can have a system call
> that blocks until the IRQ. To get good reliable latency, mlockall() the
> process you need to be real time, and set it to a real time scheduling
> priority.

If you noticed the discussion about signal delivery and context switch
latency, a syscall (can be ioctl on special device) waiting for the
event would be faster than signal.

-------------------------------------------------------------------------------
Jan 'Bulb' Hudec <bulb@ucw.cz>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/