[libvirt] [resend v2 0/7] Support cache tune in libvirt

Marcelo Tosatti mtosatti at redhat.com
Mon Feb 6 19:03:34 UTC 2017


On Mon, Feb 06, 2017 at 01:33:09PM -0200, Marcelo Tosatti wrote:
> On Mon, Feb 06, 2017 at 10:23:35AM +0800, Eli Qiao wrote:
> > This series patches are for supportting CAT featues, which also
> > called cache tune in libvirt.
> > 
> > First to expose cache information which could be tuned in capabilites XML.
> > Then add new domain xml element support to add cacahe bank which will apply
> > on this libvirt domain.
> > 
> > This series patches add a util file `resctrl.c/h`, an interface to talk with
> > linux kernel's sys fs.
> > 
> > There are still some TODOs such as expose new public interface to get free
> > cache information.
> > 
> > Some discussion about this feature support can be found from:
> > https://www.redhat.com/archives/libvir-list/2017-January/msg00644.html
> 
> Two comments:
> 
> 1) Please perform appropriate filesystem locking when accessing
> resctrlfs, as described at:
> 
> http://www.spinics.net/lists/linux-tip-commits/msg36754.html
> 
> 2) 
> 
>     <cachetune id='10' host_id='1' type='l3' size='3072' unit='KiB'/>
> 
> [b4c270b5-e0f9-4106-a446-69032872ed7d]# cat tasks  
> 8654
> [b4c270b5-e0f9-4106-a446-69032872ed7d]# pstree -p | grep qemu
>            |-qemu-kvm(8654)-+-{qemu-kvm}(8688)
>            |                |-{qemu-kvm}(8692)
>            |                `-{qemu-kvm}(8693)
> 
> Should add individual vcpus to the "tasks" file, not the main QEMU
> process.
> 
> The NFV usecase requires exclusive CAT allocation for the vcpu which
> runs the sensitive workload.
> 
> Perhaps:
> 
>     <cachetune id='10' host_id='1' type='l3' size='3072' unit='KiB'/> 
> 
> Adds all vcpus that are pinned to the socket which cachebank with
> host_id=1.
> 
>     <cachetune id='10' host_id='1' type='l3' size='3072' unit='KiB' vcpus=2,3/> 
> 
> Adds PID of vcpus 2 and 3 to resctrl directory created for this
> allocation.

3) CDP / non-CDP convertion.

In case the size determination has been performed with non-CDP,
to emulate such allocation on a CDP host,
it would be good to allow both code and data allocations to share
the CBM space: 


     <cachetune id='10' host_id='1' type='l3data' size='3072' unit='KiB'/>
     <cachetune id='10' host_id='1' type='l3code' size='3072' unit='KiB'/>

Perhaps if using the same ID? 

Other than that, testing looks good.




More information about the libvir-list mailing list