Skip to content

Commit 4777f24

Browse files
kswiecickibb-ur
authored andcommitted
Replace urEnqueueEventsWait with dummy event in waitlist tests (#21671)
InvalidNullPtrEventWaitList tests used urEnqueueEventsWait as the first operation on a queue to create a valid event for validation testing. This triggers a hang in the L0 driver when multiple test shards concurrently call zeCommandListAppendSignalEvent + zeCommandListHostSynchronize on immediate command lists. Replace with urEventCreateWithNativeHandle(0, ...) which creates a dummy event without enqueuing any work, avoiding the L0 driver concurrency issue entirely. The validation layer rejects invalid waitlist arguments before reaching the adapter, so the dummy event is sufficient for these tests.
1 parent 33d2442 commit 4777f24

23 files changed

Lines changed: 103 additions & 111 deletions

test/conformance/enqueue/CMakeLists.txt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ add_conformance_kernels_test(enqueue
1414
urEnqueueMemBufferCopy.cpp
1515
urEnqueueMemBufferFill.cpp
1616
urEnqueueMemBufferMap.cpp
17-
# Enqueue memory buffer read tests ran simultenously lead to timeouts.
18-
# Tracker: https://jira.devtools.intel.com/browse/URT-1026
19-
# urEnqueueMemBufferRead.cpp
20-
# urEnqueueMemBufferReadRect.cpp
17+
urEnqueueMemBufferRead.cpp
18+
urEnqueueMemBufferReadRect.cpp
2119
urEnqueueMemBufferWrite.cpp
2220
urEnqueueMemBufferWriteRect.cpp
2321
urEnqueueMemImageCopy.cpp

test/conformance/enqueue/urEnqueueEventsWait.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include <uur/fixtures.h>
77
#include <uur/known_failure.h>
8+
#include <uur/raii.h>
89

910
struct urEnqueueEventsWaitTest : uur::urMultiQueueTest {
1011
void SetUp() override {
@@ -107,15 +108,13 @@ TEST_P(urEnqueueEventsWaitTest, InvalidNullPtrEventWaitList) {
107108
ASSERT_EQ_RESULT(urEnqueueEventsWait(queue1, 1, nullptr, nullptr),
108109
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
109110

110-
ur_event_handle_t validEvent;
111-
ASSERT_SUCCESS(urEnqueueEventsWait(queue1, 0, nullptr, &validEvent));
111+
uur::raii::Event eventDummy = nullptr;
112+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
112113

113-
ASSERT_EQ_RESULT(urEnqueueEventsWait(queue1, 0, &validEvent, nullptr),
114+
ASSERT_EQ_RESULT(urEnqueueEventsWait(queue1, 0, eventDummy.ptr(), nullptr),
114115
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
115116

116117
ur_event_handle_t inv_evt = nullptr;
117118
ASSERT_EQ_RESULT(urEnqueueEventsWait(queue1, 1, &inv_evt, nullptr),
118119
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
119-
120-
ASSERT_SUCCESS(urEventRelease(validEvent));
121120
}

test/conformance/enqueue/urEnqueueEventsWaitWithBarrier.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55
#include <uur/fixtures.h>
66
#include <uur/known_failure.h>
7+
#include <uur/raii.h>
78

89
enum class BarrierType {
910
Normal,
@@ -149,17 +150,15 @@ TEST_P(urEnqueueEventsWaitWithBarrierTest, InvalidNullPtrEventWaitList) {
149150
ASSERT_EQ_RESULT(EnqueueBarrier(queue1, 1, nullptr, nullptr),
150151
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
151152

152-
ur_event_handle_t validEvent;
153-
ASSERT_SUCCESS(urEnqueueEventsWait(queue1, 0, nullptr, &validEvent));
153+
uur::raii::Event eventDummy = nullptr;
154+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
154155

155-
ASSERT_EQ_RESULT(EnqueueBarrier(queue1, 0, &validEvent, nullptr),
156+
ASSERT_EQ_RESULT(EnqueueBarrier(queue1, 0, eventDummy.ptr(), nullptr),
156157
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
157158

158159
ur_event_handle_t inv_evt = nullptr;
159160
ASSERT_EQ_RESULT(EnqueueBarrier(queue1, 1, &inv_evt, nullptr),
160161
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
161-
162-
ASSERT_SUCCESS(urEventRelease(validEvent));
163162
}
164163

165164
TEST_P(urEnqueueEventsWaitWithBarrierOrderingTest,

test/conformance/enqueue/urEnqueueKernelLaunchWithArgsExp.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include <memory>
88
#include <uur/fixtures.h>
99
#include <uur/known_failure.h>
10+
#include <uur/raii.h>
1011

1112
struct urEnqueueKernelLaunchNoArgs3DTest : uur::urKernelExecutionTest {
1213
void SetUp() override {
@@ -186,13 +187,13 @@ TEST_P(urEnqueueKernelLaunchTest, InvalidNullPtrEventWaitList) {
186187
nullptr, nullptr, 1, nullptr, nullptr),
187188
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
188189

189-
ur_event_handle_t validEvent;
190-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
190+
uur::raii::Event eventDummy = nullptr;
191+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
191192

192193
ASSERT_EQ_RESULT(urEnqueueKernelLaunchWithArgsExp(
193194
queue, kernel, n_dimensions, &global_offset,
194195
&global_size, nullptr, 0, nullptr, nullptr, 0,
195-
&validEvent, nullptr),
196+
eventDummy.ptr(), nullptr),
196197
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
197198

198199
ur_event_handle_t inv_evt = nullptr;
@@ -201,7 +202,6 @@ TEST_P(urEnqueueKernelLaunchTest, InvalidNullPtrEventWaitList) {
201202
&global_offset, &global_size, nullptr, 0,
202203
nullptr, nullptr, 1, &inv_evt, nullptr),
203204
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
204-
ASSERT_SUCCESS(urEventRelease(validEvent));
205205
}
206206

207207
TEST_P(urEnqueueKernelLaunchTest, InvalidWorkDimension) {

test/conformance/enqueue/urEnqueueMemBufferCopy.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
#include "uur/utils.h"
88
#include <uur/fixtures.h>
99
#include <uur/known_failure.h>
10+
#include <uur/raii.h>
1011

1112
struct urEnqueueMemBufferCopyTestWithParam
1213
: uur::urMultiQueueTypeTestWithParam<size_t> {
@@ -81,19 +82,17 @@ TEST_P(urEnqueueMemBufferCopyTestWithParam, InvalidNullPtrEventWaitList) {
8182
size, 1, nullptr, nullptr),
8283
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
8384

84-
ur_event_handle_t validEvent;
85-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
85+
uur::raii::Event eventDummy = nullptr;
86+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
8687

8788
ASSERT_EQ_RESULT(urEnqueueMemBufferCopy(queue, src_buffer, dst_buffer, 0, 0,
88-
size, 0, &validEvent, nullptr),
89+
size, 0, eventDummy.ptr(), nullptr),
8990
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
9091

9192
ur_event_handle_t inv_evt = nullptr;
9293
ASSERT_EQ_RESULT(urEnqueueMemBufferCopy(queue, src_buffer, dst_buffer, 0, 0,
9394
size, 1, &inv_evt, nullptr),
9495
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
95-
96-
ASSERT_SUCCESS(urEventRelease(validEvent));
9796
}
9897

9998
TEST_P(urEnqueueMemBufferCopyTestWithParam, InvalidSize) {

test/conformance/enqueue/urEnqueueMemBufferCopyRect.cpp

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "uur/fixtures.h"
77
#include "uur/known_failure.h"
88
#include <numeric>
9+
#include <uur/raii.h>
910

1011
static std::vector<uur::test_parameters_t> generateParameterizations() {
1112
std::vector<uur::test_parameters_t> parameterizations;
@@ -213,23 +214,21 @@ TEST_P(urEnqueueMemBufferCopyRectTest, InvalidNullPtrEventWaitList) {
213214
src_region, size, size, size, size, 1, nullptr, nullptr),
214215
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
215216

216-
ur_event_handle_t validEvent;
217-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
217+
uur::raii::Event eventDummy = nullptr;
218+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
218219

219-
ASSERT_EQ_RESULT(urEnqueueMemBufferCopyRect(queue, src_buffer, dst_buffer,
220-
src_origin, dst_origin,
221-
src_region, size, size, size,
222-
size, 0, &validEvent, nullptr),
223-
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
220+
ASSERT_EQ_RESULT(
221+
urEnqueueMemBufferCopyRect(queue, src_buffer, dst_buffer, src_origin,
222+
dst_origin, src_region, size, size, size, size,
223+
0, eventDummy.ptr(), nullptr),
224+
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
224225

225226
ur_event_handle_t inv_evt = nullptr;
226227
ASSERT_EQ_RESULT(urEnqueueMemBufferCopyRect(queue, src_buffer, dst_buffer,
227228
src_origin, dst_origin,
228229
src_region, size, size, size,
229230
size, 1, &inv_evt, nullptr),
230231
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
231-
232-
ASSERT_SUCCESS(urEventRelease(validEvent));
233232
}
234233
TEST_P(urEnqueueMemBufferCopyRectTest, InvalidSize) {
235234
UUR_KNOWN_FAILURE_ON(uur::NativeCPU{});

test/conformance/enqueue/urEnqueueMemBufferFill.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55
#include "helpers.h"
66
#include <uur/fixtures.h>
7+
#include <uur/raii.h>
78

89
struct testParametersFill {
910
size_t size;
@@ -183,21 +184,19 @@ TEST_P(urEnqueueMemBufferFillNegativeTest, InvalidNullPtrEventWaitList) {
183184
nullptr),
184185
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
185186

186-
ur_event_handle_t validEvent;
187-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
187+
uur::raii::Event eventDummy = nullptr;
188+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
188189

189190
ASSERT_EQ_RESULT(urEnqueueMemBufferFill(queue, buffer, &pattern,
190191
sizeof(uint32_t), 0, size, 0,
191-
&validEvent, nullptr),
192+
eventDummy.ptr(), nullptr),
192193
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
193194

194195
ur_event_handle_t inv_evt = nullptr;
195196
ASSERT_EQ_RESULT(urEnqueueMemBufferFill(queue, buffer, &pattern,
196197
sizeof(uint32_t), 0, size, 1,
197198
&inv_evt, nullptr),
198199
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
199-
200-
ASSERT_SUCCESS(urEventRelease(validEvent));
201200
}
202201

203202
TEST_P(urEnqueueMemBufferFillNegativeTest, InvalidSize) {

test/conformance/enqueue/urEnqueueMemBufferMap.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "helpers.h"
66
#include <uur/fixtures.h>
77
#include <uur/known_failure.h>
8+
#include <uur/raii.h>
89

910
using urEnqueueMemBufferMapTestWithParam =
1011
uur::urMemBufferQueueTestWithParam<uur::mem_buffer_test_parameters_t>;
@@ -279,12 +280,12 @@ TEST_P(urEnqueueMemBufferMapTestWithParam, InvalidNullPtrEventWaitList) {
279280
0, size, 1, nullptr, nullptr, &map),
280281
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
281282

282-
ur_event_handle_t validEvent;
283-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
283+
uur::raii::Event eventDummy = nullptr;
284+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
284285

285286
ASSERT_EQ_RESULT(urEnqueueMemBufferMap(queue, buffer, true,
286287
UR_MAP_FLAG_READ | UR_MAP_FLAG_WRITE,
287-
0, size, 0, &validEvent, nullptr,
288+
0, size, 0, eventDummy.ptr(), nullptr,
288289
&map),
289290
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
290291

@@ -293,8 +294,6 @@ TEST_P(urEnqueueMemBufferMapTestWithParam, InvalidNullPtrEventWaitList) {
293294
UR_MAP_FLAG_READ | UR_MAP_FLAG_WRITE,
294295
0, size, 1, &inv_evt, nullptr, &map),
295296
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
296-
297-
ASSERT_SUCCESS(urEventRelease(validEvent));
298297
}
299298

300299
TEST_P(urEnqueueMemBufferMapTestWithParam, InvalidSize) {

test/conformance/enqueue/urEnqueueMemBufferRead.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "helpers.h"
66
#include <uur/fixtures.h>
77
#include <uur/known_failure.h>
8+
#include <uur/raii.h>
89

910
using urEnqueueMemBufferReadTestWithParam =
1011
uur::urMemBufferQueueTestWithParam<uur::mem_buffer_test_parameters_t>;
@@ -49,20 +50,18 @@ TEST_P(urEnqueueMemBufferReadTestWithParam, InvalidNullPtrEventWaitList) {
4950
output.data(), 1, nullptr, nullptr),
5051
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
5152

52-
ur_event_handle_t validEvent;
53-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
53+
uur::raii::Event eventDummy = nullptr;
54+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
5455

5556
ASSERT_EQ_RESULT(urEnqueueMemBufferRead(queue, buffer, true, 0, size,
56-
output.data(), 0, &validEvent,
57+
output.data(), 0, eventDummy.ptr(),
5758
nullptr),
5859
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
5960

6061
ur_event_handle_t inv_evt = nullptr;
6162
ASSERT_EQ_RESULT(urEnqueueMemBufferRead(queue, buffer, true, 0, size,
6263
output.data(), 1, &inv_evt, nullptr),
6364
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
64-
65-
ASSERT_SUCCESS(urEventRelease(validEvent));
6665
}
6766

6867
TEST_P(urEnqueueMemBufferReadTestWithParam, InvalidSize) {

test/conformance/enqueue/urEnqueueMemBufferReadRect.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include "uur/fixtures.h"
77
#include <numeric>
88
#include <uur/known_failure.h>
9+
#include <uur/raii.h>
910

1011
// Choose parameters so that we get good coverage and catch some edge cases.
1112
static std::vector<uur::test_parameters_t> generateParameterizations() {
@@ -174,13 +175,14 @@ TEST_P(urEnqueueMemBufferReadRectTest, InvalidNullPtrEventWaitList) {
174175
host_slice_pitch, dst.data(), 1, nullptr, nullptr),
175176
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
176177

177-
ur_event_handle_t validEvent;
178-
ASSERT_SUCCESS(urEnqueueEventsWait(queue, 0, nullptr, &validEvent));
178+
uur::raii::Event eventDummy = nullptr;
179+
ASSERT_SUCCESS(uur::MakeDummyEventForWaitList(context, eventDummy.ptr()));
179180

180181
ASSERT_EQ_RESULT(urEnqueueMemBufferReadRect(
181182
queue, buffer, true, buffer_offset, host_offset, region,
182183
buffer_row_pitch, buffer_slice_pitch, host_row_pitch,
183-
host_slice_pitch, dst.data(), 0, &validEvent, nullptr),
184+
host_slice_pitch, dst.data(), 0, eventDummy.ptr(),
185+
nullptr),
184186
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
185187

186188
ur_event_handle_t invalidEvent = nullptr;
@@ -189,8 +191,6 @@ TEST_P(urEnqueueMemBufferReadRectTest, InvalidNullPtrEventWaitList) {
189191
buffer_row_pitch, buffer_slice_pitch, host_row_pitch,
190192
host_slice_pitch, dst.data(), 1, &invalidEvent, nullptr),
191193
UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST);
192-
193-
ASSERT_SUCCESS(urEventRelease(validEvent));
194194
}
195195

196196
TEST_P(urEnqueueMemBufferReadRectTest, InvalidSize) {

0 commit comments

Comments
 (0)