[PATCH 1/1] UBUNTU: softlockup: Stop spurious softlockup messages due to overflow

Stefan Bader stefan.bader at canonical.com
Tue Mar 30 09:08:41 UTC 2010


Queued for 2.6.32.11. Though might be acceptable pre-stable.

Colin King wrote:
> BugLink: http://bugs.launchpad.net/bugs/551068
> 
> Stop spurious sotlock messages due to math overflow when TSC
> warps coming out of S3.
> 
> This is a backport of the upstream commit
> 8c2eb4805d422bdbf60ba00ff233c794d23c3c00 - the posting states:
> 
> Ensure additions on touch_ts do not overflow.  This can occur
> when the top 32 bits of the TSC reach 0xffffffff causing
> additions to touch_ts to overflow and this in turn generates
> spurious softlockup warnings.
> 
> Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
> Cc: Eric Dumazet <eric.dumazet at gmail.com>
> Cc: <stable at kernel.org>
> LKML-Reference: <1268994482.1798.6.camel at lenovo>
> Signed-off-by: Ingo Molnar <mingo at elte.hu>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
>  kernel/softlockup.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/softlockup.c b/kernel/softlockup.c
> index 88796c3..db592e0 100644
> --- a/kernel/softlockup.c
> +++ b/kernel/softlockup.c
> @@ -140,11 +140,11 @@ void softlockup_tick(void)
>  	 * Wake up the high-prio watchdog task twice per
>  	 * threshold timespan.
>  	 */
> -	if (now > touch_timestamp + softlockup_thresh/2)
> +	if (time_after(now - softlockup_thresh/2, touch_timestamp))
>  		wake_up_process(per_cpu(watchdog_task, this_cpu));
>  
>  	/* Warn about unreasonable delays: */
> -	if (now <= (touch_timestamp + softlockup_thresh))
> +	if (time_before_eq(now - softlockup_thresh, touch_timestamp))
>  		return;
>  
>  	per_cpu(print_timestamp, this_cpu) = touch_timestamp;





More information about the kernel-team mailing list