[HIRSUTE][linux-riscv][PATCH v2] UBUNTU: SAUCE: RISC-V: prevent sbi_send_cpumask_ipi race with ftrace

Dimitri John Ledkov dimitri.ledkov at canonical.com
Wed Aug 18 12:38:33 UTC 2021


On Tue, Aug 17, 2021 at 7:41 AM Andrea Righi <andrea.righi at canonical.com> wrote:
>
> On Wed, Aug 11, 2021 at 10:23:27AM +0100, Dimitri John Ledkov wrote:
> > From: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
> >
> > ftrace will patch instructions in sbi_send_cpumask_ipi, which is going to
> > be used by flush_icache_range, leading to potential races and crashes like
> > this:
> >
> > [    0.000000] ftrace: allocating 38893 entries in 152 pages
> > [    0.000000] Oops - illegal instruction [#1]
> > [    0.000000] Modules linked in:
> > [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.11.0-1014-generic #14-Ubuntu
> > [    0.000000] epc: ffffffe00000920e ra : ffffffe000009384 sp : ffffffe001803d30
> > [    0.000000]  gp : ffffffe001a14240 tp : ffffffe00180f440 t0 : ffffffe07fe38000
> > [    0.000000]  t1 : ffffffe0019cd338 t2 : 0000000000000000 s0 : ffffffe001803d70
> > [    0.000000]  s1 : 0000000000000000 a0 : ffffffe0000095aa a1 : 0000000000000001
> > [    0.000000]  a2 : 0000000000000002 a3 : 0000000000000000 a4 : 0000000000000000
> > [    0.000000]  a5 : 0000000000000000 a6 : 0000000000000004 a7 : 0000000052464e43
> > [    0.000000]  s2 : 0000000000000002 s3 : 0000000000000001 s4 : 0000000000000000
> > [    0.000000]  s5 : 0000000000000000 s6 : 0000000000000000 s7 : 0000000000000000
> > [    0.000000]  s8 : ffffffe001a170c0 s9 : 0000000000000001 s10: 0000000000000001
> > [    0.000000]  s11: 00000000fffcc5d0 t3 : 0000000000000068 t4 : 000000000000000b
> > [    0.000000]  t5 : ffffffe0019cd3e0 t6 : ffffffe001803cd8
> > [    0.000000] status: 0000000200000100 badaddr: 000000000513f187 cause: 0000000000000002
> > [    0.000000] ---[ end trace f67eb9af4d8d492b ]---
> > [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
> > [    0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]---
> >
> > Where ffffffe00000920e lies in the middle of sbi_send_cpumask_ipi.
> >
> > BugLink: https://bugs.launchpad.net/bugs/1934548
> > Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
> > Tested-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
> > Signed-off-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
> > ---
> >
> >  Patch can be applied to:
> >  - Unstable
> >  - Impish linux
> >  - Impish linux-riscv
> >  - Hirsute linux
> >  - Hirsute linux-riscv
> >  - Focal linux-riscv-5.11
> >
> >  Whichever are suitable for respins.
> >
> >  Changes since v1:
> >  - Added BugLink, Tested-By, SOB
>
> Is there a particular reason to apply this to linux-riscv, instead of
> just applying it to linux (linux-riscv would get it with the rebase)?
>

This is actually not needed for v5.12+ kernels. See my follow-up
patches that cherry pick fix from v5.12 that disables ftrace on all
functions from sbi.o
Hence this is not needed in any impish or unstable kernels.

It was applied against hirsute:linux-riscv only in the previous cycle,
to respin it alone without respinning anything else for the upcoming
point release.
-- 
Regards,

Dimitri.



More information about the kernel-team mailing list