Force clock sync on profiling enablement

Fix a condition where we can get a divide-by-zero in the
TranslateTime(tick) function if the GPU tick predates HSA
startup and we did not do a SyncClocks since initialization.

Change-Id: I0dcec8553ccb8f01211928991f4b3ed3cb4a1ebb
Cette révision appartient à :
David Yat Sin a révisé 2023-07-07 10:08:54 -04:00
1 Parent cd4632ccbc
révision bc585bd8de
1 fichier modifié
+6
+6
Voir le fichier
@@ -1034,6 +1034,12 @@ hsa_status_t GpuAgent::EnableDmaProfiling(bool enable) {
}
}
// If we did not update t1 since agent initialization, force a SyncClock. Otherwise computing
// the SystemClockCounter to GPUClockCounter ratio in TranslateTime(tick) results to a division
// by 0. We perform the check here because we do not want to check everytime there is a call to
// TranslateTime(tick)
if (enable && t0_.GPUClockCounter == t1_.GPUClockCounter) SyncClocks();
return HSA_STATUS_SUCCESS;
}