Re: Using Cpusets with HyperThreads

Zoltan Menyhart
2005-09-27T13:46:40Z

> do we need to accommodate a more generic specification? e.g how about
> a system with K sockets per node, L cores per socket and M threads per
> core? And if that's not complicated enough, how about a really large
> system where K, L and/or M are not necessarily constant?

I think it is a good idea to be able to handle the general case.

The appropriate shift and mask values could be dynamically established
at the boot time.
This could allow us to maintain a single kernel for machines with
different (generations of) processors.

Obviously, having more choice than just between the A and B sides,
we need some more rich set of options for the CPUsets, like:

- I need N out of M cores of the sockets x...y
+ I want to prevent the other applications from using the rest of
the cores
- I need the max. number of CPUs which are not farer from each
other than X
+ Use as many cores, as the HW can provide with Y memory bandwidth
for each

I think we should add the "locality information" into

/sys/devices/system/node/node<x>

like:

/sys/devices/system/node/node<x>/socket<y>/core<z>/cpu<n>

For compatibility reason we can keep the entries like:

/sys/devices/system/node/node<x>/cpu<n>

Thanks,

Zoltan Menyhart