ping
On 2012年11月22日 11:14, Osier Yang wrote:
> It makes no sense to fail the whole command if there is parameter
> unsupported by the kernel. This patch fixes it by ignoring the
> unsupported parameter for getMemoryParameters, and ignoring the
> unsupported parameter for setMemoryParameters too if there are
> more than one parameters to set, otherwise error out.
I'm not sure I agree with these semantics.
> *
> - * Get all node memory parameters. On input, @nparams gives the
> size
> - * of the @params array; on output, @nparams gives how many slots
> were
> - * filled with parameter information, which might be less but will
> - * not exceed the input value.
> + * Get all node memory parameters (parameter unsupported by OS
> will be
> + * ignored). On input, @nparams gives the size of the @params
s/ignored/omitted/
But is this really right, or shouldn't we at least be able to
fake things? If the OS doesn't support tuning a variable, then
we should return a hard-coded value for the default setting
of that variable (in relation to newer kernels that DO support
tuning), rather than omitting it altogether.
> array;
> + * on output, @nparams gives how many slots were filled with
> parameter
> + * information, which might be less but will not exceed the input
> value.
> *
> * As a special case, calling with @params as NULL and @nparams
> as 0 on
> * input will cause @nparams on output to contain the number of
> parameters
> @@ -6811,7 +6811,9 @@ error:
> * value nparams of virDomainGetSchedulerType)
> * @flags: extra flags; not used yet, so callers should always
> pass 0
> *
> - * Change all or a subset of the node memory tunables.
> + * Change all or a subset of the node memory tunables. Tunable
> + * unsupported by OS wll be ignored if @nparams is not 1,
w/wll/will/
I disagree. I think we should continue to error out on unrecognized
tunables; furthermore, we should error out up front (if the user
passes an array of 3 elements, where only the 2nd element is
unsupported, then we should NOT modify the first element; that is,
we should verify that all the elements are settable before making
any modification). It is a disservice to the user to ignore their
request for a change.
And if you go with my approach that getting parameters should
return a hard-coded value rather than omitting unsupported
tunables, then the user should be allowed to pass the default
value of that tunable; the only thing they cannot do is
pass a non-default value.