[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZIMdDMSjnNfx6q+n@FVFF77S0Q05N.cambridge.arm.com>
Date: Fri, 9 Jun 2023 13:37:32 +0100
From: Mark Rutland <mark.rutland@....com>
To: Anshuman Khandual <anshuman.khandual@....com>
Cc: linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
will@...nel.org, catalin.marinas@....com,
Mark Brown <broonie@...nel.org>,
James Clark <james.clark@....com>,
Rob Herring <robh@...nel.org>, Marc Zyngier <maz@...nel.org>,
Suzuki Poulose <suzuki.poulose@....com>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
linux-perf-users@...r.kernel.org
Subject: Re: [PATCH V11 06/10] arm64/perf: Enable branch stack events via
FEAT_BRBE
On Fri, Jun 09, 2023 at 10:00:09AM +0530, Anshuman Khandual wrote:
> >> +static u64 branch_type_to_brbcr(int branch_type)
> >> +{
> >> + u64 brbcr = BRBCR_EL1_DEFAULT_TS;
> >> +
> >> + /*
> >> + * BRBE need not be paused on PMU interrupt while tracing only
> >> + * the user space, bcause it will automatically be inside the
> >> + * prohibited region. But even after PMU overflow occurs, the
> >> + * interrupt could still take much more cycles, before it can
> >> + * be taken and by that time BRBE will have been overwritten.
> >> + * Let's enable pause on PMU interrupt mechanism even for user
> >> + * only traces.
> >> + */
> >> + brbcr |= BRBCR_EL1_FZP;
> > I think this is trying to say that we *should* use FZP when sampling the
> > kernel (due to IRQ latency), and *can* safely use it when sampling userspace,
> > so it would be good to explain it that way around.
>
> Agreed, following updated comment explains why we should enable FZP
> when sampling kernel, otherwise BRBE will capture unwanted records.
> It also explains why we should enable FZP even when sampling user
> space due to IRQ latency.
>
> /*
> * BRBE should be paused on PMU interrupt while tracing kernel
> * space to stop capturing further branch records. Otherwise
> * interrupt handler branch records might get into the samples
> * which is not desired.
> *
> * BRBE need not be paused on PMU interrupt while tracing only
> * the user space, because it will automatically be inside the
> * prohibited region. But even after PMU overflow occurs, the
> * interrupt could still take much more cycles, before it can
> * be taken and by that time BRBE will have been overwritten.
> * Hence enable pause on PMU interrupt mechanism even for user
> * only traces as well.
> */
> brbcr |= BRBCR_EL1_FZP;
Thanks; I think that's a lot clearer!
Mark.
Powered by blists - more mailing lists