[libvirt] [RFC PATCH 0/2] Introduce RDT memory bandwidth allocation support

bing.niu bing.niu at intel.com
Wed Jun 6 07:46:37 UTC 2018


Hi Pavel,

On 2018年06月06日 13:56, bing.niu wrote:

>>
>> Then there is the domain XML, for CAT we use this:
>>
>> <domain>
>>    ...
>>    <cputune>
>>      ...
>>      <cachetune vcpus='0-3'>
>>        <cache id='0' level='3' type='both' size='3' unit='MiB'/>
>>        <cache id='1' level='3' type='both' size='3' unit='MiB'/>
>>      </cachetune>
>>      ...
>>    <cputune>
>>    ...
>> </domain>
>>
>> so the possible domain XML could look like this:
>>
>> <domain>
>>    ...
>>    <cputune>
>>      ...
>>      <memory vcpus='0-3'>
>>        <socket id='0' bandwidth='30'/>
>>        <socket id='1' bandwidth='20'/>
>>      </memory>
>>      ...
>>    <cputune>
>>    ...
>> </domain>
>>
>> Again, the element names 'memory' and 'socket' can be named differently.
> socket --> node?
> 
> Since the existing virrestrl implementation only care about cache part 
> during development, So we may need change some names of structure and 
> functions when enable MBA. How do you think
>>
>> Pavel
>>
> 
Is that possible to support MBA by extending CAT in domain XML? Since 
each <cachetune> will map to one virresctrlalloc structure and create a 
rdt_group in resctrl fs. Each rdt_group will have it's own closid. this 
work perfect if CAT only available. However, if MBA coming in with CAT 
enabled also, ike this.

<domain>
     ...
     <cputune>
       ...
       <cachetune vcpus='0-3'>
         <cache id='0' level='3' type='both' size='3' unit='MiB'/>
         <cache id='1' level='3' type='both' size='3' unit='MiB'/>
       </cachetune>
      <memory vcpus='2-3'>
        <socket id='0' bandwidth='30'/>
        <socket id='1' bandwidth='20'/>
      </memory>
       ...
     <cputune>
     ...
</domain>

we have to make sure those two allocating will not have vcpu overlapped.
like this,

if (virBitmapOverlaps(def->cachetunes[i]->vcpus, vcpus)
|| virBitmapOverlaps(def->memroy->vcpus, vcpus)) {
              virReportError(VIR_ERR_XML_ERROR, "%s",
                             _("Overlapping vcpus in cachetunes"));
              goto cleanup;
that looks like introducing some dependency between CAT and MBA.
Is that possible we rename cachetune so that handle CAT MBA together one 
section?

Thanks a lot
Bing


> -- 
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list