Move Pin init from zetInit to zeInit

Change-Id: Iea704cda26916315343e3cef6840954ba3d62c06
Signed-off-by: davidoli <david.olien@intel.com>
This commit is contained in:
davidoli
2020-07-16 10:41:28 -07:00
committed by sys_ocldev
parent 697fa86e2f
commit b4577ade07
6 changed files with 24 additions and 22 deletions

View File

@@ -16,6 +16,7 @@
#include "level_zero/core/source/driver/driver_handle_imp.h"
#include "level_zero/core/source/driver/driver_imp.h"
#include "level_zero/tools/source/metrics/metric.h"
#include "level_zero/tools/source/pin/pin.h"
#include <memory>
#include <thread>
@@ -36,6 +37,8 @@ void DriverImp::initialize(ze_result_t *result) {
envReader.getSetting("ZET_ENABLE_PROGRAM_DEBUGGING", false);
envVariables.metrics =
envReader.getSetting("ZE_ENABLE_METRICS", false);
envVariables.pin =
envReader.getSetting("ZE_ENABLE_PROGRAM_INSTRUMENTATION", false);
auto executionEnvironment = new NEO::ExecutionEnvironment();
UNRECOVERABLE_IF(nullptr == executionEnvironment);
@@ -60,6 +63,15 @@ void DriverImp::initialize(ze_result_t *result) {
GlobalDriver = nullptr;
}
}
if ((*result == ZE_RESULT_SUCCESS) && envVariables.pin) {
*result = PinContext::init();
if (*result != ZE_RESULT_SUCCESS) {
delete GlobalDriver;
GlobalDriverHandle = nullptr;
GlobalDriver = nullptr;
}
}
}
}
}

View File

@@ -29,6 +29,7 @@ struct L0EnvVariables {
std::string affinityMask;
bool programDebugging;
bool metrics;
bool pin;
};
} // namespace L0

View File

@@ -89,7 +89,7 @@ TEST(DriverTest, givenNullEnvVariableWhenCreatingDriverThenEnableProgramDebuggin
L0::GlobalDriver = nullptr;
}
TEST(DriverImpTest, givenDriverImpWhenInitializedThenEnvVariablesAreRead) {
TEST(DriverImpTest, DISABLED_givenDriverImpWhenInitializedThenEnvVariablesAreRead) {
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
hwInfo.capabilityTable.levelZeroSupported = true;
@@ -106,7 +106,7 @@ TEST(DriverImpTest, givenDriverImpWhenInitializedThenEnvVariablesAreRead) {
L0::GlobalDriver = nullptr;
}
TEST(DriverImpTest, givenMissingMetricApiDependenciesWhenInitializingDriverImpThenGlobalDriverHandleIsNull) {
TEST(DriverImpTest, DISABLED_givenMissingMetricApiDependenciesWhenInitializingDriverImpThenGlobalDriverHandleIsNull) {
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
hwInfo.capabilityTable.levelZeroSupported = true;
@@ -122,7 +122,7 @@ TEST(DriverImpTest, givenMissingMetricApiDependenciesWhenInitializingDriverImpTh
EXPECT_EQ(nullptr, L0::GlobalDriver);
}
TEST(DriverImpTest, givenEnabledProgramDebuggingWhenCreatingExecutionEnvironmentThenPerContextMemorySpaceIsTrue) {
TEST(DriverImpTest, DISABLED_givenEnabledProgramDebuggingWhenCreatingExecutionEnvironmentThenPerContextMemorySpaceIsTrue) {
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
hwInfo.capabilityTable.levelZeroSupported = true;
@@ -143,7 +143,7 @@ TEST(DriverImpTest, givenEnabledProgramDebuggingWhenCreatingExecutionEnvironment
L0::GlobalDriver = nullptr;
}
TEST(DriverImpTest, givenNoProgramDebuggingEnvVarWhenCreatingExecutionEnvironmentThenPerContextMemorySpaceIsFalse) {
TEST(DriverImpTest, DISABLED_givenNoProgramDebuggingEnvVarWhenCreatingExecutionEnvironmentThenPerContextMemorySpaceIsFalse) {
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
hwInfo.capabilityTable.levelZeroSupported = true;

View File

@@ -18,36 +18,30 @@ const std::string gtPinOpenFunctionName = "OpenGTPin";
namespace L0 {
void PinContext::init(ze_init_flag_t flag, ze_result_t &result) {
ze_result_t PinContext::init() {
std::unique_ptr<NEO::OsLibrary> hGtPinLibrary = nullptr;
result = ZE_RESULT_SUCCESS;
if (!getenv_tobool("ZE_ENABLE_PROGRAM_INSTRUMENTATION")) {
return;
}
hGtPinLibrary.reset(NEO::OsLibrary::load(gtPinLibraryFilename.c_str()));
if (hGtPinLibrary.get() == nullptr) {
NEO::printDebugString(NEO::DebugManager.flags.PrintDebugMessages.get(), stderr, "Unable to find gtpin library %s\n", gtPinLibraryFilename.c_str());
result = ZE_RESULT_ERROR_UNKNOWN;
return;
return ZE_RESULT_ERROR_UNKNOWN;
}
OpenGTPin_fn openGTPin = reinterpret_cast<OpenGTPin_fn>(hGtPinLibrary.get()->getProcAddress(gtPinOpenFunctionName.c_str()));
if (openGTPin == nullptr) {
hGtPinLibrary.reset(nullptr);
NEO::printDebugString(NEO::DebugManager.flags.PrintDebugMessages.get(), stderr, "Unable to find gtpin library open function symbol %s\n", gtPinOpenFunctionName.c_str());
result = ZE_RESULT_ERROR_UNKNOWN;
return;
return ZE_RESULT_ERROR_UNKNOWN;
}
uint32_t openResult = openGTPin(nullptr);
if (openResult != 0) {
hGtPinLibrary.reset(nullptr);
NEO::printDebugString(NEO::DebugManager.flags.PrintDebugMessages.get(), stderr, "gtpin library open %s failed with status %u\n", gtPinOpenFunctionName.c_str(), openResult);
result = ZE_RESULT_ERROR_UNKNOWN;
return;
return ZE_RESULT_ERROR_UNKNOWN;
}
return ZE_RESULT_SUCCESS;
}
} // namespace L0

View File

@@ -15,7 +15,7 @@ namespace L0 {
class PinContext {
public:
static void init(ze_init_flag_t flag, ze_result_t &result);
static ze_result_t init();
private:
static const std::string gtPinLibraryFilename;

View File

@@ -7,7 +7,6 @@
#include "level_zero/tools/source/tools_init_imp.h"
#include "level_zero/tools/source/pin/pin.h"
#include "level_zero/tools/source/sysman/sysman.h"
#include "level_zero/tools/source/tools_init.h"
@@ -18,10 +17,6 @@ namespace L0 {
static void enableTools(ze_result_t &result, ze_init_flag_t flag, bool *ptoolsAreEnabled) {
SysmanHandleContext::init(flag);
PinContext::init(flag, std::ref(result));
if (result != ZE_RESULT_SUCCESS) {
return;
}
*ptoolsAreEnabled = true;
}