Task threading question

Mackay, Michael yellowdog-general@lists.terrasoftsolutions.com
Fri Feb 6 05:18:01 2004


Hi folks

I have a general question about YDL and Linux compared to the Intel port =
concerning threads.  I know that in some versions of Unix, the task is =
the smallest schedulable quantity and as such can only run in one CPU at =
a time.  If the task is running threads, they still stay with the task - =
so if you have an SMP, your threads will not be able to share the other =
CPU - if yours is the only application in an SMP, and all the CPU needs =
of your threads added up to 100% of a CPU, you'd have 1 CPU fully =
loaded, and the other one idle.

It seems that in the Intel port of Linux, maybe because of =
hyperthreading, this ios not the case - each thread can get scheduled =
independently, so in the above scenario, you'd have 2 CPUs loaded 50%.  =
In the YDL case, though, the behavior seems to be "1 task, 1 CPU", =
regardless of what threads are running.  Needless to say, I've got that =
situation where there is 1 threaded application that needs more than 1 =
CPU's worth of horsepower.

My question is this - assuming YDL 3.0 or higher, is there a kernel =
compile option, or an application compile option, or some configuration =
I can do to get threads to be dispatchable across SMP CPUs?  I'd like to =
keep the application together as a multi-threaded unit, especially since =
it would be a pain to re-write as a collection of tasks.

Any help would be appreciated

Thanks in advance

Mike Mackay