[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 0/8] enable Cache QoS Monitoring (CQM) feature



> -----Original Message-----
> From: Andrew Cooper [mailto:andrew.cooper3@xxxxxxxxxx]
> Sent: Thursday, November 21, 2013 10:37 PM
> To: Xu, Dongxiao
> Cc: xen-devel@xxxxxxxxxxxxx
> Subject: Re: [Xen-devel] [PATCH v2 0/8] enable Cache QoS Monitoring (CQM)
> feature
> 
> On 21/11/13 07:20, dongxiao.xu@xxxxxxxxx wrote:
> > From: Dongxiao Xu <dongxiao.xu@xxxxxxxxx>
> 
> You will need to CC the relevant maintainers.  This would be Jan and
> Keir for the Hypervisor changes, and IanC, IanJ and Stefano for the
> tools changes.

OK, will CC maintainers.

> 
> I would also suggest that you group the tools changes together at the
> end of the series rather than having them interspersed.

OK, will merge the tool side changes.

Thanks,
Dongxiao

> 
> ~Andrew
> 
> >
> > Changes from v1:
> >  - Address comments from Andrew Cooper, including:
> >    * Change function names, e.g., alloc_cqm_rmid(), system_supports_cqm(),
> etc.
> >    * Change some structure element order to save packing cost.
> >    * Correct some function's return value.
> >    * Some programming styles change.
> >    * ...
> >
> > Future generations of Intel Xeon processor may offer monitoring capability 
> > in
> > each logical processor to measure specific quality-of-service metric,
> > for example, the Cache QoS Monitoring to get L3 cache occupancy.
> > Detailed information please refer to Intel SDM chapter 17.14.
> >
> > Cache QoS Monitoring provides a layer of abstraction between applications 
> > and
> > logical processors through the use of Resource Monitoring IDs (RMIDs).
> > In Xen design, each guest in the system can be assigned an RMID
> independently,
> > while RMID=0 is reserved for monitoring domains that doesn't enable CQM
> service.
> > When any of the domain's vcpu is scheduled on a logical processor, the
> domain's
> > RMID will be activated by programming the value into one specific MSR, and
> when
> > the vcpu is scheduled out, a RMID=0 will be programmed into that MSR.
> > The Cache QoS Hardware tracks cache utilization of memory accesses according
> to
> > the RMIDs and reports monitored data via a counter register. With this 
> > solution,
> > we can get the knowledge how much L3 cache is used by a certain guest.
> >
> > To attach CQM service to a certain guest, two approaches are provided:
> > 1) Create the guest with "pqos_cqm=1" set in configuration file.
> > 2) Use "xl pqos-attach cqm domid" for a running guest.
> >
> > To detached CQM service from a guest, users can:
> > 1) Use "xl pqos-detach cqm domid" for a running guest.
> > 2) Also destroying a guest will detach the CQM service.
> >
> > To get the L3 cache usage, users can use the command of:
> > $ xl pqos-list cqm (domid)
> >
> > The below data is just an example showing how the CQM related data is
> exposed to
> > end user.
> >
> > [root@localhost]# xl pqos-list cqm
> > RMID count    56        RMID available    53
> > Name               ID  SocketID        L3C_Usage       SocketID
> L3C_Usage
> > Domain-0            0         0         20127744              1
> 25231360
> > ExampleHVMDomain    1         0          3211264              1
> 10551296
> >
> > Dongxiao Xu (8):
> >   x86: detect and initialize Cache QoS Monitoring feature
> >   x86: handle CQM resource when creating/destroying guests
> >   tools: handle CQM resource when creating/destroying guests
> >   x86: dynamically attach/detach CQM service for a guest
> >   tools: dynamically attach/detach CQM service for a guest
> >   x86: get per domain CQM information
> >   tools: get per domain CQM information
> >   x86: enable CQM monitoring for each domain RMID
> >
> >  tools/libxc/xc_domain.c          |   51 +++++++++
> >  tools/libxc/xenctrl.h            |   14 +++
> >  tools/libxl/Makefile             |    3 +-
> >  tools/libxl/libxl.h              |    8 ++
> >  tools/libxl/libxl_create.c       |    3 +
> >  tools/libxl/libxl_pqos.c         |  102 +++++++++++++++++
> >  tools/libxl/libxl_types.idl      |    1 +
> >  tools/libxl/xl.h                 |    3 +
> >  tools/libxl/xl_cmdimpl.c         |  129 ++++++++++++++++++++++
> >  tools/libxl/xl_cmdtable.c        |   15 +++
> >  xen/arch/x86/Makefile            |    1 +
> >  xen/arch/x86/cpu/intel.c         |    6 +
> >  xen/arch/x86/domain.c            |   14 +++
> >  xen/arch/x86/domctl.c            |   40 +++++++
> >  xen/arch/x86/pqos.c              |  224
> ++++++++++++++++++++++++++++++++++++++
> >  xen/arch/x86/setup.c             |    3 +
> >  xen/arch/x86/sysctl.c            |   64 +++++++++++
> >  xen/common/domctl.c              |    5 +-
> >  xen/include/asm-x86/cpufeature.h |    1 +
> >  xen/include/asm-x86/domain.h     |    2 +
> >  xen/include/asm-x86/msr-index.h  |    5 +
> >  xen/include/asm-x86/pqos.h       |   56 ++++++++++
> >  xen/include/public/domctl.h      |   31 ++++++
> >  xen/include/public/sysctl.h      |   15 +++
> >  xen/include/xen/sched.h          |    3 +
> >  25 files changed, 797 insertions(+), 2 deletions(-)
> >  create mode 100644 tools/libxl/libxl_pqos.c
> >  create mode 100644 xen/arch/x86/pqos.c
> >  create mode 100644 xen/include/asm-x86/pqos.h
> >


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.