From 4c47364dfd84df0167ed0fd8a3b2a8abd261bf46 Mon Sep 17 00:00:00 2001 From: Zbigniew Zdanowicz Date: Thu, 30 Jan 2025 15:03:42 +0000 Subject: [PATCH] refactor: add getter to read kernel argument values Signed-off-by: Zbigniew Zdanowicz --- level_zero/core/source/kernel/kernel_imp.h | 4 ++++ .../core/test/unit_tests/sources/kernel/test_kernel.cpp | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/level_zero/core/source/kernel/kernel_imp.h b/level_zero/core/source/kernel/kernel_imp.h index ebf15af5cf..ed36beab35 100644 --- a/level_zero/core/source/kernel/kernel_imp.h +++ b/level_zero/core/source/kernel/kernel_imp.h @@ -233,6 +233,10 @@ struct KernelImp : Kernel { } uint8_t getRequiredSlmAlignment(uint32_t argIndex) const; + const std::vector &getKernelArgInfos() const { + return kernelArgInfos; + } + protected: KernelImp() = default; diff --git a/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp b/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp index 0e05d0acc3..3c508d029b 100644 --- a/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp +++ b/level_zero/core/test/unit_tests/sources/kernel/test_kernel.cpp @@ -277,6 +277,8 @@ TEST_F(SetKernelArgCacheTest, givenValidBufferArgumentWhenSetMultipleTimesThenSe desc.pKernelName = kernelName.c_str(); mockKernel.initialize(&desc); + const auto &kernelArgInfos = mockKernel.getKernelArgInfos(); + auto svmAllocsManager = device->getDriverHandle()->getSvmAllocsManager(); auto allocationProperties = NEO::SVMAllocsManager::SvmAllocationProperties{}; auto svmAllocation = svmAllocsManager->createSVMAlloc(4096, allocationProperties, context->rootDeviceIndices, context->deviceBitfields); @@ -296,6 +298,7 @@ TEST_F(SetKernelArgCacheTest, givenValidBufferArgumentWhenSetMultipleTimesThenSe // same setArg and allocId matches - not called svmAllocsManager->allocationsCounter = 2u; ASSERT_EQ(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, 0u); + EXPECT_EQ(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, kernelArgInfos[0].allocIdMemoryManagerCounter); EXPECT_EQ(ZE_RESULT_SUCCESS, mockKernel.setArgBuffer(0, sizeof(svmAllocation), &svmAllocation)); EXPECT_EQ(callCounter, mockKernel.setArgBufferWithAllocCalled); EXPECT_EQ(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, 2u); @@ -304,6 +307,7 @@ TEST_F(SetKernelArgCacheTest, givenValidBufferArgumentWhenSetMultipleTimesThenSe // same setArg but allocId is uninitialized - called mockKernel.kernelArgInfos[0].allocId = SvmAllocationData::uninitializedAllocId; ASSERT_EQ(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, svmAllocsManager->allocationsCounter); + EXPECT_EQ(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, kernelArgInfos[0].allocIdMemoryManagerCounter); EXPECT_EQ(ZE_RESULT_SUCCESS, mockKernel.setArgBuffer(0, sizeof(svmAllocation), &svmAllocation)); EXPECT_EQ(++callCounter, mockKernel.setArgBufferWithAllocCalled); EXPECT_EQ(mockKernel.kernelArgInfos[0].allocId, 1u); @@ -323,6 +327,7 @@ TEST_F(SetKernelArgCacheTest, givenValidBufferArgumentWhenSetMultipleTimesThenSe ++svmAllocsManager->allocationsCounter; ASSERT_NE(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, svmAllocsManager->allocationsCounter); ASSERT_NE(mockKernel.kernelArgInfos[0].allocId, allocData->getAllocId()); + EXPECT_EQ(mockKernel.kernelArgInfos[0].allocId, kernelArgInfos[0].allocId); EXPECT_EQ(ZE_RESULT_SUCCESS, mockKernel.setArgBuffer(0, sizeof(svmAllocation), &svmAllocation)); EXPECT_EQ(++callCounter, mockKernel.setArgBufferWithAllocCalled); EXPECT_EQ(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, svmAllocsManager->allocationsCounter); @@ -336,6 +341,7 @@ TEST_F(SetKernelArgCacheTest, givenValidBufferArgumentWhenSetMultipleTimesThenSe // nullptr - not called, argInfo is updated EXPECT_FALSE(mockKernel.kernelArgInfos[0].isSetToNullptr); + EXPECT_EQ(mockKernel.kernelArgInfos[0].isSetToNullptr, kernelArgInfos[0].isSetToNullptr); EXPECT_EQ(ZE_RESULT_SUCCESS, mockKernel.setArgBuffer(0, sizeof(nullptr), nullptr)); EXPECT_EQ(callCounter, mockKernel.setArgBufferWithAllocCalled); EXPECT_TRUE(mockKernel.kernelArgInfos[0].isSetToNullptr); @@ -361,6 +367,7 @@ TEST_F(SetKernelArgCacheTest, givenValidBufferArgumentWhenSetMultipleTimesThenSe ASSERT_GT(mockKernel.kernelArgInfos[0].allocId, 0u); ASSERT_LT(mockKernel.kernelArgInfos[0].allocId, SvmAllocationData::uninitializedAllocId); ASSERT_EQ(mockKernel.kernelArgInfos[0].value, secondSvmAllocation); + EXPECT_EQ(mockKernel.kernelArgInfos[0].value, kernelArgInfos[0].value); ASSERT_GT(svmAllocsManager->allocationsCounter, 0u); ASSERT_NE(mockKernel.kernelArgInfos[0].allocIdMemoryManagerCounter, svmAllocsManager->allocationsCounter); EXPECT_EQ(ZE_RESULT_SUCCESS, mockKernel.setArgBuffer(0, sizeof(secondSvmAllocation), &secondSvmAllocation));