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

[Xen-devel] [PATCH v4 12/12] docs: add xl-psr.markdown



Add document to introduce basic concepts and terms in PSR family
techonologies and the xl/libxl interfaces.

Signed-off-by: Chao Peng <chao.p.peng@xxxxxxxxxxxxxxx>
---
 docs/man/xl.pod.1         |   7 +++
 docs/misc/xl-psr.markdown | 111 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 118 insertions(+)
 create mode 100644 docs/misc/xl-psr.markdown

diff --git a/docs/man/xl.pod.1 b/docs/man/xl.pod.1
index dfab921..b71d6e6 100644
--- a/docs/man/xl.pod.1
+++ b/docs/man/xl.pod.1
@@ -1472,6 +1472,9 @@ occupancy monitoring share the same set of underlying 
monitoring service. Once
 a domain is attached to the monitoring service, monitoring data can be showed
 for any of these monitoring types.
 
+See L<http://xenbits.xen.org/docs/unstable/misc/xl-psr.html> for more
+informations.
+
 =over 4
 
 =item B<psr-cmt-attach> [I<domain-id>]
@@ -1501,6 +1504,9 @@ applications. In Xen implementation, CAT is used to 
control cache allocation
 on VM basis. To enforce cache on a specific domain, just set capacity bitmasks
 (CBM) for the domain.
 
+See L<http://xenbits.xen.org/docs/unstable/misc/xl-psr.html> for more
+informations.
+
 =over 4
 
 =item B<psr-cat-cbm-set> [I<OPTIONS>] [I<domain-id>] [I<cbm>]
@@ -1546,6 +1552,7 @@ And the following documents on the xen.org website:
 L<http://xenbits.xen.org/docs/unstable/misc/xl-network-configuration.html>
 L<http://xenbits.xen.org/docs/unstable/misc/xl-disk-configuration.txt>
 L<http://xenbits.xen.org/docs/unstable/misc/xsm-flask.txt>
+L<http://xenbits.xen.org/docs/unstable/misc/xl-psr.html>
 
 For systems that don't automatically bring CPU online:
 
diff --git a/docs/misc/xl-psr.markdown b/docs/misc/xl-psr.markdown
new file mode 100644
index 0000000..44f6f8c
--- /dev/null
+++ b/docs/misc/xl-psr.markdown
@@ -0,0 +1,111 @@
+# Intel Platform Shared Resource Monitoring/Control in xl/libxl
+
+This document introduces Intel Platform Shared Resource Monitoring/Control
+technologies, their basic concepts and the xl/libxl interfaces.
+
+## Cache Monitoring Technology (CMT)
+
+Cache Monitoring Technology (CMT) is a new feature available on Intel Haswell
+and later server platforms that allows an OS or Hypervisor/VMM to determine
+the usage of cache(currently only L3 cache supported) by applications running
+on the platform. A Resource Monitoring ID (RMID) is the abstraction of the
+application(s) that will be monitored for its cache usage. The CMT hardware
+tracks cache utilization of memory accesses according to the RMID and reports
+monitored data via a counter register.
+
+Detailed information please refer to Intel SDM chapter 17.14.
+
+In Xen's implementation, each domain in the system can be assigned a RMID
+independently, while RMID=0 is reserved for monitoring domains that doesn't
+enable CMT service. RMID is opaque for xl/libxl and is only used in
+hypervisor.
+
+### xl interfaces
+
+A domain is assigned a RMID implicitly by attaching it to CMT service:
+
+xl psr-cmt-attach domid
+
+After that, cache usage for the domain can be showed by:
+
+xl psr-cmt-show cache_occupancy <domid>
+
+Once monitoring is not needed any more, the domain can be detached from the
+CMT service by:
+
+xl psr-cmt-detach domid
+
+The attaching may fail because of no free RMID available. In such case
+unused RMID(s) can be freed by detaching corresponding domains from CMT
+services. Maximum COS number in the system can also be obtained by:
+
+xl psr_cmt-show
+
+## Memory Bandwidth Monitoring (MBM)
+
+Memory Bandwidth Monitoring(MBM) is a new hardware feature available on Intel
+Broadwell and later server platforms which builds on the CMT infrastructure to
+allow monitoring of system memory bandwidth. It introduces two new monitoring
+event type to monitor system total/local memory bandwidth. The same RMID can
+be used to monitor both cache usage and memory bandwidth at the same time.
+
+Detailed information please refer to Intel SDM chapter 17.14.
+
+In Xen's implementation, MBM shares the same set of underlying monitoring
+service with CMT and can be used to monitor memory bandwidth on domain basis.
+
+The xl/libxl interface is the same with that of CMT. The difference is the
+monitor type is corresponding memory monitoring type(local_mem_bandwidth/
+total_mem_bandwidth) but not cache_occupancy.
+
+## Cache Allocation Technology (CAT)
+
+Cache Allocation Technology (CAT) is a new feature available on Intel
+Broadwell and later server platforms that allows an OS or Hypervisor/VMM to
+partition cache allocation(i.e. L3 cache) based on application priority or
+Class of Service(COS). Each COS is configured using capacity bitmasks (CBM)
+which represent cache capacity and indicate the degree of overlap and
+isolation between classes. System cache resource is divided into numbers of
+minimum portions which is then made up into subset for cache partition. Each
+portion corresponds to a bit in CBM and the set bit represents the
+corresponding cache portion is available.
+
+Detailed information please refer to Intel SDM chapter 17.15.
+
+In Xen's implementation, CBM can be set/get with libxl/xl interfaces but COS
+is maintained in hypervisor only. The cache partition granularity is per
+domain, each domain has COS=0 assigned by default, the corresponding CBM is
+all-ones, which means all the cache resource can be used by default.
+
+### xl interfaces
+
+The simplest way to change a domain's CBM from its default is running:
+
+xl psr-cat-cbm-set  [OPTIONS] <domid> <cbm>
+
+where cbm is a decimal/hexadecimal number to represent the corresponding cache
+subset can be used.
+
+A cbm is valid only when:
+
+ * Set bits only exist in the range of [0, cbm_len), where cbm_len can be
+   obtained with 'xl psr-cat-show'.
+ * All the set bits is contiguous.
+ * Is not the same with the current cbm of the domain.
+
+In multi-sockets system, the same cbm will be set to each socket by default.
+Per socket cbm can be specified with '--socket SOCKET' option.
+
+The cbm may be not set successfully because of no enough COS available. In such
+case unused COS(es) may be freed by setting CBM of all related domains to its
+default value(all-ones).
+
+System CAT information(such as maximum COS and CBM length) and per domain CBM
+settings can be showed by:
+
+xl psr-cat-show
+
+## Reference
+
+[1] Intel SDM
+(http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html).
-- 
1.9.1


_______________________________________________
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®.