Skip to content
This repository was archived by the owner on Sep 30, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 2 additions & 3 deletions libkineto/src/CuptiActivityApi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,11 @@ constexpr size_t kBufSize(4 * 1024 * 1024);
constexpr uint32_t kCuptiBufferRejectionMinVersion = 27;

inline bool cuptiTearDown_() {
auto teardown_env = getenv("TEARDOWN_CUPTI");
return teardown_env != nullptr && strcmp(teardown_env, "1") == 0;
return isEnvVarSetToOne("TEARDOWN_CUPTI");
}

inline bool cuptiLazyInit_() {
return cuptiTearDown_() && getenv("DISABLE_CUPTI_LAZY_REINIT") == nullptr;
return cuptiTearDown_() && !isEnvVarSetToOne("DISABLE_CUPTI_LAZY_REINIT");
}

inline void reenableCuptiCallbacks_(CuptiCallbackApi& cbapi) {
Expand Down
7 changes: 7 additions & 0 deletions libkineto/src/CuptiActivityApi.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,12 @@

#include <atomic>
#include <condition_variable>
#include <cstdlib>
#include <functional>
#include <memory>
#include <mutex>
#include <set>
#include <string_view>

#include <cupti.h>

Expand All @@ -27,6 +29,11 @@ namespace KINETO_NAMESPACE {

using namespace libkineto;

inline bool isEnvVarSetToOne(const char* name) {
const auto* value = std::getenv(name);
return value != nullptr && std::string_view{value} == "1";
}

class CuptiActivityApi {
public:
enum CorrelationFlowType { Default, User };
Expand Down
11 changes: 11 additions & 0 deletions libkineto/test/CuptiActivityProfilerTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -345,6 +345,17 @@ class MockCuptiActivities : public CuptiActivityApi {
bool available{true};
};

TEST(CuptiActivityApiTest, ParsesBooleanEnvironmentValues) {
constexpr auto* kTestEnvVar = "KINETO_TEST_BOOLEAN_ENV_VAR";
EXPECT_EQ(unsetenv(kTestEnvVar), 0);
EXPECT_FALSE(isEnvVarSetToOne(kTestEnvVar));
EXPECT_EQ(setenv(kTestEnvVar, "0", 1), 0);
EXPECT_FALSE(isEnvVarSetToOne(kTestEnvVar));
EXPECT_EQ(setenv(kTestEnvVar, "1", 1), 0);
EXPECT_TRUE(isEnvVarSetToOne(kTestEnvVar));
EXPECT_EQ(unsetenv(kTestEnvVar), 0);
}

TEST(CuptiActivityApiTest, KeepsReturningValidBuffersWhenRejectionUnsupported) {
CallbackCuptiActivityApi cupti;
cupti.canRejectBuffer_ = false;
Expand Down
Loading