Messages in this thread | | | From | "Rafael J. Wysocki" <> | Date | Fri, 11 Aug 2023 19:41:48 +0200 | Subject | Re: [PATCH 09/10] x86: Remove the current_clr_polling() call upon mwait exit |
| |
On Fri, Aug 11, 2023 at 7:01 PM Frederic Weisbecker <frederic@kernel.org> wrote: > > mwait_idle_with_hints() is mostly called from cpuidle which already sets > back TIF_NR_POLLING and fold TIF_NEED_RESCHED if necessary. > > The only non-cpuidle caller is power_saving_thread() which acts as an idle > loop and is the only reason why mwait_idle_with_hints() carries a costly > fully ordered atomic operation upon idle exit. > > Make this overhead proper to power_saving_thread() instead which already > duplicates quite some cpuidle code. > > Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Acked-by: Rafael J. Wysocki <rafael@kernel.org>
> --- > arch/x86/include/asm/mwait.h | 1 - > drivers/acpi/acpi_pad.c | 1 + > 2 files changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/x86/include/asm/mwait.h b/arch/x86/include/asm/mwait.h > index 920426d691ce..c1be3775b94a 100644 > --- a/arch/x86/include/asm/mwait.h > +++ b/arch/x86/include/asm/mwait.h > @@ -134,7 +134,6 @@ static __always_inline void mwait_idle_with_hints(unsigned long eax, unsigned lo > } > } > } > - current_clr_polling(); > } > > /* > diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c > index 7a453c5ff303..5a44afafe185 100644 > --- a/drivers/acpi/acpi_pad.c > +++ b/drivers/acpi/acpi_pad.c > @@ -174,6 +174,7 @@ static int power_saving_thread(void *data) > stop_critical_timings(); > > mwait_idle_with_hints(power_saving_mwait_eax, 1); > + current_clr_polling(); > > start_critical_timings(); > tick_broadcast_exit(); > -- > 2.34.1 >
| |