Skip to content

Commit

Permalink
[UR][L0] Add UR_L0_LEAKS_DEBUG key
Browse files Browse the repository at this point in the history
Use a new environment variable, UR_L0_LEAKS_DEBUG, to check
for leaks in the UR L0 adapter, instead of relying on a specific
value being set in UR_L0_DEBUG.

Signed-off-by: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
  • Loading branch information
Jaime Arteaga committed Nov 8, 2023
1 parent d70bae4 commit 93b73ac
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 6 deletions.
7 changes: 4 additions & 3 deletions source/adapters/level_zero/adapter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ ur_result_t adapterStateTeardown() {
// Print the balance of various create/destroy native calls.
// The idea is to verify if the number of create(+) and destroy(-) calls are
// matched.
if (ZeCallCount && (UrL0Debug & UR_L0_DEBUG_CALL_COUNT) != 0) {
if (ZeCallCount && (UrL0LeaksDebug) != 0) {
// clang-format off
//
// The format of this table is such that each row accounts for a
Expand Down Expand Up @@ -79,8 +79,9 @@ ur_result_t adapterStateTeardown() {
//
// clang-format on

fprintf(stderr, "ZE_DEBUG=%d: check balance of create/destroy calls\n",
UR_L0_DEBUG_CALL_COUNT);
fprintf(stderr,
"UR_L0_LEAKS_DEBUG=%d: check balance of create/destroy calls\n",
UrL0LeaksDebug);
fprintf(stderr,
"----------------------------------------------------------\n");
for (const auto &Row : CreateDestroySet) {
Expand Down
2 changes: 1 addition & 1 deletion source/adapters/level_zero/common.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ ze_result_t ZeCall::doCall(ze_result_t ZeResult, const char *ZeName,
const char *ZeArgs, bool TraceError) {
urPrint("ZE ---> %s%s\n", ZeName, ZeArgs);

if (UrL0Debug & UR_L0_DEBUG_CALL_COUNT) {
if (UrL0LeaksDebug) {
++(*ZeCallCount)[ZeName];
}

Expand Down
8 changes: 7 additions & 1 deletion source/adapters/level_zero/common.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,6 @@ enum UrDebugLevel {
UR_L0_DEBUG_NONE = 0x0,
UR_L0_DEBUG_BASIC = 0x1,
UR_L0_DEBUG_VALIDATION = 0x2,
UR_L0_DEBUG_CALL_COUNT = 0x4,
UR_L0_DEBUG_ALL = -1
};

Expand All @@ -203,6 +202,13 @@ const int UrL0Debug = [] {
return DebugMode;
}();

const int UrL0LeaksDebug = [] {
const char *UrRet = std::getenv("UR_L0_LEAKS_DEBUG");
if (!UrRet)
return 0;
return std::atoi(UrRet);
}();

// Controls Level Zero calls serialization to w/a Level Zero driver being not MT
// ready. Recognized values (can be used as a bit mask):
enum {
Expand Down
2 changes: 1 addition & 1 deletion source/adapters/level_zero/platform.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ UR_APIEXPORT ur_result_t UR_APICALL urPlatformGet(
static std::once_flag ZeCallCountInitialized;
try {
std::call_once(ZeCallCountInitialized, []() {
if (UrL0Debug & UR_L0_DEBUG_CALL_COUNT) {
if (UrL0LeaksDebug) {
ZeCallCount = new std::map<std::string, int>;
}
});
Expand Down

0 comments on commit 93b73ac

Please sign in to comment.