Thread (39 messages) 39 messages, 9 authors, 2013-12-22

Re: CONFIG_NO_HZ_FULL + CONFIG_PREEMPT_RT_FULL = nogo

From: Thomas Gleixner <hidden>
Date: 2013-11-07 13:13:16
Also in: lkml

On Thu, 7 Nov 2013, Frederic Weisbecker wrote:
On Thu, Nov 07, 2013 at 12:21:11PM +0100, Thomas Gleixner wrote:
quoted
Though it's not a full solution. It needs some thought versus the
softirq code of timers. Assume we have only one timer queued 1000
ticks into the future. So this change will cause the timer softirq not
to be called until that timer expires and then the timer softirq is
going to do 1000 loops until it catches up with jiffies. That's
anything but pretty ...
I see, so the problem is that we raise the timer softirq unconditionally
from the tick?
Right.
 
Ok we definetly don't want to keep that behaviour, even if softirqs are not
threaded, that's an overhead. So I'm looking at that loop in __run_timers()
and I guess you mean the "base->timer_jiffies" incrementation?

That's indeed not pretty. How do we handle exit from long dynticks
idle periods? Are we doing that loop until we catch up with the new
jiffies?
Right. I realized that right after I hit send :)
 
Then it relies on the timer cascade stuff which is very obscure code to me...
It's not that bad, really. I have an idea how to fix that. Needs some
rewriting though.

Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help