Help needed: Firefox crashing on AMD K6 and other old processors
Yesterday a group of developers were sifting through crash reports that might be related to the new JIT code in Firefox 3.5. We found an unusual set of crashes with EXCEPTION_ILLEGAL_INSTRUCTION. After sifting through these crashes, I found that they have very similar patterns:
- The crashes are all on old processors: the original Pentium, the original AMD K6 (not K6-II or K6-III), or a Via processor. See bug 500277 for the specific family/model/stepping numbers that appear to be affected.
- The crashes all have very low uptime: the browser appears to crash on startup.
Anyone with an original AMD K6 running Linux or Windows, could you please try launching Firefox 3.5 and browsing around the web with it? Please post your results in bug 500277. If you are willing to spend some time diagnosing the problem in a debugger, please email me or join #jsapi on IRC.
June 25th, 2009 at 4:06 pm
Why are you trying to support Firefox on such old CPUs? Despite the minimal requirements claimed by mozilla.com (233 MHz Pentium, 64 MB RAM), trying to use Firefox 3 on a 233 MHz PII with 128 MB RAM was an extremely painful experience—sometimes I could see the UI being drawn, and there was constant swapping.
Wouldn’t it make more sense to concentrate on the hardware on which it runs usably (perhaps slowly, but not unusably slowly)? Firefox has a quite sluggish UI compared to other browsers (of course you only notice this on such old machines), so people with old computers would use either older versions or (older versions of) other browsers anyway.
My point is that making it not crash on very old computers still won’t make it usable on very old computers.
June 25th, 2009 at 4:28 pm
Anonymous: good question.
It’s pretty obvious that we have real users on those processors; otherwise we wouldn’t be getting any crash reports! Any decision to stop supporting them shouldn’t be taken lightly. Even half a percent of our userbase is a huge number of users. In addition, when we release Firefox 3.5 we’d be upgrading these users to a release which crashes on startup. It’s likely that the fix is fairly simple (even disabling JIT would be better than nothing): we just need to figure out exactly why we’re crashing and how to properly detect these processors.
June 26th, 2009 at 10:11 am
I’d guess it’s likely the JIT code making bad assumptions about some feature that those processors don’t have – I’m guessing something like MMX maybe?
June 26th, 2009 at 10:51 am
IanM, sure. But we already have detection code for SSE2 and CMOV. It’s possible that the detection code is broken for some reason on these processors, or that we’re emitting some other instrunction which isn’t available. Until I can find somebody who can reproduce this problem we won’t know.
I’ve found a couple people with matching Via C3s who couldn’t reproduce any problems on Linux, so we also don’t know whether this is a Windows-only problem.