Fixing SIGILL on Pentium 4

Roland Scheidegger rscheidegger_lists at hispeed.ch
Sun Jan 17 14:05:34 PST 2016


Am 17.01.2016 um 20:09 schrieb Michael Harder:
> Hi all,
> 
> I'm trying to get my Kodi media center working but am experiencing
> crashes when playing a movie. There is a ticket
> at https://bugs.freedesktop.org/show_bug.cgi?id=27512. From the help
> I've received so far and the research I've done it sounds like the
> instruction prefetch is not available on Pentium 4. That's what produces
> the original error:
> 
> Program terminated with signal SIGILL, Illegal instruction.
> #0  _mesa_x86_64_transform_points4_general () at x86-64/xform4.S:72
> 72              prefetch 16(%rdx)
> [Current thread is 1 (Thread 0x7f9054aeb9c0 (LWP 791))]
> 
> 
> I've tried the suggested patch which updates src/mesa/x86-64/xform4.S to
> use prefetcht1 instead of prefetch. I understand that prefetcht1 is part
> of SSE which Pentium 4 supports. It worked for a few days but now I'm
> getting this error:
> 
> Program terminated with signal SIGILL, Illegal instruction.
> #0  _mesa_x86_64_transform_points4_general () at x86-64/xform4.S:72
> 72              prefetcht1 16(%rdx)
> [Current thread is 1 (Thread 0x7fd24af779c0 (LWP 797))]
> 
> 
> Is the prefetcht1 instruction supported by Pentium 4?
Yes.

> Any suggestions
> about an alternative instruction I could try?
No. Well prefetchnta, prefetcht0, prefetcht2 would work too (as well as
just skipping it completely), but I cannot see why that would work
better. As far I can tell, a sigill there should be impossible. Unless
the asembler did something odd (I suppose you could not just look at the
disassembly output, but look at the actual encoding).
Also, it doesn't make sense that "it worked for a couple of days" and
now doesn't, which is very suspicious...

Roland




More information about the dri-devel mailing list