Mesa 20.3.1 segmentation fault

Jorge Fernandez Monteagudo <[email protected]> Wed, 22 Jun 2022 10:30:05 +0000
Newsgroups gmane.comp.video.mesa3d.user
Message-ID <DU0PR10MB6228C4F9A5CF5409725B1892A1B29@DU0PR10MB6228.EURPRD10.PROD.OUTLOOK.COM>
--_000_DU0PR10MB6228C4F9A5CF5409725B1892A1B29DU0PR10MB6228EURP_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi all,
This is my first message to the list and I don't know if that's the place t=
o report the error I'm facing...
I'm using an old mesa 20.3.1 version and sometimes I get a SIGSEGV doing sw=
ap buffer. The traces I get on GDB are:

Thread 1 (Thread 0x7f6d1737e700 (LWP 2448)):
#0  0x00007f6d0aed85a5 in amdgpu_fence_wait (fence=3D0x7f6cb8abdf5d, timeou=
t=3D0, absolute=3D<optimized out>) at ../src/gallium/winsys/amdgpu/drm/amdg=
pu_cs.c:204
#1  0x00007f6d0aedb339 in amdgpu_add_bo_fence_dependencies (buffer=3D0x7f6c=
9b88f0d0, buffer=3D0x7f6c9b88f0d0, acs=3D0x7f6d015564c0) at ../src/gallium/=
winsys/amdgpu/drm/amdgpu_cs.c:1290
#2  amdgpu_add_fence_dependencies_bo_list (acs=3Dacs@entry=3D0x7f6d015564c0=
, fence=3D<optimized out>, num_buffers=3D<optimized out>, buffers=3D<optimi=
zed out>) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1357
#3  0x00007f6d0aedb7ff in amdgpu_add_fence_dependencies_bo_lists (acs=3D0x7=
f6d015564c0) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1371
#4  amdgpu_cs_flush (rcs=3D0x7f6d015564c0, flags=3D2147483656, fence=3D<opt=
imized out>) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1831
#5  0x00007f6d0aec4cf3 in si_flush_gfx_cs (ctx=3D0x7f6d014fc680, flags=3D21=
47483656, fence=3D0x0) at ../src/gallium/drivers/radeonsi/si_gfx_cs.c:234
#6  0x00007f6d0aeaa515 in si_buffer_map_sync_with_rings (usage=3D513, resou=
rce=3D0x7f6d173f9740, sctx=3D0x7f6d014fc680) at ../src/gallium/drivers/rade=
onsi/si_buffer.c:66
#7  si_buffer_map_sync_with_rings (sctx=3D0x7f6d014fc680, resource=3D0x7f6d=
173f9740, usage=3D513) at ../src/gallium/drivers/radeonsi/si_buffer.c:46
#8  0x00007f6d0ae58305 in si_query_hw_get_result (sctx=3D0x7f6d014fc680, sq=
uery=3D0x7f6d01312780, wait=3D<optimized out>, result=3D0x7f6d1737bdd0) at =
../src/gallium/drivers/radeonsi/si_query.c:1418
#9  0x00007f6d0b1315f9 in tc_get_query_result (_pipe=3D<optimized out>, que=
ry=3D0x7f6d01312780, wait=3D<optimized out>, result=3D<optimized out>) at .=
./src/gallium/auxiliary/util/u_threaded_context.c:499
#10 0x00007f6d0abecdaa in query_new_value_normal (pipe=3D0x7f6d17e31e40, in=
fo=3D0x7f6d175ee580) at ../src/gallium/auxiliary/hud/hud_driver_query.c:245
#11 query_new_value (gr=3D0x7f6d175f3200, pipe=3D0x7f6d17e31e40) at ../src/=
gallium/auxiliary/hud/hud_driver_query.c:312
#12 0x00007f6d0abe70ec in hud_stop_queries (hud=3D0x7f6d1ccc6f80, pipe=3D0x=
7f6d17e31e40) at ../src/gallium/auxiliary/hud/hud_context.c:676
#13 0x00007f6d0abe7fc5 in hud_run (hud=3D0x7f6d1ccc6f80, cso=3D0x7f6d0133c0=
00, tex=3D0x7f6cfaf18600) at ../src/gallium/auxiliary/hud/hud_context.c:722
#14 0x00007f6d0a632c32 in notify_before_flush_cb (_args=3D_args@entry=3D0x7=
f6d1737c0e0) at ../src/gallium/frontends/dri/dri_drawable.c:450
#15 0x00007f6d0a63fc5c in st_context_flush (stctxi=3D0x7f6d0133dc00, flags=
=3D3, fence=3D0x7f6d1737c0d8, before_flush_cb=3D0x7f6d0a632b80 <notify_befo=
re_flush_cb>, args=3D0x7f6d1737c0e0) at ../src/mesa/state_tracker/st_manage=
r.c:673
#16 0x00007f6d0a633682 in dri_flush (cPriv=3D<optimized out>, dPriv=3D<opti=
mized out>, flags=3D3, reason=3D<optimized out>) at ../src/gallium/frontend=
s/dri/dri_drawable.c:526
#17 0x00007f6d18380ac3 in loader_dri3_swap_buffers_msc (draw=3D0x7f6d1cc884=
b8, target_msc=3D0, divisor=3D0, remainder=3D0, flush_flags=3D<optimized ou=
t>, rects=3Drects@entry=3D0x0, n_rects=3D0, force_copy=3Dfalse) at ../src/l=
oader/loader_dri3_helper.c:959
#18 0x00007f6d183738a1 in dri3_swap_buffers (pdraw=3D<optimized out>, targe=
t_msc=3D<optimized out>, divisor=3D<optimized out>, remainder=3D<optimized =
out>, flush=3D<optimized out>) at ../src/glx/dri3_glx.c:594

Printing the fence var in adgpu_fence_wait I see:

(gdb) print *(struct amdgpu_fence*)fence
$7 =3D {reference =3D {count =3D 0}, syncobj =3D 0, ws =3D 0x0, ctx =3D 0x0=
, fence =3D {context =3D 0x0, ip_type =3D 67108864, ip_instance =3D 1442840=
582, ring =3D 1140850688, fence =3D 6196953087261802496}, user_fence_cpu_ad=
dress =3D 0x44000000,
  submitted =3D {val =3D 0}, signalled =3D 0}

then the line

      if (amdgpu_cs_syncobj_wait(afence->ws->dev, &afence->syncobj, 1,
                                 abs_timeout, 0, NULL))
         return false;

is throwing a SIGSEGV because afence->ws is a NULL pointer.

Is it a know bug already reported and solved? I need to update to a more re=
cent Mesa3d version?

Thanks a lot
Jorge


--_000_DU0PR10MB6228C4F9A5CF5409725B1892A1B29DU0PR10MB6228EURP_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Hi all,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
This is my first message to the list and I don't know if that's the place t=
o report the error I'm facing...</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
I'm using an old mesa 20.3.1 version and sometimes I get a SIGSEGV doing sw=
ap buffer. The traces I get on GDB are:</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Thread 1 (Thread 0x7f6d1737e700 (LWP 2448)):
<div>#0 &nbsp;0x00007f6d0aed85a5 in amdgpu_fence_wait (fence=3D0x7f6cb8abdf=
5d, timeout=3D0, absolute=3D&lt;optimized out&gt;) at ../src/gallium/winsys=
/amdgpu/drm/amdgpu_cs.c:204</div>
<div>#1 &nbsp;0x00007f6d0aedb339 in amdgpu_add_bo_fence_dependencies (buffe=
r=3D0x7f6c9b88f0d0, buffer=3D0x7f6c9b88f0d0, acs=3D0x7f6d015564c0) at ../sr=
c/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1290</div>
<div>#2 &nbsp;amdgpu_add_fence_dependencies_bo_list (acs=3Dacs@entry=3D0x7f=
6d015564c0, fence=3D&lt;optimized out&gt;, num_buffers=3D&lt;optimized out&=
gt;, buffers=3D&lt;optimized out&gt;) at ../src/gallium/winsys/amdgpu/drm/a=
mdgpu_cs.c:1357</div>
<div>#3 &nbsp;0x00007f6d0aedb7ff in amdgpu_add_fence_dependencies_bo_lists =
(acs=3D0x7f6d015564c0) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.c:1371=
</div>
<div>#4 &nbsp;amdgpu_cs_flush (rcs=3D0x7f6d015564c0, flags=3D2147483656, fe=
nce=3D&lt;optimized out&gt;) at ../src/gallium/winsys/amdgpu/drm/amdgpu_cs.=
c:1831</div>
<div>#5 &nbsp;0x00007f6d0aec4cf3 in si_flush_gfx_cs (ctx=3D0x7f6d014fc680, =
flags=3D2147483656, fence=3D0x0) at ../src/gallium/drivers/radeonsi/si_gfx_=
cs.c:234</div>
<div>#6 &nbsp;0x00007f6d0aeaa515 in si_buffer_map_sync_with_rings (usage=3D=
513, resource=3D0x7f6d173f9740, sctx=3D0x7f6d014fc680) at ../src/gallium/dr=
ivers/radeonsi/si_buffer.c:66</div>
<div>#7 &nbsp;si_buffer_map_sync_with_rings (sctx=3D0x7f6d014fc680, resourc=
e=3D0x7f6d173f9740, usage=3D513) at ../src/gallium/drivers/radeonsi/si_buff=
er.c:46</div>
<div>#8 &nbsp;0x00007f6d0ae58305 in si_query_hw_get_result (sctx=3D0x7f6d01=
4fc680, squery=3D0x7f6d01312780, wait=3D&lt;optimized out&gt;, result=3D0x7=
f6d1737bdd0) at ../src/gallium/drivers/radeonsi/si_query.c:1418</div>
<div>#9 &nbsp;0x00007f6d0b1315f9 in tc_get_query_result (_pipe=3D&lt;optimi=
zed out&gt;, query=3D0x7f6d01312780, wait=3D&lt;optimized out&gt;, result=
=3D&lt;optimized out&gt;) at ../src/gallium/auxiliary/util/u_threaded_conte=
xt.c:499</div>
<div>#10 0x00007f6d0abecdaa in query_new_value_normal (pipe=3D0x7f6d17e31e4=
0, info=3D0x7f6d175ee580) at ../src/gallium/auxiliary/hud/hud_driver_query.=
c:245</div>
<div>#11 query_new_value (gr=3D0x7f6d175f3200, pipe=3D0x7f6d17e31e40) at ..=
/src/gallium/auxiliary/hud/hud_driver_query.c:312</div>
<div>#12 0x00007f6d0abe70ec in hud_stop_queries (hud=3D0x7f6d1ccc6f80, pipe=
=3D0x7f6d17e31e40) at ../src/gallium/auxiliary/hud/hud_context.c:676</div>
<div>#13 0x00007f6d0abe7fc5 in hud_run (hud=3D0x7f6d1ccc6f80, cso=3D0x7f6d0=
133c000, tex=3D0x7f6cfaf18600) at ../src/gallium/auxiliary/hud/hud_context.=
c:722</div>
<div>#14 0x00007f6d0a632c32 in notify_before_flush_cb (_args=3D_args@entry=
=3D0x7f6d1737c0e0) at ../src/gallium/frontends/dri/dri_drawable.c:450</div>
<div>#15 0x00007f6d0a63fc5c in st_context_flush (stctxi=3D0x7f6d0133dc00, f=
lags=3D3, fence=3D0x7f6d1737c0d8, before_flush_cb=3D0x7f6d0a632b80 &lt;noti=
fy_before_flush_cb&gt;, args=3D0x7f6d1737c0e0) at ../src/mesa/state_tracker=
/st_manager.c:673</div>
<div>#16 0x00007f6d0a633682 in dri_flush (cPriv=3D&lt;optimized out&gt;, dP=
riv=3D&lt;optimized out&gt;, flags=3D3, reason=3D&lt;optimized out&gt;) at =
../src/gallium/frontends/dri/dri_drawable.c:526</div>
<div>#17 0x00007f6d18380ac3 in loader_dri3_swap_buffers_msc (draw=3D0x7f6d1=
cc884b8, target_msc=3D0, divisor=3D0, remainder=3D0, flush_flags=3D&lt;opti=
mized out&gt;, rects=3Drects@entry=3D0x0, n_rects=3D0, force_copy=3Dfalse) =
at ../src/loader/loader_dri3_helper.c:959</div>
<div>#18 0x00007f6d183738a1 in dri3_swap_buffers (pdraw=3D&lt;optimized out=
&gt;, target_msc=3D&lt;optimized out&gt;, divisor=3D&lt;optimized out&gt;, =
remainder=3D&lt;optimized out&gt;, flush=3D&lt;optimized out&gt;) at ../src=
/glx/dri3_glx.c:594</div>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
Printing the fence var in adgpu_fence_wait I see:</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
(gdb) print *(struct amdgpu_fence*)fence
<div>$7 =3D {reference =3D {count =3D 0}, syncobj =3D 0, ws =3D 0x0, ctx =
=3D 0x0, fence =3D {context =3D 0x0, ip_type =3D 67108864, ip_instance =3D =
1442840582, ring =3D 1140850688, fence =3D 6196953087261802496}, user_fence=
_cpu_address =3D 0x44000000,
</div>
<div>&nbsp; submitted =3D {val =3D 0}, signalled =3D 0}</div>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
then the line <br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
&nbsp; &nbsp; &nbsp; if (amdgpu_cs_syncobj_wait(afence-&gt;ws-&gt;dev, &amp=
;afence-&gt;syncobj, 1,
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;abs_timeout, 0, NULL))</div=
>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return false;</div>
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
is throwing a SIGSEGV because afence-&gt;ws is a NULL pointer.</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Is it a know bug already reported and solved? I need to update to a more re=
cent Mesa3d version?</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Thanks a lot</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
Jorge<br>
</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 12pt; color: rgb(0, 0, 0);" class=3D"elementToProof">
<br>
</div>
</body>
</html>

--_000_DU0PR10MB6228C4F9A5CF5409725B1892A1B29DU0PR10MB6228EURP_--