Closed Bug 577645 Opened 14 years ago Closed 14 years ago

youtube.com - Firefox 4 Crash HTML5 WebM [@ FastConvertYUVToRGB32Row ] Pentium 2 class using Pentium 3+ class instruction MOVNTQ

Categories

(Core :: Audio/Video, defect)

x86
Windows XP
defect
Not set
critical

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- final+

People

(Reporter: morid_rhosard, Assigned: kinetik)

References

()

Details

Attachments

(1 file, 2 obsolete files)

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a6pre) Gecko/20100618 Minefield/3.7a6pre Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.3a6pre) Gecko/20100618 Minefield/3.7a6pre Firefox 4 crash every time when YouTube is loading a video with WebM support. Reproducible: Always Steps to Reproduce: 1.Got to http://www.youtube.com/html5 and enable HTML5 2.Open a video that supports WebM such as http://www.youtube.com/watch?v=rLxQiI8c1Bs 3.Firefox crashes bp-90dfc2b3-4eae-4f8b-bc2f-069872100709
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
http://asm.inightmare.org/opcodelst/index.php?op=MOVNTQ Opcode MOVNTQ CPU: Pentium III+ (KNI/MMX2), AMD Athlon (AMD EMMX) Type of instruction: User Instruction: MOVNTQ dest,src http://support.microsoft.com/kb/216204 Intel Celeron Intel, x86 Family 6 Model 5
Blocks: 573590
Status: RESOLVED → REOPENED
Component: General → Video/Audio
Ever confirmed: true
Product: Firefox → Core
QA Contact: general → video.audio
Resolution: DUPLICATE → ---
Summary: youtube.com - Firefox 4 Crash HTML5 WebM [@ FastConvertYUVToRGB32Row ] → youtube.com - Firefox 4 Crash HTML5 WebM [@ FastConvertYUVToRGB32Row ] Pentium 2 class using Pentium 3+ class instruction MOVNTQ
Version: unspecified → Trunk
Assignee: nobody → kinetik
Status: REOPENED → NEW
Carlo's CPU is "GenuineIntel family 6 model 5 stepping 3", which seems to be a Deschutes era Pentium 2. As timeless points out, movntq is EMMX/MMX2. There is CPU detection present here: http://mxr.mozilla.org/mozilla-central/source/gfx/ycbcr/yuv_convert.cpp#46 but it's incorrectly testing for MMX. Options are: - fix the detection and fall back to C code for this CPU - make the asm pure MMX (may hurt performance) - fork the asm into pure MMX and the current case (MMX2) The first option is my preference.
No longer blocks: 573590
Blocks: 551277
It is Pentium II 400Mhz (Deschutes), by the way.
Attached patch patch v0 (obsolete) (deleted) — Splinter Review
Correcting terminology: movntq is part of SSE, so anything that implements SSE has movntq. AMD also introduced movntq as part of "enhanced 3DNow!" before the complete implementation of SSE, which is where the confusing "EMMX/MMX2" terminology arises. The point of this is that changing the CPU capability test to SSE would be be sufficient to allow fallback in any problematic cases, but would exclude the set of AMD CPUs that have movntq but not SSE (this includes a bunch of relatively fast Athlon CPUs). I'm not sure if this actually matters, so I'm taking the easiest path here and just adding a test for SSE.
Attachment #456700 - Flags: review?(tterribe)
Attached patch patch v0.1 (obsolete) (deleted) — Splinter Review
Without unrelated changes.
Attachment #456700 - Attachment is obsolete: true
Attachment #456701 - Flags: review?(tterribe)
Attachment #456700 - Flags: review?(tterribe)
Comment on attachment 456701 [details] [diff] [review] patch v0.1 I disagree that the easiest way is best here, but we would need testers with the appropriate hardware to test a change that added a new supports_mmxext() or similar. The actual code for such a function would be relatively simple. Anyone out there willing to test, please file a new bug to volunteer (if no one does, then I was wrong about it being important). The actual changes here look fine, but convert.patch and yv24.patch also need to be updated. picture_region.patch and remove_scale.patch will also no longer apply cleanly without updates.
Attachment #456701 - Flags: review?(tterribe) → review-
Attached patch patch v1 (deleted) — Splinter Review
No need to update the existing patches, this one just needs to be stacked on top correctly. Includes standalone patch and update.sh changes. Actual code changes are identical to the previous version of the patch.
Attachment #456701 - Attachment is obsolete: true
Attachment #461985 - Flags: review?(tterribe)
Requesting blocking2.0 as this is a crasher regression on older CPUs.
Status: NEW → ASSIGNED
blocking2.0: --- → ?
Attachment #461985 - Flags: review?(tterribe) → review+
Even with this fixed, we're probably going to hit http://code.google.com/p/webm/issues/detail?id=136 so I filed bug 584253 to fix that.
Blocks: 584253
Keywords: checkin-needed
Whiteboard: [needs landing]
Is it on trunk? I getting it, yet. Mozilla/5.0 (Windows; Windows NT 5.1; rv:2.0b3pre) Gecko/20100803 Minefield/4.0b3pre bp-6b17f639-db7a-49bc-af6d-1a4022100804
no. please read https://bugzilla.mozilla.org/page.cgi?id=fields.html#status the bug is: ASSIGNED and has [needs landing] and checkin-needed...
http://hg.mozilla.org/mozilla-central/rev/5fa88be4c401 Carlos, please try tomorrow's nightly build. It may still crash due to bug 584253, but this one should be fixed.
Status: ASSIGNED → RESOLVED
Closed: 14 years ago14 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Whiteboard: [needs landing]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: