Changes committed to git://git.pcp.io/pcp.git master
Nathan Scott (3):
perfevent: simplify and harden fetch item checks (coverity)
pmprobe: add missing long options for -z/-Z usage
qa: add memory metric tests for the Linux kernel PMDA
Hemant Kumar (1):
pmdalinux: add maximum memory bandwidth per numa node metric
qa/569.out | 4
qa/821 | 55 +
qa/821.out | 1596 ++++++++++++++++++++++++++++++++++++++++
qa/826 | 76 +
qa/826.out | 23
qa/group | 2
qa/linux/meminfo-root-001.tgz |binary
src/pmdas/linux/GNUmakefile | 9
src/pmdas/linux/bandwidth.conf | 14
src/pmdas/linux/help | 1
src/pmdas/linux/mem_bandwidth.c | 182 ++++
src/pmdas/linux/numa_meminfo.c | 26
src/pmdas/linux/numa_meminfo.h | 8
src/pmdas/linux/pmda.c | 13
src/pmdas/linux/root_linux | 1
src/pmdas/perfevent/pmda.c | 9
src/pmprobe/pmprobe.c | 2
17 files changed, 1984 insertions(+), 37 deletions(-)
commit 254b84f6d27f175f96aceeee18c827833fcf4c97
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed May 11 11:32:09 2016 +1000
qa: add memory metric tests for the Linux kernel PMDA
Initial testing for memory metrics (mem.*) for pmdalinux.
Test qa/821 uses the DSO pmdalinux with custom root (via
qa/linux/meminfo-*) to perform basic sanity and proc/sys
file parsing for all platforms/architectures.
Test qa/826 exercises several modes of operation for the
new max_bandwidth metric configuration file.
In testing, found and fixed a few small coding issues
- added the file path to some error reporting paths to aid
problem diagnosis
- fixed a small fd+memleak on one error path
- to ensure we do not overwrite local customisations, the
bandwidth configuration file is installed as a sample
- annotated mem.numa.max_bandwidth as discrete
commit bda4c9b064bf499691cabc991c6c40706bff2d16
Author: Hemant Kumar <hemant@xxxxxxxxxxxxxxxxxx>
Date: Wed May 11 09:35:01 2016 +1000
pmdalinux: add maximum memory bandwidth per numa node metric
Adds a new metric to monitor the maximum memory bandwidth per numa
node. This metric is limited by a config file named bandwidth.conf
which contains the node bandwidth information.
For e.g.:
node0:40960
node1:40960
...
Each row represents a numa node of the system along with the maximum
memory bandwidth (in MB/sec) it supports. The maximum memory bandwidth
can be found using several benchmarking tools by saturating and
measuring the bandwidth.
pmdalinux agent parses the config file and checks whether the node is
present in sysfs/devices/system/node/ directory. The node name in the
config file must match the name of any of the nodes in node/ directory.
The bandwidth value is taken from this config file and updated in the
node_info struct for each node.
# pminfo | grep bandwidth
mem.numa.max_bandwidth
# pmval mem.numa.max_bandwidth
metric: mem.numa.max_bandwidth
host: <some_host>
semantics: instantaneous value
units: Mbyte / sec
samples: all
node0 node1
4.096E+04 4.096E+04
4.096E+04 4.096E+04
...
Few things to note:
- The user/client can run some benchmarking tools to saturate the
bandwidth and can update this information in the .config file.
- The max bandwidth value can be given as a floating point.
- The node names mentioned in the .config must match any of the node
names found in sysfs/devices/system/node/ directory.
- Right now, automatic update of max bandwidth is not supported due to
lack of non-standard/arch-independent tools.
- Support for automatic updates for max bandwidth using some
benchmarking tools will be added later.
Purpose of this metric:
As of now, we have hardware counters for measuring the current memory
bandwidth (read and write) and that can be aggregated per
node. "perfevent" agent for PCP can be used for that. However, to make
decisions regarding placement/migration of workloads across nodes (or
systems) solely based on the current bandwidth is not sufficient. We
also need the maximum bandwidth supported on the nodes to find out the
utilization. The maximum bandwidth metric can be used for this purpose.
Signed-off-by: Hemant Kumar <hemant@xxxxxxxxxxxxxxxxxx>
commit 42323a440d2a78cd4f8c27fadcd91bf29e43b6b0
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed May 11 08:14:40 2016 +1000
pmprobe: add missing long options for -z/-Z usage
Resolves Red Hat BZ #1334324.
commit 9715d2323ee93d36e2bb26d825d03fb3d168d8b6
Author: Nathan Scott <nathans@xxxxxxxxxx>
Date: Wed May 11 08:09:57 2016 +1000
perfevent: simplify and harden fetch item checks (coverity)
|