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
This commit is contained in:
David Yat Sin
2023-07-06 23:00:50 +00:00
والد cd4632ccbc
کامیت bc585bd8de
@@ -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;
}