|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
========================================================================
|
|
Packit |
bcb633 |
README for PQoS/Intel(R) RDT utility
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
February 2018
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
========================================================================
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Contents
|
|
Packit |
bcb633 |
========
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
- Overview
|
|
Packit |
bcb633 |
- Requirements and Installation
|
|
Packit |
bcb633 |
- Usage
|
|
Packit |
bcb633 |
- Legal Disclaimer
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Overview
|
|
Packit |
bcb633 |
========
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
This software package provides basic support for
|
|
Packit |
bcb633 |
Cache Monitoring Technology (CMT), Memory Bandwidth Monitoring (MBM)
|
|
Packit |
bcb633 |
and Cache Allocation Technology (CAT).
|
|
Packit |
bcb633 |
This release supports last level cache occupancy monitoring and
|
|
Packit |
bcb633 |
memory bandwidth monitoring on a per core or logical thread basis.
|
|
Packit |
bcb633 |
MBM supports two types of events reporting local and remote
|
|
Packit |
bcb633 |
memory bandwidth.
|
|
Packit |
bcb633 |
Both events are reported on a per core or logical thread basis.
|
|
Packit |
bcb633 |
Local memory bandwidth reports the bandwidth of a thread accessing
|
|
Packit |
bcb633 |
memory associated with the local socket.
|
|
Packit |
bcb633 |
In a dual socket system, the remote memory bandwidth reports the
|
|
Packit |
bcb633 |
bandwidth of a thread accessing the remote socket.
|
|
Packit |
bcb633 |
The monitoring utility does not track application migration across
|
|
Packit |
bcb633 |
cores as this would require scheduler integration.
|
|
Packit |
bcb633 |
Instead, applications should be pinned to cores to track
|
|
Packit |
bcb633 |
last level cache occupancy and memory bandwidth.
|
|
Packit |
bcb633 |
Scheduler-integrated alternatives such as cgroups and perf are being
|
|
Packit |
bcb633 |
researched to track the application PID (and all associated TIDs)
|
|
Packit |
bcb633 |
rather than static assignment. The monitoring utility currently associates
|
|
Packit |
bcb633 |
a Resource Monitoring ID (RMID) per hardware thread or group of hardware
|
|
Packit |
bcb633 |
threads when monitoring is started. By default, PID tracking is not enabled.
|
|
Packit |
bcb633 |
Details on enabling this feature can be found in INSTALL and lib/README.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
The command line utility provides the necessary functionality to set
|
|
Packit |
bcb633 |
up the CAT capabilities. The software provides flags to configure the
|
|
Packit |
bcb633 |
class of service (CLOS) and associate cores / logical threads with a
|
|
Packit |
bcb633 |
class of service.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Use of concurrent monitoring instances is possible as long as each
|
|
Packit |
bcb633 |
instance monitors exclusive set of cores. Library APIs are also thread safe.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
For additional CMT, MBM and CAT details please see refer to the Intel(R)
|
|
Packit |
bcb633 |
Architecture Software Development Manuals available at:
|
|
Packit |
bcb633 |
http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html
|
|
Packit |
bcb633 |
Specific information with regard to CMT, MBM and CAT can be found in
|
|
Packit |
bcb633 |
Chapter 17.18 and 17.19 (SDM version 065).
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Requirements and Installation
|
|
Packit |
bcb633 |
=============================
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
For installation of the Intel(R) RDT utility, ensure the library is
|
|
Packit |
bcb633 |
installed and follow below instructions to create pqos executable.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
To compile Intel(R) RDT utility:
|
|
Packit |
bcb633 |
"make" or "make all" for building utility.
|
|
Packit |
bcb633 |
"make all DEBUG=y" for building utility for debugging.
|
|
Packit |
bcb633 |
"make clean" for clearing even more files than "make rinse".
|
|
Packit |
bcb633 |
Note: Having both local and installed copies of the library
|
|
Packit |
bcb633 |
may cause undefined behaviour when building the utility.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
To install the Intel(R) RDT utility (optional), first compile, then:
|
|
Packit |
bcb633 |
"sudo make install" to install below /usr/local.
|
|
Packit |
bcb633 |
"sudo make install PREFIX=/some/where" to install below /some/where.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Note: For installation of the PQoS utility on FreeBSD, simply follow the steps
|
|
Packit |
bcb633 |
above for Linux installation replacing "make" with "gmake".
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Currently verified configuration is:
|
|
Packit |
bcb633 |
- FreeBSD 9.1
|
|
Packit |
bcb633 |
- GNU Compiler Collection 5 (gcc 5.3.1)
|
|
Packit |
bcb633 |
- GNU Make 4.1
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Usage
|
|
Packit |
bcb633 |
=====
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
After compilation the PQoS executable can be used to configure the
|
|
Packit |
bcb633 |
last level cache allocation feature and monitor the last level cache
|
|
Packit |
bcb633 |
occupancy as well as memory bandwidth.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Usage: For pqos utility:
|
|
Packit |
bcb633 |
"./pqos -h" This option will display extensive help page.
|
|
Packit |
bcb633 |
Please refer to "-h" option for usage details.
|
|
Packit |
bcb633 |
"./pqos -s" Shows current Intel(R) RDT configuration.
|
|
Packit |
bcb633 |
"./pqos -d" Shows detected Intel(R) RDT capabilities (-D for verbose mode).
|
|
Packit |
bcb633 |
"./pqos -T" Starts CMT and MBM monitoring on all detected
|
|
Packit |
bcb633 |
cores (depends of hardware feature availability).
|
|
Packit |
bcb633 |
Note: It may be necessary to set "LD_LIBRARY_PATH=path/to/libpqos.so"
|
|
Packit |
bcb633 |
when running the utility with local shared library.
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
Legal Disclaimer
|
|
Packit |
bcb633 |
================
|
|
Packit |
bcb633 |
|
|
Packit |
bcb633 |
THIS SOFTWARE IS PROVIDED BY INTEL"AS IS". NO LICENSE, EXPRESS OR
|
|
Packit |
bcb633 |
IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS
|
|
Packit |
bcb633 |
ARE GRANTED THROUGH USE. EXCEPT AS PROVIDED IN INTEL'S TERMS AND
|
|
Packit |
bcb633 |
CONDITIONS OF SALE, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL
|
|
Packit |
bcb633 |
DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR
|
|
Packit |
bcb633 |
USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO
|
|
Packit |
bcb633 |
FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT
|
|
Packit |
bcb633 |
OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
|