[libvirt] [PATCH resend V10 01/12] Resctrl: Add some utils functions

Eli Qiao qiaoliyong at gmail.com
Thu Mar 16 07:49:19 UTC 2017



--  
Best regards  
Eli

天涯无处不重逢
a leaf duckweed belongs to the sea, where not to meet in life  

Sent with Sparrow (http://www.sparrowmailapp.com/?sig)


On Wednesday, 15 March 2017 at 8:20 PM, Martin Kletzander wrote:

> On Mon, Mar 06, 2017 at 06:06:30PM +0800, Eli Qiao wrote:
> > This patch adds some utils struct and functions to expose resctrl
> > information.
> >  
> > virResCtrlAvailable: if resctrl interface exist on host.
> > virResCtrlGet: get specific type resource control information.
> > virResCtrlInit: initialize resctrl struct from the host's sys fs.
> > resctrlall[]: an array to maintain resource control information.
> >  
> > Some of host cpu related information methods was added in virhostcpu.c
> >  
> > Signed-off-by: Eli Qiao <liyong.qiao at intel.com (mailto:liyong.qiao at intel.com)>
> > ---
> > include/libvirt/virterror.h | 1 +
> > po/POTFILES.in (http://POTFILES.in) | 1 +
> > src/Makefile.am (http://Makefile.am) | 1 +
> > src/libvirt_private.syms | 4 +
> > src/util/virerror.c | 1 +
> > src/util/virhostcpu.c | 186 ++++++++++++++++++++++++++++++++++++----
> > src/util/virhostcpu.h | 6 ++
> > src/util/virresctrl.c | 201 ++++++++++++++++++++++++++++++++++++++++++++
> > src/util/virresctrl.h | 78 +++++++++++++++++
> > 9 files changed, 462 insertions(+), 17 deletions(-)
> > create mode 100644 src/util/virresctrl.c
> > create mode 100644 src/util/virresctrl.h
> >  
> > diff --git a/src/util/virerror.c b/src/util/virerror.c
> > index ef17fb5..0ba15e6 100644
> > --- a/src/util/virerror.c
> > +++ b/src/util/virerror.c
> > @@ -139,6 +139,7 @@ VIR_ENUM_IMPL(virErrorDomain, VIR_ERR_DOMAIN_LAST,
> >  
> > "Perf", /* 65 */
> > "Libssh transport layer",
> > + "Resouce Control",
> >  
>  
>  
> s/resouce/resource/
>  
> > diff --git a/src/util/virresctrl.c b/src/util/virresctrl.c
> > new file mode 100644
> > index 0000000..44a47cc
> > --- /dev/null
> > +++ b/src/util/virresctrl.c
> > @@ -0,0 +1,201 @@
> >  
>  
>  
> [...]
>  
> > +
> > +static unsigned int host_id;
> > +
> > +static virResCtrl resctrlall[] = {
> > + {
> > + .name = "L3",
> > + .cache_level = "l3",
> > + },
> > + {
> > + .name = "L3DATA",
> > + .cache_level = "l3",
> > + },
> > + {
> > + .name = "L3CODE",
> > + .cache_level = "l3",
> > + },
> > + {
> > + .name = "L2",
> > + .cache_level = "l2",
> > + },
> > +};
> > +
> >  
>  
>  
> You are using global variables, still. But I *still* see no locking.
> What if yet another driver (not just QEMU) will want to use resctrl?
> Bunch of these accesses can happen at the same time and break
> everything. How much of this information do we really need to keep (and
> not reload)?
>  
Yes, we need to maintain a global one as /sys/fs/resctrl is a global one.

most of these information are in-mutble and don’t need to reload.
  
>  
> For example host_id can screw up a lot of things. I might be discussing
> in the latter patches as well.
>  
>  

yep. I see them.  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170316/eb6f73ae/attachment-0001.htm>


More information about the libvir-list mailing list