mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 07:00:17 +08:00
fix: Check for Local Memory is removed during VF handle creation
- During VF handle creation, the check for the local memory used is removed. Related-To: NEO-13525 Signed-off-by: Pratik Bari <pratik.bari@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
c7d1f3b6a9
commit
4eabc77932
@@ -220,10 +220,6 @@ bool LinuxVfImp::vfOsGetLocalMemoryUsed(uint64_t &lMemUsed) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Failed to read Local Memory Used with error 0x%x \n", __FUNCTION__, result);
|
||||
return false;
|
||||
}
|
||||
if (lMemUsed == 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): since the Local Memory Used is zero \n", __FUNCTION__);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -237,10 +233,6 @@ bool LinuxVfImp::vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Failed to read Local Memory Quota with error 0x%x \n", __FUNCTION__, result);
|
||||
return false;
|
||||
}
|
||||
if (lMemQuota == 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): since the Local Memory Quota is zero \n", __FUNCTION__);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,8 +24,6 @@ ze_result_t VfImp::vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_e
|
||||
}
|
||||
|
||||
void VfImp::init() {
|
||||
uint64_t lmemUsed = 0;
|
||||
isVfEnabled = pOsVf->vfOsGetLocalMemoryUsed(lmemUsed);
|
||||
pOsVf->vfOsGetCapabilities(&capability);
|
||||
}
|
||||
|
||||
|
||||
@@ -22,9 +22,7 @@ VfManagementHandleContext::~VfManagementHandleContext() {
|
||||
|
||||
void VfManagementHandleContext::createHandle(uint32_t vfId) {
|
||||
std::unique_ptr<VfManagement> pVf = std::make_unique<VfImp>(pOsSysman, vfId);
|
||||
if (pVf->isVfEnabled == true) {
|
||||
handleList.push_back(std::move(pVf));
|
||||
}
|
||||
handleList.push_back(std::move(pVf));
|
||||
}
|
||||
|
||||
ze_result_t VfManagementHandleContext::init() {
|
||||
|
||||
@@ -29,7 +29,6 @@ class VfManagement : _zes_vf_handle_t {
|
||||
static VfManagement *fromHandle(zes_vf_handle_t handle) {
|
||||
return static_cast<VfManagement *>(handle);
|
||||
}
|
||||
bool isVfEnabled = false;
|
||||
};
|
||||
|
||||
struct VfManagementHandleContext {
|
||||
|
||||
@@ -13,7 +13,6 @@ namespace L0 {
|
||||
namespace Sysman {
|
||||
|
||||
uint32_t WddmVfImp::numEnabledVfs = 0;
|
||||
bool WddmVfImp::localMemoryUsedStatus = false;
|
||||
|
||||
ze_result_t WddmVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
@@ -25,7 +24,7 @@ ze_result_t WddmVfImp::vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_en
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
}
|
||||
bool WddmVfImp::vfOsGetLocalMemoryUsed(uint64_t &lMmemUsed) {
|
||||
return WddmVfImp::localMemoryUsedStatus;
|
||||
return false;
|
||||
}
|
||||
bool WddmVfImp::vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) {
|
||||
return false;
|
||||
|
||||
@@ -69,13 +69,6 @@ TEST_F(ZesVfFixture, GivenValidDeviceWithNoSRIOVSupportWhenQueryingEnabledVfHand
|
||||
EXPECT_EQ(count, (uint32_t)0);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceWhenZeroLocalMemoryValueIsReadThenZeroHandlesAreCreated) {
|
||||
pSysfsAccess->mockLmemValue = false;
|
||||
uint32_t count = 0;
|
||||
EXPECT_EQ(zesDeviceEnumEnabledVFExp(device, &count, nullptr), ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, (uint32_t)0);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenPciAddressReturnedCorrectly) {
|
||||
uint32_t mockedDomain = 0;
|
||||
uint32_t mockedBus = 0x4d;
|
||||
@@ -210,14 +203,6 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenCallingZesVFManagementGetVFEngineUtil
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndZeroMemoryQuotaValueIsReadThenErrorIsReturned) {
|
||||
|
||||
pSysfsAccess->mockLmemQuotaValue = false;
|
||||
zes_vf_exp_capabilities_t capabilities = {};
|
||||
auto pVfImp = std::make_unique<PublicLinuxVfImp>(pOsSysman, 1);
|
||||
EXPECT_EQ(pVfImp->vfOsGetCapabilities(&capabilities), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndSysfsReadForMemoryQuotaValueFailsThenErrorIsReturned) {
|
||||
|
||||
pSysfsAccess->mockError = ZE_RESULT_ERROR_UNKNOWN;
|
||||
@@ -226,15 +211,6 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndSysfsReadFor
|
||||
EXPECT_EQ(pVfImp->vfOsGetCapabilities(&capabilities), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingMemoryUtilizationAndAndZeroLocalMemoryUsedIsReadThenErrorIsReturned) {
|
||||
|
||||
pSysfsAccess->mockLmemValue = false;
|
||||
uint32_t mockCount = 1;
|
||||
std::vector<zes_vf_util_mem_exp2_t> memUtils(mockCount);
|
||||
auto pVfImp = std::make_unique<PublicLinuxVfImp>(pOsSysman, 1);
|
||||
EXPECT_EQ(pVfImp->vfOsGetMemoryUtilization(&mockCount, memUtils.data()), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenBusyAndTotalTicksConfigNotAvailableAndCallingVfEngineDataInitThenErrorIsReturned) {
|
||||
|
||||
auto pDrm = new MockVfNeoDrm(const_cast<NEO::RootDeviceEnvironment &>(pSysmanDeviceImp->getRootDeviceEnvironment()));
|
||||
|
||||
@@ -23,26 +23,9 @@ class ZesVfFixture : public SysmanDeviceFixture {
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceHandleWhenRetrievingVfHandlesThenZeroCountIsReturned) {
|
||||
|
||||
uint32_t mockHandleCount = 0u;
|
||||
WddmVfImp::numEnabledVfs = 1;
|
||||
uint32_t count = 0;
|
||||
ze_result_t result = zesDeviceEnumEnabledVFExp(pSysmanDevice->toHandle(), &count, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, mockHandleCount);
|
||||
uint32_t testCount = count + 1;
|
||||
std::vector<zes_vf_handle_t> handles(testCount);
|
||||
result = zesDeviceEnumEnabledVFExp(pSysmanDevice->toHandle(), &testCount, handles.data());
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(testCount, count);
|
||||
WddmVfImp::numEnabledVfs = 0;
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceHandleAndOneVfIsEnabledAndLocalMemoryIsUsedWhenRetrievingVfHandlesThenCorrectCountIsReturned) {
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceHandleAndOneVfIsEnabledWhenRetrievingVfHandlesThenCorrectCountIsReturned) {
|
||||
|
||||
WddmVfImp::numEnabledVfs = 1;
|
||||
WddmVfImp::localMemoryUsedStatus = true;
|
||||
uint32_t count = 0;
|
||||
uint32_t mockHandleCount = 1u;
|
||||
ze_result_t result = zesDeviceEnumEnabledVFExp(pSysmanDevice->toHandle(), &count, nullptr);
|
||||
@@ -51,11 +34,14 @@ TEST_F(ZesVfFixture, GivenValidDeviceHandleAndOneVfIsEnabledAndLocalMemoryIsUsed
|
||||
result = zesDeviceEnumEnabledVFExp(pSysmanDevice->toHandle(), &count, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, mockHandleCount);
|
||||
count = count + 1;
|
||||
result = zesDeviceEnumEnabledVFExp(pSysmanDevice->toHandle(), &count, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, mockHandleCount);
|
||||
std::vector<zes_vf_handle_t> handles(count);
|
||||
result = zesDeviceEnumEnabledVFExp(pSysmanDevice->toHandle(), &count, handles.data());
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(handles.size(), mockHandleCount);
|
||||
WddmVfImp::localMemoryUsedStatus = false;
|
||||
WddmVfImp::numEnabledVfs = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -99,10 +99,6 @@ bool LinuxVfImp::vfOsGetLocalMemoryUsed(uint64_t &lMemUsed) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Failed to read Local Memory Used with error 0x%x \n", __FUNCTION__, result);
|
||||
return false;
|
||||
}
|
||||
if (lMemUsed == 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): since the Local Memory Used is zero \n", __FUNCTION__);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -115,10 +111,6 @@ bool LinuxVfImp::vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): Failed to read Local Memory Quota with error 0x%x \n", __FUNCTION__, result);
|
||||
return false;
|
||||
}
|
||||
if (lMemQuota == 0) {
|
||||
NEO::printDebugString(NEO::debugManager.flags.PrintDebugMessages.get(), stderr, "Error@ %s(): since the Local Memory Quota is zero \n", __FUNCTION__);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,8 +23,6 @@ ze_result_t VfImp::vfGetEngineUtilization(uint32_t *pCount, zes_vf_util_engine_e
|
||||
}
|
||||
|
||||
void VfImp::init() {
|
||||
uint64_t lmemUsed = 0;
|
||||
isVfEnabled = pOsVf->vfOsGetLocalMemoryUsed(lmemUsed);
|
||||
pOsVf->vfOsGetCapabilities(&capability);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,7 @@ VfManagementHandleContext::~VfManagementHandleContext() {
|
||||
|
||||
void VfManagementHandleContext::createHandle(uint32_t vfId) {
|
||||
std::unique_ptr<VfManagement> pVf = std::make_unique<VfImp>(pOsSysman, vfId);
|
||||
if (pVf->isVfEnabled == true) {
|
||||
handleList.push_back(std::move(pVf));
|
||||
}
|
||||
handleList.push_back(std::move(pVf));
|
||||
}
|
||||
|
||||
ze_result_t VfManagementHandleContext::init() {
|
||||
|
||||
@@ -28,7 +28,6 @@ class VfManagement : _zes_vf_handle_t {
|
||||
static VfManagement *fromHandle(zes_vf_handle_t handle) {
|
||||
return static_cast<VfManagement *>(handle);
|
||||
}
|
||||
bool isVfEnabled = false;
|
||||
};
|
||||
|
||||
struct VfManagementHandleContext {
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
namespace L0 {
|
||||
|
||||
uint32_t WddmVfImp::numEnabledVfs = 0;
|
||||
bool WddmVfImp::localMemoryUsedStatus = false;
|
||||
|
||||
ze_result_t WddmVfImp::vfOsGetCapabilities(zes_vf_exp_capabilities_t *pCapability) {
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
@@ -24,7 +23,7 @@ ze_result_t WddmVfImp::vfOsGetEngineUtilization(uint32_t *pCount, zes_vf_util_en
|
||||
return ZE_RESULT_ERROR_UNSUPPORTED_FEATURE;
|
||||
}
|
||||
bool WddmVfImp::vfOsGetLocalMemoryUsed(uint64_t &lMmemUsed) {
|
||||
return WddmVfImp::localMemoryUsedStatus;
|
||||
return false;
|
||||
}
|
||||
bool WddmVfImp::vfOsGetLocalMemoryQuota(uint64_t &lMemQuota) {
|
||||
return false;
|
||||
|
||||
@@ -70,13 +70,6 @@ TEST_F(ZesVfFixture, GivenValidDeviceWithNoSRIOVSupportWhenQueryingEnabledVfHand
|
||||
EXPECT_EQ(count, (uint32_t)0);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceWhenZeroLocalMemoryValueIsReadThenZeroHandlesAreCreated) {
|
||||
pSysfsAccess->mockLmemValue = false;
|
||||
uint32_t count = 0;
|
||||
EXPECT_EQ(zesDeviceEnumEnabledVFExp(device, &count, nullptr), ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, (uint32_t)0);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesThenPciAddressReturnedCorrectly) {
|
||||
uint32_t mockedDomain = 0;
|
||||
uint32_t mockedBus = 0x4d;
|
||||
@@ -219,22 +212,5 @@ TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndSysfsReadFor
|
||||
EXPECT_EQ(pVfImp->vfOsGetCapabilities(&capabilities), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingVfCapabilitiesAndZeroMemoryQuotaValueIsReadThenErrorIsReturned) {
|
||||
|
||||
pSysfsAccess->mockLmemQuotaValue = false;
|
||||
zes_vf_exp_capabilities_t capabilities = {};
|
||||
auto pVfImp = std::make_unique<PublicLinuxVfImp>(pOsSysman, 1);
|
||||
EXPECT_EQ(pVfImp->vfOsGetCapabilities(&capabilities), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidVfHandleWhenQueryingMemoryUtilizationAndAndZeroLocalMemoryUsedIsReadThenErrorIsReturned) {
|
||||
|
||||
pSysfsAccess->mockLmemValue = false;
|
||||
uint32_t mockCount = 1;
|
||||
std::vector<zes_vf_util_mem_exp2_t> memUtils(mockCount);
|
||||
auto pVfImp = std::make_unique<PublicLinuxVfImp>(pOsSysman, 1);
|
||||
EXPECT_EQ(pVfImp->vfOsGetMemoryUtilization(&mockCount, memUtils.data()), ZE_RESULT_ERROR_UNSUPPORTED_FEATURE);
|
||||
}
|
||||
|
||||
} // namespace ult
|
||||
} // namespace L0
|
||||
|
||||
@@ -31,26 +31,9 @@ class ZesVfFixture : public SysmanDeviceFixture {
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceHandleWhenRetrievingVfHandlesThenZeroCountIsReturned) {
|
||||
|
||||
uint32_t mockHandleCount = 0u;
|
||||
WddmVfImp::numEnabledVfs = 1;
|
||||
uint32_t count = 0;
|
||||
ze_result_t result = zesDeviceEnumEnabledVFExp(device->toHandle(), &count, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, mockHandleCount);
|
||||
uint32_t testCount = count + 1;
|
||||
std::vector<zes_vf_handle_t> handles(testCount);
|
||||
result = zesDeviceEnumEnabledVFExp(device->toHandle(), &testCount, handles.data());
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(testCount, count);
|
||||
WddmVfImp::numEnabledVfs = 0;
|
||||
}
|
||||
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceHandleAndOneVfIsEnabledAndLocalMemoryIsUsedWhenRetrievingVfHandlesThenCorrectCountIsReturned) {
|
||||
TEST_F(ZesVfFixture, GivenValidDeviceHandleAndOneVfIsEnabledWhenRetrievingVfHandlesThenCorrectCountIsReturned) {
|
||||
|
||||
WddmVfImp::numEnabledVfs = 1;
|
||||
WddmVfImp::localMemoryUsedStatus = true;
|
||||
uint32_t count = 0;
|
||||
uint32_t mockHandleCount = 1u;
|
||||
ze_result_t result = zesDeviceEnumEnabledVFExp(device->toHandle(), &count, nullptr);
|
||||
@@ -59,11 +42,14 @@ TEST_F(ZesVfFixture, GivenValidDeviceHandleAndOneVfIsEnabledAndLocalMemoryIsUsed
|
||||
result = zesDeviceEnumEnabledVFExp(device->toHandle(), &count, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, mockHandleCount);
|
||||
count = count + 1;
|
||||
result = zesDeviceEnumEnabledVFExp(device->toHandle(), &count, nullptr);
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(count, mockHandleCount);
|
||||
std::vector<zes_vf_handle_t> handles(count);
|
||||
result = zesDeviceEnumEnabledVFExp(device->toHandle(), &count, handles.data());
|
||||
EXPECT_EQ(result, ZE_RESULT_SUCCESS);
|
||||
EXPECT_EQ(handles.size(), mockHandleCount);
|
||||
WddmVfImp::localMemoryUsedStatus = false;
|
||||
WddmVfImp::numEnabledVfs = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user