Reviewed-by: Christian König <christian.koenig at amd.com> for patch #3 and #5. Am 27.04.2017 um 15:09 schrieb Chunming Zhou: > 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. > > V2: > 1. address Christian's comments: > a. drop context flags for tag process, instead, add vm ioctl. > b. change order of patches. > c. sync waiting only when vm flush needs. > > 2. address Alex's comments; > bump module version > > V3: > address Jerry and Christian's comments. > and only reserve gfxhub vmid > > v4: > address Jerry and Christian's comments. > fix some race condistions. > > v5: > patch#5: peek_fence instead of get_fence. > fix potential context starved. > > Chunming Zhou (6): > drm/amdgpu: add vm ioctl > drm/amdgpu: add reserved vmid field in vm struct v2 > drm/amdgpu: reserve/unreserve vmid by vm ioctl v4 > drm/amdgpu: add limitation for dedicated vm number v4 > drm/amdgpu: implement grab reserved vmid V4 > drm/amdgpu: bump module verion for reserved vmid > > drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 3 +- > drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 1 + > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 159 +++++++++++++++++++++++++++++++- > drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h | 6 ++ > include/uapi/drm/amdgpu_drm.h | 22 +++++ > 5 files changed, 185 insertions(+), 6 deletions(-) >