lkml.org 
[lkml]   [2008]   [Oct]   [6]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: aim7 47% regression with 2.6.27-rc8
From"Zhang, Yanmin" <>
DateMon, 06 Oct 2008 13:52:58 +0800
On Mon, 2008-10-06 at 07:38 +0200, Mike Galbraith wrote:
> On Mon, 2008-10-06 at 12:58 +0800, Zhang, Yanmin wrote:
> > Comparing with 2.6.27-rc8, aim7 result has about 47% regression with 2.6.27-rc8 on
> > my 16-core tigerton and 8 core+HyperThreading x86_64 machine.
> > 
> > I bisected it down to patch:
> > 
> > 302745699c1b675b5d2a1af87271de10e4d96b6a is first bad commit
> 
> > After I reverted the patch against 2.6.27-rc8, the regression disappears.
> > It's interesting that the regression doesn't exist on 8-core stoakley.
> 
> Looks like it's been fixed meanwhile.
I did a new quick test and the patch does fix it.

Thanks,
Yanmin

> 
> commit 07454bfff151d2465ada809bbaddf3548cc1097c
> Author: Thomas Gleixner <tglx@linutronix.de>
> Date:   Sat Oct 4 10:51:07 2008 +0200
> 
>     clockevents: check broadcast tick device not the clock events device
> 
>     Impact: jiffies increment too fast.
> 
>     Hugh Dickins noted that with NOHZ=n and HIGHRES=n jiffies get
>     incremented too fast. The reason is a wrong check in the broadcast
>     enter/exit code, which keeps the local apic timer in periodic mode
>     when the switch happens.
> 
>     Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> 
> diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
> index bd70345..cb01cd8 100644
> --- a/kernel/time/tick-broadcast.c
> +++ b/kernel/time/tick-broadcast.c
> @@ -235,7 +235,8 @@ static void tick_do_broadcast_on_off(void *why)
>  	case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
>  		if (!cpu_isset(cpu, tick_broadcast_mask)) {
>  			cpu_set(cpu, tick_broadcast_mask);
> -			if (bc->mode == TICKDEV_MODE_PERIODIC)
> +			if (tick_broadcast_device.mode ==
> +			    TICKDEV_MODE_PERIODIC)
>  				clockevents_shutdown(dev);
>  		}
>  		if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE)
> @@ -245,7 +246,8 @@ static void tick_do_broadcast_on_off(void *why)
>  		if (!tick_broadcast_force &&
>  		    cpu_isset(cpu, tick_broadcast_mask)) {
>  			cpu_clear(cpu, tick_broadcast_mask);
> -			if (bc->mode == TICKDEV_MODE_PERIODIC)
> +			if (tick_broadcast_device.mode ==
> +			    TICKDEV_MODE_PERIODIC)
>  				tick_setup_periodic(dev, 0);
>  		}
>  		break;
> 
> 



\
 
 \ /
  Last update: 2008-10-06 08:03    [from the cache]
©2003-2008