Bug 121404 - CONFIG_DEBUG_SLAB causes PPC32 SIGFPE
Product: Fedora
Classification: Fedora
Component: kernel (Show other bugs)
powerpc Linux
medium Severity medium
: ---
: ---
Assigned To: Arjan van de Ven
Brian Brock
Depends On:
Blocks: fedora-ppc
  Show dependency treegraph
Reported: 2004-04-21 02:28 EDT by David Woodhouse
Modified: 2007-11-30 17:10 EST (History)
0 users

See Also:
Fixed In Version: 2.6.5-1.344
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2004-04-30 12:14:55 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)
Patch to initialise tsk->thread.fpexc_mode (341 bytes, text/plain)
2004-04-21 18:10 EDT, David Woodhouse
no flags Details
Patch to set ARCH_MIN_TASKALIGN (321 bytes, text/plain)
2004-04-21 22:11 EDT, David Woodhouse
no flags Details

  None (edit)
Description David Woodhouse 2004-04-21 02:28:55 EDT
CONFIG_DEBUG_SLAB causes random SIGFPE to occur in FP-using processes.
Comment 1 David Woodhouse 2004-04-21 17:34:06 EDT
Some debugging (in ProgramCheckException()) gives:

SIGFPE fpscr ea0a420b code 30006 ip eac37f0 msr 10d032
SIGFPE fpscr ea0a420b code 30006 ip f351718 msr 10d032
SIGFPE fpscr ee0a460f code 30006 ip e79e2bc msr 210d032
SIGFPE fpscr ea0a420b code 30006 ip f47b578 msr 210d032
SIGFPE fpscr ee0a460f code 30006 ip f51fc50 msr 210d032
SIGFPE fpscr ea0a420b code 30006 ip eed2474 msr 10d032

In each case, we take a SIGFPE with code FPE_FLTRES, because the
FPSCR_XX bit is set and unmasked. Looks like fpscr isn't being
initialised correctly?
Comment 2 David Woodhouse 2004-04-21 18:10:33 EDT
Created attachment 99614 [details]
Patch to initialise tsk->thread.fpexc_mode

This fixes it but is probably the wrong thing to do since we won't now inherit
from our parent. Instead, we should set it correctly for the init task at boot
Comment 3 David Woodhouse 2004-04-21 18:39:34 EDT
That patch seems to just work around the problem by disabling
exceptions. There's still other strangeness.
Comment 4 David Woodhouse 2004-04-21 22:11:06 EDT
Created attachment 99623 [details]

This is the real fix -- ensure the task_struct remains aligned to 16 bytes even
when redzoning is enabled.

Note You need to log in before you can comment on or make changes to this bug.