Skip to content

Commit 0afe6b2

Browse files
Daniel EnriquezCompute-Runtime-Automation
authored andcommitted
Extend Support for memory on Sysman for iGFX
Changing from discrete to iGFX the Memory Module support. Signed-off-by: Daniel Enriquez <[email protected]>
1 parent 5291722 commit 0afe6b2

File tree

3 files changed

+25
-30
lines changed

3 files changed

+25
-30
lines changed

level_zero/tools/source/sysman/memory/windows/os_memory_imp.cpp

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2020 Intel Corporation
2+
* Copyright (C) 2020-2021 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -9,7 +9,21 @@
99

1010
namespace L0 {
1111
bool WddmMemoryImp::isMemoryModuleSupported() {
12-
return pDevice->getDriverHandle()->getMemoryManager()->isLocalMemorySupported(pDevice->getRootDeviceIndex());
12+
uint32_t value = 0;
13+
KmdSysman::RequestProperty request;
14+
KmdSysman::ResponseProperty response;
15+
16+
request.commandId = KmdSysman::Command::Get;
17+
request.componentId = KmdSysman::Component::MemoryComponent;
18+
request.requestId = KmdSysman::Requests::Memory::NumMemoryDomains;
19+
20+
if (pKmdSysManager->requestSingle(request, response) != ZE_RESULT_SUCCESS) {
21+
return false;
22+
}
23+
24+
memcpy_s(&value, sizeof(uint32_t), response.dataBuffer, sizeof(uint32_t));
25+
26+
return (value > 0);
1327
}
1428
ze_result_t WddmMemoryImp::getProperties(zes_mem_properties_t *pProperties) {
1529
ze_result_t status = ZE_RESULT_SUCCESS;

level_zero/tools/test/unit_tests/sources/sysman/memory/windows/mock_memory.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2020 Intel Corporation
2+
* Copyright (C) 2020-2021 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -35,12 +35,19 @@ struct Mock<MemoryKmdSysManager> : public MemoryKmdSysManager {
3535
uint32_t mockMemoryChannels = 2;
3636
uint32_t mockMemoryMaxBandwidth = 4256000000;
3737
uint32_t mockMemoryCurrentBandwidth = 561321;
38+
uint32_t mockMemoryDomains = 1;
3839

3940
void getMemoryProperty(KmdSysman::GfxSysmanReqHeaderIn *pRequest, KmdSysman::GfxSysmanReqHeaderOut *pResponse) override {
4041
uint8_t *pBuffer = reinterpret_cast<uint8_t *>(pResponse);
4142
pBuffer += sizeof(KmdSysman::GfxSysmanReqHeaderOut);
4243

4344
switch (pRequest->inRequestId) {
45+
case KmdSysman::Requests::Memory::NumMemoryDomains: {
46+
uint32_t *pValue = reinterpret_cast<uint32_t *>(pBuffer);
47+
*pValue = mockMemoryDomains;
48+
pResponse->outReturnCode = KmdSysman::KmdSysmanSuccess;
49+
pResponse->outDataSize = sizeof(uint32_t);
50+
} break;
4451
case KmdSysman::Requests::Memory::MemoryType: {
4552
uint32_t *pValue = reinterpret_cast<uint32_t *>(pBuffer);
4653
*pValue = mockMemoryType;

level_zero/tools/test/unit_tests/sources/sysman/memory/windows/test_zes_memory.cpp

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -138,33 +138,7 @@ TEST_F(SysmanDeviceMemoryFixture, GivenComponentCountZeroWhenEnumeratingMemoryMo
138138

139139
uint32_t count = 0;
140140
EXPECT_EQ(zesDeviceEnumMemoryModules(device->toHandle(), &count, nullptr), ZE_RESULT_SUCCESS);
141-
EXPECT_EQ(count, 0u);
142-
}
143-
144-
TEST_F(SysmanDeviceMemoryFixture, GivenInvalidComponentCountWhenEnumeratingMemoryModulesWithNoLocalMemorySupportThenZeroCountIsReturnedAndVerifySysmanPowerGetCallSucceeds) {
145-
setLocalSupportedAndReinit(false);
146-
147-
uint32_t count = 0;
148-
EXPECT_EQ(zesDeviceEnumMemoryModules(device->toHandle(), &count, nullptr), ZE_RESULT_SUCCESS);
149-
EXPECT_EQ(count, 0u);
150-
151-
count = count + 1;
152-
EXPECT_EQ(zesDeviceEnumMemoryModules(device->toHandle(), &count, nullptr), ZE_RESULT_SUCCESS);
153-
EXPECT_EQ(count, 0u);
154-
}
155-
156-
TEST_F(SysmanDeviceMemoryFixture, GivenComponentCountZeroWhenEnumeratingMemoryModulesWithNoLocalMemorySupportThenValidPowerHandlesIsReturned) {
157-
setLocalSupportedAndReinit(false);
158-
159-
uint32_t count = 0;
160-
EXPECT_EQ(zesDeviceEnumMemoryModules(device->toHandle(), &count, nullptr), ZE_RESULT_SUCCESS);
161-
EXPECT_EQ(count, 0u);
162-
163-
std::vector<zes_mem_handle_t> handles(count, nullptr);
164-
EXPECT_EQ(zesDeviceEnumMemoryModules(device->toHandle(), &count, handles.data()), ZE_RESULT_SUCCESS);
165-
for (auto handle : handles) {
166-
EXPECT_NE(handle, nullptr);
167-
}
141+
EXPECT_EQ(count, memoryHandleComponentCount);
168142
}
169143

170144
TEST_F(SysmanDeviceMemoryFixture, GivenValidMemoryHandleWhenCallingGettingPropertiesWithLocalMemoryThenCallSucceeds) {

0 commit comments

Comments
 (0)