Re: timer signal loss on RT

Steven Rostedt
2012-03-10T19:44:23Z

On Sat, 2012-03-10 at 06:53 -0500, Mark Hounschell wrote:
> >
>
> Does ksoftirqd deliver timer signals in vanilla?

Sometimes :-)

Softirqs in vanilla run in interrupt context. Mostly on return from an
hardware interrupt handler, the softirqs are called and run anytime
interrupts are enabled (and bottom halves enabled). But if there's too
much work to do from the soft interrupt, then it pushes the rest of the
work to ksoftirqd. Which on vanilla runs as a normal SCHED_OTHER task.

In -rt, the hardware handlers are run as thread, and all softirqs are
handled by ksoftirqd. -rt does not process any softirqs in interrupt
context.

The answer to your question is, the timerd softirq runs mostly from
interrupt context, which will preempt your high priority CPU hog, but if
too much work is being done, it may defer it to ksoftirqd, where your
thread might block it. But chances are it wont.

-- Steve