Skip to content

Commit 1d6b103

Browse files
committed
Add a logger callback in SYCL RT and pass that to adapters during initialisation via urAdapterSetLoggerCallback.
1 parent 6ae53d8 commit 1d6b103

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

sycl/source/detail/ur.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ void *getAdapterOpaqueData([[maybe_unused]] void *OpaqueDataParam) {
7777

7878
ur_code_location_t codeLocationCallback(void *);
7979

80+
void receiveLoggerMessages([[maybe_unused]] ur_logger_level_t level,
81+
const char *msg, void *userData) {
82+
// Do something with a message sent from a UR adapter
83+
}
84+
8085
namespace ur {
8186
bool trace(TraceLevel Level) {
8287
auto TraceLevelMask = SYCLConfig<SYCL_UR_TRACE>::get();
@@ -219,6 +224,9 @@ static void initializeAdapters(std::vector<AdapterPtr> &Adapters,
219224
nullptr));
220225
auto syclBackend = UrToSyclBackend(adapterBackend);
221226
Adapters.emplace_back(std::make_shared<Adapter>(UrAdapter, syclBackend));
227+
228+
urAdapterSetLoggerCallback(UrAdapter, receiveLoggerMessages, nullptr,
229+
UR_LOGGER_LEVEL_INFO);
222230
}
223231

224232
#ifdef XPTI_ENABLE_INSTRUMENTATION

unified-runtime/source/common/logger/ur_sinks.hpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,11 +234,13 @@ class CallbackSink : public Sink {
234234
}
235235

236236
private:
237-
ur_logger_callback_t callback;
238-
void *userData;
237+
ur_logger_callback_t callback = nullptr;
238+
void *userData = nullptr;
239239

240240
virtual void print(ur_logger_level_t level, const std::string &msg) override {
241-
callback(level, msg.c_str(), userData);
241+
if (callback) {
242+
callback(level, msg.c_str(), userData);
243+
}
242244
}
243245
};
244246

0 commit comments

Comments
 (0)