Re: hdparm -t yields incorrect timings when Intel hyperthreading is enabled
I've attached the contents of /proc/cpuinfo below, two copies, one with
hyperthreading disabled and one enabled.
I've also investigated things a bit further and now I'm thinking that
the hyperthreading state affects the system as a whole, not just hdparm.
First, I've attached hdparm output from the same machine booting to
Windows 7. The reported disk speed is not affected by the hyperthreading
state. I've also attached boot speed measurements for the two states.
Windows 7 boot time with hyperthreading enabled is 2/3 that when
disabled. This would be expected if hyperthreading is actually worth
anything.
Second, it turns out that the boot speed of linux is either unaffected
by the state of hyperthreading, 3.2 kernel, or adversely affected by
enabling hyperthreading, 3.12 kernel. I've attached lines from dmesg
below showing the times at which the eth0 link becomes ready under
various scenarios. Boot times with hyperthreading enabled also seem more
variable. I've seen even longer reported boot times on the 3.12 kernel
and with a 3.12.9 kernel I've built myself; in the 20 - 30 second range.
I'm thinking that the hdparm scenario is a good canary for a more
fundamental problem with hyperthreading, at least on my dn2800mt
machine. Perhaps the backports 3.12 kernel hasn't been fully vetted yet,
but the stable 3.2 kernel should be showing some improvement in boot
speeds with hyperthreading enabled over that with hyperthreading
disabled, but isn't. Lastly, hdparm is adversely affected by
hyperthreading no matter what kernel version is loaded.
C:\>hdparm -t /dev/hda # Windows 7
/dev/hda: # Hyperthreading disabled
Timing buffered disk reads: 446 MB in 3.01 seconds = 148.13 MB/sec
Boot Duration : 31248ms
/dev/hda: # Hyperthreading enabled
Timing buffered disk reads: 448 MB in 3.01 seconds = 148.80 MB/sec
Boot Duration : 21692ms
# Boot times, hyperthreading enabled
Linux version 3.2.0-4-686-pae (debian-kernel@lists.debian.org) (gcc
version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.54-2
[ 14.240113] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Linux version 3.12-0.bpo.1-686-pae (debian-kernel@lists.debian.org) (gcc
version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.12.9-1~bpo70+1
(2014-02-07)
[ 15.825840] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
# Boot times, hyperthreading disabled
Linux version 3.2.0-4-686-pae (debian-kernel@lists.debian.org) (gcc
version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.54-2
[ 14.049342] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Linux version 3.12-0.bpo.1-686-pae (debian-kernel@lists.debian.org) (gcc
version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.12.9-1~bpo70+1
(2014-02-07)
[ 12.556885] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
cat /proc/cpuinfo # hyperthreading disabled
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_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 nonstop_tsc aperfmperf pni dtes64
monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm arat dtherm
bogomips : 3733.46
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fdiv_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 nonstop_tsc aperfmperf pni dtes64
monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm arat dtherm
bogomips : 3733.46
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
cat /proc/cpuinfo # hyperthreading enabled
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_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 nonstop_tsc aperfmperf pni dtes64
monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm arat dtherm
bogomips : 3733.42
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 1064.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_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 nonstop_tsc aperfmperf pni dtes64
monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm arat dtherm
bogomips : 3733.42
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 2
initial apicid : 2
fdiv_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 nonstop_tsc aperfmperf pni dtes64
monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm arat dtherm
bogomips : 3733.42
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 54
model name : Intel(R) Atom(TM) CPU N2800 @ 1.86GHz
stepping : 1
microcode : 0x10d
cpu MHz : 798.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 2
apicid : 3
initial apicid : 3
fdiv_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 nonstop_tsc aperfmperf pni dtes64
monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm movbe lahf_lm arat dtherm
bogomips : 3733.42
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
On 5/4/2014 5:12 PM, Henrique de Moraes Holschuh wrote:
On Sun, 04 May 2014, Paul Ausbeck wrote:
when I build a new system. Recently I built a system based upon the
Intel Atom dn2800mt motherboard. When I went to vet disk bandwidth,
Please, can you give us the output of "cat /proc/cpuinfo" ?
I obtained unexpectedly slow readings from hdparm. I found that if I
disable hyperthreading in the bios, bandwidth readings are as
expected. I believe the numbers reported by hdparm are incorrect
Did you update to the latest available BIOS for your motherboard ?
Reply to: