On 2017-04-11 04:45 AM, Christian König wrote: > Am 07.04.2017 um 18:52 schrieb Andres Rodriguez: >> >> s/druing/during in subject >> >> On 2017-04-07 12:11 PM, Christian König wrote: >>> From: Christian König <christian.koenig at amd.com> >>> >>> Trace on which hub we are doing the flush. >>> >>> Signed-off-by: Christian König <christian.koenig at amd.com> >>> --- >>> drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 20 ++++++++++++-------- >>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 2 +- >>> 2 files changed, 13 insertions(+), 9 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h >>> index 6032161..f95a386 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h >>> @@ -334,21 +334,25 @@ TRACE_EVENT(amdgpu_vm_copy_ptes, >>> ); >>> TRACE_EVENT(amdgpu_vm_flush, >>> - TP_PROTO(uint64_t pd_addr, unsigned ring, unsigned id), >>> - TP_ARGS(pd_addr, ring, id), >>> + TP_PROTO(struct amdgpu_ring *ring, unsigned vm_id, >>> + uint64_t pd_addr), >>> + TP_ARGS(ring, vm_id, pd_addr), >>> TP_STRUCT__entry( >>> - __field(u64, pd_addr) >>> __field(u32, ring) >>> - __field(u32, id) >>> + __field(u32, vm_id) >>> + __field(u32, vm_hub) >>> + __field(u64, pd_addr) >>> ), >>> TP_fast_assign( >>> + __entry->ring = ring->idx; >>> + __entry->vm_id = vm_id; >>> + __entry->vm_hub = ring->funcs->vmhub; >>> __entry->pd_addr = pd_addr; >>> - __entry->ring = ring; >>> - __entry->id = id; >>> ), >>> - TP_printk("ring=%u, id=%u, pd_addr=%010Lx", >>> - __entry->ring, __entry->id, __entry->pd_addr) >>> + TP_printk("ring=%u, id=%u, hub=%u, pd_addr=%010Lx", >>> + __entry->ring, __entry->vm_id, >>> + __entry->vm_hub,__entry->pd_addr) >> >> Can you also include job->base->id in this trace? > > No, at least not of hand. VM flushes are meant to be independent of job > submission. > Sorry about the confusion. This comment should've been on patch 7/8 instead of this one. > Christian. > >> >> Andres >>> ); >>> TRACE_EVENT(amdgpu_bo_list_set, >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >>> index 494645e..9017b51 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c >>> @@ -621,7 +621,7 @@ int amdgpu_vm_flush(struct amdgpu_ring *ring, >>> struct amdgpu_job *job) >>> u64 pd_addr = amdgpu_vm_adjust_mc_addr(adev, job->vm_pd_addr); >>> struct fence *fence; >>> - trace_amdgpu_vm_flush(pd_addr, ring->idx, job->vm_id); >>> + trace_amdgpu_vm_flush(ring, job->vm_id, pd_addr); >>> amdgpu_ring_emit_vm_flush(ring, job->vm_id, pd_addr); >>> r = amdgpu_fence_emit(ring, &fence); >> >