https://bugzilla.kernel.org/show_bug.cgi?id=212631
Bug ID: 212631 Summary: Misaligned floating point loads and store occasionally fail Product: Platform Specific/Hardware Version: 2.5 Kernel Version: 5.4.110 Hardware: All OS: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: PPC-32 Assignee: platform_ppc...@kernel-bugs.osdl.org Reporter: trevor_davenp...@selinc.com Regression: No Created attachment 296311 --> https://bugzilla.kernel.org/attachment.cgi?id=296311&action=edit Floating point load test program On a 32-bit PPC, e300c1 CPU, I am occasionally seeing misaligned floating point loads/store occasionally fail. It appears to happen when a process is preempted. Reducing preemption cause the issue to be fare less likely to occur. When it fails(in the load case), I've traced it down to do_fp_load. It fails when it takes the false branch while it works when taking the true branch (see https://elixir.bootlin.com/linux/v5.4.110/source/arch/powerpc/lib/sstep.c#L492). The issue was originally seen on a preempt-rt kernel, but it can be reproduced on a regular kernel compiled for low latency desktop as well. The issue can be reproduced with the attached program which just performs an unaligned FP load. Eventually it will produce a zero and exit. Example output: 11326b98 22453191 3357f78a 446abd71 557d70b6 11326b98 22453191 3357f78a 446abd71 557d70b6 11326b98 22453191 3357f78a 00000000 float-bug: float-bug.c:14: main: Assertion `b[0] != 00' failed. This has been compiled with gcc 9.3.0. -- You may reply to this email to add a comment. You are receiving this mail because: You are watching the assignee of the bug.