Skip to content

Commit 1cca0b9

Browse files
author
Romain PEREIRA
committed
removed _profile_event_results causing segv
1 parent 650c59c commit 1cca0b9

1 file changed

Lines changed: 7 additions & 4 deletions

File tree

‎backends/ze/tracer_ze_helpers.include.c‎

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -520,8 +520,8 @@ static void _event_cleanup() {
520520

521521
HASH_ITER(hh, _ze_events, ze_event, tmp) {
522522
HASH_DEL(_ze_events, ze_event);
523-
if (ze_event->event && !(ze_event->flags & _ZE_PROFILED))
524-
_profile_event_results(ze_event->event);
523+
/* See _on_destroy_context: skip the teardown query to avoid a libze
524+
* segfault on already-released events. */
525525
if (ze_event->event_pool) {
526526
if (ze_event->event)
527527
ZE_EVENT_DESTROY_PTR(ze_event->event);
@@ -538,8 +538,11 @@ static void _on_destroy_context(ze_context_handle_t context){
538538
HASH_ITER(hh, _ze_events, ze_event, tmp) {
539539
if (ze_event->context == context) {
540540
HASH_DEL(_ze_events, ze_event);
541-
if (ze_event->event && !(ze_event->flags & _ZE_PROFILED))
542-
_profile_event_results(ze_event->event);
541+
/* Do NOT query event results at context teardown: XKRT finalize releases
542+
* device/queue resources before zeContextDestroy, so a live
543+
* zeEventQueryStatus/QueryKernelTimestamp here dereferences freed GPU
544+
* state and segfaults inside libze. Normal profiling already ran on
545+
* completion/reset (_unregister_ze_event/_on_reset_event). */
543546
if (ze_event->event_pool) {
544547
if (ze_event->event)
545548
ZE_EVENT_DESTROY_PTR(ze_event->event);

0 commit comments

Comments
 (0)