Red Hat Bugzilla – Bug 125900
[PATCH] CAN-2004-0554: FPU exception handling local DoS
Last modified: 2007-11-30 17:10:44 EST
Description of problem:
Since June 11, 2004 there's a crash code for the Linux kernel 2.4.x
and 2.6.x available, freezing the system/breaking it down, for more
Version-Release number of selected component (if applicable):
Everytime, see below.
Steps to Reproduce:
1. wget http://reviewed.homelinux.org/news/2004-06-11_kernel_crash/crash.c.txt
2. mv crash.c.txt crash.c
3. gcc crash.c -o evil
5. Get the system freeze
Well, this crash code causes a system breakdown ;-)
No crash/breakdown/system freeze at using this crash code.
I was able to reproduce that behaviour with kernel-2.4.22-1.2188.nptl
at i586, i686 and athlon.
Oh...I forgot to say, that the patches at this website don't apply
(signal.c-2.4.2?.patch.txt) to the Red Hat modified kernel and there are kernel oops (http://lkml.org/lkml/2004/6/12/64), but the idea
from http://lkml.org/lkml/2004/6/12/81 is working after a 2.4
After applying this patch (I applied it as Patch86x in the spec
file), rebuild, install & reboot, I executed the crash code again -
it only has a upper cpu usage now, but it doesn't crash the system :)
This patch worked for me at i586, i686, athlon. Sorry, I've got no
SMP and no x86_64 here (so x86_64 also seems to be generally
affected?) to test it there.
Created attachment 101097 [details]
Created attachment 101099 [details]
Well, I got access to a x86_64 box at work and there, the system crashed also
without a patch. Applying the same patch to the x86_64 solved it for me.
I still don't know, whether that what I'm doing with that patch is maybe good
or bad - but it is working for me currently. If I'm wrong, I'm hoping that you
guys from Red Hat do it better ;-)
Created attachment 101100 [details]
linux-2.4.22-fpu.patch for x86 and x86_64
Sorry, uploaded the wrong x86 (IA32 only) again, so here's the right one ;-)
Created attachment 101125 [details]
Last patch flooding (hopefully), backport (from Linus' official 2.6) for x86 and x86_64
an RPM with this problem fixed went to updates-testing this afternoon.
If it looks ok, it'll move to updates-final in the next day or so.
This bug is CAN-2004-0554, and the same as bug #125794.
Dave, I've got a problem since using 219x: My CPU load isn't lower than
0.5 now (my system is just idling, no CPU intensive processes!), most
of the time the "default load" is >= 1.00 - that's still too much for
simple idling, where I had with kernel 218x a load from 0.0x up to
maximal 0.5. Hotsanic documented this for me very well...so what's up?
Could you please have a look to this?! Thank you! FYI: I've got a
Intel Celeron 1.0 GHz.
theres nothing changed in the kernel that could explain this that I
can see. The FPU fix adds a single instruction to context switching,
so that path slows down a little, but that should not affect your load
average at all.
Okay, 2194 is working now on all my computers normally - including
the "problem host" above (a reinstall of the kernel solved it for me;
don't know what the problem caused).
kernel-2.4.22-1.2194.nptl was moved from testing to the stable update
repository, but I'm missing an announcement at fedora-announce-
list...but I'm closing this bug now, because my issue is solved.