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/