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 |
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 --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
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(-)