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(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list