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?