lkml.org 
[lkml]   [2016]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 04/32] perf/x86/intel/cqm: add constants for CQM
    Date
    Add initial constants and comments.

    Reviewed-by: Stephane Eranian <eranian@google.com>
    Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
    ---
    arch/x86/events/intel/cqm.c | 20 ++++++++++++++++++++
    arch/x86/events/intel/cqm.h | 31 +++++++++++++++++++++++++++++++
    2 files changed, 51 insertions(+)
    create mode 100644 arch/x86/events/intel/cqm.h

    diff --git a/arch/x86/events/intel/cqm.c b/arch/x86/events/intel/cqm.c
    index e69de29..0c4f3fe 100644
    --- a/arch/x86/events/intel/cqm.c
    +++ b/arch/x86/events/intel/cqm.c
    @@ -0,0 +1,20 @@
    +/*
    + * Intel Cache Quality-of-Service Monitoring (CQM) support.
    + *
    + * Based very, very heavily on work by Peter Zijlstra.
    + */
    +
    +#include <linux/slab.h>
    +#include <asm/cpu_device_id.h>
    +#include "cqm.h"
    +#include "../perf_event.h"
    +
    +#define MSR_IA32_QM_CTR 0x0c8e
    +#define MSR_IA32_QM_EVTSEL 0x0c8d
    +
    +#define RMID_VAL_ERROR (1ULL << 63)
    +#define RMID_VAL_UNAVAIL (1ULL << 62)
    +
    +#define QOS_L3_OCCUP_EVENT_ID (1 << 0)
    +
    +#define QOS_EVENT_MASK QOS_L3_OCCUP_EVENT_ID
    diff --git a/arch/x86/events/intel/cqm.h b/arch/x86/events/intel/cqm.h
    new file mode 100644
    index 0000000..bb906c7
    --- /dev/null
    +++ b/arch/x86/events/intel/cqm.h
    @@ -0,0 +1,31 @@
    +/*
    + * Intel Cache Quality-of-Service Monitoring (CQM) support.
    + *
    + * A Resource Manager ID (RMID) is a u32 value that, when programmed in a
    + * logical CPU, will allow the LLC cache to associate the changes in occupancy
    + * generated by that cpu (cache lines allocations - deallocations) to the RMID.
    + * If a RMID has been assigned to a thread T long enough for all cache lines
    + * used by T to be allocated, then the occupancy reported by the hardware
    + * equals the total cache occupancy for T.
    + *
    + * Groups of threads that are to be monitored together (such as cgroups
    + * or processes) can shared a RMID.
    + *
    + * This driver implements a tree hierarchy of Monitored Resources (monr). Each
    + * monr is a cgroup, a process or a thread that needs one single RMID.
    + *
    + * Since the number of RMIDs is relatively small to the number of potential
    + * monitored elements, RMIDs must be "rotated" among all monitored elements.
    + */
    +
    +#include <linux/perf_event.h>
    +#include <asm/pqr_common.h>
    +#include <asm/topology.h>
    +
    +/*
    + * Time between execution of rotation logic. The frequency of execution does
    + * not affect the rate at which RMIDs are recycled, except by the delay by the
    + * delay updating the prmid's and their pools.
    + * The rotation period is stored in pmu->hrtimer_interval_ms.
    + */
    +#define CQM_DEFAULT_ROTATION_PERIOD 1200 /* ms */
    --
    2.8.0.rc3.226.g39d4020
    \
     
     \ /
      Last update: 2016-05-12 01:21    [W:7.094 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site