[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CABPqkBQoLh+v0ANLb=U-JTjT0yjBacVLTh6f=0q4J4XhVQeeuQ@mail.gmail.com>
Date: Mon, 31 Jan 2022 23:33:10 -0800
From: Stephane Eranian <eranian@...gle.com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: linux-kernel@...r.kernel.org, kim.phillips@....com,
acme@...hat.com, jolsa@...hat.com, songliubraving@...com,
"Rafael J. Wysocki" <rjw@...ysocki.net>, linux-acpi@...r.kernel.org
Subject: Re: [PATCH v5 08/13] ACPI: add perf low power callback
On Thu, Jan 27, 2022 at 5:06 AM Peter Zijlstra <peterz@...radead.org> 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@...gle.com>
> > ---
> > 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?
Powered by blists - more mailing lists