Re: CPU information.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



kernel_learner wrote:
> Once again...what do I do in order to enable
> hyperthreading on my Linux/P4 machine? Also what was
> Dave talking about when he said 'siblings'?

not all P4s support multithreading.  the latest Xeon and the next P4 3Ghz do,
but i don't know if anyone else does.

also, you have to enable it on the BIOS. again, not all support it

if you get those two things, your machine will look as a dual CPU to the
software, so you could just compile a SMP kernel .... and find it slower than
before

why?

because those two 'virtual CPU's on each real cpu aren't full processors,
 just two streams of instructions kept separate by the instruction dispatcher
 and a clever hack of the existing register renaming units.  you don't have
 more horsepower to apply to two streams

so, what is it good for?

the main bottleneck right now on the x86 architecture is getting such an old
instruction set work nice with a superscalar processor.  since it's so
dificult for the OOOD unit to find enough non-exclusive instructions to fill
the queues, it makes sense to pick instructions from two separate execution
threads.

and the catch?

but the tradeoffs to be considered by the OS's scheduler are absolutely
different from having two real CPUs.  the worst example is having two real
hyperthreading CPUs: P0 and P1, each having two 'virtual cpus': vP00 and vP01
on P0 and vP10, vP11 on P1.

then; if the scheduler sees those as just 4 cpus, and has (for this example)
two ready processes. it might try to run them on vP00 and vP01, leaving vP10
and vP11 idle.

this would be fine if those 4 cpus were really independent, but here vP00 and
vP01 are 'siblings' and using one makes the other slower; creating the
imbalance and seriously degrading performance.  sometimes more than 40%

so it's just crap?

no, a fully HT-aware scheduler could make good use for it, achieving
performance gains of 10%-15%, and almost never getting it worse than
disabling HT.

Ingo Molnar wrote a patch for the O(1) scheduler kernel, getting it to
 deliver steady performances, instead of the wild fluctuations seen with the
 stock kernel.  read about it here http://kerneltrap.org/node.php?id=406

-----
Javier

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux