[libvirt] [V3] RFC for support cache tune in libvirt
乔立勇(Eli Qiao)
qiaoliyong at gmail.com
Thu Jan 12 03:17:52 UTC 2017
>
>
> > which shows each socket has its own dedicated L3 cache, and each
> > core has its own L2 & L1 cache.
>
> We need to also include the host cache ID value in the XML to
> let us reliably distinguish / associate with differet cache
> banks when placing guests, if there's multiple caches of the
> same type associated with the same CPU.
>
> <cache>
> <bank id="0" type="l3" size="56320" units="KiB" cpus="0,2,3,6,7,8"/>
> <bank id="1" type="l3" size="56320" units="KiB" cpus="0,2,3,6,7,8"/>
> <bank id="2" type="l3" size="56320" units="KiB"
> cpus="3,4,5,9,10,11"/>
> <bank id="3" type="l3" size="56320" units="KiB"
> cpus="3,4,5,9,10,11"/>
> <bank id="4" type="l2" size="256" units="KiB" cpus="0"/>
> ....
> </cache>
>
>
>
> > > 3. Add new virsh command 'nodecachestats':
> > > This API is to expose vary cache resouce left on each hardware (cpu
> socket).
> > >
> > > It will be formated as:
> > >
> > > <resource_type>.<resource_id>: left size KiB
> > >
> > > for example I have a 2 socket cpus host, and I'v enabled cat_l3
> feature only
> > >
> > > root at s2600wt:~/linux# virsh nodecachestats
> > > L3.0 : 56320 KiB
> > > L3.1 : 56320 KiB
> > >
> > > P.S. resource_type can be L3, L3DATA, L3CODE, L2 for now.
> >
> > This feels like something we should have in the capabilities XML too
> > rather than a new command
> >
> > <cache>
> > <bank type="l3" size="56320" units="KiB" cpus="0,2,3,6,7,8">
> > <control unit="KiB" min="2816" avail="56320/>
> > </bank>
> > <bank type="l3" size="56320" units="KiB" cpus="3,4,5,9,10,11">
> > <control unit="KiB" min="2816" avail="56320"/>
> > </bank>
> > </cache>
>
> Opps, ignore this. I remember the reason we always report available
> resource separately from physically present resource, is that we
> don't want to re-generate capabilities XML every time available
> resource changes.
>
> So, yes, we do need some API like virNodeFreeCache() / virs nodefreecache
>
yes, we need this.
> We probably want to use an 2d array of typed parameters. The first level of
> the array would represent the cache bank, the second level woudl represent
> the parameters for that bank. eg if we had 3 cache banks, we'd report a
> 3x3 typed parameter array, with parameters for the cache ID, its type and
> the available / free size
>
> id=0
> type=l3
> avail=56320
>
> id=1
> type=l3
> avail=56320
>
> id=2
> type=l3
> avail=56320
>
> Regards,
> Daniel
> --
> |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/
> :|
> |: http://libvirt.org -o- http://virt-manager.org
> :|
> |: http://entangle-photo.org -o- http://search.cpan.org/~danberr/
> :|
>
--
Best regards
- Eli
天涯无处不重逢
a leaf duckweed belongs to the sea , where not to meet in life
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170112/660e01f8/attachment-0001.htm>
More information about the libvir-list
mailing list