[torquedev] cpuset support b0rked in trunk ?

Chris Samuel csamuel at vpac.org
Wed May 21 08:04:22 MDT 2008

Hi all,

I was going to try tonight to experiment with converting
Torque to putting tasks created through tm_spawn into the
jobset rather than the vnode specific sets by default.

It looks like it'd be pretty trivial, involving using
move_to_jobset(getpid(),pjob) rather than move_to_taskset(...).

But it's looking like the cpuset support in trunk is stuffed
at the moment with some pretty fundamental errors. :-(

First off, it's trying to use the variable path, rather
than the #define, when creating the torqueset and that
means it's trying to mkdir("/dev/cpuset/cpus"), which is
actually a kernel provided file with the system cpus in it.

Unsuprisingly that doesn't work (patch attached).

The next problem (and where I'm knocking off for the night
as it's gone midnight here) is that when it reads /dev/cpuset/cpus
to find the cores in the system it seems to use fread()
assuming it can just read sizeof(cpuset_buf) characters
into the buffer, ignoring the fact that this is a newline
terminated string resulting in log messages like:

05/21/2008 23:51:49;0001;   pbs_mom;Svr;pbs_mom;initialize_root_cpuset, root cpuset /dev/cpuset/cpus loaded with value '0-3
05/21/2008 23:51:49;0001;   pbs_mom;Svr;pbs_mom;[continued]<FF>^?'

This results in the torque cpuset having no cores in it. :-(

Over to you folks!

Christopher Samuel - (03) 9925 4751 - Systems Manager
 The Victorian Partnership for Advanced Computing
 P.O. Box 201, Carlton South, VIC 3053, Australia
VPAC is a not-for-profit Registered Research Agency

More information about the torquedev mailing list