lkml.org 
[lkml]   [2015]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/5] perf/x86/intel/pt: Kill pt_is_running()
    Date
    Initially, we were trying to guard against scenarios where somebody
    attaches to the system with a hardware debugger while PT is enabled
    from software and pt_is_running() tries to make sure we handle this
    better, but the truth is, there is still a race window no matter what
    and people with hardware debuggers should really know what they are
    doing anyway. In other words, there is no point in keeping this one
    around, and it's one rdmsr fewer in the fast path.

    One case when PT is enabled by the bios at the boot time is handled
    in driver initialization path and doesn't use pt_is_running().

    This patch gets rid of it.

    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    ---
    arch/x86/kernel/cpu/perf_event_intel_pt.c | 11 +----------
    1 file changed, 1 insertion(+), 10 deletions(-)

    diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c
    index 40ba5e4312..a2d407172d 100644
    --- a/arch/x86/kernel/cpu/perf_event_intel_pt.c
    +++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c
    @@ -187,15 +187,6 @@ static bool pt_event_valid(struct perf_event *event)
    * These all are cpu affine and operate on a local PT
    */

    -static bool pt_is_running(void)
    -{
    - u64 ctl;
    -
    - rdmsrl(MSR_IA32_RTIT_CTL, ctl);
    -
    - return !!(ctl & RTIT_CTL_TRACEEN);
    -}
    -
    static void pt_config(struct perf_event *event)
    {
    u64 reg;
    @@ -933,7 +924,7 @@ static void pt_event_start(struct perf_event *event, int mode)
    struct pt *pt = this_cpu_ptr(&pt_ctx);
    struct pt_buffer *buf = perf_get_aux(&pt->handle);

    - if (pt_is_running() || !buf || pt_buffer_is_full(buf, pt)) {
    + if (!buf || pt_buffer_is_full(buf, pt)) {
    event->hw.state = PERF_HES_STOPPED;
    return;
    }
    --
    2.1.4


    \
     
     \ /
      Last update: 2015-04-21 16:01    [W:3.324 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site