[libvirt] OpenStack/libvirt CAT interface

乔立勇(Eli Qiao) qiaoliyong at gmail.com
Thu Jan 12 02:15:54 UTC 2017


>
>
> > >
> > > This translates to the following resctrltool-style reservations:
> > >
> > >         res.vm-a.vcpu-2
> > >
> > >                 type=both,size=VM-A-RESSIZE,cache-id=0
> > >
> > >         res.vm-b.vcpu-2
> > >
> > >                 type=both,size=VM-B-RESSIZE,cache-id=0
> > >
> > > Which translate to the following in resctrlfs:
> > >
> > >         res.vm-a.vcpu-2
> > >
> > >                 type=both,size=VM-A-RESSIZE,cache-id=0
> > >                 type=both,size=default-size,cache-id=1
> > >                 ...
> > >
> > >         res.vm-b.vcpu-2
> > >
> > >                 type=both,size=VM-B-RESSIZE,cache-id=0
> > >                 type=both,size=default-size,cache-id=1
> > >                 ...
> > >
>

if we specified cache-id while specify size without thinking the already
existed vcpu->pcpu affinity, cache allocation will be useless.

a VM is pinged to socket 1 (which cache_id should be 1) but while specify
cache resource , user specify the cache-id=0. since  the vm won't be
scheduled to socket 0, the cache allocated on socket 0 (cache_id=0) will
not be used.

I suggest to let libvirt detect if the cache-id.



> > > Which is what we want, since the VCPUs are pinned.
> > >
> > >
> > > res.vm-a.vcpu-1 and res.vm-b.vcpu-1 don't need to
> > > be assigned to any reservation, which means they'll
> > > remain on the default group.
> >
> > You've showing type=both here which IIUC, means data
> > and instruction cache.
>
> No, type=both is non-cdp hosts (data and instructions
> reservations shared).
>
> type=data,type=code is for cdp hosts (data and instructions
> reservations separate).
>
> > Is that configuring one cache
> > that serves both purposes ?
>
> Yes.
>
> > Do we need to be able
> > to configure them independantly.
>
> Yes.
>
> > > RESTRICTIONS TO THE SYNTAX ABOVE
> > > ================================
> > >
> > > Rules for the parameters:
> > > * type=code must be paired with type=data entry.
> >
> > What does this mean exactly when configuring guests ? Do
> > we have to configure data + instruction cache on the same
> > cache ID, do they have to be the same size, or are they
> > completely independant ?
>
> This means that a user can't specify this reservation:
>
>         type=data,size=10mb,cache-id=1
>
> They have to specify _both_ code and data
> sizes:
>
>         type=data,size=10mb,cache-id=1;
>         type=code,size=2mb,cache-id=1
>
> Now a single both reservation is valid:
>
>         type=both,size=10mb,cache-id=1
>


> > > ABOUT THE LIST INTERFACE
> > > ========================
> > >
> > > About an interface for listing the reservations
> > > of the system to OpenStack.
> > >
> > > I think that what OpenStack needs is to check, before
> > > starting a guest on a given host, that there is sufficient
> > > space available for the reservation.
> > >
> > > To do that, it can:
> > >
> > >         1) resctrltool list (the end of the output mentions
> > >            how much free space available there is), or
> > >            via resctrlfs directly (have to lock the filesystem,
> > >            read each directory, AND each schemata, and count
> > >            number of zero bits).
> > >         2) Via libvirt
> > >
> > > Should fix resctrltool/API to list amount of contiguous free space
> >
> > OpenStack, should just use libvirt APIs exclusively - there should not
> > be any need for it to use other tools if we've designed the libvirt API
> > correctly.
>
> Got it.
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
>



-- 
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/90180e5a/attachment-0001.htm>


More information about the libvir-list mailing list