Revert "fix rootDeviceIndex issue for PCI reorder"

This reverts commit d797d79f97.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
This commit is contained in:
Compute-Runtime-Validation
2022-04-28 16:39:45 +02:00
committed by Compute-Runtime-Automation
parent ff7400d295
commit 46e4a389c2
3 changed files with 0 additions and 121 deletions

View File

@ -7,7 +7,6 @@
#include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/execution_environment/root_device_environment.h"
#include "shared/source/os_interface/device_factory.h" #include "shared/source/os_interface/device_factory.h"
#include "shared/source/os_interface/linux/drm_memory_operations_handler_bind.h"
#include "shared/source/os_interface/linux/drm_neo.h" #include "shared/source/os_interface/linux/drm_neo.h"
#include "shared/source/os_interface/os_interface.h" #include "shared/source/os_interface/os_interface.h"
#include "shared/test/common/mocks/mock_compilers.h" #include "shared/test/common/mocks/mock_compilers.h"
@ -38,9 +37,6 @@ class DriverLinuxFixture : public ::testing::Test {
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo); executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo);
} }
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface = std::make_unique<NEO::DrmMemoryOperationsHandlerBind>(*executionEnvironment->rootDeviceEnvironments[i], i);
}
deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment); deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment);
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i])); devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i]));
@ -51,11 +47,6 @@ class DriverLinuxFixture : public ::testing::Test {
osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment()))); osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment())));
} }
executionEnvironment->sortNeoDevices(); executionEnvironment->sortNeoDevices();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface.get());
EXPECT_EQ(drm->getRootDeviceIndex(), i);
}
} }
void TearDown() override {} void TearDown() override {}
@ -140,9 +131,6 @@ class DriverPciOrderWitSimilarBusLinuxFixture : public ::testing::Test {
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo); executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo);
} }
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface = std::make_unique<NEO::DrmMemoryOperationsHandlerBind>(*executionEnvironment->rootDeviceEnvironments[i], i);
}
deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment); deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment);
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i])); devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i]));
@ -153,11 +141,6 @@ class DriverPciOrderWitSimilarBusLinuxFixture : public ::testing::Test {
osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment()))); osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment())));
} }
executionEnvironment->sortNeoDevices(); executionEnvironment->sortNeoDevices();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface.get());
EXPECT_EQ(drm->getRootDeviceIndex(), i);
}
} }
void TearDown() override {} void TearDown() override {}
@ -199,9 +182,6 @@ class DriverPciOrderWitDifferentDeviceLinuxFixture : public ::testing::Test {
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo); executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo);
} }
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface = std::make_unique<NEO::DrmMemoryOperationsHandlerBind>(*executionEnvironment->rootDeviceEnvironments[i], i);
}
deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment); deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment);
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i])); devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i]));
@ -212,11 +192,6 @@ class DriverPciOrderWitDifferentDeviceLinuxFixture : public ::testing::Test {
osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment()))); osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment())));
} }
executionEnvironment->sortNeoDevices(); executionEnvironment->sortNeoDevices();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface.get());
EXPECT_EQ(drm->getRootDeviceIndex(), i);
}
} }
void TearDown() override {} void TearDown() override {}
@ -258,9 +233,6 @@ class DriverPciOrderWitSimilarBusAndDeviceLinuxFixture : public ::testing::Test
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo); executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo);
} }
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface = std::make_unique<NEO::DrmMemoryOperationsHandlerBind>(*executionEnvironment->rootDeviceEnvironments[i], i);
}
deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment); deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment);
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i])); devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i]));
@ -271,11 +243,6 @@ class DriverPciOrderWitSimilarBusAndDeviceLinuxFixture : public ::testing::Test
osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment()))); osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment())));
} }
executionEnvironment->sortNeoDevices(); executionEnvironment->sortNeoDevices();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface.get());
EXPECT_EQ(drm->getRootDeviceIndex(), i);
}
} }
void TearDown() override {} void TearDown() override {}
@ -317,9 +284,6 @@ class DriverPciOrderWitSimilarBDFLinuxFixture : public ::testing::Test {
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo); executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo);
} }
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface = std::make_unique<NEO::DrmMemoryOperationsHandlerBind>(*executionEnvironment->rootDeviceEnvironments[i], i);
}
deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment); deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment);
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) { for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i])); devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i]));
@ -330,11 +294,6 @@ class DriverPciOrderWitSimilarBDFLinuxFixture : public ::testing::Test {
osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment()))); osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment())));
} }
executionEnvironment->sortNeoDevices(); executionEnvironment->sortNeoDevices();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface.get());
EXPECT_EQ(drm->getRootDeviceIndex(), i);
}
} }
void TearDown() override {} void TearDown() override {}
@ -363,64 +322,5 @@ TEST_F(DriverPciOrderWitSimilarBDFLinuxFixture, GivenEnvironmentVariableForDevic
delete driverHandle; delete driverHandle;
} }
class DriverPciOrderSortDoesNothing : public ::testing::Test {
public:
void SetUp() override {
DebugManagerStateRestore restorer;
DebugManager.flags.ZE_ENABLE_PCI_ID_DEVICE_ORDER.set(1);
NEO::MockCompilerEnableGuard mock(true);
auto executionEnvironment = new NEO::ExecutionEnvironment();
executionEnvironment->prepareRootDeviceEnvironments(numRootDevices);
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->setHwInfo(&hwInfo);
}
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface = std::make_unique<NEO::DrmMemoryOperationsHandlerBind>(*executionEnvironment->rootDeviceEnvironments[i], i);
}
deviceFactory = std::make_unique<UltDeviceFactory>(numRootDevices, numSubDevices, *executionEnvironment);
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
devices.push_back(std::unique_ptr<NEO::Device>(deviceFactory->rootDevices[i]));
}
for (auto i = 0u; i < devices.size(); i++) {
devices[i]->getExecutionEnvironment()->rootDeviceEnvironments[i]->osInterface = std::make_unique<NEO::OSInterface>();
auto osInterface = devices[i]->getExecutionEnvironment()->rootDeviceEnvironments[i]->osInterface.get();
osInterface->setDriverModel(std::make_unique<TestDriverMockDrm>(bdf[i], const_cast<NEO::RootDeviceEnvironment &>(devices[i]->getRootDeviceEnvironment())));
}
executionEnvironment->sortNeoDevices();
for (auto i = 0u; i < executionEnvironment->rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(executionEnvironment->rootDeviceEnvironments[i]->memoryOperationsInterface.get());
EXPECT_EQ(drm->getRootDeviceIndex(), i);
}
}
void TearDown() override {}
static constexpr uint32_t numRootDevices = 2u;
static constexpr uint32_t numSubDevices = 2u;
std::vector<std::unique_ptr<NEO::Device>> devices;
std::string bdf[numRootDevices] = {"0000:03:04.0", "0001:03:04.0"};
std::string sortedBdf[numRootDevices] = {"0000:03:04.0", "0001:03:04.0"};
std::unique_ptr<UltDeviceFactory> deviceFactory;
};
TEST_F(DriverPciOrderSortDoesNothing, GivenEnvironmentVariableForDeviceOrderAccordingToPciSetThenVerifyCaseSortDoesNothing) {
NEO::MockCompilerEnableGuard mock(true);
DriverHandleImp *driverHandle = new DriverHandleImp;
EXPECT_EQ(ZE_RESULT_SUCCESS, driverHandle->initialize(std::move(devices)));
for (uint32_t i = 0; i < numRootDevices; i++) {
auto L0Device = driverHandle->devices[i];
if (L0Device != nullptr) {
auto pDrm = L0Device->getNEODevice()->getExecutionEnvironment()->rootDeviceEnvironments[L0Device->getRootDeviceIndex()]->osInterface->getDriverModel()->as<Drm>();
EXPECT_NE(pDrm, nullptr);
EXPECT_TRUE(!pDrm->getPciPath().compare(sortedBdf[i]));
}
}
delete driverHandle;
}
} // namespace ult } // namespace ult
} // namespace L0 } // namespace L0

View File

@ -8,7 +8,6 @@
#include "shared/source/debug_settings/debug_settings_manager.h" #include "shared/source/debug_settings/debug_settings_manager.h"
#include "shared/source/execution_environment/execution_environment.h" #include "shared/source/execution_environment/execution_environment.h"
#include "shared/source/execution_environment/root_device_environment.h" #include "shared/source/execution_environment/root_device_environment.h"
#include "shared/source/os_interface/linux/drm_memory_operations_handler_bind.h"
#include "shared/source/os_interface/linux/drm_neo.h" #include "shared/source/os_interface/linux/drm_neo.h"
#include "shared/source/os_interface/os_interface.h" #include "shared/source/os_interface/os_interface.h"
@ -44,21 +43,7 @@ bool comparePciIdBusNumber(std::unique_ptr<RootDeviceEnvironment> &rootDeviceEnv
void ExecutionEnvironment::sortNeoDevices() { void ExecutionEnvironment::sortNeoDevices() {
const auto pciOrderVar = DebugManager.flags.ZE_ENABLE_PCI_ID_DEVICE_ORDER.get(); const auto pciOrderVar = DebugManager.flags.ZE_ENABLE_PCI_ID_DEVICE_ORDER.get();
if (pciOrderVar) { if (pciOrderVar) {
std::vector<uint32_t> presort_index;
for (uint32_t i = 0; i < rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(rootDeviceEnvironments[i]->memoryOperationsInterface.get());
presort_index.push_back(drm->getRootDeviceIndex());
}
std::sort(rootDeviceEnvironments.begin(), rootDeviceEnvironments.end(), comparePciIdBusNumber); std::sort(rootDeviceEnvironments.begin(), rootDeviceEnvironments.end(), comparePciIdBusNumber);
for (uint32_t i = 0; i < rootDeviceEnvironments.size(); i++) {
NEO::DrmMemoryOperationsHandlerBind *drm = static_cast<DrmMemoryOperationsHandlerBind *>(rootDeviceEnvironments[i]->memoryOperationsInterface.get());
if (drm->getRootDeviceIndex() != presort_index[i]) {
drm->setRootDeviceIndex(presort_index[i]);
}
}
} }
} }

View File

@ -26,12 +26,6 @@ class DrmMemoryOperationsHandlerBind : public DrmMemoryOperationsHandler {
std::unique_lock<std::mutex> lockHandlerIfUsed() override; std::unique_lock<std::mutex> lockHandlerIfUsed() override;
MemoryOperationsStatus evictUnusedAllocations(bool waitForCompletion, bool isLockNeeded) override; MemoryOperationsStatus evictUnusedAllocations(bool waitForCompletion, bool isLockNeeded) override;
uint32_t getRootDeviceIndex() {
return this->rootDeviceIndex;
}
void setRootDeviceIndex(uint32_t index) {
this->rootDeviceIndex = index;
}
protected: protected:
MOCKABLE_VIRTUAL int evictImpl(OsContext *osContext, GraphicsAllocation &gfxAllocation, DeviceBitfield deviceBitfield); MOCKABLE_VIRTUAL int evictImpl(OsContext *osContext, GraphicsAllocation &gfxAllocation, DeviceBitfield deviceBitfield);