[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v1 1/4] xen: add hypercall for getting parameters at runtime


  • To: Jan Beulich <JBeulich@xxxxxxxx>, Vasilis Liaskovitis <vliaskovitis@xxxxxxxx>
  • From: Juergen Gross <jgross@xxxxxxxx>
  • Date: Tue, 19 Mar 2019 07:07:56 +0100
  • Autocrypt: addr=jgross@xxxxxxxx; prefer-encrypt=mutual; keydata= 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
  • Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wei.liu2@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>, xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Daniel de Graaf <dgdegra@xxxxxxxxxxxxx>
  • Delivery-date: Tue, 19 Mar 2019 06:08:20 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
  • Openpgp: preference=signencrypt

On 18/03/2019 18:01, Jan Beulich wrote:
>>>> On 18.03.19 at 16:44, <vliaskovitis@xxxxxxxx> wrote:
>> On Mon, 2019-03-18 at 15:02 +0100, Jan Beulich wrote:
>>>>> I'm also
>>>>> unconvinced this is appropriate if the value is actually
>>>>> a signed quantity.
>>>>
>>>> isn't OPT_UINT only for unsigned integers?
>>>
>>> You'll notice that there's no OPT_INT or OPT_SINT. OPT_UINT
>>> may be slightly misleading as a name. Otoh we probably don't
>>> have very many signed integer options.
>>
>> I see. Assuming an unsigned parameter is problematic then.
>>
>> Doesn't the .data.param section (between __param_start and __param_end)
>> only include runtime parameters, of which the integer ones are all
>> unsigned integers at the moment? Or would you like to see this
>> functionality eventually used for all parameters, including non-runtime 
>> as well?
> 
> Well, at the very least I expect restrictions to be called out very
> clearly in the commit message. There not being any problematic
> runtime parameters right now doesn't mean some might not
> appear. And whether the problem would then be noticed is at
> least unpredictable. IOW not dealing with the case right away
> introduces a latent bug, and this shouldn't go unmentioned.
> 
>>>> with the new get_func prototype being:
>>>>
>>>>             const char *(*get_func)(void);
>>>>
>>>> returning a string with the current value of the parameter.
>>>
>>> And where would the storage live for the string?
>>
>> I was thinking these custom functions would return static strings, as
>> loglvl_str() does, and these would eventually be copied into the user
>> provided values[] buffer via snprintf in get_params().
> 
> Please don't limit your thinking to the few runtime parameters we
> currently have. At least to me it is quite obvious that there can
> easily be cases where static strings won't work.
> 
>>>> e.g. the function for loglvl, guest_loglvl could return output
>>>> using
>>>> loglvl_str() :  "Nothing", "Errors", "Errors and warnings" etc.
>>>>
>>>> An alternative prototype could be:
>>>>
>>>>             int (*get_func)(char *output);
>>>>
>>>> if we want the function to write the current parameter value into a
>>>> caller-provided buffer, and possibly return error codes.
>>>
>>> And how would the callee know how much space there is?
>>
>> yes, an extra size argument would be needed from the caller here.
>>
>> Let me know if either of these or a different approach is preferred.
> 
> Of the two, I clearly prefer the latter. Then again me having pointed
> out the shortcoming doesn't mean we (and hence you for this patch)
> absolutely have to deal with custom parameters. Input from others
> would certainly be helpful here.

Why don't we replace the "*get_func()" with a "char *current_val" being
filled at parameter setting time? How current_val is allocated (static
string or dynamic buffer) just has to be known by the custom parameter
parsing function.

Juergen

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.