[Pixman] [BUG] SIGSEGV in sse2_fill

Frédéric Fauberteau triaxx at NetBSD.org
Wed Aug 29 16:14:54 UTC 2018


Le 2018-08-29 16:33, Adam Jackson a écrit :
> On Wed, 2018-08-29 at 10:59 +0200, Frédéric Fauberteau wrote:
>> I encounter a xorg segfault after building it with the following
>> optimization CFLAGS: -march=athlon64-sse3 -mfpmath=sse
> 
> This is almost certainly a bug in either the radeon driver or in the X
> server. pixman is usually innocent in backtraces like this, as it just
> draws where it's told to.

Sure, it makes sense. Sorry, pixman was the last suspect on top of 
backtrace stack ;)

>> I noticed that height goes from 1050 in _pixman_implementation_fill() 
>> to
>> 1041 in sse2_fill() ...?
> 
> It happened to fill nine rows of pixels before segfaulting. There's
> probably no deep or numerological reason for this, other than: the
> place where xserver told pixman to start drawing, happened to be about
> that far away from unmapped memory.
> 
> This is a curious backtrace though. You're crashing while trying to
> draw the black solid fill for the initial map of the root window. Fine,
> but you're doing so in software, even though you have glamor enabled,
> and glamor surely can usually accelerate solid fills. So you're hitting
> a software fallback for some reason, and if I had to guess...

The area to fill is 2960x1050 but actually, I have two screens:
----------------- -------------
|               | |           |
|               | |           |
|   1680x1050   | | 1280x1024 |
|               | |           |
|               | |-----------|
-----------------

Do you think it could be a reason to write in an unmapped region...?

>> Program received signal SIGSEGV, Segmentation fault.
>> sse2_fill (imp=<optimized out>, bits=<optimized out>, 
>> stride=<optimized
>> out>, bpp=<optimized out>, x=<optimized out>, y=<optimized out>,
>> width=2960, height=1041, filler=0) at pixman-sse2.c:3408
> 
> ... that width number is where I'd start guessing. You don't say what
> radeon this is, but for some old ones (R300-ish if memory serves, I
> don't remember where in Mesa to look it up) that's wider than the 3D
> engine can draw to. That would explain the fallback, and it would
> suggest that even if the crash were fixed the interactive experience
> would be miserably slow.

It is a RS780/RS880 (Radeon HD 3200). If the bug comes from the Mesa 
driver, it's a big issue since we are totally late with the update (we 
are on MesaLib 11.2.2)

> - ajax

Fred


More information about the Pixman mailing list