diff options
| author | Jesse Zhang <Jesse.Zhang@amd.com> | 2026-09-20 17:20:21 +0800 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2026-10-01 17:17:15 -0400 |
| commit | 56b2b97e7893f495b2e2a91cd3e405b6358c61f0 (patch) | |
| tree | ff50b1df608ff6123fab06f98bc55250811ffcbc /tools/perf/scripts/python/stackcollapse.py | |
| parent | 6b6c4fab8815bd1da5643c19278d364026b8665b (diff) | |
| download | linux-next-56b2b97e7893f495b2e2a91cd3e405b6358c61f0.tar.gz linux-next-56b2b97e7893f495b2e2a91cd3e405b6358c61f0.zip | |
drm/amdgpu: fix empty fence backup and replay intervals
amdgpu_ring_set_fence_errors_and_reemit() and
amdgpu_ring_backup_unprocessed_commands() masked last_seq and sync_seq to
fence-array indices before the loop, then walked a do/while until the two
indices met. When hardware completed every command before the driver
signalled the fences, last_seq == sync_seq, but the masked-index do/while
could not tell that empty interval from a full table and walked the whole
fence array, backing up and replaying already-completed commands.
Read the raw sequence numbers, return early through amdgpu_fence_process()
when they are equal, and mask only at the array index. Guard the
force-completion against a NULL guilty_fence so a non-guilty backup does
not dereference it.
Signed-off-by: Jesse Zhang <Jesse.Zhang@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 78fbe156637a11456fcd29615a56e098ec8a6990)
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions
