https://bugs.freedesktop.org/show_bug.cgi?id=93370
Bug ID: 93370 Summary: [r600g] OpenCL atomic_cmpxchg() segmentation fault on Caicos Product: Mesa Version: git Hardware: x86-64 (AMD64) OS: Linux (All) Status: NEW Severity: major Priority: medium Component: Drivers/Gallium/r600 Assignee: dri-devel@lists.freedesktop.org Reporter: rivanvx@gmail.com QA Contact: dri-devel@lists.freedesktop.org
Created attachment 120495 --> https://bugs.freedesktop.org/attachment.cgi?id=120495&action=edit Program that segfaults
I'm using mesa 8b52fa71ac3d706f27ccbddcb050aae4965839e9 and llvm svn revision 255468.
The code that segfaults is attached. Debugging with gdb gives:
Starting program: /home/vedranm/atomic [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". [New Thread 0x7ffff034b700 (LWP 20619)] [New Thread 0x7fffef912700 (LWP 20620)] [New Thread 0x7fffef111700 (LWP 20621)] [Thread 0x7fffef111700 (LWP 20621) exited] [Thread 0x7fffef912700 (LWP 20620) exited]
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff0a4480d in radeon_lookup_buffer (csc=csc@entry=0x7ffff7f31028, bo=bo@entry=0xf103c0) at radeon_drm_cs.c:230 230 if (i == -1 || csc->relocs_bo[i].bo == bo) (gdb) backtrace #0 0x00007ffff0a4480d in radeon_lookup_buffer (csc=csc@entry=0x7ffff7f31028, bo=bo@entry=0xf103c0) at radeon_drm_cs.c:230 #1 0x00007ffff0a44931 in radeon_add_buffer (added_domains=<synthetic pointer>, priority=29, domains=<optimized out>, usage=<optimized out>, bo=0xf103c0, cs=0x7ffff7f31010) at radeon_drm_cs.c:269 #2 radeon_drm_cs_add_buffer (rcs=0x7ffff7f31010, buf=0xf103c0, usage=<optimized out>, domains=<optimized out>, priority=RADEON_PRIO_VERTEX_BUFFER) at radeon_drm_cs.c:333 #3 0x00007ffff0a65a79 in radeon_add_to_buffer_list (rctx=0x65c260, ring=0x65c580, rbo=<optimized out>, rbo=<optimized out>, priority=RADEON_PRIO_VERTEX_BUFFER, usage=RADEON_USAGE_READ) at ../../../../src/gallium/drivers/radeon/r600_cs.h:53 #4 evergreen_emit_vertex_buffers (rctx=0x65c260, state=0x65ef00, resource_offset=816, pkt_flags=<optimized out>) at evergreen_state.c:1917 #5 0x00007ffff0a62467 in r600_emit_atom (atom=0x65ef00, rctx=0x65c260) at r600_pipe.h:578 #6 compute_emit_cs (grid_layout=0xf26950, block_layout=0xf26c10, ctx=0x65c260) at evergreen_compute.c:489 #7 evergreen_launch_grid (ctx_=0x65c260, block_layout=0xf26c10, grid_layout=grid_layout@entry=0xf26950, pc=pc@entry=0, input=input@entry=0xe68850) at evergreen_compute.c:631 #8 0x00007ffff58167ac in clover::kernel::launch (this=0xf24790, q=..., grid_offset=..., grid_size=std::vector of length 1, capacity 1 = {...}, block_size=std::vector of length 1, capacity 1 = {...}) at core/kernel.cpp:81 #9 0x00007ffff5811626 in std::function<void (clover::event&)>::operator()(clover::event&) const (__args#0=..., this=0xf26820) at /usr/include/c++/5/functional:2271 #10 clover::event::trigger (this=this@entry=0xf267e0) at core/event.cpp:55 #11 0x00007ffff58124f8 in clover::hard_event::hard_event(clover::command_queue&, unsigned int, clover::ref_vectorclover::event const&, std::function<void (clover::event&)>) (this=0xf267e0, q=..., command=<optimized out>, deps=..., action=...) at core/event.cpp:126 #12 0x00007ffff57f8ae8 in clover::create<clover::hard_event, clover::command_queue&, int, clover::ref_vectorclover::event&, clEnqueueNDRangeKernel(cl_command_queue, cl_kernel, cl_uint, const size_t*, const size_t*, const size_t*, cl_uint, _cl_event* const*, _cl_event**)::<lambda(clover::event&)> > () at ./util/pointer.hpp:230 #13 clEnqueueNDRangeKernel (d_q=0x63d328, d_kern=0xf24798, dims=<optimized out>, d_grid_offset=<optimized out>, d_grid_size=<optimized out>, d_block_size=0x7fffffffc430, num_deps=0, d_deps=0x0, rd_ev=0x0) at api/kernel.cpp:293 #14 0x00000000004014a8 in main () (gdb)
https://bugs.freedesktop.org/show_bug.cgi?id=93370
Vedran Miletić vedran@miletic.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |99553
Referenced Bugs:
https://bugs.freedesktop.org/show_bug.cgi?id=99553 [Bug 99553] Tracker bug for runnning OpenCL applications on Clover
https://bugs.freedesktop.org/show_bug.cgi?id=93370
Jan Vesely jan.vesely@rutgers.edu changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|[r600g] OpenCL |[clover/caicos] OpenCL |atomic_cmpxchg() |atomic_cmpxchg() |segmentation fault on |segmentation fault |Caicos |
--- Comment #1 from Jan Vesely jan.vesely@rutgers.edu --- The backtrace does not look compilation related. However, atomic ops that return the old value are not supported atm.
https://bugs.freedesktop.org/show_bug.cgi?id=93370
GitLab Migration User gitlab-migration@fdo.invalid changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |MOVED Status|NEW |RESOLVED
--- Comment #2 from GitLab Migration User gitlab-migration@fdo.invalid --- -- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/564.
dri-devel@lists.freedesktop.org