Linux Kernel Network Subsystem Patching

D. Hugh Redelmeier hugh-pmF8o41NoarQT0dZR+AlfA at public.gmane.org
Wed Jan 22 06:41:27 UTC 2014


| From: Lennart Sorensen <lsorense-1wCw9BSqJbv44Nm34jS7GywD8/FfD2ys at public.gmane.org>

| The hardware threads share some resources, such as execution units,
| but do not share CPU registers.  Each CPU core on the other hand is
| independant (in general.  AMD's newer chips is starting the share the
| FPU between two cores in interesting ways, without sharing anything else).

It all depends on what your computing bottleneck is.

For example, hyperthreading can be quite good at hiding memory
latency: while one hyperthread is waiting for a memory fetch, another
hyperthread can be using the CPU's resources.

This was used to great effect in the Sun Niagara.

If your bottleneck is the Floating Point Unit, and that unit is shared
between hyperthreads, there is no improvement.

If all threads are competing for memory bandwidth, it is quite
possible that hyperthreading could make the memory access patterns
worse.

I know that the Pentium 4 hyperthreading often made performance worse.
I never heard why.  It could have been badly implemented.  This claims
to be an answer: <https://en.wikipedia.org/wiki/Replay_system>.  That
seems odd since it claims that the problem (uselessly tied up
execution resources) is in just the case that hyperthreading should be
best (if the resources hadn't been tied up).

(Reading more Wikipedia.  They point out that the generic (non-Intel)
name is <https://en.wikipedia.org/wiki/Simultaneous_multithreading>.
They also claim Niagara isn't SMT, but I don't see an important
difference.)
--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list