From aa51c5ee76afc929253915cdb305d6190f78c9b2 Mon Sep 17 00:00:00 2001 From: Jaime Arteaga Date: Fri, 2 Jul 2021 09:20:44 +0000 Subject: [PATCH] Add support for ZE_IPC_MEMORY_FLAG_BIAS_UNCACHED Signed-off-by: Jaime Arteaga --- level_zero/core/source/memory/memory.cpp | 4 +++ .../unit_tests/sources/memory/test_memory.cpp | 26 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/level_zero/core/source/memory/memory.cpp b/level_zero/core/source/memory/memory.cpp index c7eb39dc70..18f4fed74f 100644 --- a/level_zero/core/source/memory/memory.cpp +++ b/level_zero/core/source/memory/memory.cpp @@ -42,6 +42,10 @@ void *DriverHandleImp::importFdHandle(ze_device_handle_t hDevice, ze_ipc_memory_ allocData.allocationFlagsProperty.flags.locallyUncachedResource = 1; } + if (flags & ZE_IPC_MEMORY_FLAG_BIAS_UNCACHED) { + allocData.allocationFlagsProperty.flags.locallyUncachedResource = 1; + } + this->getSvmAllocsManager()->insertSVMAlloc(allocData); if (pAlloc) { diff --git a/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp b/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp index 668ca5da24..c98c1a29b9 100644 --- a/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp +++ b/level_zero/core/test/unit_tests/sources/memory/test_memory.cpp @@ -2454,6 +2454,32 @@ TEST_F(ImportFdUncachedTests, context->freeMem(ptr); } +TEST_F(ImportFdUncachedTests, + givenCallToImportFdHandleWithUncachedIpcFlagsThenLocallyUncachedResourceIsSet) { + ze_ipc_memory_flags_t flags = ZE_IPC_MEMORY_FLAG_BIAS_UNCACHED; + uint64_t handle = 1; + void *ptr = driverHandle->importFdHandle(device->toHandle(), flags, handle, nullptr); + EXPECT_NE(nullptr, ptr); + + auto allocData = driverHandle->svmAllocsManager->getSVMAlloc(ptr); + EXPECT_EQ(allocData->allocationFlagsProperty.flags.locallyUncachedResource, 1u); + + context->freeMem(ptr); +} + +TEST_F(ImportFdUncachedTests, + givenCallToImportFdHandleWithBothUncachedFlagsThenLocallyUncachedResourceIsSet) { + ze_ipc_memory_flags_t flags = ZE_DEVICE_MEM_ALLOC_FLAG_BIAS_UNCACHED | ZE_IPC_MEMORY_FLAG_BIAS_UNCACHED; + uint64_t handle = 1; + void *ptr = driverHandle->importFdHandle(device->toHandle(), flags, handle, nullptr); + EXPECT_NE(nullptr, ptr); + + auto allocData = driverHandle->svmAllocsManager->getSVMAlloc(ptr); + EXPECT_EQ(allocData->allocationFlagsProperty.flags.locallyUncachedResource, 1u); + + context->freeMem(ptr); +} + TEST_F(ImportFdUncachedTests, givenCallToImportFdHandleWithoutUncachedFlagsThenLocallyUncachedResourceIsNotSet) { ze_ipc_memory_flags_t flags = {};