All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com,
	vgupta@kernel.org, linux@armlinux.org.uk,
	ulli.kroll@googlemail.com, linus.walleij@linaro.org,
	shawnguo@kernel.org, Sascha Hauer <s.hauer@pengutronix.de>,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	khilman@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org,
	kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net,
	monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org,
	jonas@southpole.se, stefan.kristiansson@saunalahti.fi,
	shorne@gmail.com, James.Bottomley@hansenpartnership.com,
	deller@gmx.de, mpe@ellerman.id.au, benh@kernel.crashing.org,
	paulus@samba.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com,
	agordeev@linux.ibm.com, borntraeger@linux.ibm.com,
	svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org,
	davem@davemloft.net, richard@nod.at,
	anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	acme@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu,
	amakhalov@vmware.com, pv-drivers@vmware.com,
	boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com,
	rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz,
	gregkh@linuxfoundation.org, mturquette@baylibre.com,
	sboyd@kernel.org, daniel.lezcano@linaro.org,
	lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org,
	bjorn.andersson@linaro.org, anup@brainfault.org,
	thierry.reding@gmail.com, jonathanh@nvidia.com,
	jacob.jun.pan@linux.intel.com, Arnd Bergmann <arnd@arndb.de>,
	yury.norov@gmail.com, andriy.shevchenko@linux.intel.com,
	linux@rasmusvillemoes.dk, rostedt@goodmis.org, pmladek@suse.com,
	senozhatsky@chromium.org, john.ogness@linutronix.de,
	paulmck@kernel.org, frederic@kernel.org,
	quic_neeraju@quicinc.com, josh@joshtriplett.org,
	mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
	joel@joelfernandes.org, juri.lelli@redhat.com,
	vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	vschneid@redhat.com, jpoimboe@kernel.org,
	linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xenproject.org, linux-xtensa@linux-xtensa.org,
	linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org,
	rcu@vger.kernel.org
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 15:39:05 +0300	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote == num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state =
@@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com,
	vgupta@kernel.org, linux@armlinux.org.uk,
	ulli.kroll@googlemail.com, linus.walleij@linaro.org,
	shawnguo@kernel.org, Sascha Hauer <s.hauer@pengutronix.de>,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	khilman@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org,
	kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net,
	monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org,
	jonas@southpole.se, stefan.kristiansson@saunalahti.fi,
	shorne@gmail.com, James.Bottomley@hansenpartnership.com,
	deller@gmx.de, mpe@ellerman.id.au, benh@kernel.crashing.org,
	paulus@samba.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com,
	agordeev@linux.ibm.com, borntraeger@linux.ibm.com,
	svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org,
	davem@davemloft.net, richard@nod.at,
	anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	acme@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu,
	amakhalov@vmware.com, pv-drivers@vmware.com,
	boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com,
	rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz,
	gregkh@linuxfoundation.org, mturquette@baylibre.com,
	sboyd@kernel.org, daniel.lezcano@linaro.org,
	lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org,
	bjorn.andersson@linaro.org, anup@brainfault.org,
	thierry.reding@gmail.com, jonathanh@nvidia.com,
	jacob.jun.pan@linux.intel.com, Arnd Bergmann <arnd@arndb.de>,
	yury.norov@gmail.com, andriy.shevchenko@linux.intel.com,
	linux@rasmusvillemoes.dk, rostedt@goodmis.org, pmladek@suse.com,
	senozhatsky@chromium.org, john.ogness@linutronix.de,
	paulmck@kernel.org, frederic@kernel.org,
	quic_neeraju@quicinc.com, josh@joshtriplett.org,
	mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
	joel@joelfernandes.org, juri.lelli@redhat.com,
	vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	vschneid@redhat.com, jpoimboe@kernel.org,
	linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xenproject.org, linux-xtensa@linux-xtensa.org,
	linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org,
	rcu@vger.kernel.org
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 15:39:05 +0300	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote == num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state =
@@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com,
	vgupta@kernel.org, linux@armlinux.org.uk,
	ulli.kroll@googlemail.com, linus.walleij@linaro.org,
	shawnguo@kernel.org, Sascha Hauer <s.hauer@pengutronix.de>,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	khilman@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org,
	kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net,
	monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org,
	jonas@southpole.se, stefan.kristiansson@saunalahti.fi,
	shorne@gmail.com, James.Bottomley@hansenpartnership.com,
	deller@gmx.de, mpe@ellerman.id.au, benh@kernel.crashing.org,
	paulus@samba.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com,
	agordeev@linux.ibm.com, borntraeger@linux.ibm.com,
	svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org,
	davem@davemloft.net, richard@nod.at,
	anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	acme@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu,
	amakhalov@vmware.com, pv-drivers@vmware.com,
	boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com,
	rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz,
	gregkh@linuxfoundation.org, mturquette@baylibre.com,
	sboyd@kernel.org, daniel.lezcano@linaro.org,
	lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org,
	bjorn.andersson@linaro.org, anup@brainfault.org,
	thierry.reding@gmail.com, jonathanh@nvidia.com,
	jacob.jun.pan@linux.intel.com, Arnd Bergmann <arnd@arndb.de>,
	yury.norov@gmail.com, andriy.shevchenko@linux.intel.com,
	linux@rasmusvillemoes.dk, rostedt@goodmis.org, pmladek@suse.com,
	senozhatsky@chromium.org, john.ogness@linutronix.de,
	paulmck@kernel.org, frederic@kernel.org,
	quic_neeraju@quicinc.com, josh@joshtriplett.org,
	mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
	joel@joelfernandes.org, juri.lelli@redhat.com,
	vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	vschneid@redhat.com, jpoimboe@kernel.org,
	linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xenproject.org, linux-xtensa@linux-xtensa.org,
	linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org,
	rcu@vger.kernel.org
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 15:39:05 +0300	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote == num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state =
@@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: juri.lelli@redhat.com, rafael@kernel.org,
	benh@kernel.crashing.org, linus.walleij@linaro.org,
	bsegall@google.com, guoren@kernel.org, pavel@ucw.cz,
	agordeev@linux.ibm.com, srivatsa@csail.mit.edu,
	linux-arch@vger.kernel.org, vincent.guittot@linaro.org,
	mpe@ellerman.id.au, chenhuacai@kernel.org,
	linux-acpi@vger.kernel.org, agross@kernel.org, linux-imx@nxp.com,
	catalin.marinas@arm.com, xen-devel@lists.xenproject.org,
	mattst88@gmail.com, borntraeger@linux.ibm.com,
	mturquette@baylibre.com, sammy@sammy.net, pmladek@suse.com,
	linux-pm@vger.kernel.org, jiangshanlai@gmail.com,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-um@lists.infradead.org, acme@kernel.org,
	tglx@linutronix.de, linux-omap@vger.kernel.org,
	dietmar.eggemann@arm.com, rth@twiddle.net,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, senozhatsky@chromium.org,
	svens@linux.ibm.com, jolsa@kernel.org, paulus@samba.org,
	mark.rutland@arm.com, linux-ia64@vger.kernel.org,
	dave.hansen@linux.intel.com,
	virtualization@lists.linux-foundation.org,
	James.Bottomley@hansenpartnership.com, jcmvbkbc@gmail.com,
	thierry.reding@gmail.com, kernel@xen0n.name,
	quic_neeraju@quicinc.com, linux-s390@vger.kernel.org,
	vschneid@redhat.com, john.ogness@linutronix.de,
	ysato@users.sourceforge.jp, linux-sh@vger.kernel.org,
	festevam@gmail.com, deller@gmx.de, daniel.lezcano@linaro.org,
	jonathanh@nvidia.com, mathieu.desnoyers@efficios.com,
	frederic@kernel.org, lenb@kernel.org,
	linux-xtensa@linux-xtensa.org, kernel@pengutronix.de,
	gor@linux.ibm.com, linux-arm-msm@vger.kernel.org,
	linux-alpha@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-arm-kernel@lists.infradead.org, chris@zankel.net,
	sboyd@kernel.org, dinguyen@kernel.org, bristot@redhat.com,
	alexander.shishkin@linux.intel.com, lpieralisi@kernel.org,
	linux@rasmusvillemoes.dk, joel@joelfernandes.org,
	will@kernel.org, boris.ostrovsky@oracle.com, khilman@kernel.org,
	linux-csky@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	mgorman@suse.de, jacob.jun.pan@linux.intel.com,
	Arnd Bergmann <arnd@arndb.de>,
	ulli.kroll@googlemail.com, vgupta@kernel.org,
	linux-clk@vger.kernel.org, josh@joshtriplett.org,
	rostedt@goodmis.org, rcu@vger.kernel.org, bp@alien8.de,
	bcain@quicinc.com, tsbogend@alpha.franken.de,
	linux-parisc@vger.kernel.org, sudeep.holla@arm.com,
	shawnguo@kernel.org, davem@davemloft.net, dalias@libc.org,
	pv-drivers@vmware.com, amakhalov@vmware.com,
	bjorn.andersson@linaro.org, hpa@zytor.com,
	sparclinux@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-riscv@lists.infradead.org, anton.ivanov@cambridgegreys.com,
	jonas@southpole.se, yury.norov@gmail.com, richard@nod.at,
	x86@kernel.org, linux@armlinux.org.uk, mingo@redhat.com,
	aou@eecs.berkeley.edu, paulmck@kernel.org, hca@linux.ibm.com,
	openrisc@lists.librecores.org, paul.walmsley@sifive.com,
	linux-tegra@vger.kernel.org, namhyung@kernel.org,
	andriy.shevchenko@linux.intel.com, jpoimboe@kernel.org,
	jgross@suse.com, monstr@monstr.eu, linux-mips@vger.kernel.org,
	palmer@dabbelt.com, anup@brainfault.org,
	ink@jurassic.park.msu.ru, johannes@sipsolutions.net,
	linuxppc-dev@lists.ozlabs.org
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 15:39:05 +0300	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote == num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state =
@@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: juri.lelli@redhat.com, rafael@kernel.org,
	linus.walleij@linaro.org, bsegall@google.com, guoren@kernel.org,
	pavel@ucw.cz, agordeev@linux.ibm.com, srivatsa@csail.mit.edu,
	linux-arch@vger.kernel.org, vincent.guittot@linaro.org,
	chenhuacai@kernel.org, linux-acpi@vger.kernel.org,
	agross@kernel.org, geert@linux-m68k.org, linux-imx@nxp.com,
	catalin.marinas@arm.com, xen-devel@lists.xenproject.org,
	mattst88@gmail.com, borntraeger@linux.ibm.com,
	mturquette@baylibre.com, sammy@sammy.net, pmladek@suse.com,
	linux-pm@vger.kernel.org, jiangshanlai@gmail.com,
	Sascha Hauer <s.hauer@pengutronix.de>,
	linux-um@lists.infradead.org, acme@kernel.org,
	tglx@linutronix.de, linux-omap@vger.kernel.org,
	dietmar.eggemann@arm.com, rth@twiddle.net,
	gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org,
	linux-perf-users@vger.kernel.org, senozhatsky@chromium.org,
	svens@linux.ibm.com, jolsa@kernel.org, paulus@samba.org,
	mark.rutland@arm.com, linux-ia64@vger.kernel.org,
	dave.hansen@linux.intel.com,
	virtualizatio n@lists.linux-foundation.org,
	James.Bottomley@hansenpartnership.com, jcmvbkbc@gmail.com,
	thierry.reding@gmail.com, kernel@xen0n.name,
	quic_neeraju@quicinc.com, linux-s390@vger.kernel.org,
	vschneid@redhat.com, john.ogness@linutronix.de,
	ysato@users.sourceforge.jp, linux-sh@vger.kernel.org,
	festevam@gmail.com, deller@gmx.de, daniel.lezcano@linaro.org,
	jonathanh@nvidia.com, mathieu.desnoyers@efficios.com,
	frederic@kernel.org, lenb@kernel.org,
	linux-xtensa@linux-xtensa.org, kernel@pengutronix.de,
	gor@linux.ibm.com, linux-arm-msm@vger.kernel.org,
	linux-alpha@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	shorne@gmail.com, linux-arm-kernel@lists.infradead.org,
	chris@zankel.net, sboyd@kernel.org, dinguyen@kernel.org,
	bristot@redhat.com, alexander.shishkin@linux.intel.com,
	lpieralisi@kernel.org, linux@rasmusvillemoes.dk,
	joel@joelfernandes.org, will@kernel.org,
	boris.ostrovsky@oracle.com, khilman@kernel.org,
	linux-csky@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	mgorman@suse.de, jacob.jun.pan@linux.intel.com,
	Arnd Bergmann <arnd@a
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 15:39:05 +0300	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

rndb.de>, ulli.kroll@googlemail.com, vgupta@kernel.org, linux-clk@vger.kernel.org, josh@joshtriplett.org, rostedt@goodmis.org, rcu@vger.kernel.org, bp@alien8.de, bcain@quicinc.com, tsbogend@alpha.franken.de, linux-parisc@vger.kernel.org, sudeep.holla@arm.com, shawnguo@kernel.org, davem@davemloft.net, dalias@libc.org, pv-drivers@vmware.com, amakhalov@vmware.com, bjorn.andersson@linaro.org, hpa@zytor.com, sparclinux@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org, anton.ivanov@cambridgegreys.com, jonas@southpole.se, yury.norov@gmail.com, richard@nod.at, x86@kernel.org, linux@armlinux.org.uk, mingo@redhat.com, aou@eecs.berkeley.edu, paulmck@kernel.org, hca@linux.ibm.com, stefan.kristiansson@saunalahti.fi, openrisc@lists.librecores.org, paul.walmsley@sifive.com, linux-tegra@vger.kernel.org, namhyung@kernel.org, andriy.shevchenko@linux.intel.com, jpoimboe@kernel.org, jgross@suse.com, monstr@monstr.eu, linux-mips@vger.kernel.org, palmer@dabbelt.com, anup@bra
 infault.org, ink@jurassic.park.msu.ru, johannes@sipsolutions.net, linuxppc-dev@lists.ozlabs.org
Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org
Sender: "Linuxppc-dev" <linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote == num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state =
@@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com,
	vgupta@kernel.org, linux@armlinux.org.uk,
	ulli.kroll@googlemail.com, linus.walleij@linaro.org,
	shawnguo@kernel.org, Sascha Hauer <s.hauer@pengutronix.de>,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	khilman@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org,
	kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net,
	monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org,
	jonas@southpole.se, stefan.kristiansson@saunalahti.fi,
	shorne@gmail.com, James.Bottomley@hansenpartnership.com,
	deller@gmx.de, mpe@ellerman.id.au, benh@kernel.crashing.org,
	paulus@samba.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com,
	agordeev@linux.ibm.com, borntraeger@linux.ibm.com,
	svens@linux.ibm.com, ysato@users.sourceforge.jp, dalias@libc.org,
	davem@davemloft.net, richard@nod.at,
	anton.ivanov@cambridgegreys.com, johannes@sipsolutions.net,
	tglx@linutronix.de, mingo@redhat.com, bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	acme@kernel.org, mark.rutland@arm.com,
	alexander.shishkin@linux.intel.com, jolsa@kernel.org,
	namhyung@kernel.org, jgross@suse.com, srivatsa@csail.mit.edu,
	amakhalov@vmware.com, pv-drivers@vmware.com,
	boris.ostrovsky@oracle.com, chris@zankel.net, jcmvbkbc@gmail.com,
	rafael@kernel.org, lenb@kernel.org, pavel@ucw.cz,
	gregkh@linuxfoundation.org, mturquette@baylibre.com,
	sboyd@kernel.org, daniel.lezcano@linaro.org,
	lpieralisi@kernel.org, sudeep.holla@arm.com, agross@kernel.org,
	bjorn.andersson@linaro.org, anup@brainfault.org,
	thierry.reding@gmail.com, jonathanh@nvidia.com,
	jacob.jun.pan@linux.intel.com, Arnd Bergmann <arnd@arndb.de>,
	yury.norov@gmail.com, andriy.shevchenko@linux.intel.com,
	linux@rasmusvillemoes.dk, rostedt@goodmis.org, pmladek@suse.com,
	senozhatsky@chromium.org, john.ogness@linutronix.de,
	paulmck@kernel.org, frederic@kernel.org,
	quic_neeraju@quicinc.com, josh@joshtriplett.org,
	mathieu.desnoyers@efficios.com, jiangshanlai@gmail.com,
	joel@joelfernandes.org, juri.lelli@redhat.com,
	vincent.guittot@linaro.org, dietmar.eggemann@arm.com,
	bsegall@google.com, mgorman@suse.de, bristot@redhat.com,
	vschneid@redhat.com, jpoimboe@kernel.org,
	linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-snps-arc@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org, linux-omap@vger.kernel.org,
	linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, openrisc@lists.librecores.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-um@lists.infradead.org, linux-perf-users@vger.kernel.org,
	virtualization@lists.linux-foundation.org,
	xen-devel@lists.xenproject.org, linux-xtensa@linux-xtensa.org,
	linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-clk@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-tegra@vger.kernel.org, linux-arch@vger.kernel.org,
	rcu@vger.kernel.org
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 12:39:05 +0000	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote = num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu = 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state @@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1

WARNING: multiple messages have this Message-ID (diff)
From: Tony Lindgren <tony@atomide.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: rth@twiddle.net, ink@jurassic.park.msu.ru, mattst88@gmail.com,
	vgupta@kernel.org, linux@armlinux.org.uk,
	ulli.kroll@googlemail.com, linus.walleij@linaro.org,
	shawnguo@kernel.org, Sascha Hauer <s.hauer@pengutronix.de>,
	kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com,
	khilman@kernel.org, catalin.marinas@arm.com, will@kernel.org,
	guoren@kernel.org, bcain@quicinc.com, chenhuacai@kernel.org,
	kernel@xen0n.name, geert@linux-m68k.org, sammy@sammy.net,
	monstr@monstr.eu, tsbogend@alpha.franken.de, dinguyen@kernel.org,
	jonas@southpole.se, stefan.kristiansson@saunalahti.fi,
	shorne@gmail.com, James.Bottomley@hansenpartnership.com,
	deller@gmx.de, mpe@ellerman.id.au, benh@kernel.crashing.org,
	paulus@samba.org, paul.walmsley@sifive.com, palmer@dabbelt.com,
	aou@eecs.berkeley.edu, hca@linux.ibm.com, gor@linux.ibm.com,
	agordeev@linux.ibm.com, borntraeger@linux.ibm.com,
Subject: [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower()
Date: Mon, 13 Jun 2022 15:39:05 +0300	[thread overview]
Message-ID: <Yqcv6crSNKuSWoTu@atomide.com> (raw)
In-Reply-To: <20220608144518.073801916@infradead.org>

OMAP4 uses full SoC suspend modes as idle states, as such it needs the
whole power-domain and clock-domain code from the idle path.

All that code is not suitable to run with RCU disabled, as such push
RCU-idle deeper still.

Signed-off-by: Tony Lindgren <tony@atomide.com>
---

Peter here's one more for your series, looks like this is needed to avoid
warnings similar to what you did for omap3.

---
 arch/arm/mach-omap2/common.h              |  6 ++++--
 arch/arm/mach-omap2/cpuidle44xx.c         |  8 ++------
 arch/arm/mach-omap2/omap-mpuss-lowpower.c | 12 +++++++++++-
 arch/arm/mach-omap2/pm44xx.c              |  2 +-
 4 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h
--- a/arch/arm/mach-omap2/common.h
+++ b/arch/arm/mach-omap2/common.h
@@ -284,11 +284,13 @@ extern u32 omap4_get_cpu1_ns_pa_addr(void);
 
 #if defined(CONFIG_SMP) && defined(CONFIG_PM)
 extern int omap4_mpuss_init(void);
-extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state);
+extern int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+				bool rcuidle);
 extern int omap4_hotplug_cpu(unsigned int cpu, unsigned int power_state);
 #else
 static inline int omap4_enter_lowpower(unsigned int cpu,
-					unsigned int power_state)
+					unsigned int power_state,
+					bool rcuidle)
 {
 	cpu_do_idle();
 	return 0;
diff --git a/arch/arm/mach-omap2/cpuidle44xx.c b/arch/arm/mach-omap2/cpuidle44xx.c
--- a/arch/arm/mach-omap2/cpuidle44xx.c
+++ b/arch/arm/mach-omap2/cpuidle44xx.c
@@ -105,9 +105,7 @@ static int omap_enter_idle_smp(struct cpuidle_device *dev,
 	}
 	raw_spin_unlock_irqrestore(&mpu_lock, flag);
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
-	cpuidle_rcu_exit();
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 
 	raw_spin_lock_irqsave(&mpu_lock, flag);
 	if (cx->mpu_state_vote == num_online_cpus())
@@ -186,10 +184,8 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
 		}
 	}
 
-	cpuidle_rcu_enter();
-	omap4_enter_lowpower(dev->cpu, cx->cpu_state);
+	omap4_enter_lowpower(dev->cpu, cx->cpu_state, true);
 	cpu_done[dev->cpu] = true;
-	cpuidle_rcu_exit();
 
 	/* Wakeup CPU1 only if it is not offlined */
 	if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
--- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
+++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
@@ -33,6 +33,7 @@
  * and first to wake-up when MPUSS low power states are excercised
  */
 
+#include <linux/cpuidle.h>
 #include <linux/kernel.h>
 #include <linux/io.h>
 #include <linux/errno.h>
@@ -214,6 +215,7 @@ static void __init save_l2x0_context(void)
  * of OMAP4 MPUSS subsystem
  * @cpu : CPU ID
  * @power_state: Low power state.
+ * @rcuidle: RCU needs to be idled
  *
  * MPUSS states for the context save:
  * save_state =
@@ -222,7 +224,8 @@ static void __init save_l2x0_context(void)
  *	2 - CPUx L1 and logic lost + GIC lost: MPUSS OSWR
  *	3 - CPUx L1 and logic lost + GIC + L2 lost: DEVICE OFF
  */
-int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
+int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state,
+			 bool rcuidle)
 {
 	struct omap4_cpu_pm_info *pm_info = &per_cpu(omap4_pm_info, cpu);
 	unsigned int save_state = 0, cpu_logic_state = PWRDM_POWER_RET;
@@ -268,6 +271,10 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	cpu_clear_prev_logic_pwrst(cpu);
 	pwrdm_set_next_pwrst(pm_info->pwrdm, power_state);
 	pwrdm_set_logic_retst(pm_info->pwrdm, cpu_logic_state);
+
+	if (rcuidle)
+		cpuidle_rcu_enter();
+
 	set_cpu_wakeup_addr(cpu, __pa_symbol(omap_pm_ops.resume));
 	omap_pm_ops.scu_prepare(cpu, power_state);
 	l2x0_pwrst_prepare(cpu, save_state);
@@ -283,6 +290,9 @@ int omap4_enter_lowpower(unsigned int cpu, unsigned int power_state)
 	if (IS_PM44XX_ERRATUM(PM_OMAP4_ROM_SMP_BOOT_ERRATUM_GICD) && cpu)
 		gic_dist_enable();
 
+	if (rcuidle)
+		cpuidle_rcu_exit();
+
 	/*
 	 * Restore the CPUx power state to ON otherwise CPUx
 	 * power domain can transitions to programmed low power
diff --git a/arch/arm/mach-omap2/pm44xx.c b/arch/arm/mach-omap2/pm44xx.c
--- a/arch/arm/mach-omap2/pm44xx.c
+++ b/arch/arm/mach-omap2/pm44xx.c
@@ -76,7 +76,7 @@ static int omap4_pm_suspend(void)
 	 * domain CSWR is not supported by hardware.
 	 * More details can be found in OMAP4430 TRM section 4.3.4.2.
 	 */
-	omap4_enter_lowpower(cpu_id, cpu_suspend_state);
+	omap4_enter_lowpower(cpu_id, cpu_suspend_state, false);
 
 	/* Restore next powerdomain state */
 	list_for_each_entry(pwrst, &pwrst_list, node) {
-- 
2.36.1


  parent reply	other threads:[~2022-06-13 12:39 UTC|newest]

Thread overview: 820+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-08 14:27 [PATCH 00/36] cpuidle,rcu: Cleanup the mess Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 01/36] x86/perf/amd: Remove tracing from perf_lopwr_cb() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 02/36] x86/idle: Replace x86_idle with a static_call Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 18:13   ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 18:13     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 03/36] cpuidle/poll: Ensure IRQ state is invariant Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-07-06 13:51   ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-07-06 13:51     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 04/36] cpuidle,intel_idle: Fix CPUIDLE_FLAG_IRQ_ENABLE Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 15:01   ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:01     ` Rafael J. Wysocki
2022-06-08 15:48     ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 15:48       ` Peter Zijlstra
2022-06-08 16:08       ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-08 16:08         ` Rafael J. Wysocki
2022-06-09 23:49   ` Jacob Pan
2022-06-09 23:49     ` Jacob Pan
2022-06-09 23:49     ` Jacob Pan
2022-06-09 23:49     ` Jacob Pan
2022-06-09 23:49     ` Jacob Pan
2022-06-09 23:49     ` Jacob Pan
2022-06-09 23:49     ` Jacob Pan
2022-06-13  8:44     ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-13  8:44       ` Peter Zijlstra
2022-06-16 21:26       ` Jacob Pan
2022-06-16 21:26         ` Jacob Pan
2022-06-16 21:26         ` Jacob Pan
2022-06-16 21:26         ` Jacob Pan
2022-06-16 21:26         ` Jacob Pan
2022-06-16 21:26         ` Jacob Pan
2022-06-16 21:26         ` Jacob Pan
2022-07-25 19:43   ` Michel Lespinasse
2022-07-25 19:43     ` Michel Lespinasse
2022-07-25 19:43     ` Michel Lespinasse
2022-07-25 19:43     ` Michel Lespinasse
2022-07-25 19:43     ` Michel Lespinasse
2022-07-25 19:43     ` Michel Lespinasse
2022-07-25 19:43     ` Michel Lespinasse
2022-07-28 17:20     ` Paul E. McKenney
2022-07-28 17:20       ` Paul E. McKenney
2022-07-28 17:20       ` Paul E. McKenney
2022-07-28 17:20       ` Paul E. McKenney
2022-07-28 17:20       ` Paul E. McKenney
2022-07-28 17:20       ` Paul E. McKenney
2022-07-28 17:20       ` Paul E. McKenney
2022-07-29 10:24       ` Michel Lespinasse
2022-07-29 10:24         ` Michel Lespinasse
2022-07-29 10:24         ` Michel Lespinasse
2022-07-29 10:24         ` Michel Lespinasse
2022-07-29 10:24         ` Michel Lespinasse
2022-07-29 10:24         ` Michel Lespinasse
2022-07-29 10:24         ` Michel Lespinasse
2022-07-29 14:59         ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-29 14:59           ` Rafael J. Wysocki
2022-07-30  9:48           ` Michel Lespinasse
2022-07-30  9:48             ` Michel Lespinasse
2022-07-30  9:48             ` Michel Lespinasse
2022-07-30  9:48             ` Michel Lespinasse
2022-07-30  9:48             ` Michel Lespinasse
2022-07-30  9:48             ` Michel Lespinasse
2022-07-30  9:48             ` Michel Lespinasse
2022-07-30 19:52             ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 19:52               ` Rafael J. Wysocki
2022-07-30 23:45               ` Michel Lespinasse
2022-07-30 23:45                 ` Michel Lespinasse
2022-07-30 23:45                 ` Michel Lespinasse
2022-07-30 23:45                 ` Michel Lespinasse
2022-07-30 23:45                 ` Michel Lespinasse
2022-07-30 23:45                 ` Michel Lespinasse
2022-07-30 23:45                 ` Michel Lespinasse
2022-07-29 15:26         ` Paul E. McKenney
2022-07-29 15:26           ` Paul E. McKenney
2022-07-29 15:26           ` Paul E. McKenney
2022-07-29 15:26           ` Paul E. McKenney
2022-07-29 15:26           ` Paul E. McKenney
2022-07-29 15:26           ` Paul E. McKenney
2022-07-29 15:26           ` Paul E. McKenney
2022-07-29 15:28           ` Paul E. McKenney
2022-07-29 15:28             ` Paul E. McKenney
2022-07-29 15:28             ` Paul E. McKenney
2022-07-29 15:28             ` Paul E. McKenney
2022-07-29 15:28             ` Paul E. McKenney
2022-07-29 15:28             ` Paul E. McKenney
2022-07-29 15:28             ` Paul E. McKenney
2022-07-30  9:40           ` Michel Lespinasse
2022-07-30  9:40             ` Michel Lespinasse
2022-07-30  9:40             ` Michel Lespinasse
2022-07-30  9:40             ` Michel Lespinasse
2022-07-30  9:40             ` Michel Lespinasse
2022-07-30  9:40             ` Michel Lespinasse
2022-07-30  9:40             ` Michel Lespinasse
2022-07-30 18:16             ` Paul E. McKenney
2022-07-30 18:16               ` Paul E. McKenney
2022-07-30 18:16               ` Paul E. McKenney
2022-07-30 18:16               ` Paul E. McKenney
2022-07-30 18:16               ` Paul E. McKenney
2022-07-30 18:16               ` Paul E. McKenney
2022-07-30 18:16               ` Paul E. McKenney
2022-06-08 14:27 ` [PATCH 05/36] cpuidle: Move IRQ state validation Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-07-06 13:54   ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-07-06 13:54     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 06/36] cpuidle,riscv: Push RCU-idle into driver Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 07/36] cpuidle,tegra: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 08/36] cpuidle,psci: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 09/36] cpuidle,imx6: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 10/36] cpuidle,omap3: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-13 12:33   ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-08 14:27 ` [PATCH 11/36] cpuidle,armada: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 12/36] cpuidle,omap2: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-13 12:33   ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-13 12:33     ` Tony Lindgren
2022-06-08 14:27 ` [PATCH 13/36] cpuidle,dt: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 14/36] cpuidle: Fix rcu_idle_*() usage Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-14 12:41   ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 12:41     ` Mark Rutland
2022-06-14 16:40     ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:40       ` Peter Zijlstra
2022-06-14 16:59       ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-06-14 16:59         ` Mark Rutland
2022-07-26  9:55   ` Gautham R. Shenoy
2022-07-26  9:56     ` Gautham R. Shenoy
2022-07-26  9:56     ` Gautham R. Shenoy
2022-07-26  9:56     ` Gautham R. Shenoy
2022-07-26  9:56     ` Gautham R. Shenoy
2022-07-26  9:56     ` Gautham R. Shenoy
2022-07-26  9:56     ` Gautham R. Shenoy
2022-06-08 14:27 ` [PATCH 15/36] cpuidle,cpu_pm: Remove RCU fiddling from cpu_pm_{enter,exit}() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` [PATCH 15/36] cpuidle, cpu_pm: Remove RCU fiddling from cpu_pm_{enter, exit}() Peter Zijlstra
2022-06-08 14:27   ` [PATCH 15/36] cpuidle,cpu_pm: Remove RCU fiddling from cpu_pm_{enter,exit}() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` [PATCH 15/36] cpuidle, cpu_pm: Remove RCU fiddling from cpu_pm_{enter, exit}() Peter Zijlstra
2022-06-14 16:13   ` [PATCH 15/36] cpuidle,cpu_pm: Remove RCU fiddling from cpu_pm_{enter,exit}() Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:13     ` Mark Rutland
2022-06-14 16:42     ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:42       ` Peter Zijlstra
2022-06-14 16:53       ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-14 16:53         ` Mark Rutland
2022-06-08 14:27 ` [PATCH 16/36] rcu: Fix rcu_idle_exit() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-14 16:14   ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-14 16:14     ` Mark Rutland
2022-06-15  0:44   ` Paul E. McKenney
2022-06-15  0:44     ` Paul E. McKenney
2022-06-15  0:44     ` Paul E. McKenney
2022-06-15  0:44     ` Paul E. McKenney
2022-06-15  0:44     ` Paul E. McKenney
2022-06-15  0:44     ` Paul E. McKenney
2022-06-15  0:44     ` Paul E. McKenney
2022-06-08 14:27 ` [PATCH 17/36] acpi_idle: Remove tracing Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-07-06 13:59   ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-07-06 13:59     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 18/36] cpuidle: Annotate poll_idle() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-07-06 13:59   ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-07-06 14:00     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 19/36] objtool/idle: Validate __cpuidle code as noinstr Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-07-06  9:46   ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-07-06  9:46     ` Geert Uytterhoeven
2022-06-08 14:27 ` [PATCH 20/36] arch/idle: Change arch_cpu_idle() IRQ behaviour Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 16:22   ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-08 16:22     ` Arnd Bergmann
2022-06-14 16:22   ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-06-14 16:22     ` Mark Rutland
2022-07-06 14:02   ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-07-06 14:02     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 21/36] x86/tdx: Remove TDX_HCALL_ISSUE_STI Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-13  8:26   ` Lai Jiangshan
2022-06-13  8:26     ` Lai Jiangshan
2022-06-13  8:26     ` Lai Jiangshan
2022-06-13  8:26     ` Lai Jiangshan
2022-06-13  8:26     ` Lai Jiangshan
2022-06-13  8:26     ` Lai Jiangshan
2022-06-13  8:26     ` Lai Jiangshan
2022-06-13  8:41     ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-13  8:41       ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 22/36] arm,smp: Remove trace_.*_rcuidle() usage Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 23/36] arm64,smp: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-14 16:24   ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-14 16:24     ` Mark Rutland
2022-06-15  6:05     ` Marc Zyngier
2022-06-15  6:05       ` Marc Zyngier
2022-06-15  6:05       ` Marc Zyngier
2022-06-15  6:05       ` Marc Zyngier
2022-06-15  6:05       ` Marc Zyngier
2022-06-15  6:05       ` Marc Zyngier
2022-06-15  6:05       ` Marc Zyngier
2022-06-08 14:27 ` [PATCH 24/36] printk: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-09  9:16   ` Petr Mladek
2022-06-09  9:16     ` Petr Mladek
2022-06-09  9:16     ` Petr Mladek
2022-06-09  9:16     ` Petr Mladek
2022-06-09  9:16     ` Petr Mladek
2022-06-09  9:16     ` Petr Mladek via Virtualization
2022-06-09 10:02     ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 10:02       ` Peter Zijlstra
2022-06-09 11:30       ` Sergey Senozhatsky
2022-06-09 11:30         ` Sergey Senozhatsky
2022-06-09 11:30         ` Sergey Senozhatsky
2022-06-09 11:30         ` Sergey Senozhatsky
2022-06-09 11:30         ` Sergey Senozhatsky
2022-06-09 11:30         ` Sergey Senozhatsky
2022-06-09 11:30         ` Sergey Senozhatsky
2022-06-09 13:02         ` Petr Mladek
2022-06-09 13:02           ` Petr Mladek
2022-06-09 13:02           ` Petr Mladek
2022-06-09 13:02           ` Petr Mladek
2022-06-09 13:02           ` Petr Mladek
2022-06-09 13:02           ` Petr Mladek
2022-06-09 13:02           ` Petr Mladek via Virtualization
2022-06-09 13:02           ` Petr Mladek
2022-06-11  2:33           ` Sergey Senozhatsky
2022-06-11  2:33             ` Sergey Senozhatsky
2022-06-11  2:33             ` Sergey Senozhatsky
2022-06-11  2:33             ` Sergey Senozhatsky
2022-06-11  2:33             ` Sergey Senozhatsky
2022-06-11  2:33             ` Sergey Senozhatsky
2022-06-11  2:33             ` Sergey Senozhatsky
2022-06-14 14:37           ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-14 14:37             ` Steven Rostedt
2022-06-09 13:06       ` Petr Mladek
2022-06-09 13:06         ` Petr Mladek
2022-06-09 13:06         ` Petr Mladek
2022-06-09 13:06         ` Petr Mladek
2022-06-09 13:06         ` Petr Mladek
2022-06-09 13:06         ` Petr Mladek
2022-06-09 13:06         ` Petr Mladek via Virtualization
2022-06-09 13:06         ` Petr Mladek
2022-06-11  2:23         ` Sergey Senozhatsky
2022-06-11  2:23           ` Sergey Senozhatsky
2022-06-11  2:23           ` Sergey Senozhatsky
2022-06-11  2:23           ` Sergey Senozhatsky
2022-06-11  2:23           ` Sergey Senozhatsky
2022-06-11  2:23           ` Sergey Senozhatsky
2022-06-11  2:23           ` Sergey Senozhatsky
2022-06-09 10:14   ` Petr Mladek
2022-06-09 10:14     ` Petr Mladek
2022-06-09 10:14     ` Petr Mladek
2022-06-09 10:14     ` Petr Mladek
2022-06-09 10:14     ` Petr Mladek
2022-06-09 10:14     ` Petr Mladek via Virtualization
2022-06-08 14:27 ` [PATCH 25/36] time/tick-broadcast: Remove RCU_NONIDLE usage Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-14 16:28   ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-14 16:28     ` Mark Rutland
2022-06-08 14:27 ` [PATCH 26/36] cpuidle,sched: Remove annotations from TIF_{POLLING_NRFLAG,NEED_RESCHED} Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` [PATCH 26/36] cpuidle, sched: Remove annotations from TIF_{POLLING_NRFLAG, NEED_RESCHED} Peter Zijlstra
2022-06-08 14:27   ` [PATCH 26/36] cpuidle,sched: Remove annotations from TIF_{POLLING_NRFLAG,NEED_RESCHED} Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` [PATCH 26/36] cpuidle, sched: Remove annotations from TIF_{POLLING_NRFLAG, NEED_RESCHED} Peter Zijlstra
2022-06-08 14:27 ` [PATCH 27/36] cpuidle,mwait: Make noinstr clean Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 28/36] cpuidle,tdx: Make tdx " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 29/36] cpuidle,xenpv: Make more PARAVIRT_XXL " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-13 18:48   ` Srivatsa S. Bhat
2022-06-13 18:48     ` [PATCH 29/36] cpuidle, xenpv: " Srivatsa S. Bhat
2022-06-13 18:48     ` [PATCH 29/36] cpuidle,xenpv: " Srivatsa S. Bhat
2022-06-13 18:48     ` Srivatsa S. Bhat
2022-06-13 18:48     ` [PATCH 29/36] cpuidle, xenpv: " Srivatsa S. Bhat
2022-06-13 18:48     ` [PATCH 29/36] cpuidle,xenpv: " Srivatsa S. Bhat
2022-06-13 18:48     ` Srivatsa S. Bhat
2022-06-13 18:48     ` [PATCH 29/36] cpuidle, xenpv: " Srivatsa S. Bhat
2022-06-13 19:23     ` [Pv-drivers] " Nadav Amit
2022-06-13 19:23       ` Nadav Amit via Virtualization
2022-06-13 19:23       ` Nadav Amit
2022-06-13 19:23       ` Nadav Amit
2022-06-13 19:23       ` Nadav Amit
2022-06-13 19:23       ` Nadav Amit
2022-06-13 19:23       ` Nadav Amit
2022-06-13 19:23       ` Nadav Amit
2022-06-13 19:23       ` Nadav Amit via Virtualization
2022-06-14 16:44       ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-14 16:44         ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 30/36] cpuidle,nospec: Make " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 31/36] cpuidle,acpi: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-07-06 14:04   ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-07-06 14:04     ` Rafael J. Wysocki
2022-06-08 14:27 ` [PATCH 32/36] ftrace: WARN on rcuidle Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 33/36] cpuidle,omap3: Use WFI for omap3_pm_idle() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 16:28   ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-08 16:28     ` Arnd Bergmann
2022-06-09  7:39     ` Tony Lindgren
2022-06-09  7:39       ` Tony Lindgren
2022-06-09  7:39       ` Tony Lindgren
2022-06-09  7:39       ` Tony Lindgren
2022-06-09  7:39       ` Tony Lindgren
2022-06-09  7:39       ` Tony Lindgren
2022-06-09  7:39       ` Tony Lindgren
2022-06-09  9:47       ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:47         ` Peter Zijlstra
2022-06-09  9:40     ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-09  9:40       ` Peter Zijlstra
2022-06-13 12:36   ` Tony Lindgren
2022-06-13 12:36     ` Tony Lindgren
2022-06-13 12:36     ` Tony Lindgren
2022-06-13 12:36     ` Tony Lindgren
2022-06-13 12:36     ` Tony Lindgren
2022-06-13 12:36     ` Tony Lindgren
2022-06-13 12:36     ` Tony Lindgren
2022-06-08 14:27 ` [PATCH 34/36] cpuidle,omap3: Push RCU-idle into omap_sram_idle() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 15:04   ` Peter Zijlstra
2022-06-08 15:04     ` Peter Zijlstra
2022-06-08 15:04     ` Peter Zijlstra
2022-06-08 15:04     ` Peter Zijlstra
2022-06-08 15:04     ` Peter Zijlstra
2022-06-13 12:35     ` Tony Lindgren
2022-06-13 12:35       ` Tony Lindgren
2022-06-13 12:35       ` Tony Lindgren
2022-06-13 12:35       ` Tony Lindgren
2022-06-13 12:35       ` Tony Lindgren
2022-06-13 12:35       ` Tony Lindgren
2022-06-13 12:35       ` Tony Lindgren
2022-06-08 15:04   ` Peter Zijlstra
2022-06-08 15:04   ` Peter Zijlstra
2022-06-13 12:39   ` Tony Lindgren [this message]
2022-06-13 12:39     ` [PATCH 34.5/36] cpuidle,omap4: Push RCU-idle into omap4_enter_lowpower() Tony Lindgren
2022-06-13 12:39     ` Tony Lindgren
2022-06-13 12:39     ` Tony Lindgren
2022-06-13 12:39     ` Tony Lindgren
2022-06-13 12:39     ` Tony Lindgren
2022-06-13 12:39     ` Tony Lindgren
2022-06-14 22:12     ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-14 22:12       ` Peter Zijlstra
2022-06-15  5:35       ` Tony Lindgren
2022-06-15  5:35         ` Tony Lindgren
2022-06-15  5:35         ` Tony Lindgren
2022-06-15  5:35         ` Tony Lindgren
2022-06-15  5:35         ` Tony Lindgren
2022-06-15  5:35         ` Tony Lindgren
2022-06-15  5:35         ` Tony Lindgren
2023-01-13 12:31     ` [tip: sched/core] cpuidle, OMAP4: " tip-bot2 for Tony Lindgren
2022-06-08 14:27 ` [PATCH 35/36] cpuidle,powerdomain: Remove trace_.*_rcuidle() Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27 ` [PATCH 36/36] cpuidle,clk: " Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 14:27   ` Peter Zijlstra
2022-06-08 20:03   ` Stephen Boyd
2022-06-08 20:03     ` Stephen Boyd
2022-06-08 20:03     ` Stephen Boyd
2022-06-08 20:03     ` Stephen Boyd
2022-06-14 11:19 ` [PATCH 00/36] cpuidle,rcu: Cleanup the mess Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 11:19   ` Mark Rutland
2022-06-14 16:58   ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 16:58     ` Peter Zijlstra
2022-06-14 17:33     ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland
2022-06-14 17:33       ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yqcv6crSNKuSWoTu@atomide.com \
    --to=tony@atomide.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=acme@kernel.org \
    --cc=agordeev@linux.ibm.com \
    --cc=agross@kernel.org \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=amakhalov@vmware.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=anup@brainfault.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=arnd@arndb.de \
    --cc=bcain@quicinc.com \
    --cc=benh@kernel.crashing.org \
    --cc=bjorn.andersson@linaro.org \
    --cc=boris.ostrovsky@oracle.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=bp@alien8.de \
    --cc=bristot@redhat.com \
    --cc=bsegall@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=chenhuacai@kernel.org \
    --cc=chris@zankel.net \
    --cc=dalias@libc.org \
    --cc=daniel.lezcano@linaro.org \
    --cc=dave.hansen@linux.intel.com \
    --cc=davem@davemloft.net \
    --cc=deller@gmx.de \
    --cc=dietmar.eggemann@arm.com \
    --cc=dinguyen@kernel.org \
    --cc=festevam@gmail.com \
    --cc=frederic@kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=gor@linux.ibm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=guoren@kernel.org \
    --cc=hca@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=ink@jurassic.park.msu.ru \
    --cc=jacob.jun.pan@linux.intel.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=jgross@suse.com \
    --cc=jiangshanlai@gmail.com \
    --cc=joel@joelfernandes.org \
    --cc=johannes@sipsolutions.net \
    --cc=john.ogness@linutronix.de \
    --cc=jolsa@kernel.org \
    --cc=jonas@southpole.se \
    --cc=jonathanh@nvidia.com \
    --cc=josh@joshtriplett.org \
    --cc=jpoimboe@kernel.org \
    --cc=juri.lelli@redhat.com \
    --cc=kernel@pengutronix.de \
    --cc=kernel@xen0n.name \
    --cc=khilman@kernel.org \
    --cc=lenb@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-alpha@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@lists.linux-m68k.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=linux-xtensa@linux-xtensa.org \
    --cc=linux@armlinux.org.uk \
    --cc=linux@rasmusvillemoes.dk \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lpieralisi@kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mattst88@gmail.com \
    --cc=mgorman@suse.de \
    --cc=mingo@redhat.com \
    --cc=monstr@monstr.eu \
    --cc=mpe@ellerman.id.au \
    --cc=mturquette@baylibre.com \
    --cc=namhyung@kernel.org \
    --cc=openrisc@lists.librecores.org \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=paulmck@kernel.org \
    --cc=paulus@samba.org \
    --cc=pavel@ucw.cz \
    --cc=peterz@infradead.org \
    --cc=pmladek@suse.com \
    --cc=pv-drivers@vmware.com \
    --cc=quic_neeraju@quicinc.com \
    --cc=rafael@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=richard@nod.at \
    --cc=rostedt@goodmis.org \
    --cc=rth@twiddle.net \
    --cc=s.hauer@pengutronix.de \
    --cc=sammy@sammy.net \
    --cc=sboyd@kernel.org \
    --cc=senozhatsky@chromium.org \
    --cc=shawnguo@kernel.org \
    --cc=shorne@gmail.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=srivatsa@csail.mit.edu \
    --cc=stefan.kristiansson@saunalahti.fi \
    --cc=sudeep.holla@arm.com \
    --cc=svens@linux.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=thierry.reding@gmail.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=ulli.kroll@googlemail.com \
    --cc=vgupta@kernel.org \
    --cc=vincent.guittot@linaro.org \
    --cc=virtualization@lists.linux-foundation.org \
    --cc=vschneid@redhat.com \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=xen-devel@lists.xenproject.org \
    --cc=ysato@users.sourceforge.jp \
    --cc=yury.norov@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.