CPU numbering & hyperthreading

From: Andrew Athan
Date: Mon Jul 17 2006 - 22:04:08 EST

On an Intel Xeon dual CPU machine running 2.6.16 and up...

I have two highly CPU/memory/network intensive processes with 3-5 threads each. I am using sched_setaffinity calls to make sure these two processes never compete for the same physical CPU. Am I right to assume that CPU #0 and #1 vs CPU #2 and #3 are separate physical CPUs on a 2-CPU w/ hyperthreading box?

I've spent some time looking, but I did not find documentation on exactly how CPUs are numbered in a hyperthreaded box.

For a process with N threads where N is generally <=5, where each thread shares access to the same large (300Mb) data structure across several threads, and which pumps the data from memory to a TCP socket, making many futex, select, write(), send() network calls (but no disk I/O), I assume it is best to keep said process on the same physical CPU but allow use both logical processors on that CPU (vs. keeping it to a single logical CPU)?


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/