lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 569/717] powerpc/perf: Exclude kernel samples while counting events in user space.
    Date
    From: Athira Rajeev <atrajeev@linux.vnet.ibm.com>

    commit aa8e21c053d72b6639ea5a7f1d3a1d0209534c94 upstream.

    Perf event attritube supports exclude_kernel flag to avoid
    sampling/profiling in supervisor state (kernel). Based on this event
    attr flag, Monitor Mode Control Register bit is set to freeze on
    supervisor state. But sometimes (due to hardware limitation), Sampled
    Instruction Address Register (SIAR) locks on to kernel address even
    when freeze on supervisor is set. Patch here adds a check to drop
    those samples.

    Cc: stable@vger.kernel.org
    Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/1606289215-1433-1-git-send-email-atrajeev@linux.vnet.ibm.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/perf/core-book3s.c | 10 ++++++++++
    1 file changed, 10 insertions(+)

    --- a/arch/powerpc/perf/core-book3s.c
    +++ b/arch/powerpc/perf/core-book3s.c
    @@ -2125,6 +2125,16 @@ static void record_and_restart(struct pe
    perf_event_update_userpage(event);

    /*
    + * Due to hardware limitation, sometimes SIAR could sample a kernel
    + * address even when freeze on supervisor state (kernel) is set in
    + * MMCR2. Check attr.exclude_kernel and address to drop the sample in
    + * these cases.
    + */
    + if (event->attr.exclude_kernel && record)
    + if (is_kernel_addr(mfspr(SPRN_SIAR)))
    + record = 0;
    +
    + /*
    * Finally record data if requested.
    */
    if (record) {

    \
     
     \ /
      Last update: 2020-12-28 15:44    [W:4.031 / U:0.808 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site