Re: [PATCH v5 08/13] ACPI: add perf low power callback

From: Stephane Eranian
Date: Tue Feb 01 2022 - 02:33:25 EST


On Thu, Jan 27, 2022 at 5:06 AM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> On Wed, Jan 26, 2022 at 03:34:49PM -0800, Stephane Eranian wrote:
> > This patch add an optional callback needed by some PMU features, e.g., AMD
>
> "This patch" is a documented fail.
>
I understand this is not ideal. But the BRS feature must be disabled
before going low-power.
Do you have a better proposal? Been trying to find the simplest way to
support this with no
impact when not needed.

> > BRS, to give a chance to the perf_events code to change its state before
> > going to low power and after coming back.
> >
> > The callback is void when the PERF_NEEDS_LOPWR_CB flag is not set.
> > This flag must be set in arch specific perf_event.h header whenever needed.
> > When not set, there is no impact of the ACPI code.
> >
> > Signed-off-by: Stephane Eranian <eranian@xxxxxxxxxx>
> > ---
> > drivers/acpi/acpi_pad.c | 6 ++++++
> > drivers/acpi/processor_idle.c | 5 +++++
> > include/linux/perf_event.h | 6 ++++++
> > 3 files changed, 17 insertions(+)
> >
> > diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> > index f45979aa2d64..a306a07a60b5 100644
> > --- a/drivers/acpi/acpi_pad.c
> > +++ b/drivers/acpi/acpi_pad.c
> > @@ -164,6 +164,9 @@ static int power_saving_thread(void *data)
> > tsc_marked_unstable = 1;
> > }
> > local_irq_disable();
> > +
> > + perf_lopwr_cb(true);
> > +
> > tick_broadcast_enable();
> > tick_broadcast_enter();
> > stop_critical_timings();
> > @@ -172,6 +175,9 @@ static int power_saving_thread(void *data)
> >
> > start_critical_timings();
> > tick_broadcast_exit();
> > +
> > + perf_lopwr_cb(false);
> > +
> > local_irq_enable();
> >
> > if (time_before(expire_time, jiffies)) {
>
> You forgot to Cc the maintainers of this stinking pile of poo. Can we
> please delete it instead?