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 08/32] perf/x86/intel/cqm: add pmu sysfs attribute
    Date
    Expose max_recycle_threshold pmu attribute to user-space.

    Reviewed-by: Stephane Eranian <eranian@google.com>
    Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
    ---
    arch/x86/events/intel/cqm.c | 48 +++++++++++++++++++++++++++++++++++++++++++++
    1 file changed, 48 insertions(+)

    diff --git a/arch/x86/events/intel/cqm.c b/arch/x86/events/intel/cqm.c
    index 54f219f..225b0c8 100644
    --- a/arch/x86/events/intel/cqm.c
    +++ b/arch/x86/events/intel/cqm.c
    @@ -393,9 +393,57 @@ static struct attribute_group intel_cqm_format_group = {
    .attrs = intel_cqm_formats_attr,
    };

    +static ssize_t
    +max_recycle_threshold_show(
    + struct device *dev, struct device_attribute *attr, char *page)
    +{
    + ssize_t rv;
    +
    + monr_hrchy_acquire_mutexes();
    + rv = snprintf(page, PAGE_SIZE - 1, "%u\n",
    + __intel_cqm_max_threshold);
    + monr_hrchy_release_mutexes();
    +
    + return rv;
    +}
    +
    +static ssize_t
    +max_recycle_threshold_store(struct device *dev,
    + struct device_attribute *attr,
    + const char *buf, size_t count)
    +{
    + unsigned int bytes;
    + int ret;
    +
    + ret = kstrtouint(buf, 0, &bytes);
    + if (ret)
    + return ret;
    +
    + /* Mutex waits for rotation logic in all packages to complete. */
    + monr_hrchy_acquire_mutexes();
    +
    + __intel_cqm_max_threshold = bytes;
    +
    + monr_hrchy_release_mutexes();
    +
    + return count;
    +}
    +
    +static DEVICE_ATTR_RW(max_recycle_threshold);
    +
    +static struct attribute *intel_cqm_attrs[] = {
    + &dev_attr_max_recycle_threshold.attr,
    + NULL,
    +};
    +
    +static const struct attribute_group intel_cqm_group = {
    + .attrs = intel_cqm_attrs,
    +};
    +
    static const struct attribute_group *intel_cqm_attr_groups[] = {
    &intel_cqm_events_group,
    &intel_cqm_format_group,
    + &intel_cqm_group,
    NULL,
    };

    --
    2.8.0.rc3.226.g39d4020
    \
     
     \ /
      Last update: 2016-05-12 01:21    [W:4.223 / U:1.456 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site