mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-20 13:11:34 +08:00
feature: supports git SHA logging to log file
Related-To: NEO-11364 Signed-off-by: Kulkarni, Ashwin Kumar <ashwin.kumar.kulkarni@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
9f4c1b3daf
commit
fbb8fa7dea
@ -20,9 +20,21 @@
|
||||
#include "level_zero/experimental/source/log_utility/log_manager.h"
|
||||
#include "level_zero/tools/source/metrics/metric.h"
|
||||
|
||||
#include "driver_version.h"
|
||||
|
||||
#include <memory>
|
||||
#include <thread>
|
||||
|
||||
#define QTR(a) #a
|
||||
#define TOSTR(b) QTR(b)
|
||||
#define LOG_INFO_VERSION_SHA(logType, version, sha) \
|
||||
auto logger = NEO::LogManager::getInstance()->getLogger(logType); \
|
||||
if (logger) { \
|
||||
char logBuffer[256]; \
|
||||
snprintf(logBuffer, 256, "Level zero driver version and SHA : %s - %s\n", version, sha); \
|
||||
logger->logInfo(logBuffer); \
|
||||
}
|
||||
|
||||
namespace L0 {
|
||||
|
||||
_ze_driver_handle_t *globalDriverHandle;
|
||||
@ -59,10 +71,8 @@ void DriverImp::initialize(ze_result_t *result) {
|
||||
executionEnvironment->setDebuggingMode(dbgMode);
|
||||
}
|
||||
|
||||
// spdlog enablement
|
||||
if ((NEO::debugManager.flags.EnableLogLevel.get() != (uint32_t)NEO::LogLevel::logLevelOff)) {
|
||||
CREATE_LOGGER(NEO::LogManager::LogType::coreLogger, "coreLogger.log", NEO::debugManager.flags.EnableLogLevel.get());
|
||||
}
|
||||
// Logging enablement if opted
|
||||
initLogger();
|
||||
|
||||
if (envVariables.fp64Emulation) {
|
||||
executionEnvironment->setFP64EmulationEnabled();
|
||||
@ -101,6 +111,13 @@ void DriverImp::initialize(ze_result_t *result) {
|
||||
|
||||
ze_result_t DriverImp::initStatus(ZE_RESULT_ERROR_UNINITIALIZED);
|
||||
|
||||
void DriverImp::initLogger() {
|
||||
if (NEO::LogManager::getLoggingLevel() != (uint32_t)NEO::LogLevel::logLevelOff) {
|
||||
CREATE_LOGGER(NEO::LogManager::LogType::coreLogger, "coreLogger.log", NEO::LogManager::getLoggingLevel());
|
||||
LOG_INFO_VERSION_SHA(NEO::LogManager::LogType::coreLogger, TOSTR(NEO_OCL_DRIVER_VERSION), NEO_REVISION);
|
||||
}
|
||||
}
|
||||
|
||||
ze_result_t DriverImp::driverInit(ze_init_flags_t flags) {
|
||||
std::call_once(initDriverOnce, [this]() {
|
||||
ze_result_t result;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2020-2023 Intel Corporation
|
||||
* Copyright (C) 2020-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@ -21,6 +21,7 @@ class DriverImp : public Driver {
|
||||
void initialize(ze_result_t *result) override;
|
||||
|
||||
protected:
|
||||
void initLogger();
|
||||
std::once_flag initDriverOnce;
|
||||
static ze_result_t initStatus;
|
||||
};
|
||||
|
@ -7,10 +7,13 @@
|
||||
|
||||
#include "linux_log_manager.h"
|
||||
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
namespace NEO {
|
||||
std::unique_ptr<LogManager> LogManager::instancePtr = nullptr;
|
||||
uint32_t LogManager::logLevel = UINT32_MAX;
|
||||
|
||||
LogManager *LogManager::getInstance() {
|
||||
if (instancePtr == nullptr) {
|
||||
@ -59,6 +62,13 @@ std::unique_ptr<NEO::LinuxLogger> LinuxLogManager::createLoggerByType(LogManager
|
||||
return pLogger;
|
||||
}
|
||||
|
||||
uint32_t LogManager::getLoggingLevel() {
|
||||
if (logLevel == UINT32_MAX) {
|
||||
logLevel = NEO::debugManager.flags.EnableLogLevel.get();
|
||||
}
|
||||
return logLevel;
|
||||
}
|
||||
|
||||
std::unique_ptr<NEO::LinuxLogger> LinuxLogManager::prepareLogger() {
|
||||
return std::make_unique<NEO::LinuxLogger>();
|
||||
}
|
||||
|
@ -37,24 +37,35 @@ class LogManager {
|
||||
|
||||
virtual void destroyLogger(LogManager::LogType logType) = 0;
|
||||
|
||||
static uint32_t getLoggingLevel();
|
||||
|
||||
virtual ~LogManager() = default;
|
||||
|
||||
protected:
|
||||
static std::unique_ptr<LogManager> instancePtr;
|
||||
static uint32_t logLevel;
|
||||
};
|
||||
|
||||
#define CREATE_LOGGER(logType, filename, logLevel) NEO::LogManager::getInstance()->createLogger(logType, filename, logLevel)
|
||||
|
||||
#define LOG_CRITICAL(condition, logType, msg) \
|
||||
if (condition) { \
|
||||
if (NEO::debugManager.flags.EnableLogLevel.get() != (uint32_t)NEO::LogLevel::logLevelOff) { \
|
||||
auto logger = NEO::LogManager::getInstance()->getLogger(logType); \
|
||||
if (logger) { \
|
||||
logger->logFatal(msg); \
|
||||
} \
|
||||
} \
|
||||
#define LOG_CRITICAL(condition, logType, msg) \
|
||||
if (condition) { \
|
||||
if (NEO::LogManager::getLoggingLevel() != (uint32_t)NEO::LogLevel::logLevelOff) { \
|
||||
auto logger = NEO::LogManager::getInstance()->getLogger(logType); \
|
||||
if (logger) { \
|
||||
logger->logFatal(msg); \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
||||
#define LOG_CRITICAL_FOR_CORE(condition, msg) LOG_CRITICAL(condition, NEO::LogManager::LogType::coreLogger, msg)
|
||||
|
||||
#define LOG_INFO(logType, msg) \
|
||||
if (NEO::LogManager::getLoggingLevel() != (uint32_t)NEO::LogLevel::logLevelOff) { \
|
||||
auto logger = NEO::LogManager::getInstance()->getLogger(logType); \
|
||||
if (logger) { \
|
||||
logger->logInfo(msg); \
|
||||
} \
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
@ -9,6 +9,7 @@
|
||||
|
||||
namespace NEO {
|
||||
std::unique_ptr<LogManager> LogManager::instancePtr = nullptr;
|
||||
uint32_t LogManager::logLevel = UINT32_MAX;
|
||||
|
||||
LogManager *LogManager::getInstance() {
|
||||
if (instancePtr == nullptr) {
|
||||
@ -29,6 +30,10 @@ NEO::Logger *WinLogManager::getLogger(LogManager::LogType logType) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
uint32_t LogManager::getLoggingLevel() {
|
||||
return (uint32_t)LogLevel::logLevelOff;
|
||||
}
|
||||
|
||||
void WinLogManager::destroyLogger(LogManager::LogType logType) {
|
||||
}
|
||||
|
||||
|
@ -54,24 +54,24 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED NEO_VERSION_BUILD)
|
||||
set(NEO_VERSION_BUILD 0)
|
||||
set(NEO_REVISION 0)
|
||||
else()
|
||||
find_program(GIT NAMES git)
|
||||
if(NOT "${GIT}" STREQUAL "GIT-NOTFOUND")
|
||||
if(IS_DIRECTORY ${NEO_SOURCE_DIR}/.git)
|
||||
set(GIT_arg --git-dir=${NEO_SOURCE_DIR}/.git rev-parse HEAD)
|
||||
execute_process(
|
||||
COMMAND ${GIT} ${GIT_arg}
|
||||
OUTPUT_VARIABLE NEO_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
endif()
|
||||
find_program(GIT NAMES git)
|
||||
if(NOT "${GIT}" STREQUAL "GIT-NOTFOUND")
|
||||
if(IS_DIRECTORY ${NEO_SOURCE_DIR}/.git)
|
||||
set(GIT_arg --git-dir=${NEO_SOURCE_DIR}/.git rev-parse HEAD)
|
||||
execute_process(
|
||||
COMMAND ${GIT} ${GIT_arg}
|
||||
OUTPUT_VARIABLE NEO_REVISION
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED NEO_REVISION)
|
||||
set(NEO_REVISION 0)
|
||||
set(NEO_REVISION "No git SHA found, compiled outside git folder")
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED NEO_VERSION_BUILD)
|
||||
set(NEO_VERSION_BUILD 0)
|
||||
endif()
|
||||
|
||||
if(NOT DEFINED NEO_VERSION_HOTFIX)
|
||||
|
Reference in New Issue
Block a user