View previous topic :: View next topic |
Author |
Message |
Accipiter Tux's lil' helper
Joined: 24 Feb 2003 Posts: 89 Location: Buffalo, NY
|
Posted: Wed Feb 09, 2005 2:35 am Post subject: Pentium 4 HT - No activity on CPU1? |
|
|
I am running Linux, more or less perfectly, on a Dell Inspiron 9100, with the exception of an unsupported minor feature here or there. It uses a Pentium 4 processor with hyperthreading. I've compiled the following support into my kernel (gentoo-dev-sources-2.6.9-r9 patched with swsusp2.1.5):
Code: | Processor type and features-->
Subarchitecture Type (PC-compatible) --->
Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon) --->
[*] Symmetric multi-processing support
(2) Maximum number of CPUs (2-255)
[*] SMT (Hyperthreading) scheduler support
<*> Dell laptop support |
The kernel is booted with the line:
Code: | kernel /vmlinuz root=/dev/hda6 video=vesafb:ywrap,nomtrr,1600x1200-32@60 resume2=swap:/dev/hda7 splash=silent,theme:emergence |
CPU0 and CPU1 (logical processors) are both initialized at boot according to dmesg, and apparently in exactly the same way. The problem is that despite this, CPU1 always has an activity of something VERY close to 0 (never more than 0.5%) according to top, while CPU0 gets all the work. Even if CPU0 is maxed out, nothing appears to be run on the second logical processor.
Is there a way to determine whether top (not to mention other performance monitoring utilities such as gkrellm) is simply failing to separate the load, reporting the "composite" value on CPU0 and therefore nothing on CPU1? Or is something really screwy with my HT support? How would I be able to find out and/or fix it if necessary? |
|
Back to top |
|
|
truekaiser l33t
Joined: 05 Mar 2004 Posts: 810
|
Posted: Wed Feb 09, 2005 2:40 am Post subject: |
|
|
you do realize ht is more marketing hype then an actual usefull feature? |
|
Back to top |
|
|
Accipiter Tux's lil' helper
Joined: 24 Feb 2003 Posts: 89 Location: Buffalo, NY
|
Posted: Wed Feb 09, 2005 3:38 am Post subject: -_-; |
|
|
I'll have won the lottery the day someone is able to mention HT on these boards without having the Flamerod of Marketing Hype +1 shoved up their...
Thank you for wasting my unanswered post status. |
|
Back to top |
|
|
arkhan_jg Apprentice
Joined: 18 Mar 2003 Posts: 199 Location: Dorset, UK
|
Posted: Sun Feb 13, 2005 2:44 pm Post subject: test multithreading? |
|
|
Have you tried something definitely parallizable?
i.e. set MAKEOPTS="-j3" in your make.conf, then check top while you do an emerge -u world. Not all packages can take advantage of the multiple threads while compiling, so run a few through to check.
It's worth pointing out that not all apps can take advantage of multithreading; the scheduler, low-level kernel primitives, the file server, the network, and threaded apps should however be able to.
If compiling still doesn't use CPU 1, you'll need to look deeper. You could try running dbench with HT compiled in and not, to see if HT is being used, just transparently. It might also be worth switching to NPTL, if you haven't already, given the better thread handling it includes. Also, if you've got a single-thread process taking up a lot of CPU, I don't think the scheduler will move stuff to CPU1 as that would take away execution units from the first non-threaded process.
http://www-128.ibm.com/developerworks/linux/library/l-htl/ might be an interesting place to start looking deeper into some tests you can run.
Oh, nearly forgot. The slower/older P4's have HT on the chip, but it's disabled for marketing reasons. Which P4 have you got, is it definitely a HT-enabled one (3.0 GHz or better, IIRC). See http://forums.2cpu.com/showthread.php?s=&threadid=34330 for more details on how HT works. _________________ make menuconfig not war |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|