@@ -25,16 +25,11 @@ namespace validation_layer
2525 enableThreadingValidation = getenv_tobool ( " ZE_ENABLE_THREADING_VALIDATION" );
2626 verboseLogging = getenv_tobool ( " ZEL_LOADER_LOGGING_ENABLE_SUCCESS_PRINT" );
2727
28- // Initialize logger to a no-op sentinel (level=off, no file/console I/O, no banner).
29- // This is purely crash protection: in normal operation the loader calls
30- // zelLoaderSetLogger() immediately after dlopen — before the DDI tables
31- // go live — so no real log call ever hits this sentinel.
32- //
33- // Thread-safety note: zelLoaderSetLogger() writes this field once, on the
34- // init thread, before zeDdiTable.exchange() makes the validation layer
35- // reachable from other threads. The non-atomic shared_ptr assignment is
36- // therefore safe in practice; no mutex is needed here.
37- logger = std::shared_ptr<loader::ZeLogger>(new loader::ZeLogger ()); // no-op sentinel: no sink, no mutex, no syscalls
28+ // Point at the process-lifetime no-op logger until the loader calls
29+ // zelLoaderSetLogger(). This is never null, so call sites need no null check.
30+ // Thread-safety: zelLoaderSetLogger() writes this field exactly once on the
31+ // init thread before zeDdiTable.exchange() makes the layer reachable.
32+ logger = loader::noopLogger ();
3833 }
3934
4035 // /////////////////////////////////////////////////////////////////////////////
@@ -64,13 +59,13 @@ zelLoaderGetVersion(zel_component_version_t *version)
6459}
6560
6661// / @brief Called by the loader immediately after dlopen to share its logger.
67- // / Replaces the fallback logger created in the constructor so that
68- // / validation-layer messages flow through the same sink as the loader.
62+ // / Replaces the no-op default so that validation-layer messages flow
63+ // / through the same sink as the loader.
6964ZE_DLLEXPORT void ZE_APICALL
70- zelLoaderSetLogger (std::shared_ptr< loader::ZeLogger> *loaderLogger)
65+ zelLoaderSetLogger (loader::ZeLogger *loaderLogger)
7166{
72- if (loaderLogger && *loaderLogger ) {
73- validation_layer::context_t::getInstance ().logger = * loaderLogger;
67+ if (loaderLogger) {
68+ validation_layer::context_t::getInstance ().logger = loaderLogger;
7469 }
7570}
7671
0 commit comments