All of lore.kernel.org
 help / color / mirror / Atom feed
* performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
@ 2008-03-25 13:47 Michael Meyer
  2008-03-25 14:08 ` Luciano Rocha
                   ` (2 more replies)
  0 siblings, 3 replies; 17+ messages in thread
From: Michael Meyer @ 2008-03-25 13:47 UTC (permalink / raw)
  To: linux-kernel

Hi, 

what is the difference between booting a dual core
machine with "maxcpus=1" or by deactivating the second
core at run time with "echo 0 >
/sys/devices/system/cpu/cpu1/online"?

I observed a funny behaviour of apache ant: although
it uses javac which is single threaded, a compile run
with "maxcpus=1" is actually faster than a compile run
with both cores activated. But with the second core
deactivated using "echo 0 >
/sys/devices/system/cpu/cpu1/online" it is even slower
than with both cores.

Is here any method to get the exact same behaviour of
"maxcpus=1" with disabling the second core only
temporarily? So that the second core could be disabled
before the ant execution and enabled after the ant
execution?

Thanks a lot!


      E-Mails jetzt auf Ihrem Handy.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 13:47 performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online" Michael Meyer
@ 2008-03-25 14:08 ` Luciano Rocha
  2008-03-25 16:38   ` Michael Meyer
  2008-03-25 17:16   ` Andi Kleen
  2008-03-28 13:59 ` Pavel Machek
  2008-03-29 23:22 ` Bernd Eckenfels
  2 siblings, 2 replies; 17+ messages in thread
From: Luciano Rocha @ 2008-03-25 14:08 UTC (permalink / raw)
  To: Michael Meyer; +Cc: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 476 bytes --]


On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael Meyer wrote:
> Hi, 
> 
> what is the difference between booting a dual core
> machine with "maxcpus=1" or by deactivating the second
> core at run time with "echo 0 >
> /sys/devices/system/cpu/cpu1/online"?

maxcpus=1 should turn off the SMP alternative and switch to UP only,
optimising some locks and instructions.

-- 
Luciano Rocha <luciano@eurotux.com>
Eurotux Informática, S.A. <http://www.eurotux.com/>

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 14:08 ` Luciano Rocha
@ 2008-03-25 16:38   ` Michael Meyer
  2008-03-25 17:16   ` Andi Kleen
  1 sibling, 0 replies; 17+ messages in thread
From: Michael Meyer @ 2008-03-25 16:38 UTC (permalink / raw)
  To: linux-kernel


--- Luciano Rocha <luciano@eurotux.com> schrieb:

> 
> On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael
> Meyer wrote:
> > Hi, 
> > 
> > what is the difference between booting a dual core
> > machine with "maxcpus=1" or by deactivating the
> second
> > core at run time with "echo 0 >
> > /sys/devices/system/cpu/cpu1/online"?
> 
> maxcpus=1 should turn off the SMP alternative and
> switch to UP only,
> optimising some locks and instructions.

Can this be achieved during runtime also? And is it
possible to switch back to SMP after that?


      Lesen Sie Ihre E-Mails jetzt einfach von unterwegs.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 14:08 ` Luciano Rocha
  2008-03-25 16:38   ` Michael Meyer
@ 2008-03-25 17:16   ` Andi Kleen
  2008-03-25 17:23     ` Michael Meyer
  2008-03-28 14:00     ` Pavel Machek
  1 sibling, 2 replies; 17+ messages in thread
From: Andi Kleen @ 2008-03-25 17:16 UTC (permalink / raw)
  To: Luciano Rocha; +Cc: Michael Meyer, linux-kernel

Luciano Rocha <luciano@eurotux.com> writes:

> On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael Meyer wrote:
> > Hi, 
> > 
> > what is the difference between booting a dual core
> > machine with "maxcpus=1" or by deactivating the second
> > core at run time with "echo 0 >
> > /sys/devices/system/cpu/cpu1/online"?
> 
> maxcpus=1 should turn off the SMP alternative and switch to UP only,
> optimising some locks and instructions.

CPU hot unplug will do the same. But it is unlikely it accounts
for that much performance difference.

If he used maxcpus=0 it would make sense. maxcpus=0 disables
the IO-APIC which likely makes a large difference. But it should
be actually slower.

There should be actually no difference in theory between max_cpus=1
and hot unplug to one CPU. Might be some bug.

-Andi

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 17:16   ` Andi Kleen
@ 2008-03-25 17:23     ` Michael Meyer
  2008-03-25 17:49       ` Wander Winkelhorst
  2008-03-25 23:27       ` Len Brown
  2008-03-28 14:00     ` Pavel Machek
  1 sibling, 2 replies; 17+ messages in thread
From: Michael Meyer @ 2008-03-25 17:23 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel


--- Andi Kleen <andi@firstfloor.org> schrieb:

> Luciano Rocha <luciano@eurotux.com> writes:
> 
> > On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael
> Meyer wrote:
> > > Hi, 
> > > 
> > > what is the difference between booting a dual
> core
> > > machine with "maxcpus=1" or by deactivating the
> second
> > > core at run time with "echo 0 >
> > > /sys/devices/system/cpu/cpu1/online"?
> > 
> > maxcpus=1 should turn off the SMP alternative and
> switch to UP only,
> > optimising some locks and instructions.
> 
> CPU hot unplug will do the same. But it is unlikely
> it accounts
> for that much performance difference.
> 
> If he used maxcpus=0 it would make sense. maxcpus=0
> disables
> the IO-APIC which likely makes a large difference.
> But it should
> be actually slower.
> 
> There should be actually no difference in theory
> between max_cpus=1
> and hot unplug to one CPU. Might be some bug.

I had the following time values:

maxcpus=1:
real	0m1.642s
user	0m1.528s
sys	0m0.068s

maxcpus=2 and 
echo 1 > /sys/devices/system/cpu/cpu1/online:
real	0m2.579s
user	0m4.096s
sys	0m0.160s

maxcpus=2 and
echo 0 > /sys/devices/system/cpu/cpu1/online:
real	0m3.757s
user	0m3.632s
sys	0m0.112s







      Lesen Sie Ihre E-Mails jetzt einfach von unterwegs.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 17:23     ` Michael Meyer
@ 2008-03-25 17:49       ` Wander Winkelhorst
  2008-03-25 17:56         ` Michael Meyer
  2008-03-25 17:57         ` Andi Kleen
  2008-03-25 23:27       ` Len Brown
  1 sibling, 2 replies; 17+ messages in thread
From: Wander Winkelhorst @ 2008-03-25 17:49 UTC (permalink / raw)
  To: Michael Meyer; +Cc: Andi Kleen, linux-kernel

On Tue, Mar 25, 2008 at 6:23 PM, Michael Meyer <mike65134@yahoo.de> wrote:
>
>  --- Andi Kleen <andi@firstfloor.org> schrieb:
>
>
>  > Luciano Rocha <luciano@eurotux.com> writes:
>  >
>  > > On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael
>  > Meyer wrote:
>  > > > Hi,
>  > > >
>  > > > what is the difference between booting a dual
>  > core
>  > > > machine with "maxcpus=1" or by deactivating the
>  > second
>  > > > core at run time with "echo 0 >
>  > > > /sys/devices/system/cpu/cpu1/online"?
>  > >
>  > > maxcpus=1 should turn off the SMP alternative and
>  > switch to UP only,
>  > > optimising some locks and instructions.
>  >
>  > CPU hot unplug will do the same. But it is unlikely
>  > it accounts
>  > for that much performance difference.
>  >
>  > If he used maxcpus=0 it would make sense. maxcpus=0
>  > disables
>  > the IO-APIC which likely makes a large difference.
>  > But it should
>  > be actually slower.
>  >
>  > There should be actually no difference in theory
>  > between max_cpus=1
>  > and hot unplug to one CPU. Might be some bug.
>
>  I had the following time values:
>
>  maxcpus=1:
>  real    0m1.642s
>  user    0m1.528s
>  sys     0m0.068s
>
>  maxcpus=2 and
>  echo 1 > /sys/devices/system/cpu/cpu1/online:
>  real    0m2.579s
>  user    0m4.096s
>  sys     0m0.160s
>
>  maxcpus=2 and
>  echo 0 > /sys/devices/system/cpu/cpu1/online:
>  real    0m3.757s
>  user    0m3.632s
>  sys     0m0.112s
>
>

What kind of CPU are you using? Some Intel CPU's do "funny stuff",
like dynamically overclocking itself when working on a single thread,
or using all of the 2nd level cache instead of sharing it with the
second core.

Regards,
Wander Winkelhorst.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 17:49       ` Wander Winkelhorst
@ 2008-03-25 17:56         ` Michael Meyer
  2008-03-25 17:57         ` Andi Kleen
  1 sibling, 0 replies; 17+ messages in thread
From: Michael Meyer @ 2008-03-25 17:56 UTC (permalink / raw)
  To: Wander Winkelhorst; +Cc: linux-kernel


--- Wander Winkelhorst <w.winkelhorst@gmail.com>
schrieb:

> On Tue, Mar 25, 2008 at 6:23 PM, Michael Meyer
> <mike65134@yahoo.de> wrote:
> >
> >  --- Andi Kleen <andi@firstfloor.org> schrieb:
> >
> >
> >  > Luciano Rocha <luciano@eurotux.com> writes:
> >  >
> >  > > On Tue, Mar 25, 2008 at 02:47:50PM +0100,
> Michael
> >  > Meyer wrote:
> >  > > > Hi,
> >  > > >
> >  > > > what is the difference between booting a
> dual
> >  > core
> >  > > > machine with "maxcpus=1" or by deactivating
> the
> >  > second
> >  > > > core at run time with "echo 0 >
> >  > > > /sys/devices/system/cpu/cpu1/online"?
> >  > >
> >  > > maxcpus=1 should turn off the SMP alternative
> and
> >  > switch to UP only,
> >  > > optimising some locks and instructions.
> >  >
> >  > CPU hot unplug will do the same. But it is
> unlikely
> >  > it accounts
> >  > for that much performance difference.
> >  >
> >  > If he used maxcpus=0 it would make sense.
> maxcpus=0
> >  > disables
> >  > the IO-APIC which likely makes a large
> difference.
> >  > But it should
> >  > be actually slower.
> >  >
> >  > There should be actually no difference in
> theory
> >  > between max_cpus=1
> >  > and hot unplug to one CPU. Might be some bug.
> >
> >  I had the following time values:
> >
> >  maxcpus=1:
> >  real    0m1.642s
> >  user    0m1.528s
> >  sys     0m0.068s
> >
> >  maxcpus=2 and
> >  echo 1 > /sys/devices/system/cpu/cpu1/online:
> >  real    0m2.579s
> >  user    0m4.096s
> >  sys     0m0.160s
> >
> >  maxcpus=2 and
> >  echo 0 > /sys/devices/system/cpu/cpu1/online:
> >  real    0m3.757s
> >  user    0m3.632s
> >  sys     0m0.112s
> >
> >
> 
> What kind of CPU are you using? Some Intel CPU's do
> "funny stuff",
> like dynamically overclocking itself when working on
> a single thread,
> or using all of the 2nd level cache instead of
> sharing it with the
> second core.
> 
> Regards,
> Wander Winkelhorst.
> 

Intel Core 2 Duo E6600 (2.4 Ghz). I do not think that
it is capable of dynamically overclocking.

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Intel(R) Core(TM)2 CPU          6600  @
2.40GHz
stepping	: 6
cpu MHz		: 1600.000
cache size	: 4096 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep
mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr
sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon
pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16
xtpr lahf_lm
bogomips	: 4791.87
clflush size	: 64

processor	: 1
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Intel(R) Core(TM)2 CPU          6600  @
2.40GHz
stepping	: 6
cpu MHz		: 1600.000
cache size	: 4096 KB
physical id	: 0
siblings	: 2
core id		: 1
cpu cores	: 2
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep
mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr
sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon
pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16
xtpr lahf_lm
bogomips	: 4788.35
clflush size	: 64





      E-Mails jetzt auf Ihrem Handy.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 17:49       ` Wander Winkelhorst
  2008-03-25 17:56         ` Michael Meyer
@ 2008-03-25 17:57         ` Andi Kleen
  1 sibling, 0 replies; 17+ messages in thread
From: Andi Kleen @ 2008-03-25 17:57 UTC (permalink / raw)
  To: Wander Winkelhorst; +Cc: Michael Meyer, Andi Kleen, linux-kernel

> What kind of CPU are you using? Some Intel CPU's do "funny stuff",
> like dynamically overclocking itself when working on a single thread,
> or using all of the 2nd level cache instead of sharing it with the
> second core.

P0 should also work fine with cpu hotplug. At least in theory.

-Andi

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 17:23     ` Michael Meyer
  2008-03-25 17:49       ` Wander Winkelhorst
@ 2008-03-25 23:27       ` Len Brown
  2008-03-26  7:26         ` Michael Meyer
  1 sibling, 1 reply; 17+ messages in thread
From: Len Brown @ 2008-03-25 23:27 UTC (permalink / raw)
  To: Michael Meyer; +Cc: Andi Kleen, linux-kernel

On Tuesday 25 March 2008, Michael Meyer wrote:
> 
> --- Andi Kleen <andi@firstfloor.org> schrieb:
> 
> > Luciano Rocha <luciano@eurotux.com> writes:
> > 
> > > On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael
> > Meyer wrote:
> > > > Hi, 
> > > > 
> > > > what is the difference between booting a dual
> > core
> > > > machine with "maxcpus=1" or by deactivating the
> > second
> > > > core at run time with "echo 0 >
> > > > /sys/devices/system/cpu/cpu1/online"?
> > > 
> > > maxcpus=1 should turn off the SMP alternative and
> > switch to UP only,
> > > optimising some locks and instructions.
> > 
> > CPU hot unplug will do the same. But it is unlikely
> > it accounts
> > for that much performance difference.
> > 
> > If he used maxcpus=0 it would make sense. maxcpus=0
> > disables
> > the IO-APIC which likely makes a large difference.
> > But it should
> > be actually slower.
> > 
> > There should be actually no difference in theory
> > between max_cpus=1
> > and hot unplug to one CPU. Might be some bug.
> 
> I had the following time values:
> 
> maxcpus=1:
> real	0m1.642s
> user	0m1.528s
> sys	0m0.068s
> 
> maxcpus=2 and 
> echo 1 > /sys/devices/system/cpu/cpu1/online:
> real	0m2.579s
> user	0m4.096s
> sys	0m0.160s

this above is the baseline, yes?
it is same as if you used no boot param
and did not touch the online file, yes?

> maxcpus=2 and
> echo 0 > /sys/devices/system/cpu/cpu1/online:
> real	0m3.757s
> user	0m3.632s
> sys	0m0.112s

Please post the contents of 
# grep . /sys/devices/system/cpu/cpu*/cpufreq/*
and also
grep . /proc/acpi/processor/*/power

My guess that the maxcpus=1 case benefits from turbo mode, aka EIDA.
That benefit, however, is subject to this bug:
http://bugzilla.kernel.org/show_bug.cgi?id=5471
because for a single thread to run faster than the marketing MHz,
the other thread must be in deep-idle, which is prevented
by the bug above.

If your scaling_available_frequencies includes 2401000
then you probably have a turbo-mode enabled processor.

one way to verify this would be to disable turbo mode
by pegging the MHz like so:

# echo 2400000 > /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
# echo 2400000 > /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq

-Len

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 23:27       ` Len Brown
@ 2008-03-26  7:26         ` Michael Meyer
  0 siblings, 0 replies; 17+ messages in thread
From: Michael Meyer @ 2008-03-26  7:26 UTC (permalink / raw)
  To: Len Brown; +Cc: linux-kernel


--- Len Brown <lenb@kernel.org> schrieb:

> On Tuesday 25 March 2008, Michael Meyer wrote:
> > 
> > --- Andi Kleen <andi@firstfloor.org> schrieb:
> > 
> > > Luciano Rocha <luciano@eurotux.com> writes:
> > > 
> > > > On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael
> > > Meyer wrote:
> > > > > Hi, 
> > > > > 
> > > > > what is the difference between booting a dual
> > > core
> > > > > machine with "maxcpus=1" or by deactivating the
> > > second
> > > > > core at run time with "echo 0 >
> > > > > /sys/devices/system/cpu/cpu1/online"?
> > > > 
> > > > maxcpus=1 should turn off the SMP alternative and
> > > switch to UP only,
> > > > optimising some locks and instructions.
> > > 
> > > CPU hot unplug will do the same. But it is unlikely
> > > it accounts
> > > for that much performance difference.
> > > 
> > > If he used maxcpus=0 it would make sense. maxcpus=0
> > > disables
> > > the IO-APIC which likely makes a large difference.
> > > But it should
> > > be actually slower.
> > > 
> > > There should be actually no difference in theory
> > > between max_cpus=1
> > > and hot unplug to one CPU. Might be some bug.
> > 
> > I had the following time values:
> > 
> > maxcpus=1:
> > real	0m1.642s
> > user	0m1.528s
> > sys	0m0.068s
> > 
> > maxcpus=2 and 
> > echo 1 > /sys/devices/system/cpu/cpu1/online:
> > real	0m2.579s
> > user	0m4.096s
> > sys	0m0.160s
> 
> this above is the baseline, yes?

Yes, it is.

> it is same as if you used no boot param
> and did not touch the online file, yes?

Yes. I just repeated it - once without the commands and once with the
same commands stated above. Same result. So this is the default.

> 
> > maxcpus=2 and
> > echo 0 > /sys/devices/system/cpu/cpu1/online:
> > real	0m3.757s
> > user	0m3.632s
> > sys	0m0.112s
> 
> Please post the contents of 
> # grep . /sys/devices/system/cpu/cpu*/cpufreq/*

# grep . /sys/devices/system/cpu/cpu*/cpufreq/*
/sys/devices/system/cpu/cpu0/cpufreq/affected_cpus:0
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq:2400000
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq:1600000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies:2400000
1600000 
/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors:ondemand
userspace conservative powersave performance 
/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq:1600000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_driver:acpi-cpufreq
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:ondemand
/sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq:2400000
/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq:1600000
/sys/devices/system/cpu/cpu1/cpufreq/affected_cpus:1
/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq:2400000
/sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_min_freq:1600000
/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_frequencies:2400000
1600000 
/sys/devices/system/cpu/cpu1/cpufreq/scaling_available_governors:ondemand
userspace conservative powersave performance 
/sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq:1600000
/sys/devices/system/cpu/cpu1/cpufreq/scaling_driver:acpi-cpufreq
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:ondemand
/sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq:2400000
/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq:1600000


> and also
> grep . /proc/acpi/processor/*/power

# grep . /proc/acpi/processor/*/power
/proc/acpi/processor/CPU0/power:active state:            C0
/proc/acpi/processor/CPU0/power:max_cstate:              C8
/proc/acpi/processor/CPU0/power:bus master activity:     00000000
/proc/acpi/processor/CPU0/power:maximum allowed latency: 8000 usec
/proc/acpi/processor/CPU0/power:states:
/proc/acpi/processor/CPU0/power:    C1:                  type[C1]
promotion[--] demotion[--] latency[000] usage[00000000]
duration[00000000000000000000]
/proc/acpi/processor/CPU1/power:active state:            C0
/proc/acpi/processor/CPU1/power:max_cstate:              C8
/proc/acpi/processor/CPU1/power:bus master activity:     00000000
/proc/acpi/processor/CPU1/power:maximum allowed latency: 8000 usec
/proc/acpi/processor/CPU1/power:states:
/proc/acpi/processor/CPU1/power:    C1:                  type[C1]
promotion[--] demotion[--] latency[000] usage[00000000]
duration[00000000000000000000]


> 
> My guess that the maxcpus=1 case benefits from turbo mode, aka EIDA.
> That benefit, however, is subject to this bug:
> http://bugzilla.kernel.org/show_bug.cgi?id=5471
> because for a single thread to run faster than the marketing MHz,
> the other thread must be in deep-idle, which is prevented
> by the bug above.
> 
> If your scaling_available_frequencies includes 2401000
> then you probably have a turbo-mode enabled processor.

It does not include 2401000. The processor is an Intel Core 2 Duo E6600
(2.4GHZ) bought at the beginning of 2007. I do not think that that kind
of freqency scaling was available back than. 

> 
> one way to verify this would be to disable turbo mode
> by pegging the MHz like so:
> 
> # echo 2400000 >
> /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
> # echo 2400000 >
> /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_max_freq
> 
> -Len
> 

This does not work, as both are read-only. 


      E-Mails jetzt auf Ihrem Handy.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 13:47 performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online" Michael Meyer
  2008-03-25 14:08 ` Luciano Rocha
@ 2008-03-28 13:59 ` Pavel Machek
  2008-03-29 20:55   ` Michael Meyer
  2008-03-29 23:22 ` Bernd Eckenfels
  2 siblings, 1 reply; 17+ messages in thread
From: Pavel Machek @ 2008-03-28 13:59 UTC (permalink / raw)
  To: Michael Meyer; +Cc: linux-kernel

On Tue 2008-03-25 14:47:50, Michael Meyer wrote:
> Hi, 
> 
> what is the difference between booting a dual core
> machine with "maxcpus=1" or by deactivating the second
> core at run time with "echo 0 >
> /sys/devices/system/cpu/cpu1/online"?

maxcpus=1 : core stays powered off
0 > online : core enters halt.

> I observed a funny behaviour of apache ant: although
> it uses javac which is single threaded, a compile run
> with "maxcpus=1" is actually faster than a compile run
> with both cores activated. But with the second core
> deactivated using "echo 0 >
> /sys/devices/system/cpu/cpu1/online" it is even slower
> than with both cores.

Thermal fun? Check cooling.


> Is here any method to get the exact same behaviour of
> "maxcpus=1" with disabling the second core only
> temporarily? So that the second core could be disabled
> before the ant execution and enabled after the ant
> execution?

Patch pushing 0 > online cores into C4 would be nice.
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 17:16   ` Andi Kleen
  2008-03-25 17:23     ` Michael Meyer
@ 2008-03-28 14:00     ` Pavel Machek
  1 sibling, 0 replies; 17+ messages in thread
From: Pavel Machek @ 2008-03-28 14:00 UTC (permalink / raw)
  To: Andi Kleen; +Cc: Luciano Rocha, Michael Meyer, linux-kernel

On Tue 2008-03-25 18:16:47, Andi Kleen wrote:
> Luciano Rocha <luciano@eurotux.com> writes:
> 
> > On Tue, Mar 25, 2008 at 02:47:50PM +0100, Michael Meyer wrote:
> > > Hi, 
> > > 
> > > what is the difference between booting a dual core
> > > machine with "maxcpus=1" or by deactivating the second
> > > core at run time with "echo 0 >
> > > /sys/devices/system/cpu/cpu1/online"?
> > 
> > maxcpus=1 should turn off the SMP alternative and switch to UP only,
> > optimising some locks and instructions.
> 
> CPU hot unplug will do the same. But it is unlikely it accounts
> for that much performance difference.
> 
> If he used maxcpus=0 it would make sense. maxcpus=0 disables
> the IO-APIC which likely makes a large difference. But it should
> be actually slower.
> 
> There should be actually no difference in theory between max_cpus=1
> and hot unplug to one CPU. Might be some bug.

Or thermal effect.  I'd expect that behaviour with bad cooling.

							Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-28 13:59 ` Pavel Machek
@ 2008-03-29 20:55   ` Michael Meyer
  2008-03-29 21:22     ` Pavel Machek
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Meyer @ 2008-03-29 20:55 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-kernel


--- Pavel Machek <pavel@ucw.cz> schrieb:

> On Tue 2008-03-25 14:47:50, Michael Meyer wrote:
> > Hi, 
> > 
> > what is the difference between booting a dual core
> > machine with "maxcpus=1" or by deactivating the second
> > core at run time with "echo 0 >
> > /sys/devices/system/cpu/cpu1/online"?
> 
> maxcpus=1 : core stays powered off
> 0 > online : core enters halt.
> 
> > I observed a funny behaviour of apache ant: although
> > it uses javac which is single threaded, a compile run
> > with "maxcpus=1" is actually faster than a compile run
> > with both cores activated. But with the second core
> > deactivated using "echo 0 >
> > /sys/devices/system/cpu/cpu1/online" it is even slower
> > than with both cores.
> 
> Thermal fun? Check cooling.

I have an extremely well cooled case and a Thermaltake Typhoon sitting
on the E6600 (Intel TDP 65 Watt). At a room temperature of 20°C both
cores idle at 21°C and after one hour of two instances of prime95
running they are both at 28-33°C. As the E6600 is specified until 60°C
(I believe), this should prevent any thermal throttling?
 
> > Is here any method to get the exact same behaviour of
> > "maxcpus=1" with disabling the second core only
> > temporarily? So that the second core could be disabled
> > before the ant execution and enabled after the ant
> > execution?
> 
> Patch pushing 0 > online cores into C4 would be nice.
> -- 
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures)
> http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
> --
> To unsubscribe from this list: send the line "unsubscribe
> linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 



      E-Mails jetzt auf Ihrem Handy.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-29 20:55   ` Michael Meyer
@ 2008-03-29 21:22     ` Pavel Machek
  2008-03-29 22:16       ` Michael Meyer
  0 siblings, 1 reply; 17+ messages in thread
From: Pavel Machek @ 2008-03-29 21:22 UTC (permalink / raw)
  To: Michael Meyer; +Cc: linux-kernel

Hi!

> > > what is the difference between booting a dual core
> > > machine with "maxcpus=1" or by deactivating the second
> > > core at run time with "echo 0 >
> > > /sys/devices/system/cpu/cpu1/online"?
> > 
> > maxcpus=1 : core stays powered off
> > 0 > online : core enters halt.
> > 
> > > I observed a funny behaviour of apache ant: although
> > > it uses javac which is single threaded, a compile run
> > > with "maxcpus=1" is actually faster than a compile run
> > > with both cores activated. But with the second core
> > > deactivated using "echo 0 >
> > > /sys/devices/system/cpu/cpu1/online" it is even slower
> > > than with both cores.
> > 
> > Thermal fun? Check cooling.
> 
> I have an extremely well cooled case and a Thermaltake Typhoon sitting
> on the E6600 (Intel TDP 65 Watt). At a room temperature of 20°C both
> cores idle at 21°C and after one hour of two instances of prime95
> running they are both at 28-33°C. As the E6600 is specified until 60°C
> (I believe), this should prevent any thermal throttling?

Ok, and your chip is too old to have "Enhanced Dynamic Acceleration
Technology" (Intel, can't you use some reasonable names?!)... both
would explain effects you see, and it is neither...

You could try implementing deep sleep (C4) state for cpu hotplug....
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-29 21:22     ` Pavel Machek
@ 2008-03-29 22:16       ` Michael Meyer
  2008-04-02 11:31         ` Pavel Machek
  0 siblings, 1 reply; 17+ messages in thread
From: Michael Meyer @ 2008-03-29 22:16 UTC (permalink / raw)
  To: Pavel Machek; +Cc: linux-kernel


--- Pavel Machek <pavel@ucw.cz> schrieb:

> Hi!
> 
> > > > what is the difference between booting a dual core
> > > > machine with "maxcpus=1" or by deactivating the second
> > > > core at run time with "echo 0 >
> > > > /sys/devices/system/cpu/cpu1/online"?
> > > 
> > > maxcpus=1 : core stays powered off
> > > 0 > online : core enters halt.
> > > 
> > > > I observed a funny behaviour of apache ant: although
> > > > it uses javac which is single threaded, a compile run
> > > > with "maxcpus=1" is actually faster than a compile run
> > > > with both cores activated. But with the second core
> > > > deactivated using "echo 0 >
> > > > /sys/devices/system/cpu/cpu1/online" it is even slower
> > > > than with both cores.
> > > 
> > > Thermal fun? Check cooling.
> > 
> > I have an extremely well cooled case and a Thermaltake Typhoon
> sitting
> > on the E6600 (Intel TDP 65 Watt). At a room temperature of 20°C
> both
> > cores idle at 21°C and after one hour of two instances of prime95
> > running they are both at 28-33°C. As the E6600 is specified until
> 60°C
> > (I believe), this should prevent any thermal throttling?
> 
> Ok, and your chip is too old to have "Enhanced Dynamic Acceleration
> Technology" (Intel, can't you use some reasonable names?!)... both
> would explain effects you see, and it is neither...

It is too old to have that. I bought it at the beginning of 2007 and it
is from the first line of Core 2 Duo processors (released in summer
2006). I think "Enhanced Dynamic Acceleration Technology" is only
available recently.

> You could try implementing deep sleep (C4) state for cpu hotplug....

I have to confess that I sneaked unto LKML illegitimately, as I am not
a kernel hacker.

But thank you all very much for all the hints!


      Lesen Sie Ihre E-Mails jetzt einfach von unterwegs.
www.yahoo.de/go


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-25 13:47 performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online" Michael Meyer
  2008-03-25 14:08 ` Luciano Rocha
  2008-03-28 13:59 ` Pavel Machek
@ 2008-03-29 23:22 ` Bernd Eckenfels
  2 siblings, 0 replies; 17+ messages in thread
From: Bernd Eckenfels @ 2008-03-29 23:22 UTC (permalink / raw)
  To: linux-kernel

In article <16336.23884.qm@web25814.mail.ukl.yahoo.com> you wrote:
> Is here any method to get the exact same behaviour of
> "maxcpus=1" with disabling the second core only

I dont have much insight, but I do remember some java performance problems
on Multi-Core with some Dell Desktops. I think they had been fixed with a
Bios upgrade. Sorry I dont remeber the chip and revision details anymore. I
just felt reminded, because MAXCPU=1 helped back then, also.

Gruss
Bernd
y

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"
  2008-03-29 22:16       ` Michael Meyer
@ 2008-04-02 11:31         ` Pavel Machek
  0 siblings, 0 replies; 17+ messages in thread
From: Pavel Machek @ 2008-04-02 11:31 UTC (permalink / raw)
  To: Michael Meyer; +Cc: linux-kernel

Hi!

> > Ok, and your chip is too old to have "Enhanced Dynamic Acceleration
> > Technology" (Intel, can't you use some reasonable names?!)... both
> > would explain effects you see, and it is neither...
> 
> It is too old to have that. I bought it at the beginning of 2007 and it
> is from the first line of Core 2 Duo processors (released in summer
> 2006). I think "Enhanced Dynamic Acceleration Technology" is only
> available recently.
> 
> > You could try implementing deep sleep (C4) state for cpu hotplug....
> 
> I have to confess that I sneaked unto LKML illegitimately, as I am not
> a kernel hacker.

You can still play one, and submit a patch. Over internet, noone can
tell if you are hacker or not ;-). I would be happy to help with good
advice ;-).
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2008-04-02 11:31 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-25 13:47 performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online" Michael Meyer
2008-03-25 14:08 ` Luciano Rocha
2008-03-25 16:38   ` Michael Meyer
2008-03-25 17:16   ` Andi Kleen
2008-03-25 17:23     ` Michael Meyer
2008-03-25 17:49       ` Wander Winkelhorst
2008-03-25 17:56         ` Michael Meyer
2008-03-25 17:57         ` Andi Kleen
2008-03-25 23:27       ` Len Brown
2008-03-26  7:26         ` Michael Meyer
2008-03-28 14:00     ` Pavel Machek
2008-03-28 13:59 ` Pavel Machek
2008-03-29 20:55   ` Michael Meyer
2008-03-29 21:22     ` Pavel Machek
2008-03-29 22:16       ` Michael Meyer
2008-04-02 11:31         ` Pavel Machek
2008-03-29 23:22 ` Bernd Eckenfels

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.