diff options
| author | Jesse Zhang <Jesse.Zhang@amd.com> | 2026-09-17 15:31:04 +0800 |
|---|---|---|
| committer | Alex Deucher <alexander.deucher@amd.com> | 2026-10-01 17:17:15 -0400 |
| commit | 6b6c4fab8815bd1da5643c19278d364026b8665b (patch) | |
| tree | 5d2cc4f6102fdccc303cb636244303b5cd393fa1 /tools/perf/scripts/python | |
| parent | cd883d0a3937df82a5ea03709ba8ba623b868419 (diff) | |
| download | linux-next-6b6c4fab8815bd1da5643c19278d364026b8665b.tar.gz linux-next-6b6c4fab8815bd1da5643c19278d364026b8665b.zip | |
drm/amdgpu: support non-guilty job save on ring backup
amdgpu_ring_backup_unprocessed_commands() is also used to preserve a
ring that carries no guilty command - for example a collateral kernel
gfx ring that shares the faulting pipe during a gfx user-queue pipe
reset. Such a ring is backed up with a NULL guilty_fence and all of its
unprocessed commands must be saved so they can be replayed after the
reset rebuilds the ring's MQD.
The early-return that skips an already-seen guilty fence compared
"ring->guilty_fence == guilty_fence", which is also true when both are
NULL. A non-guilty save therefore hit the early return and left
ring_backup_entries_to_copy at 0, so the pending commands were dropped
when the ring was rebuilt.
Guard the early return with a non-NULL guilty_fence so a NULL fence
never takes it and every unprocessed command is backed up.
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 b3f73daa1c2498273981b68b7534e540614069e3)
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
