[libvirt] [PATCH v5 2/4] event: introduce new event for tunable values
Pavel Hrdina
phrdina at redhat.com
Wed Sep 24 07:34:39 UTC 2014
On 09/23/2014 11:50 PM, Eric Blake wrote:
> On 09/23/2014 03:26 PM, Pavel Hrdina wrote:
>
>>>> +
>>>> + VIR_DEBUG("Relaying domain tunable event %s %d, callback %d",
>>>> + dom->name, dom->id, callback->callbackID);
>>>> +
>>>
>>> Might also be nice to log "%p %n", params, nparams
>>
>> Yes, that would be probably nice, but since I've pushed this patch
>> already I can create a following patch with this small update?
>>
>
> Yes, a followup is fine.
>
>>>
>>>
>>>> +++ b/src/remote/remote_protocol.x
>>>> @@ -247,6 +247,9 @@ const REMOTE_NETWORK_DHCP_LEASES_MAX = 65536;
>>>> /* Upper limit on count of parameters returned via bulk stats API */
>>>> const REMOTE_CONNECT_GET_ALL_DOMAIN_STATS_MAX = 4096;
>>>>
>>>> +/* Upper limit of message size for tunable event. */
>>>> +const REMOTE_DOMAIN_EVENT_TUNABLE_MAX = 8388608;
>>>
>>> That feels excessive...
>>>
>>>> +
>>>> /* UUID. VIR_UUID_BUFLEN definition comes from libvirt.h */
>>>> typedef opaque remote_uuid[VIR_UUID_BUFLEN];
>>>>
>>>> @@ -2990,6 +2993,12 @@ struct remote_domain_event_block_job_2_msg {
>>>> int status;
>>>> };
>>>>
>>>> +struct remote_domain_event_callback_tunable_msg {
>>>> + int callbackID;
>>>> + remote_nonnull_domain dom;
>>>> + remote_typed_param params<REMOTE_DOMAIN_EVENT_TUNABLE_MAX>;
>>>
>>> ...each param in the array will occupy multiple bytes. I think that
>>> something as low as 2048 for REMOTE_DOMAIN_EVENT_TUNABLE_MAX is still
>>> plenty (we don't have that many tunables yet); even if each tunable
>>> requires 64 bytes to transmit (mostly in the name of the parameter, but
>>> also in the type and value), that's still well under a megabyte limit of
>>> information passed on an instance of the event.
>>>
>>
>> Well, yes and no :). Let's say, that we will add in the future (and I'm
>> planning to do it) blkiotune where you can update at the same time all
>> of the tunables for all host's disks where all params for now will be
>> only VIR_TYPED_PARAM_STRING and that could consume a lot of memory. I
>> know that it will probably never be that much, but I wanted to be sure
>> that we will have enough space for all possible tunable events.
>
> Still, are you going to return 8 million separate strings? Or just 8
> million bytes but still contained within 2000 strings? Seriously, I
> think 2048 is a perfectly LARGE limit - there are not THAT many tunables
> per domain. The params<LIMIT> is not the overall size of the command,
> but the number of parameters (each of which can be quite large if they
> are type string)
>
Sigh, I should not work that late, because I've misunderstood the
meaning of the "LIMIT". I'll post a new value with patch for the
debug message.
Thanks, Pavel
More information about the libvir-list
mailing list