Re: Pre-emption and kernel/softlockup.c softlockup_tick()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux