On Sat, 2021-03-20 at 09:18 +0100, Mike Galbraith wrote: > On Fri, 2021-03-19 at 23:33 +0100, Sebastian Andrzej Siewior wrote: > > Dear RT folks! > > > > I'm pleased to announce the v5.12-rc3-rt3 patch set. > > My little rpi4b is fairly unhappy with 5.12-rt, whereas 5.11-rt works > fine on it. The below spew is endless, making boot endless. I turned > it into a WARN_ON_ONCE to see if the thing would finish boot, and > surprisingly, it seems perfectly fine with that bad idea. Having not > the foggiest clue what I'm doing down in arm arch-land, bug is in no > immediate danger :) Actually, it looks like a defenseless little buglet, and this gripe simply wants to be disabled for RT. arm64: disable arch_faults_on_old_pte() preemptible() warning for RT arch_faults_on_old_pte() was never called in < 5.12-rt, but 5.12 added arch_wants_old_prefaulted_pte(), which is a wrapper thereof, and thus finish_fault() -> do_set_pte() -> arch_wants_old_prefaulted_pte() now calls it, in preemptible context, and a flood of complaints ensues. Kill it for RT. Signed-off-by: Mike Galbraith <efault@xxxxxx> --- arch/arm64/include/asm/pgtable.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -979,7 +979,7 @@ static inline void update_mmu_cache(stru */ static inline bool arch_faults_on_old_pte(void) { - WARN_ON(preemptible()); + WARN_ON(!IS_ENABLED(CONFIG_PREEMPT_RT) && preemptible()); return !cpu_has_hw_af(); } > > [ 2.216913] WARNING: CPU: 0 PID: 1 at arch/arm64/include/asm/pgtable.h:982 do_set_pte+0x1cc/0x1d4 > [ 2.216949] Modules linked in: > [ 2.216961] CPU: 0 PID: 1 Comm: init Not tainted 5.12.0.g425ed5a-v8-rt #33 > [ 2.216973] Hardware name: Raspberry Pi 4 Model B Rev 1.4 (DT) > [ 2.216979] pstate: 20000005 (nzCv daif -PAN -UAO -TCO BTYPE=--) > [ 2.216990] pc : do_set_pte+0x1cc/0x1d4 > [ 2.217004] lr : filemap_map_pages+0x178/0x380 > [ 2.217016] sp : ffffffc01153bbb0 > [ 2.217020] x29: ffffffc01153bbb0 x28: fffffffe07d93080 > [ 2.217033] x27: 0000000000000000 x26: ffffff8101c9e000 > [ 2.217044] x25: ffffff8101b40fd8 x24: 0000000000000000 > [ 2.217054] x23: ffffff8101674170 x22: 0000007fb1b4b000 > [ 2.217064] x21: fffffffe07d93080 x20: ffffffc01153bcf0 > [ 2.217073] x19: 00200001f64c2fc3 x18: 0000000000000000 > [ 2.217082] x17: 0000000000000000 x16: 0000000000000000 > [ 2.217091] x15: 0000000000000000 x14: 0000000000000000 > [ 2.217100] x13: 0000000000000000 x12: 0000000000000000 > [ 2.217108] x11: 0000000000000000 x10: 0000000000000000 > [ 2.217117] x9 : ffffffc010209068 x8 : 000000000000000f > [ 2.217126] x7 : ffffff8101e87c68 x6 : fffffffe00000000 > [ 2.217135] x5 : 0000000000101e8b x4 : ffffff8101e880a8 > [ 2.217144] x3 : 0020000000000fc3 x2 : 0000000000000000 > [ 2.217153] x1 : 0000000000000000 x0 : 0000000000000000 > [ 2.217162] Call trace: > [ 2.217166] do_set_pte+0x1cc/0x1d4 > [ 2.217181] filemap_map_pages+0x178/0x380 > [ 2.217189] __handle_mm_fault+0x75c/0x930 > [ 2.217202] handle_mm_fault+0x178/0x25c > [ 2.217214] do_page_fault+0x16c/0x470 > [ 2.217233] do_translation_fault+0xbc/0xd8 > [ 2.217244] do_mem_abort+0x4c/0xbc > [ 2.217259] el0_ia+0x68/0xcc > [ 2.217272] el0_sync_handler+0x180/0x1b0 > [ 2.217284] el0_sync+0x170/0x180