[libvirt] [PATCH 3/7] virDomainActualNetDefContentsFormat: Format class_id more frequently

Laine Stump laine at laine.org
Mon Apr 20 21:29:20 UTC 2015


On 04/16/2015 01:00 PM, Laine Stump wrote:
> On 04/14/2015 12:59 PM, Michal Privoznik wrote:
>> After a360912179 the formatting of virDomainActualNetDefPtr was
>> changed a bit. However, during the function rewrite, iface's class_id
>> is not formatted as frequently as it could be. In fact, after rewrite
>> it's formatted only for iface of type VIR_DOMAIN_NET_TYPE_DIRECT where
>> it makes no sense and is unused. While where needed (_TYPE_NETWORK) is
>> not formatted at all. 
> Yikes! That was a typo when moving the code around. Should have been
> VIR_DOMAIN_NET_TYPE_NETWORK (that bit was inside "case
> VIR_DOMAIN_NET_TYPE_NETWORK previous to the patch)
>
>> This makes the daemon forget it upon daemon
>> restart resulting in bad behaviour.
>>
>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>> ---
>>  src/conf/domain_conf.c | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
>> index 4d7e3c9..ab4f2bf 100644
>> --- a/src/conf/domain_conf.c
>> +++ b/src/conf/domain_conf.c
>> @@ -18608,8 +18608,7 @@ virDomainActualNetDefContentsFormat(virBufferPtr buf,
>>  
>>          virBufferAddLit(buf, "/>\n");
>>      }
>> -    if (actualType == VIR_DOMAIN_NET_TYPE_DIRECT &&
>> -        def->data.network.actual && def->data.network.actual->class_id) {
>> +    if (def->data.network.actual && def->data.network.actual->class_id) {
>>          virBufferAsprintf(buf, "<class id='%u'/>\n",
>>                            def->data.network.actual->class_id);
>>      }
> I suppose since the modes that wouldn't have been able to setup any
> bandwidth limiting would have class_id == 0, this works. If you for some
> reason wanted to protect against using it for hostdev interfaces, yoou
> could move it up into the preceding else clause, but I guess I don't see
> any gain from that.

An interesting aside note - just a few days ago I noticed that at
most/all SRIOV cards have support for setting a bandwidth maximum on
each VF (and at least a couple support setting a minimum). Of course in
this case tc wouldn't be used, so no class_id would be needed (in other
words, it's not directly relevant to this patch), I just thought it was
interesting - a nice simple project for someone with a few spare cycles
and access to the proper SRIOV hardware for testing.




More information about the libvir-list mailing list