The current kernel implementation, which grabs the idle VMID from pool when
emitting the job may:
The back-to-back submission from one process could use different VMID.
The submission to different queues from single process could use different
VMID
It works well in most case but cannot work for the SQ thread trace capture.
The VMID for the submission that set the {SQTT}_BASE, which refers to the
address of the trace buffer, is stored in shader engine.
If the profiling application have to use different VMIDs to submit IBs in its
life cycle:
Some trace is not captured since it actually uses different VMID to submit
jobs.
Some part of captured trace may come from different application since they
are accidentally uses the owner???s VMID to submit jobs.
ChunmingrZhour(5):
drm/amdgpu: handle flags when context alloc
drm/amdgpu: add dedicated vmid field in vm struct
drm/amdgpu: add context flagn for dedicated vmid reqest
drm/amdgpu: implement grab dedicated vmid
drm/amdgpu: add limitation for dedicated vm number
drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c | 14 ++-
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 1 +
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 137 ++++++++++++++++++++++++++++-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 6 ++
include/uapi/drm/amdgpu_drm.h | 3 +
6 files changed, 158 insertions(+), 4 deletions(-)
--
1.9.1
_______________________________________________
amd-gfx mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/amd-gfx