fix: Add mutex for ulls controller initializer

Resolves: NEO-7925

Signed-off-by: Maciej Plewka <maciej.plewka@intel.com>
This commit is contained in:
Maciej Plewka
2023-07-18 10:48:49 +00:00
committed by Compute-Runtime-Automation
parent 33e0eabe91
commit 18ead77e78
3 changed files with 5 additions and 1 deletions

View File

@@ -100,6 +100,7 @@ void ExecutionEnvironment::calculateMaxOsContextCount() {
}
DirectSubmissionController *ExecutionEnvironment::initializeDirectSubmissionController() {
std::lock_guard<std::mutex> lockForInit(initializeDirectSubmissionControllerMutex);
auto initializeDirectSubmissionController = DirectSubmissionController::isSupported();
if (DebugManager.flags.SetCommandStreamReceiver.get() > 0) {

View File

@@ -9,6 +9,7 @@
#include "shared/source/debugger/debugger.h"
#include "shared/source/utilities/reference_tracked_object.h"
#include <mutex>
#include <unordered_map>
#include <vector>
@@ -66,5 +67,6 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
DebuggingMode debuggingEnabledMode = DebuggingMode::Disabled;
std::unordered_map<uint32_t, uint32_t> rootDeviceNumCcsMap;
std::mutex initializeDirectSubmissionControllerMutex;
};
} // namespace NEO

View File

@@ -258,7 +258,8 @@ static_assert(sizeof(ExecutionEnvironment) == sizeof(std::unique_ptr<HardwareInf
sizeof(std::unordered_map<uint32_t, uint32_t>) +
2 * sizeof(bool) +
sizeof(NEO::DebuggingMode) +
(is64bit ? 18 : 14),
(is64bit ? 18 : 14) +
sizeof(std::mutex),
"New members detected in ExecutionEnvironment, please ensure that destruction sequence of objects is correct");
TEST(ExecutionEnvironment, givenExecutionEnvironmentWithVariousMembersWhenItIsDestroyedThenDeleteSequenceIsSpecified) {