[Bug 212631] New: Misaligned floating point loads and store occasionally fail
bugzilla-daemon at bugzilla.kernel.org
bugzilla-daemon at bugzilla.kernel.org
Sat Apr 10 01:34:24 AEST 2021
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-32 at kernel-bugs.osdl.org
Reporter: trevor_davenport at 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.
More information about the Linuxppc-dev
mailing list