Skip to content

Commit ad621ce

Browse files
committed
Fix zellow world tracing for multiple drivers
Signed-off-by: Neil R. Spruit <neil.r.spruit@intel.com>
1 parent 150ebcb commit ad621ce

3 files changed

Lines changed: 13 additions & 47 deletions

File tree

samples/zello_world/zello_world.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -98,16 +98,6 @@ int main( int argc, char *argv[] )
9898
}
9999
}
100100

101-
if (tracing_enabled) {
102-
zel_tracer_desc_t tracer_desc = {ZEL_STRUCTURE_TYPE_TRACER_EXP_DESC, nullptr,
103-
nullptr};
104-
status = zelTracerCreate(&tracer_desc, &tracer);
105-
if(status != ZE_RESULT_SUCCESS) {
106-
std::cout << "zelTracerCreate Failed with return code: " << to_string(status) << std::endl;
107-
exit(1);
108-
}
109-
}
110-
111101
if (legacy_init) {
112102
status = zeDriverGet(&driverCount, nullptr);
113103
if(status != ZE_RESULT_SUCCESS) {
@@ -154,6 +144,15 @@ int main( int argc, char *argv[] )
154144
std::cout << "No valid device found for Driver #" << driver_idx << std::endl;
155145
continue;
156146
}
147+
if (tracing_enabled) {
148+
zel_tracer_desc_t tracer_desc = {ZEL_STRUCTURE_TYPE_TRACER_EXP_DESC, nullptr,
149+
nullptr};
150+
status = zelTracerCreate(&tracer_desc, &tracer);
151+
if(status != ZE_RESULT_SUCCESS) {
152+
std::cout << "zelTracerCreate Failed with return code: " << to_string(status) << std::endl;
153+
exit(1);
154+
}
155+
}
157156
pDriver = drivers[driver_idx];
158157
pDevice = devices_per_driver[driver_idx];
159158
std::cout << "Executing on Driver #" << driver_idx << ", Device #" << 0 << std::endl;

source/loader/ze_loader.cpp

Lines changed: 3 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -324,8 +324,9 @@ namespace loader
324324
continue;
325325
}
326326
} else {
327+
res = ZE_RESULT_ERROR_UNINITIALIZED;
327328
if (debugTraceEnabled) {
328-
std::string message = "driverSorting " + driver.name + " zeDriverGet and zeInitDrivers not supported, skipping driver";
329+
std::string message = "driverSorting " + driver.name + " zeDriverGet and zeInitDrivers not supported, skipping driver with error ";
329330
debug_trace_message(message, loader::to_string(res));
330331
}
331332
continue;
@@ -544,31 +545,27 @@ namespace loader
544545
std::string message = "init driver " + driver.name + " failed, zeloaderInitDriverDDITables returned ";
545546
debug_trace_message(message, loader::to_string(res));
546547
}
547-
return res;
548548
}
549549
res = loader::zesloaderInitDriverDDITables(&driver);
550550
if (res != ZE_RESULT_SUCCESS) {
551551
if (debugTraceEnabled) {
552552
std::string message = "init driver " + driver.name + " failed, zesloaderInitDriverDDITables returned ";
553553
debug_trace_message(message, loader::to_string(res));
554554
}
555-
return res;
556555
}
557556
res = loader::zetloaderInitDriverDDITables(&driver);
558557
if (res != ZE_RESULT_SUCCESS) {
559558
if (debugTraceEnabled) {
560559
std::string message = "init driver " + driver.name + " failed, zetloaderInitDriverDDITables returned ";
561560
debug_trace_message(message, loader::to_string(res));
562561
}
563-
return res;
564562
}
565563
res = loader::zerloaderInitDriverDDITables(&driver);
566564
if (res != ZE_RESULT_SUCCESS) {
567565
if (debugTraceEnabled) {
568566
std::string message = "init driver " + driver.name + " failed, zerloaderInitDriverDDITables returned ";
569567
debug_trace_message(message, loader::to_string(res));
570568
}
571-
return res;
572569
}
573570
driver.ddiInitialized = true;
574571
}
@@ -676,29 +673,6 @@ namespace loader
676673
allDrivers.emplace_back();
677674
allDrivers.rbegin()->handle = nullptr;
678675
allDrivers.rbegin()->name = name;
679-
// auto handle = LOAD_DRIVER_LIBRARY( name.c_str() );
680-
// if( NULL != handle )
681-
// {
682-
// if (debugTraceEnabled) {
683-
// std::string message = "Loading Driver " + name + " succeeded";
684-
// #if !defined(_WIN32) && !defined(ANDROID)
685-
// // TODO: implement same message for windows, move dlinfo to ze_util.h as a macro
686-
// struct link_map *dlinfo_map;
687-
// if (dlinfo(handle, RTLD_DI_LINKMAP, &dlinfo_map) == 0) {
688-
// message += " from: " + std::string(dlinfo_map->l_name);
689-
// }
690-
// #endif
691-
// debug_trace_message(message, "");
692-
// }
693-
// allDrivers.emplace_back();
694-
// allDrivers.rbegin()->handle = handle;
695-
// allDrivers.rbegin()->name = name;
696-
// } else if (debugTraceEnabled) {
697-
// GET_LIBRARY_ERROR(loadLibraryErrorValue);
698-
// std::string errorMessage = "Load Library of " + name + " failed with ";
699-
// debug_trace_message(errorMessage, loadLibraryErrorValue);
700-
// loadLibraryErrorValue.clear();
701-
// }
702676
}
703677
if(allDrivers.size()==0){
704678
if (debugTraceEnabled) {
@@ -777,7 +751,7 @@ namespace loader
777751
driverEnvironmentQueried = true;
778752

779753
// Set default driver handle and DDI table to the first driver in the list before sorting.
780-
loader::context->defaultZerDriverHandle = &loader::context->zeDrivers.front().zerDriverHandle;
754+
loader::context->defaultZerDriverHandle = loader::context->zeDrivers.front().zerDriverHandle;
781755
loader::defaultZerDdiTable = &loader::context->zeDrivers.front().dditable.zer;
782756

783757
zel_logger->log_info("zeInit succeeded");

source/loader/zer_ldrddi.cpp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,7 @@ zerGetGlobalProcAddrTableFromDriver(loader::driver_t *driver)
142142
GET_FUNCTION_PTR( driver->handle, "zerGetGlobalProcAddrTable") );
143143
if(!getTable)
144144
return driver->initStatus;
145-
auto getTableResult = getTable( loader::context->ddi_init_version, &driver->dditable.zer.Global);
146-
if(getTableResult == ZE_RESULT_SUCCESS) {
147-
loader::context->configured_version = loader::context->ddi_init_version;
148-
} else
149-
driver->initStatus = getTableResult;
150-
if (driver->dditable.ze.Global.pfnInitDrivers) {
151-
loader::context->initDriversSupport = true;
152-
}
145+
result = getTable( loader::context->ddi_init_version, &driver->dditable.zer.Global);
153146
return result;
154147
}
155148
///////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)