Skip to content

Commit 452de80

Browse files
Add 2MB alignment for reserving address space for WSL
Fixes sporadic issues in configure address space for some devices running in WSL mode Signed-off-by: Kamil Diedrich <[email protected]>
1 parent f4b4110 commit 452de80

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
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
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2021 Intel Corporation
2+
* Copyright (C) 2021-2022 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -108,11 +108,11 @@ bool adjustGfxPartitionLayout(GMM_GFX_PARTITIONING &partitionLayout, uint64_t gp
108108
const auto cpuAddressRangeSizeToReserve = getSizeToReserve();
109109

110110
void *reservedRangeBase = nullptr;
111-
if (false == wddm.reserveValidAddressRange(cpuAddressRangeSizeToReserve + GfxPartition::heapGranularity - 1, reservedRangeBase)) {
111+
if (false == wddm.reserveValidAddressRange(cpuAddressRangeSizeToReserve + 2 * MemoryConstants::megaByte, reservedRangeBase)) {
112112
DEBUG_BREAK_IF(true);
113113
return false;
114114
}
115-
auto reservedRangeBaseAligned = alignUp(reservedRangeBase, GfxPartition::heapGranularity);
115+
auto reservedRangeBaseAligned = alignUp(reservedRangeBase, 2 * MemoryConstants::megaByte);
116116

117117
auto gfxBase = reinterpret_cast<uint64_t>(reservedRangeBaseAligned);
118118
auto gfxTop = gfxBase + cpuAddressRangeSizeToReserve;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -547,7 +547,7 @@ TEST_F(WddmLinuxConfigureReduced48bitDeviceAddressSpaceTest, givenTwoSvmAddressS
547547
EXPECT_EQ(NEO::windowsMinAddress, allReserveGpuVaArgs[0].BaseAddress);
548548
EXPECT_EQ(0U, allReserveGpuVaArgs[0].MinimumAddress);
549549
EXPECT_EQ(0U, allReserveGpuVaArgs[0].MaximumAddress);
550-
EXPECT_EQ(alignUp(reservedCpuBase - allReserveGpuVaArgs[0].BaseAddress, MemoryConstants::pageSize64k), allReserveGpuVaArgs[0].Size);
550+
EXPECT_EQ(alignUp(reservedCpuBase - allReserveGpuVaArgs[0].BaseAddress, 2 * MemoryConstants::megaByte), allReserveGpuVaArgs[0].Size);
551551
EXPECT_EQ(this->wddm->getAdapter(), allReserveGpuVaArgs[0].hAdapter);
552552

553553
EXPECT_EQ(alignDown(reservedCpuEnd, MemoryConstants::pageSize64k), allReserveGpuVaArgs[1].BaseAddress);

0 commit comments

Comments
 (0)