Hi... On Tue, Jan 6, 2009 at 8:42 PM, Adrian Cornish <adrianc@xxxxxxx> 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 ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ