From 35926a5a18738f0cd1cb14d3b8ffab66c173e9eb Mon Sep 17 00:00:00 2001 From: Anvesh Bakwad Date: Mon, 5 May 2025 16:45:40 +0000 Subject: [PATCH] fix(sysman): Add GDDR6 memory type into Memory Properties Related-To: NEO-14810 Signed-off-by: Anvesh Bakwad --- .../sysman_product_helper_hw.inl | 7 ++++-- .../memory/linux/test_sysman_memory.cpp | 25 ++++++++++++++++--- .../test/black_box_tests/zello_sysman.cpp | 1 + 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper_hw.inl b/level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper_hw.inl index 352673e930..65056f9e87 100644 --- a/level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper_hw.inl +++ b/level_zero/sysman/source/shared/linux/product_helper/sysman_product_helper_hw.inl @@ -65,9 +65,12 @@ ze_result_t SysmanProductHelperHw::getMemoryProperties(zes_mem_prope case NEO::DeviceBlobConstants::MemoryType::lpddr5: pProperties->type = ZES_MEM_TYPE_LPDDR5; break; - default: - pProperties->type = ZES_MEM_TYPE_DDR; + case NEO::DeviceBlobConstants::MemoryType::gddr6: + pProperties->type = ZES_MEM_TYPE_GDDR6; break; + default: + DEBUG_BREAK_IF(true); + return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; } if (pProperties->type == ZES_MEM_TYPE_HBM) { diff --git a/level_zero/sysman/test/unit_tests/sources/memory/linux/test_sysman_memory.cpp b/level_zero/sysman/test/unit_tests/sources/memory/linux/test_sysman_memory.cpp index 205cff7f13..b5a49083eb 100644 --- a/level_zero/sysman/test/unit_tests/sources/memory/linux/test_sysman_memory.cpp +++ b/level_zero/sysman/test/unit_tests/sources/memory/linux/test_sysman_memory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -361,20 +361,37 @@ HWTEST2_F(SysmanDeviceMemoryFixtureI915, GivenValidMemoryHandleWhenCallingZesMem } } -HWTEST2_F(SysmanDeviceMemoryFixtureI915, GivenValidMemoryHandleWhenCallingZesMemoryGetPropertiesWithDDRLocalMemoryThenVerifySysmanMemoryGetPropertiesCallSucceeds, IsPVC) { +HWTEST2_F(SysmanDeviceMemoryFixtureI915, GivenValidMemoryHandleWhenCallingZesMemoryGetPropertiesWithGddr6LocalMemoryThenVerifySysmanMemoryGetPropertiesCallSucceeds, IsPVC) { pDrm->setMemoryType(NEO::DeviceBlobConstants::MemoryType::gddr6); auto handles = getMemoryHandles(memoryHandleComponentCount); + for (auto handle : handles) { + zes_mem_properties_t properties; + ze_result_t result = zesMemoryGetProperties(handle, &properties); + EXPECT_EQ(result, ZE_RESULT_SUCCESS); + EXPECT_EQ(properties.type, ZES_MEM_TYPE_GDDR6); + EXPECT_EQ(properties.location, ZES_MEM_LOC_DEVICE); + EXPECT_FALSE(properties.onSubdevice); + EXPECT_EQ(properties.subdeviceId, 0u); + EXPECT_EQ(properties.physicalSize, 0u); + EXPECT_EQ(properties.numChannels, numMemoryChannels); + EXPECT_EQ(properties.busWidth, memoryBusWidth); + } +} + +TEST_F(SysmanDeviceMemoryFixtureI915, GivenValidMemoryHandleWhenCallingZesMemoryGetPropertiesWithInvalidMemoryTypeThenVerifyGetPropertiesCallReturnsMemoryTypeAsDdrAndNumberOfChannelsAsUnknown) { + pDrm->setMemoryType(INT_MAX); + auto handles = getMemoryHandles(memoryHandleComponentCount); for (auto handle : handles) { zes_mem_properties_t properties; ze_result_t result = zesMemoryGetProperties(handle, &properties); EXPECT_EQ(result, ZE_RESULT_SUCCESS); EXPECT_EQ(properties.type, ZES_MEM_TYPE_DDR); EXPECT_EQ(properties.location, ZES_MEM_LOC_DEVICE); + EXPECT_EQ(properties.numChannels, -1); EXPECT_FALSE(properties.onSubdevice); EXPECT_EQ(properties.subdeviceId, 0u); EXPECT_EQ(properties.physicalSize, 0u); - EXPECT_EQ(properties.numChannels, numMemoryChannels); - EXPECT_EQ(properties.busWidth, memoryBusWidth); + EXPECT_EQ(properties.busWidth, -1); } } diff --git a/level_zero/tools/test/black_box_tests/zello_sysman.cpp b/level_zero/tools/test/black_box_tests/zello_sysman.cpp index 0cef9a3f15..99fd05076c 100644 --- a/level_zero/tools/test/black_box_tests/zello_sysman.cpp +++ b/level_zero/tools/test/black_box_tests/zello_sysman.cpp @@ -1052,6 +1052,7 @@ std::string getMemoryType(zes_mem_type_t memType) { {ZES_MEM_TYPE_LPDDR3, "ZES_MEM_TYPE_LPDDR3"}, {ZES_MEM_TYPE_LPDDR4, "ZES_MEM_TYPE_LPDDR4"}, {ZES_MEM_TYPE_LPDDR5, "ZES_MEM_TYPE_LPDDR5"}, + {ZES_MEM_TYPE_GDDR6, "ZES_MEM_TYPE_GDDR6"}, {ZES_MEM_TYPE_SRAM, "ZES_MEM_TYPE_SRAM"}, {ZES_MEM_TYPE_L1, "ZES_MEM_TYPE_L1"}, {ZES_MEM_TYPE_L3, "ZES_MEM_TYPE_L3"},