2008-03-25 13:54:00

by Michael Meyer

[permalink] [raw]
Subject: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

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.
http://www.yahoo.de/go


2008-03-25 14:08:40

by Luciano Rocha

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


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 <[email protected]>
Eurotux Inform?tica, S.A. <http://www.eurotux.com/>


Attachments:
(No filename) (461.00 B)
(No filename) (189.00 B)
Download all attachments

2008-03-25 16:38:26

by Michael Meyer

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


--- Luciano Rocha <[email protected]> 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.
http://www.yahoo.de/go

2008-03-25 17:17:28

by Andi Kleen

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

Luciano Rocha <[email protected]> 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

2008-03-25 17:23:52

by Michael Meyer

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


--- Andi Kleen <[email protected]> schrieb:

> Luciano Rocha <[email protected]> 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.
http://www.yahoo.de/go

2008-03-25 17:49:23

by Wander Winkelhorst

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

On Tue, Mar 25, 2008 at 6:23 PM, Michael Meyer <[email protected]> wrote:
>
> --- Andi Kleen <[email protected]> schrieb:
>
>
> > Luciano Rocha <[email protected]> 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.

2008-03-25 17:54:22

by Andi Kleen

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

> 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

2008-03-25 17:56:21

by Michael Meyer

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


--- Wander Winkelhorst <[email protected]>
schrieb:

> On Tue, Mar 25, 2008 at 6:23 PM, Michael Meyer
> <[email protected]> wrote:
> >
> > --- Andi Kleen <[email protected]> schrieb:
> >
> >
> > > Luciano Rocha <[email protected]> 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.
http://www.yahoo.de/go

2008-03-25 23:27:42

by Len Brown

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

On Tuesday 25 March 2008, Michael Meyer wrote:
>
> --- Andi Kleen <[email protected]> schrieb:
>
> > Luciano Rocha <[email protected]> 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

2008-03-26 07:26:17

by Michael Meyer

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


--- Len Brown <[email protected]> schrieb:

> On Tuesday 25 March 2008, Michael Meyer wrote:
> >
> > --- Andi Kleen <[email protected]> schrieb:
> >
> > > Luciano Rocha <[email protected]> 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.
http://www.yahoo.de/go

2008-03-28 20:08:47

by Pavel Machek

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

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

2008-03-28 20:09:38

by Pavel Machek

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

On Tue 2008-03-25 18:16:47, Andi Kleen wrote:
> Luciano Rocha <[email protected]> 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

2008-03-29 21:01:58

by Michael Meyer

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


--- Pavel Machek <[email protected]> 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 [email protected]
> 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.
http://www.yahoo.de/go

2008-03-29 21:21:30

by Pavel Machek

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

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

2008-03-29 22:17:01

by Michael Meyer

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"


--- Pavel Machek <[email protected]> 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.
http://www.yahoo.de/go

2008-03-29 23:22:57

by Bernd Eckenfels

[permalink] [raw]
Subject: Re: performance differences: "maxcpus=1" vs. "echo 0 > /sys/devices/system/cpu/cpu1/online"

In article <[email protected]> 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