Skip to content

Commit 38ad58b

Browse files
Jaime ArteagaCompute-Runtime-Automation
authored andcommitted
Dont print error on IOCTL entry after success
This to reduce verbosity and avoid confusions when reading logs. Signed-off-by: Jaime Arteaga <[email protected]>
1 parent 24621e8 commit 38ad58b

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

opencl/test/unit_test/linux/main_linux_dll.cpp

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,33 @@ TEST_F(DrmSimpleTests, givenPrintIoctlEntriesWhenCallIoctlThenIoctlIsPrinted) {
199199
drm->destroyDrmContext(contextId);
200200

201201
std::string output = ::testing::internal::GetCapturedStdout();
202-
EXPECT_STREQ(output.c_str(), "IOCTL DRM_IOCTL_I915_GEM_CONTEXT_DESTROY called\nIOCTL DRM_IOCTL_I915_GEM_CONTEXT_DESTROY returns 0, errno 9(Bad file descriptor)\n");
202+
EXPECT_STREQ(output.c_str(), "IOCTL DRM_IOCTL_I915_GEM_CONTEXT_DESTROY called\nIOCTL DRM_IOCTL_I915_GEM_CONTEXT_DESTROY returns 0\n");
203+
}
204+
205+
struct DrmFailedIoctlTests : public ::testing::Test {
206+
void SetUp() override {
207+
if (deviceDescriptorTable[0].deviceId == 0) {
208+
GTEST_SKIP();
209+
}
210+
}
211+
};
212+
213+
TEST_F(DrmFailedIoctlTests, givenPrintIoctlEntriesWhenCallFailedIoctlThenExpectedIoctlIsPrinted) {
214+
::testing::internal::CaptureStdout();
215+
216+
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
217+
executionEnvironment->prepareRootDeviceEnvironments(1);
218+
auto drm = DrmWrap::createDrm(*executionEnvironment->rootDeviceEnvironments[0]);
219+
220+
DebugManagerStateRestore restorer;
221+
DebugManager.flags.PrintIoctlEntries.set(true);
222+
223+
uint32_t contextId = 1u;
224+
uint32_t vmId = 100u;
225+
drm->queryVmId(contextId, vmId);
226+
227+
std::string output = ::testing::internal::GetCapturedStdout();
228+
EXPECT_STREQ(output.c_str(), "IOCTL DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM called\nIOCTL DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM returns -1, errno 9(Bad file descriptor)\n");
203229
}
204230

205231
TEST_F(DrmSimpleTests, givenPrintIoctlTimesWhenCallIoctlThenStatisticsAreGathered) {

shared/source/os_interface/linux/drm_neo.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,13 @@ int Drm::ioctl(unsigned long request, void *arg) {
240240
}
241241

242242
if (printIoctl) {
243-
printf("IOCTL %s returns %d, errno %d(%s)\n", IoctlToStringHelper::getIoctlString(request).c_str(), ret, returnedErrno, strerror(returnedErrno));
243+
if (ret == 0) {
244+
printf("IOCTL %s returns %d\n",
245+
IoctlToStringHelper::getIoctlString(request).c_str(), ret);
246+
} else {
247+
printf("IOCTL %s returns %d, errno %d(%s)\n",
248+
IoctlToStringHelper::getIoctlString(request).c_str(), ret, returnedErrno, strerror(returnedErrno));
249+
}
244250
}
245251

246252
} while (ret == -1 && (returnedErrno == EINTR || returnedErrno == EAGAIN || returnedErrno == EBUSY));

0 commit comments

Comments
 (0)