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