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

Previous thread: Re: What to do about the 2TB limit on HDIO_GETGEO ? by Mark Lord on Tuesday, March 25, 2008 - 9:34 am. (8 messages)

Next thread: RE: Performance changes between 2.6.13 and 2.6.23 by Sanders, Rob M. on Tuesday, March 25, 2008 - 9:52 am. (2 messages)
To: <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 9:47 am

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

--

To: <linux-kernel@...>
Date: Saturday, March 29, 2008 - 7:22 pm

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
--

To: Michael Meyer <mike65134@...>
Cc: <linux-kernel@...>
Date: Friday, March 28, 2008 - 9:59 am

maxcpus=1 : core stays powered off

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: Pavel Machek <pavel@...>
Cc: <linux-kernel@...>
Date: Saturday, March 29, 2008 - 4:55 pm

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

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

--

To: Michael Meyer <mike65134@...>
Cc: <linux-kernel@...>
Date: Saturday, March 29, 2008 - 5:22 pm

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
--

To: Pavel Machek <pavel@...>
Cc: <linux-kernel@...>
Date: Saturday, March 29, 2008 - 6:16 pm

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

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

--

To: Michael Meyer <mike65134@...>
Cc: <linux-kernel@...>
Date: Wednesday, April 2, 2008 - 7:31 am

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
--

To: Michael Meyer <mike65134@...>
Cc: <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 10:08 am

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

--=20
Luciano Rocha <luciano@eurotux.com>
Eurotux Inform=E1tica, S.A. <http://www.eurotux.com/>

To: Luciano Rocha <luciano@...>
Cc: Michael Meyer <mike65134@...>, <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 1:16 pm

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
--

To: Andi Kleen <andi@...>
Cc: Luciano Rocha <luciano@...>, Michael Meyer <mike65134@...>, <linux-kernel@...>
Date: Friday, March 28, 2008 - 10:00 am

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
--

To: Andi Kleen <andi@...>
Cc: <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 1:23 pm

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

--

To: Michael Meyer <mike65134@...>
Cc: Andi Kleen <andi@...>, <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 7:27 pm

this above is the baseline, yes?
it is same as if you used no boot param

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
--

To: Len Brown <lenb@...>
Cc: <linux-kernel@...>
Date: Wednesday, March 26, 2008 - 3:26 am

Yes. I just repeated it - once without the commands and once with the

# 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

# 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/pr...

To: Michael Meyer <mike65134@...>
Cc: Andi Kleen <andi@...>, <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 1:49 pm

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.
--

To: Wander Winkelhorst <w.winkelhorst@...>
Cc: <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 1:56 pm

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

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

--

To: Wander Winkelhorst <w.winkelhorst@...>
Cc: Michael Meyer <mike65134@...>, Andi Kleen <andi@...>, <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 1:57 pm

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

-Andi
--

To: <linux-kernel@...>
Date: Tuesday, March 25, 2008 - 12:38 pm

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

--

Previous thread: Re: What to do about the 2TB limit on HDIO_GETGEO ? by Mark Lord on Tuesday, March 25, 2008 - 9:34 am. (8 messages)

Next thread: RE: Performance changes between 2.6.13 and 2.6.23 by Sanders, Rob M. on Tuesday, March 25, 2008 - 9:52 am. (2 messages)