[lkml]   [2016]   [Sep]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 01/13] perf/core: Add perf_arch_regs and mask to perf_regs structure
    On Mon, Aug 29, 2016 at 02:30:46AM +0530, Madhavan Srinivasan wrote:
    > It's a perennial request from hardware folks to be able to
    > see the raw values of the pmu registers. Partly it's so that
    > they can verify perf is doing what they want, and some
    > of it is that they're interested in some of the more obscure
    > info that isn't plumbed out through other perf interfaces.

    How much and what is that? Can't we try and get interfaces sorted?

    > Over the years internally have used various hack to get
    > the requested data out but this is an attempt to use a
    > somewhat standard mechanism (using PERF_SAMPLE_REGS_INTR).

    Not really liking that. It assumes too much and doesn't seem to cover
    about half the perf use-cases.

    It assumes the machine state can be captured by registers (this is false
    for things like Intel DS/PT, which have state in memory), it might
    assume <= 64 registers but I didn't look that closely, this too might
    become somewhat restrictive.

    Worse, it doesn't work for !sampling workloads, of which you also very
    much want to verify programming etc.

    > This would also be helpful for those of us working on the perf
    > hardware backends, to be able to verify that we're programming
    > things correctly, without resorting to debug printks etc.

    On x86 we can trace the MSR writes. No need to add debug printk()s.
    We could (and I have on occasion) added tracepoints (well trace_printk)
    to the Intel DS memory stores to see what was written there.

    Tracing is much more flexible for debugging this stuff.

    Can't you do something along those lines?

     \ /
      Last update: 2016-09-17 09:58    [W:12.706 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site