feature: refactor and rewrite setErrorDescription

Related-To: NEO-8379

Signed-off-by: Winston Zhang <winston.zhang@intel.com>
This commit is contained in:
Winston Zhang
2024-08-20 00:14:56 +00:00
committed by Compute-Runtime-Automation
parent 60711a169e
commit 0590b34cfa
13 changed files with 172 additions and 82 deletions

View File

@@ -10,7 +10,9 @@
#include "shared/source/utilities/reference_tracked_object.h"
#include <mutex>
#include <stdarg.h>
#include <string>
#include <thread>
#include <unordered_map>
#include <vector>
@@ -29,6 +31,7 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
MOCKABLE_VIRTUAL bool initializeMemoryManager();
void calculateMaxOsContextCount();
int clearErrorDescription();
virtual void prepareRootDeviceEnvironments(uint32_t numRootDevices);
void prepareRootDeviceEnvironment(const uint32_t rootDeviceIndexForReInit);
void parseAffinityMask();
@@ -55,8 +58,10 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
}
bool isExposingSubDevicesAsDevices() const { return this->subDevicesAsDevices; }
bool isCombinedDeviceHierarchy() const { return this->combinedDeviceHierarchy; }
void getErrorDescription(const char **ppString);
bool getSubDeviceHierarchy(uint32_t index, std::tuple<uint32_t, uint32_t, uint32_t> *subDeviceMap);
bool areMetricsEnabled() { return this->metricsEnabled; }
int setErrorDescription(const std::string &str);
void setFP64EmulationEnabled() {
fp64EmulationEnabled = true;
}
@@ -73,6 +78,8 @@ class ExecutionEnvironment : public ReferenceTrackedObject<ExecutionEnvironment>
// <RootDeviceIndex, SubDeviceIndex, SubDeviceCount>
// Primarily used by the Metrics Library to communicate the actual Sub Device Index being used in queries.
std::unordered_map<uint32_t, std::tuple<uint32_t, uint32_t, uint32_t>> mapOfSubDeviceIndices;
std::unordered_map<std::thread::id, std::string> errorDescs;
std::mutex errorDescsMutex;
protected:
static bool comparePciIdBusNumber(std::unique_ptr<RootDeviceEnvironment> &rootDeviceEnvironment1, std::unique_ptr<RootDeviceEnvironment> &rootDeviceEnvironment2);