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 <kamil.diedrich@intel.com>
This commit is contained in:
Kamil Diedrich
2022-02-02 23:29:55 +01:00
committed by Compute-Runtime-Automation
parent f4b4110dfa
commit 452de80d70
2 changed files with 4 additions and 4 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2021 Intel Corporation
* Copyright (C) 2021-2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -108,11 +108,11 @@ bool adjustGfxPartitionLayout(GMM_GFX_PARTITIONING &partitionLayout, uint64_t gp
const auto cpuAddressRangeSizeToReserve = getSizeToReserve();
void *reservedRangeBase = nullptr;
if (false == wddm.reserveValidAddressRange(cpuAddressRangeSizeToReserve + GfxPartition::heapGranularity - 1, reservedRangeBase)) {
if (false == wddm.reserveValidAddressRange(cpuAddressRangeSizeToReserve + 2 * MemoryConstants::megaByte, reservedRangeBase)) {
DEBUG_BREAK_IF(true);
return false;
}
auto reservedRangeBaseAligned = alignUp(reservedRangeBase, GfxPartition::heapGranularity);
auto reservedRangeBaseAligned = alignUp(reservedRangeBase, 2 * MemoryConstants::megaByte);
auto gfxBase = reinterpret_cast<uint64_t>(reservedRangeBaseAligned);
auto gfxTop = gfxBase + cpuAddressRangeSizeToReserve;

View File

@@ -547,7 +547,7 @@ TEST_F(WddmLinuxConfigureReduced48bitDeviceAddressSpaceTest, givenTwoSvmAddressS
EXPECT_EQ(NEO::windowsMinAddress, allReserveGpuVaArgs[0].BaseAddress);
EXPECT_EQ(0U, allReserveGpuVaArgs[0].MinimumAddress);
EXPECT_EQ(0U, allReserveGpuVaArgs[0].MaximumAddress);
EXPECT_EQ(alignUp(reservedCpuBase - allReserveGpuVaArgs[0].BaseAddress, MemoryConstants::pageSize64k), allReserveGpuVaArgs[0].Size);
EXPECT_EQ(alignUp(reservedCpuBase - allReserveGpuVaArgs[0].BaseAddress, 2 * MemoryConstants::megaByte), allReserveGpuVaArgs[0].Size);
EXPECT_EQ(this->wddm->getAdapter(), allReserveGpuVaArgs[0].hAdapter);
EXPECT_EQ(alignDown(reservedCpuEnd, MemoryConstants::pageSize64k), allReserveGpuVaArgs[1].BaseAddress);