[Linux-PowerEdge] Intel's Hyper-Threading vs. Linux Iptables/Netfilter Firewall ?

Steven Dick kg4ydw at gmail.com
Sun Mar 24 06:34:24 CDT 2013


Hyperthreading works by having multiple control units for a single pool of
ALUs.
It breaks when you have a math intensive cpu operation that uses up the
entire pool of ALUs between the two threads in the cpu.  When this happens,
the first cpu thread gets 100% utilization, and the second one is starved.
What you see on the user side is that whatever is in the second thread gets
charged for cpu use by the kernel but doesn't actually get any cpu time.

The linux kernel (last I checked) deals with this by trying to juggle
processes back and forth between the first and second thread, so no process
is starved 100% of the time.  I don't know if cpu affinity prevents this or
not.

If you have a load with mixed use, i.e., heavy cpu in one thread and heavy
I/O in the other thread, it hyperthreads optimally.  I don't know what
other resources besides ALUs that might cause starvation in the second
thread, I haven't read Intel's documentation on this issue.

So, in summary, I/O or I/O mixed with heavy cpu tends to hyperthread well.
Working on second order polynomials hyperthreads quite well (not enough
alu's used).   Working on 8th order polynomials in C does not.  I haven't
experimented enough to know where the break even point is, or if it has
moved on newer cpus.

I would not say hyperthreading is marketing smoke.
I also would not say hyperthreading rarely breaks.
It breaks in very specific situations, and if you understand the mechanism,
that might help you judge when.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.us.dell.com/pipermail/linux-poweredge/attachments/20130324/09bc19c9/attachment.html 


More information about the Linux-PowerEdge mailing list