On 07/11/2014 10:29, Andrew Jones wrote:
>> > I think this would cause too many failures in the wild.  Perhaps error
>> > out if it is lower, and warn if sockets * cores * threads > max_cpus
>> > since we actually allow hot-plug a thread at a time?
> We'd still have more failures if we choose to error out when it's lower,
> since we currently silently adjust threads in some of those cases, or
> just don't care that the topology doesn't support up to maxcpus in other.

So I guess we need a decent fallback if it doesn't match.  Something
like (based also on the reply from Eduardo):

1) always warn if max_cpus % (cores*threads) != 0 || smp_cpus %
(cores*threads) != 0

2) if sockets*cpus*threads < max_cpus, adjust sockets to
DIV_ROUND_UP(max_cpus, cores*threads).  If we didn't warn in step 1, do
it now.  Give a different, less harsh warning if the cmdline
sockets*cpus*threads did match smp_cpus.  In the latter case, the user
_almost_ knows what he was doing.

Not perfect, but it could be something to start from.  Adjusting sockets
is better than adjusting threads.

Paolo

> I'm not sure how best to go about modifying the command line semantics
> in a backwards compatible way, other than to just create a new "-smp"
> option. I'm open to all opinions and suggestions.

Reply via email to