pcp
[Top] [All Lists]

pcp updates: pmdalinux, pmprobe, qa

To: PCP <pcp@xxxxxxxxxxx>
Subject: pcp updates: pmdalinux, pmprobe, qa
From: Nathan Scott <nathans@xxxxxxxxxx>
Date: Tue, 10 May 2016 21:42:27 -0400 (EDT)
Delivered-to: pcp@xxxxxxxxxxx
In-reply-to: <194914150.46630370.1462930920176.JavaMail.zimbra@xxxxxxxxxx>
Reply-to: Nathan Scott <nathans@xxxxxxxxxx>
Thread-index: lq4lE/YVOGh1PjO7xEp1cfO+srQ2rA==
Thread-topic: pcp updates: pmdalinux, pmprobe, qa
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)

<Prev in Thread] Current Thread [Next in Thread>
  • pcp updates: pmdalinux, pmprobe, qa, Nathan Scott <=