lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 21 Mar 2021 08:46:56 +0100
From:   Mike Galbraith <efault@....de>
To:     Sebastian Andrzej Siewior <bigeasy@...utronix.de>,
        Thomas Gleixner <tglx@...utronix.de>
Cc:     LKML <linux-kernel@...r.kernel.org>,
        linux-rt-users <linux-rt-users@...r.kernel.org>,
        Steven Rostedt <rostedt@...dmis.org>
Subject: Re: [ANNOUNCE] v5.12-rc3-rt3

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@....de>
---
 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ