KhronosGroup / KhronosGroup/OpenCL-CTS
cl20 cl21 cl22 device_execution/enqueue_flags data race
- Dominant language
- C++
- Stars
- 232
- Forks
- 235
- Avg merge
- 8d 7h
- Merged PRs (30d)
- 18
Description
At least four of tests' kernels run into data race:
- enqueue_flags_wait_work_group_simple
- enqueue_flags_wait_work_group_event
- enqueue_flags_wait_work_group_local
- enqueue_flags_wait_work_group_event_local
res[gid] is being written by get_num_groups()/get_local_size() threads. And if one of these thread put 2 to the array cell, it still may be overwritten with 1 by another thread. Thus, the test doesn't really test anything.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the four named kernels in device_execution/enqueue_flags and inspect how each writes res[gid]. Confirm the concurrent writes can overwrite a value of 2 with 1, then adjust the tests so their results are not affected by that race. Done means each test reliably detects the intended behavior under concurrent execution.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- testing-qa
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100