Re: RCU question

From: George Anzinger
Date: Mon Dec 13 2004 - 00:23:31 EST


Manfred Spraul wrote:
George Anzinger wrote:


The "normal" idle loop just looks at the need_resched flag and goes right back to the hlt,


That's the problem: If a the tasklet does a wakeup then the reschedule is delayed until the next interrupt.

Not so. On the interrupt that runs the tasklet, on the way out via entry.S, the need_resched flag is checked and acted on. Thus the task switch is done prio to getting back to the hlt.

Testing need_resched and executing hlt must be atomic, but it isn't - NMIs break the atomicity.

Actually this is not required, especially if preemption is turned on.

Not a big deal, except if someone implements a tickless kernel.

Well, it is not tickless, but VST that I am working on :). The notion is to turn off the ticks when in idle and there are not time events in the list.

I think
we can ignore it for now [or was the thread started by someone who want's to disable the hardware timer when the system is really idle?]

Yep, me! But still, I keep a timer around to exit, it is just way more than a tick later (depending on what the next entry in the time list needs).


--
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/

-
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/