Hi...

On Tue, Jan 6, 2009 at 8:42 PM, Adrian Cornish <adri...@cqg.com> wrote:
> I am investigating why on 1 particular machine we get these soft lockup
> errors.
>
> When looking at following code in kernel/softlockup.c is it possible for
> the touch time stamps get swapped over due to pre-emption and the wrong
> touch_timestamp is compared against wrong current time, there by causing
> a false soft lockup message.
>
> Should softlockup.c be changed to call get_cpu() rather then
> smp_processor_id()
>
> void softlockup_tick(void)
> {
>   int this_cpu = smp_processor_id();
>   unsigned long touch_timestamp = per_cpu(touch_timestamp, this_cpu);

Hm,from the function's comment:

/*
 *This callback runs from the timer interrupt, and checks
* whether the watchdog thread has hung or not:
 */

that means,it runs in interrupt context, thus AFAIK it won't be preempted.

regards,

Mulyadi.

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecar...@nl.linux.org
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to