diff mbox series

[2/2] arm64: smp: Don't directly call arch_smp_send_reschedule() for wakeup

Message ID 20231002094526.2.I2e6d22fc42ccbf6b26465a28a10e36e05ccf3075@changeid (mailing list archive)
State New, archived
Headers show
Series [1/2] arm64: smp: Fix pseudo NMI issues w/ broken Mediatek FW | expand

Commit Message

Doug Anderson Oct. 2, 2023, 4:45 p.m. UTC
In commit 2b2d0a7a96ab ("arm64: smp: Remove dedicated wakeup IPI") we
started using a scheduler IPI to avoid a dedicated reschedule. When we
did this, we used arch_smp_send_reschedule() directly rather than
calling smp_send_reschedule(). The only difference is that calling
arch_smp_send_reschedule() directly avoids tracing. Presumably we
_don't_ want to avoid tracing here, so switch to
smp_send_reschedule().

Fixes: 2b2d0a7a96ab ("arm64: smp: Remove dedicated wakeup IPI")
Signed-off-by: Douglas Anderson <dianders@chromium.org>
---
I don't 100% know if this is correct and I don't have any hardware
that uses the "ACPI parking protocol", but I think it's right. My main
incentive for this is that it makes it easier to backport pseudo-NMI
to kernels that don't have arch_smp_send_reschedule(), but I think
it's also more correct.

If for some reason we truly did want to avoid tracing here, please
shout and we can drop this patch.

 arch/arm64/kernel/smp.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Rutland Oct. 2, 2023, 5:25 p.m. UTC | #1
On Mon, Oct 02, 2023 at 09:45:30AM -0700, Douglas Anderson wrote:
> In commit 2b2d0a7a96ab ("arm64: smp: Remove dedicated wakeup IPI") we
> started using a scheduler IPI to avoid a dedicated reschedule. When we
> did this, we used arch_smp_send_reschedule() directly rather than
> calling smp_send_reschedule(). The only difference is that calling
> arch_smp_send_reschedule() directly avoids tracing. Presumably we
> _don't_ want to avoid tracing here, so switch to
> smp_send_reschedule().
> 
> Fixes: 2b2d0a7a96ab ("arm64: smp: Remove dedicated wakeup IPI")
> Signed-off-by: Douglas Anderson <dianders@chromium.org>
> ---
> I don't 100% know if this is correct and I don't have any hardware
> that uses the "ACPI parking protocol", but I think it's right. My main
> incentive for this is that it makes it easier to backport pseudo-NMI
> to kernels that don't have arch_smp_send_reschedule(), but I think
> it's also more correct.
> 
> If for some reason we truly did want to avoid tracing here, please
> shout and we can drop this patch.

This should be sound, and I don't have strong feelings either way on this, so
FWIW:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.

> 
>  arch/arm64/kernel/smp.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
> index 0a6002243a8c..b530d8ef9c1d 100644
> --- a/arch/arm64/kernel/smp.c
> +++ b/arch/arm64/kernel/smp.c
> @@ -1063,7 +1063,7 @@ void arch_send_wakeup_ipi(unsigned int cpu)
>  	 * We use a scheduler IPI to wake the CPU as this avoids the need for a
>  	 * dedicated IPI and we can safely handle spurious scheduler IPIs.
>  	 */
> -	arch_smp_send_reschedule(cpu);
> +	smp_send_reschedule(cpu);
>  }
>  #endif
>  
> -- 
> 2.42.0.582.g8ccd20d70d-goog
>
diff mbox series

Patch

diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 0a6002243a8c..b530d8ef9c1d 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -1063,7 +1063,7 @@  void arch_send_wakeup_ipi(unsigned int cpu)
 	 * We use a scheduler IPI to wake the CPU as this avoids the need for a
 	 * dedicated IPI and we can safely handle spurious scheduler IPIs.
 	 */
-	arch_smp_send_reschedule(cpu);
+	smp_send_reschedule(cpu);
 }
 #endif