feature(sysman): Added implementation for zesVFManagementGetVFCapabilitiesExp2

As zesVFManagementGetVFCapabilitiesExp has been deprecated, added the
implementation for zesVFManagementGetVFCapabilitiesExp2

Related-To: NEO-13525

Signed-off-by: Pratik Bari <pratik.bari@intel.com>
This commit is contained in:
Pratik Bari 2025-01-23 14:59:12 +00:00 committed by Compute-Runtime-Automation
parent 272edeabe6
commit 245aa0cb59
23 changed files with 103 additions and 82 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2024 Intel Corporation
* Copyright (C) 2020-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -402,6 +402,7 @@ zesGetVFManagementExpProcAddrTable(
fillDdiEntry(pDdiTable->pfnGetVFCapabilitiesExp, L0::zesVFManagementGetVFCapabilitiesExp, version, ZE_API_VERSION_1_11);
fillDdiEntry(pDdiTable->pfnGetVFMemoryUtilizationExp2, L0::zesVFManagementGetVFMemoryUtilizationExp2, version, ZE_API_VERSION_1_11);
fillDdiEntry(pDdiTable->pfnGetVFEngineUtilizationExp2, L0::zesVFManagementGetVFEngineUtilizationExp2, version, ZE_API_VERSION_1_11);
fillDdiEntry(pDdiTable->pfnGetVFCapabilitiesExp2, L0::zesVFManagementGetVFCapabilitiesExp2, version, ZE_API_VERSION_1_12);
return result;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2024 Intel Corporation
* Copyright (C) 2020-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -909,9 +909,9 @@ ze_result_t zesVFManagementGetVFCapabilitiesExp(
zes_vf_handle_t hVFhandle,
zes_vf_exp_capabilities_t *pCapability) {
if (L0::sysmanInitFromCore) {
return L0::VfManagement::fromHandle(hVFhandle)->vfGetCapabilities(pCapability);
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
} else if (L0::Sysman::sysmanOnlyInit) {
return L0::Sysman::VfManagement::fromHandle(hVFhandle)->vfGetCapabilities(pCapability);
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
} else {
return ZE_RESULT_ERROR_UNINITIALIZED;
}
@ -943,6 +943,18 @@ ze_result_t zesVFManagementGetVFEngineUtilizationExp2(
}
}
ze_result_t zesVFManagementGetVFCapabilitiesExp2(
zes_vf_handle_t hVFhandle,
zes_vf_exp2_capabilities_t *pCapability) {
if (L0::sysmanInitFromCore) {
return L0::VfManagement::fromHandle(hVFhandle)->vfGetCapabilities(pCapability);
} else if (L0::Sysman::sysmanOnlyInit) {
return L0::Sysman::VfManagement::fromHandle(hVFhandle)->vfGetCapabilities(pCapability);
} else {
return ZE_RESULT_ERROR_UNINITIALIZED;
}
}
ze_result_t zesDeviceEnumMemoryModules(
zes_device_handle_t hDevice,
uint32_t *pCount,
@ -2129,6 +2141,12 @@ ZE_APIEXPORT ze_result_t ZE_APICALL zesVFManagementGetVFEngineUtilizationExp2(
return L0::zesVFManagementGetVFEngineUtilizationExp2(hVFhandle, pCount, pEngineUtil);
}
ZE_APIEXPORT ze_result_t ZE_APICALL zesVFManagementGetVFCapabilitiesExp2(
zes_vf_handle_t hVFhandle,
zes_vf_exp2_capabilities_t *pCapability) {
return L0::zesVFManagementGetVFCapabilitiesExp2(hVFhandle, pCapability);
}
ZE_APIEXPORT ze_result_t ZE_APICALL zesVFManagementSetVFTelemetryModeExp(
zes_vf_handle_t hVFhandle,
zes_vf_info_util_exp_flags_t flags,

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -51,7 +51,7 @@ ze_result_t LinuxVfImp::getVfBDFAddress(uint32_t vfIdMinusOne, zes_pci_address_t
return ZE_RESULT_SUCCESS;
}
ze_result_t LinuxVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
ze_result_t LinuxVfImp::vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) {
ze_result_t result = getVfBDFAddress((vfId - 1), &pCapability->address);
if (result != ZE_RESULT_SUCCESS) {
@ -66,7 +66,7 @@ ze_result_t LinuxVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapabili
if (!vfOsGetLocalMemoryQuota(vfLmemQuota)) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
pCapability->vfDeviceMemSize = static_cast<uint32_t>(vfLmemQuota / 1024);
pCapability->vfDeviceMemSize = vfLmemQuota;
pCapability->vfID = vfId;
return ZE_RESULT_SUCCESS;
@ -89,7 +89,7 @@ ze_result_t LinuxVfImp::vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_m
if (pMemUtil != nullptr) {
for (uint32_t i = 0; i < *pCount; i++) {
pMemUtil[i].vfMemLocation = ZES_MEM_LOC_DEVICE;
pMemUtil[i].vfMemUtilized = vfLmemUsed / 1024;
pMemUtil[i].vfMemUtilized = vfLmemUsed;
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -31,7 +31,7 @@ class LinuxVfImp : public OsVf, NEO::NonCopyableOrMovableClass {
LinuxVfImp(OsSysman *pOsSysman, uint32_t vfId);
~LinuxVfImp() override;
ze_result_t vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) override;
ze_result_t vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) override;
ze_result_t vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) override;
ze_result_t vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) override;
bool vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) override;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -16,7 +16,7 @@ struct OsSysman;
class OsVf {
public:
virtual ze_result_t vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) = 0;
virtual ze_result_t vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) = 0;
virtual ze_result_t vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) = 0;
virtual ze_result_t vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) = 0;
virtual bool vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) = 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -12,13 +12,15 @@
namespace L0 {
namespace Sysman {
ze_result_t VfImp::vfGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
ze_result_t VfImp::vfGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) {
*pCapability = capability;
return ZE_RESULT_SUCCESS;
}
ze_result_t VfImp::vfGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) {
return pOsVf->vfOsGetMemoryUtilization(pCount, pMemUtil);
}
ze_result_t VfImp::vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) {
return pOsVf->vfOsGetEngineUtilization(pCount, pEngineUtil);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -20,7 +20,7 @@ namespace Sysman {
class VfImp : public VfManagement, NEO::NonCopyableOrMovableClass {
public:
void init();
ze_result_t vfGetCapabilities(zes_vf_exp_capabilities_t *pCapability) override;
ze_result_t vfGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) override;
ze_result_t vfGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) override;
ze_result_t vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) override;
@ -32,7 +32,7 @@ class VfImp : public VfManagement, NEO::NonCopyableOrMovableClass {
std::unique_ptr<OsVf> pOsVf;
private:
zes_vf_exp_capabilities_t capability = {};
zes_vf_exp2_capabilities_t capability = {};
};
} // namespace Sysman

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -20,7 +20,7 @@ struct OsSysman;
class VfManagement : _zes_vf_handle_t {
public:
virtual ze_result_t vfGetCapabilities(zes_vf_exp_capabilities_t *pCapability) = 0;
virtual ze_result_t vfGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) = 0;
virtual ze_result_t vfGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) = 0;
virtual ze_result_t vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) = 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -14,7 +14,7 @@ namespace Sysman {
uint32_t WddmVfImp::numEnabledVfs = 0;
ze_result_t WddmVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
ze_result_t WddmVfImp::vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
ze_result_t WddmVfImp::vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -14,7 +14,7 @@ namespace Sysman {
class WddmVfImp : public OsVf {
public:
ze_result_t vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) override;
ze_result_t vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) override;
ze_result_t vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) override;
ze_result_t vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) override;
bool vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) override;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -77,8 +77,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenPciAddressR
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, mockedDomain);
EXPECT_EQ(capabilities.address.bus, mockedBus);
EXPECT_EQ(capabilities.address.device, mockedDevice);
@ -91,8 +91,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleAndSysfsGetRealPathFailsWhenQueryingVfCap
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
EXPECT_EQ(capabilities.address.device, (uint32_t)0);
@ -106,8 +106,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleAndInvalidBDFWithImproperTokensWhenQueryi
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
EXPECT_EQ(capabilities.address.device, (uint32_t)0);
@ -121,8 +121,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleAndInvalidBDFWhenQueryingVfCapabilitiesTh
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
EXPECT_EQ(capabilities.address.device, (uint32_t)0);
@ -134,9 +134,9 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenParamsRetur
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.vfDeviceMemSize, mockLmemQuota / 1024);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.vfDeviceMemSize, mockLmemQuota);
EXPECT_GT(capabilities.vfID, (uint32_t)0);
}
}
@ -151,7 +151,7 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingMemoryUtilizationThenMemoryPa
std::vector<zes_vf_util_mem_exp2_t> memUtils(count);
EXPECT_EQ(zesVFManagementGetVFMemoryUtilizationExp2(hSysmanVf, &count, memUtils.data()), ZE_RESULT_SUCCESS);
for (uint32_t it = 0; it < count; it++) {
EXPECT_EQ(memUtils[it].vfMemUtilized, mockLmemUsed / 1024);
EXPECT_EQ(memUtils[it].vfMemUtilized, mockLmemUsed);
EXPECT_EQ(memUtils[it].vfMemLocation, ZES_MEM_LOC_DEVICE);
}
}
@ -206,7 +206,7 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenCallingZesVFManagementGetVFEngineUtil
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndSysfsReadForMemoryQuotaValueFailsThenErrorIsReturned) {
pSysfsAccess->mockError = ZE_RESULT_ERROR_UNKNOWN;
zes_vf_exp_capabilities_t capabilities = {};
zes_vf_exp2_capabilities_t capabilities = {};
auto pVfImp = std::make_unique<PublicLinuxVfImp>(pOsSysman, 1);
EXPECT_EQ(pVfImp->vfOsGetCapabilities(&capabilities), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -50,8 +50,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenZeroPciAddr
uint32_t vfId = 1;
std::unique_ptr<VfManagement> pVfManagement = std::make_unique<VfImp>(pOsSysman, vfId);
zes_vf_handle_t vfHandle = pVfManagement->toVfManagementHandle();
zes_vf_exp_capabilities_t capabilities = {};
ze_result_t result = zesVFManagementGetVFCapabilitiesExp(vfHandle, &capabilities);
zes_vf_exp2_capabilities_t capabilities = {};
ze_result_t result = zesVFManagementGetVFCapabilitiesExp2(vfHandle, &capabilities);
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
@ -62,7 +62,7 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenZeroPciAddr
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingOsVfCapabilitiesThenErrorIsReturned) {
auto pWddmVfImp = std::make_unique<WddmVfImp>();
zes_vf_exp_capabilities_t capabilities = {};
zes_vf_exp2_capabilities_t capabilities = {};
ze_result_t result = pWddmVfImp->vfOsGetCapabilities(&capabilities);
EXPECT_EQ(result, ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -46,7 +46,7 @@ ze_result_t LinuxVfImp::getVfBDFAddress(uint32_t vfIdMinusOne, zes_pci_address_t
return ZE_RESULT_SUCCESS;
}
ze_result_t LinuxVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
ze_result_t LinuxVfImp::vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) {
ze_result_t result = getVfBDFAddress((vfId - 1), &pCapability->address);
if (result != ZE_RESULT_SUCCESS) {
@ -61,7 +61,7 @@ ze_result_t LinuxVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapabili
if (!vfOsGetLocalMemoryQuota(vfLmemQuota)) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
pCapability->vfDeviceMemSize = static_cast<uint32_t>(vfLmemQuota / 1024);
pCapability->vfDeviceMemSize = vfLmemQuota;
pCapability->vfID = vfId;
return ZE_RESULT_SUCCESS;
@ -83,7 +83,7 @@ ze_result_t LinuxVfImp::vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_m
if (pMemUtil != nullptr) {
for (uint32_t i = 0; i < *pCount; i++) {
pMemUtil[i].vfMemLocation = ZES_MEM_LOC_DEVICE;
pMemUtil[i].vfMemUtilized = vfLmemUsed / 1024;
pMemUtil[i].vfMemUtilized = vfLmemUsed;
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -31,7 +31,7 @@ class LinuxVfImp : public OsVf, NEO::NonCopyableOrMovableClass {
LinuxVfImp(OsSysman *pOsSysman, uint32_t vfId);
~LinuxVfImp() override;
ze_result_t vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) override;
ze_result_t vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) override;
ze_result_t vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) override;
ze_result_t vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) override;
bool vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) override;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -15,7 +15,7 @@ struct OsSysman;
class OsVf {
public:
virtual ze_result_t vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) = 0;
virtual ze_result_t vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) = 0;
virtual ze_result_t vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) = 0;
virtual ze_result_t vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) = 0;
virtual bool vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) = 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -11,7 +11,7 @@
namespace L0 {
ze_result_t VfImp::vfGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
ze_result_t VfImp::vfGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) {
*pCapability = capability;
return ZE_RESULT_SUCCESS;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -19,7 +19,7 @@ namespace L0 {
class VfImp : public VfManagement, NEO::NonCopyableOrMovableClass {
public:
void init();
ze_result_t vfGetCapabilities(zes_vf_exp_capabilities_t *pCapability) override;
ze_result_t vfGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) override;
ze_result_t vfGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) override;
ze_result_t vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) override;
@ -31,7 +31,7 @@ class VfImp : public VfManagement, NEO::NonCopyableOrMovableClass {
std::unique_ptr<OsVf> pOsVf;
private:
zes_vf_exp_capabilities_t capability = {};
zes_vf_exp2_capabilities_t capability = {};
};
} // namespace L0

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -19,7 +19,7 @@ struct OsSysman;
class VfManagement : _zes_vf_handle_t {
public:
virtual ze_result_t vfGetCapabilities(zes_vf_exp_capabilities_t *pCapability) = 0;
virtual ze_result_t vfGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) = 0;
virtual ze_result_t vfGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) = 0;
virtual ze_result_t vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) = 0;

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -13,7 +13,7 @@ namespace L0 {
uint32_t WddmVfImp::numEnabledVfs = 0;
ze_result_t WddmVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
ze_result_t WddmVfImp::vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) {
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
}
ze_result_t WddmVfImp::vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) {

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -13,7 +13,7 @@ namespace L0 {
class WddmVfImp : public OsVf {
public:
ze_result_t vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) override;
ze_result_t vfOsGetCapabilities(zes_vf_exp2_capabilities_t *pCapability) override;
ze_result_t vfOsGetMemoryUtilization(uint32_t *pCount, zes_vf_util_mem_exp2_t *pMemUtil) override;
ze_result_t vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_exp2_t *pEngineUtil) override;
bool vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) override;

View File

@ -1611,13 +1611,13 @@ void testSysmanVfTelemetry(ze_device_handle_t &device) {
VALIDATECALL(zesDeviceEnumEnabledVFExp(device, &count, handles.data()));
for (const auto &handle : handles) {
zes_vf_exp_capabilities_t props = {};
VALIDATECALL(zesVFManagementGetVFCapabilitiesExp(handle, &props));
zes_vf_exp2_capabilities_t props = {};
VALIDATECALL(zesVFManagementGetVFCapabilitiesExp2(handle, &props));
if (verbose) {
std::cout << std::endl
<< "----- PCI BDF ------ " << std::endl;
std::cout << "Domain: Bus: Device: Function = " << props.address.domain << " : " << props.address.bus << " : " << props.address.device << " : " << props.address.function << std::endl;
std::cout << "Memory Size in KiloBytes = " << props.vfDeviceMemSize << std::endl;
std::cout << "Memory Size in Bytes = " << props.vfDeviceMemSize << std::endl;
std::cout << "VF Id = " << props.vfID << std::endl;
}
@ -1631,7 +1631,7 @@ void testSysmanVfTelemetry(ze_device_handle_t &device) {
for (uint32_t it = 0; it < count; it++) {
if (verbose) {
std::cout << "Location of the Memory = " << getMemoryModuleLocation(memUtils[it].vfMemLocation) << std::endl;
std::cout << "Memory Utilized in KiloBytes = " << memUtils[it].vfMemUtilized << std::endl;
std::cout << "Memory Utilized in Bytes = " << memUtils[it].vfMemUtilized << std::endl;
}
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -78,8 +78,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenPciAddressR
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, mockedDomain);
EXPECT_EQ(capabilities.address.bus, mockedBus);
EXPECT_EQ(capabilities.address.device, mockedDevice);
@ -92,8 +92,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleAndSysfsGetRealPathFailsWhenQueryingVfCap
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
EXPECT_EQ(capabilities.address.device, (uint32_t)0);
@ -107,8 +107,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleAndInvalidBDFWithImproperTokensWhenQueryi
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
EXPECT_EQ(capabilities.address.device, (uint32_t)0);
@ -122,8 +122,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleAndInvalidBDFWhenQueryingVfCapabilitiesTh
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
EXPECT_EQ(capabilities.address.device, (uint32_t)0);
@ -135,9 +135,9 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenParamsRetur
auto handles = getEnabledVfHandles(mockHandleCount);
for (auto hSysmanVf : handles) {
ASSERT_NE(nullptr, hSysmanVf);
zes_vf_exp_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.vfDeviceMemSize, mockLmemQuota / 1024);
zes_vf_exp2_capabilities_t capabilities = {};
EXPECT_EQ(zesVFManagementGetVFCapabilitiesExp2(hSysmanVf, &capabilities), ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.vfDeviceMemSize, mockLmemQuota);
EXPECT_GT(capabilities.vfID, (uint32_t)0);
}
}
@ -152,7 +152,7 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingMemoryUtilizationThenMemoryPa
std::vector<zes_vf_util_mem_exp2_t> memUtils(count);
EXPECT_EQ(zesVFManagementGetVFMemoryUtilizationExp2(hSysmanVf, &count, memUtils.data()), ZE_RESULT_SUCCESS);
for (uint32_t it = 0; it < count; it++) {
EXPECT_EQ(memUtils[it].vfMemUtilized, mockLmemUsed / 1024);
EXPECT_EQ(memUtils[it].vfMemUtilized, mockLmemUsed);
EXPECT_EQ(memUtils[it].vfMemLocation, ZES_MEM_LOC_DEVICE);
}
}
@ -207,7 +207,7 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenCallingZesVFManagementGetVFEngineUtil
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndSysfsReadForMemoryQuotaValueFailsThenErrorIsReturned) {
pSysfsAccess->mockError = ZE_RESULT_ERROR_UNKNOWN;
zes_vf_exp_capabilities_t capabilities = {};
zes_vf_exp2_capabilities_t capabilities = {};
auto pVfImp = std::make_unique<PublicLinuxVfImp>(pOsSysman, 1);
EXPECT_EQ(pVfImp->vfOsGetCapabilities(&capabilities), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
}

View File

@ -1,5 +1,5 @@
/*
* Copyright (C) 2024 Intel Corporation
* Copyright (C) 2024-2025 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@ -58,8 +58,8 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenZeroPciAddr
uint32_t vfId = 1;
std::unique_ptr<VfManagement> pVfManagement = std::make_unique<VfImp>(pOsSysman, vfId);
zes_vf_handle_t vfHandle = pVfManagement->toVfManagementHandle();
zes_vf_exp_capabilities_t capabilities = {};
ze_result_t result = zesVFManagementGetVFCapabilitiesExp(vfHandle, &capabilities);
zes_vf_exp2_capabilities_t capabilities = {};
ze_result_t result = zesVFManagementGetVFCapabilitiesExp2(vfHandle, &capabilities);
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
EXPECT_EQ(capabilities.address.domain, (uint32_t)0);
EXPECT_EQ(capabilities.address.bus, (uint32_t)0);
@ -70,7 +70,7 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenZeroPciAddr
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingOsVfCapabilitiesThenErrorIsReturned) {
auto pWddmVfImp = std::make_unique<WddmVfImp>();
zes_vf_exp_capabilities_t capabilities = {};
zes_vf_exp2_capabilities_t capabilities = {};
ze_result_t result = pWddmVfImp->vfOsGetCapabilities(&capabilities);
EXPECT_EQ(result, ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
}