Skip to content

Commit 45de132

Browse files
jchodorCompute-Runtime-Automation
authored andcommitted
WSL validate reserve_gpu_va args in ULTs
Signed-off-by: Jaroslaw Chodor <[email protected]>
1 parent c910a58 commit 45de132

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

shared/source/os_interface/windows/wddm/configure_device_address_space_drm_or_wddm.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,9 +155,9 @@ bool ensureGpuAddressRangeIsReserved(uint64_t address, size_t size, D3DKMT_HANDL
155155
if (status != STATUS_SUCCESS) {
156156
// make sure address range is already reserved
157157
rangeDesc.BaseAddress = 0;
158-
rangeDesc.MinimumAddress = alignDown(address, MemoryConstants::pageSize);
159-
rangeDesc.MaximumAddress = alignUp(address + size, MemoryConstants::pageSize);
160-
rangeDesc.Size = MemoryConstants::pageSize;
158+
rangeDesc.MinimumAddress = alignDown(address, MemoryConstants::pageSize64k);
159+
rangeDesc.MaximumAddress = alignUp(address + size, MemoryConstants::pageSize64k);
160+
rangeDesc.Size = MemoryConstants::pageSize64k;
161161
status = gdi.reserveGpuVirtualAddress(&rangeDesc);
162162
if (status != STATUS_SUCCESS) {
163163
DEBUG_BREAK_IF(true);

shared/test/unit_test/os_interface/wddm_linux/configure_device_address_space_drm_or_wddm_test.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ NTSTATUS __stdcall reserveDeviceAddressSpaceMock(D3DDDI_RESERVEGPUVIRTUALADDRESS
130130
bool validArgs = true;
131131
if (arg->BaseAddress) {
132132
validArgs = validArgs && isAligned<MemoryConstants::pageSize64k>(arg->BaseAddress);
133+
validArgs = validArgs && isAligned<MemoryConstants::pageSize64k>(arg->Size);
133134
validArgs = validArgs && (0U == arg->MinimumAddress);
134135
validArgs = validArgs && (0U == arg->MaximumAddress);
135136
} else {
@@ -138,6 +139,9 @@ NTSTATUS __stdcall reserveDeviceAddressSpaceMock(D3DDDI_RESERVEGPUVIRTUALADDRESS
138139
validArgs = validArgs && isAligned<MemoryConstants::pageSize64k>(arg->MaximumAddress);
139140
}
140141
validArgs = validArgs && isAligned<MemoryConstants::pageSize64k>(arg->Size);
142+
if (false == validArgs) {
143+
return -1;
144+
}
141145
}
142146
return gdiMockConfig.reserveGpuVaClb.returnValue;
143147
}
@@ -238,7 +242,7 @@ TEST_F(WddmLinuxConfigureDeviceAddressSpaceTest, givenSvmAddressSpaceThenReserve
238242
EXPECT_EQ(this->wddm->getAdapter(), gdiMockConfig.receivedReserveGpuVaArgs.hAdapter);
239243
}
240244

241-
TEST_F(WddmLinuxConfigureDeviceAddressSpaceTest, givenPreReservedSvmAddressSpaceThenMakeSureWholeGpuVAForUSMIsReserved) {
245+
TEST_F(WddmLinuxConfigureDeviceAddressSpaceTest, givenPreReservedSvmAddressSpaceThenMakeSureWholeGpuVAForUSMIsReservedAndProperlyAligned) {
242246
if (NEO::hardwareInfoTable[productFamily]->capabilityTable.gpuAddressSpace < MemoryConstants::max64BitAppAddress) {
243247
GTEST_SKIP();
244248
}
@@ -253,7 +257,7 @@ TEST_F(WddmLinuxConfigureDeviceAddressSpaceTest, givenPreReservedSvmAddressSpace
253257
EXPECT_EQ(0U, gdiMockConfig.receivedReserveGpuVaArgs.BaseAddress);
254258
EXPECT_EQ(NEO::windowsMinAddress, gdiMockConfig.receivedReserveGpuVaArgs.MinimumAddress);
255259
EXPECT_EQ(svmSize, gdiMockConfig.receivedReserveGpuVaArgs.MaximumAddress);
256-
EXPECT_EQ(MemoryConstants::pageSize, gdiMockConfig.receivedReserveGpuVaArgs.Size);
260+
EXPECT_EQ(MemoryConstants::pageSize64k, gdiMockConfig.receivedReserveGpuVaArgs.Size);
257261
EXPECT_EQ(wddm->getAdapter(), gdiMockConfig.receivedReserveGpuVaArgs.hAdapter);
258262
}
259263

0 commit comments

Comments
 (0)