All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] More amdgpu trace patches
@ 2017-03-10  2:25 Andres Rodriguez
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 8+ messages in thread
From: Andres Rodriguez @ 2017-03-10  2:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q,
	andresx7-Re5JQEeQqe8AvxtiuMwx3w

These are some of the extra changes Christian was requesting in the
previous ftrace thread.

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/5] drm/amd/sched: add a unique job id to amd_sched_job
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-03-10  2:25   ` Andres Rodriguez
  2017-03-10  2:25   ` [PATCH 2/5] drm/amdgpu: more ftrace formatting consistency fixes Andres Rodriguez
                     ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Andres Rodriguez @ 2017-03-10  2:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q,
	andresx7-Re5JQEeQqe8AvxtiuMwx3w

A unique id is useful for debugging and tracing. Intended to replace
pointers in ftrace output.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
---
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 2 ++
 drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
index 1bf83ed..9ee761e 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
@@ -452,20 +452,21 @@ void amd_sched_entity_push_job(struct amd_sched_job *sched_job)
 
 /* init a sched_job with basic field */
 int amd_sched_job_init(struct amd_sched_job *job,
 		       struct amd_gpu_scheduler *sched,
 		       struct amd_sched_entity *entity,
 		       void *owner)
 {
 	job->sched = sched;
 	job->s_entity = entity;
 	job->s_fence = amd_sched_fence_create(entity, owner);
+	job->id = atomic64_inc_return(&sched->job_id_count);
 	if (!job->s_fence)
 		return -ENOMEM;
 
 	INIT_WORK(&job->finish_work, amd_sched_job_finish);
 	INIT_LIST_HEAD(&job->node);
 	INIT_DELAYED_WORK(&job->work_tdr, amd_sched_job_timedout);
 
 	return 0;
 }
 
@@ -609,20 +610,21 @@ int amd_sched_init(struct amd_gpu_scheduler *sched,
 	sched->name = name;
 	sched->timeout = timeout;
 	for (i = 0; i < AMD_SCHED_MAX_PRIORITY; i++)
 		amd_sched_rq_init(&sched->sched_rq[i]);
 
 	init_waitqueue_head(&sched->wake_up_worker);
 	init_waitqueue_head(&sched->job_scheduled);
 	INIT_LIST_HEAD(&sched->ring_mirror_list);
 	spin_lock_init(&sched->job_list_lock);
 	atomic_set(&sched->hw_rq_count, 0);
+	atomic64_set(&sched->job_id_count, 0);
 
 	/* Each scheduler will run on a seperate kernel thread */
 	sched->thread = kthread_run(amd_sched_main, sched, sched->name);
 	if (IS_ERR(sched->thread)) {
 		DRM_ERROR("Failed to create scheduler for %s.\n", name);
 		return PTR_ERR(sched->thread);
 	}
 
 	return 0;
 }
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
index d8dc681..e037b1e 100644
--- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
+++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h
@@ -73,20 +73,21 @@ struct amd_sched_fence {
 };
 
 struct amd_sched_job {
 	struct amd_gpu_scheduler        *sched;
 	struct amd_sched_entity         *s_entity;
 	struct amd_sched_fence          *s_fence;
 	struct dma_fence_cb		finish_cb;
 	struct work_struct		finish_work;
 	struct list_head		node;
 	struct delayed_work		work_tdr;
+	uint64_t			id;
 };
 
 extern const struct dma_fence_ops amd_sched_fence_ops_scheduled;
 extern const struct dma_fence_ops amd_sched_fence_ops_finished;
 static inline struct amd_sched_fence *to_amd_sched_fence(struct dma_fence *f)
 {
 	if (f->ops == &amd_sched_fence_ops_scheduled)
 		return container_of(f, struct amd_sched_fence, scheduled);
 
 	if (f->ops == &amd_sched_fence_ops_finished)
@@ -117,20 +118,21 @@ enum amd_sched_priority {
 */
 struct amd_gpu_scheduler {
 	const struct amd_sched_backend_ops	*ops;
 	uint32_t			hw_submission_limit;
 	long				timeout;
 	const char			*name;
 	struct amd_sched_rq		sched_rq[AMD_SCHED_MAX_PRIORITY];
 	wait_queue_head_t		wake_up_worker;
 	wait_queue_head_t		job_scheduled;
 	atomic_t			hw_rq_count;
+	atomic64_t			job_id_count;
 	struct task_struct		*thread;
 	struct list_head	ring_mirror_list;
 	spinlock_t			job_list_lock;
 };
 
 int amd_sched_init(struct amd_gpu_scheduler *sched,
 		   const struct amd_sched_backend_ops *ops,
 		   uint32_t hw_submission, long timeout, const char *name);
 void amd_sched_fini(struct amd_gpu_scheduler *sched);
 
-- 
2.9.3

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/5] drm/amdgpu: more ftrace formatting consistency fixes
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-03-10  2:25   ` [PATCH 1/5] drm/amd/sched: add a unique job id to amd_sched_job Andres Rodriguez
@ 2017-03-10  2:25   ` Andres Rodriguez
  2017-03-10  2:25   ` [PATCH 3/5] drm/amdgpu: use sched_job id instead of pointer for tracing Andres Rodriguez
                     ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Andres Rodriguez @ 2017-03-10  2:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q,
	andresx7-Re5JQEeQqe8AvxtiuMwx3w

Consistent formatting makes it easier to read the logs and apply simple
awk oneliners.

I missed some of these on my last patch.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
index cc9a31d..da1fa98 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -63,21 +63,21 @@ TRACE_EVENT(amdgpu_bo_create,
 
 	    TP_fast_assign(
 			   __entry->bo = bo;
 			   __entry->pages = bo->tbo.num_pages;
 			   __entry->type = bo->tbo.mem.mem_type;
 			   __entry->prefer = bo->prefered_domains;
 			   __entry->allow = bo->allowed_domains;
 			   __entry->visible = bo->flags;
 			   ),
 
-	    TP_printk("bo=%p,pages=%u,type=%d,prefered=%d,allowed=%d,visible=%d",
+	    TP_printk("bo=%p, pages=%u, type=%d, prefered=%d, allowed=%d, visible=%d",
 		       __entry->bo, __entry->pages, __entry->type,
 		       __entry->prefer, __entry->allow, __entry->visible)
 );
 
 TRACE_EVENT(amdgpu_cs,
 	    TP_PROTO(struct amdgpu_cs_parser *p, int i),
 	    TP_ARGS(p, i),
 	    TP_STRUCT__entry(
 			     __field(struct amdgpu_bo_list *, bo_list)
 			     __field(u32, ring)
@@ -110,21 +110,21 @@ TRACE_EVENT(amdgpu_cs_ioctl,
 			     ),
 
 	    TP_fast_assign(
 			   __entry->adev = job->adev;
 			   __entry->sched_job = &job->base;
 			   __entry->ib = job->ibs;
 			   __entry->fence = &job->base.s_fence->finished;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("adev=%p, sched_job=%p, first ib=%p, sched fence=%p, ring name:%s, num_ibs:%u",
+	    TP_printk("adev=%p, sched_job=%p, first_ib=%p, sched_fence=%p, ring_name=%s, num_ibs=%u",
 		      __entry->adev, __entry->sched_job, __entry->ib,
 		      __entry->fence, __entry->ring_name, __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
 			     __field(struct amdgpu_device *, adev)
 			     __field(struct amd_sched_job *, sched_job)
@@ -141,21 +141,21 @@ TRACE_EVENT(amdgpu_sched_run_job,
 			   __entry->adev = job->adev;
 			   __entry->sched_job = &job->base;
 			   __entry->ib = job->ibs;
 			   __entry->fence = &job->base.s_fence->finished;
 			   __assign_str(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("adev=%p, sched_job=%p, first ib=%p, sched fence=%p, timeline=%s, context=%u, seqno=%u, ring name=%s, num_ibs=%u",
+	    TP_printk("adev=%p, sched_job=%p, first_ib=%p, sched_fence=%p, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
 		      __entry->adev, __entry->sched_job, __entry->ib,
 		      __entry->fence, __get_str(timeline), __entry->context, __entry->seqno,
 		      __entry->ring_name, __entry->num_ibs)
 );
 
 
 TRACE_EVENT(amdgpu_vm_grab_id,
 	    TP_PROTO(struct amdgpu_vm *vm, int ring, struct amdgpu_job *job),
 	    TP_ARGS(vm, ring, job),
 	    TP_STRUCT__entry(
@@ -321,39 +321,39 @@ TRACE_EVENT(amdgpu_bo_list_set,
 			     __field(struct amdgpu_bo_list *, list)
 			     __field(struct amdgpu_bo *, bo)
 			     __field(u64, bo_size)
 			     ),
 
 	    TP_fast_assign(
 			   __entry->list = list;
 			   __entry->bo = bo;
 			   __entry->bo_size = amdgpu_bo_size(bo);
 			   ),
-	    TP_printk("list=%p, bo=%p, bo_size = %Ld",
+	    TP_printk("list=%p, bo=%p, bo_size=%Ld",
 		      __entry->list,
 		      __entry->bo,
 		      __entry->bo_size)
 );
 
 TRACE_EVENT(amdgpu_cs_bo_status,
 	    TP_PROTO(uint64_t total_bo, uint64_t total_size),
 	    TP_ARGS(total_bo, total_size),
 	    TP_STRUCT__entry(
 			__field(u64, total_bo)
 			__field(u64, total_size)
 			),
 
 	    TP_fast_assign(
 			__entry->total_bo = total_bo;
 			__entry->total_size = total_size;
 			),
-	    TP_printk("total bo size = %Ld, total bo count = %Ld",
+	    TP_printk("total_bo_size=%Ld, total_bo_count=%Ld",
 			__entry->total_bo, __entry->total_size)
 );
 
 TRACE_EVENT(amdgpu_ttm_bo_move,
 	    TP_PROTO(struct amdgpu_bo* bo, uint32_t new_placement, uint32_t old_placement),
 	    TP_ARGS(bo, new_placement, old_placement),
 	    TP_STRUCT__entry(
 			__field(struct amdgpu_bo *, bo)
 			__field(u64, bo_size)
 			__field(u32, new_placement)
-- 
2.9.3

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/5] drm/amdgpu: use sched_job id instead of pointer for tracing
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  2017-03-10  2:25   ` [PATCH 1/5] drm/amd/sched: add a unique job id to amd_sched_job Andres Rodriguez
  2017-03-10  2:25   ` [PATCH 2/5] drm/amdgpu: more ftrace formatting consistency fixes Andres Rodriguez
@ 2017-03-10  2:25   ` Andres Rodriguez
  2017-03-10  2:25   ` [PATCH 4/5] drm/amdgpu: remove useless pointers from traces Andres Rodriguez
                     ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: Andres Rodriguez @ 2017-03-10  2:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q,
	andresx7-Re5JQEeQqe8AvxtiuMwx3w

Pointers get reallocated and they are hard to read for humans. Use ids
instead.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
index da1fa98..042a091 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -95,68 +95,68 @@ TRACE_EVENT(amdgpu_cs,
 	    TP_printk("bo_list=%p, ring=%u, dw=%u, fences=%u",
 		      __entry->bo_list, __entry->ring, __entry->dw,
 		      __entry->fences)
 );
 
 TRACE_EVENT(amdgpu_cs_ioctl,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
 			     __field(struct amdgpu_device *, adev)
-			     __field(struct amd_sched_job *, sched_job)
+			     __field(uint64_t, sched_job_id)
 			     __field(struct amdgpu_ib *, ib)
 			     __field(struct dma_fence *, fence)
 			     __field(char *, ring_name)
 			     __field(u32, num_ibs)
 			     ),
 
 	    TP_fast_assign(
 			   __entry->adev = job->adev;
-			   __entry->sched_job = &job->base;
+			   __entry->sched_job_id = job->base.id;
 			   __entry->ib = job->ibs;
 			   __entry->fence = &job->base.s_fence->finished;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("adev=%p, sched_job=%p, first_ib=%p, sched_fence=%p, ring_name=%s, num_ibs=%u",
-		      __entry->adev, __entry->sched_job, __entry->ib,
+	    TP_printk("adev=%p, sched_job=%llu, first_ib=%p, sched_fence=%p, ring_name=%s, num_ibs=%u",
+		      __entry->adev, __entry->sched_job_id, __entry->ib,
 		      __entry->fence, __entry->ring_name, __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
 			     __field(struct amdgpu_device *, adev)
-			     __field(struct amd_sched_job *, sched_job)
+			     __field(uint64_t, sched_job_id)
 			     __field(struct amdgpu_ib *, ib)
 			     __field(struct dma_fence *, fence)
 			     __string(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
 			     __field(char *, ring_name)
 			     __field(u32, num_ibs)
 			     ),
 
 	    TP_fast_assign(
 			   __entry->adev = job->adev;
-			   __entry->sched_job = &job->base;
+			   __entry->sched_job_id = job->base.id;
 			   __entry->ib = job->ibs;
 			   __entry->fence = &job->base.s_fence->finished;
 			   __assign_str(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("adev=%p, sched_job=%p, first_ib=%p, sched_fence=%p, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
-		      __entry->adev, __entry->sched_job, __entry->ib,
+	    TP_printk("adev=%p, sched_job=%llu, first_ib=%p, sched_fence=%p, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
+		      __entry->adev, __entry->sched_job_id, __entry->ib,
 		      __entry->fence, __get_str(timeline), __entry->context, __entry->seqno,
 		      __entry->ring_name, __entry->num_ibs)
 );
 
 
 TRACE_EVENT(amdgpu_vm_grab_id,
 	    TP_PROTO(struct amdgpu_vm *vm, int ring, struct amdgpu_job *job),
 	    TP_ARGS(vm, ring, job),
 	    TP_STRUCT__entry(
 			     __field(struct amdgpu_vm *, vm)
-- 
2.9.3

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 4/5] drm/amdgpu: remove useless pointers from traces
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
                     ` (2 preceding siblings ...)
  2017-03-10  2:25   ` [PATCH 3/5] drm/amdgpu: use sched_job id instead of pointer for tracing Andres Rodriguez
@ 2017-03-10  2:25   ` Andres Rodriguez
  2017-03-10  2:25   ` [PATCH 5/5] drm/amdgpu: replace fence pointer with fence data in traces Andres Rodriguez
  2017-03-10  2:51   ` [PATCH] More amdgpu trace patches zhoucm1
  5 siblings, 0 replies; 8+ messages in thread
From: Andres Rodriguez @ 2017-03-10  2:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q,
	andresx7-Re5JQEeQqe8AvxtiuMwx3w

Remove pointers which provide redundant information which is already
easier to deduce from other fields.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
index 042a091..39529a1 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -94,71 +94,60 @@ TRACE_EVENT(amdgpu_cs,
 			   ),
 	    TP_printk("bo_list=%p, ring=%u, dw=%u, fences=%u",
 		      __entry->bo_list, __entry->ring, __entry->dw,
 		      __entry->fences)
 );
 
 TRACE_EVENT(amdgpu_cs_ioctl,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
-			     __field(struct amdgpu_device *, adev)
 			     __field(uint64_t, sched_job_id)
-			     __field(struct amdgpu_ib *, ib)
 			     __field(struct dma_fence *, fence)
 			     __field(char *, ring_name)
 			     __field(u32, num_ibs)
 			     ),
 
 	    TP_fast_assign(
-			   __entry->adev = job->adev;
 			   __entry->sched_job_id = job->base.id;
-			   __entry->ib = job->ibs;
 			   __entry->fence = &job->base.s_fence->finished;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("adev=%p, sched_job=%llu, first_ib=%p, sched_fence=%p, ring_name=%s, num_ibs=%u",
-		      __entry->adev, __entry->sched_job_id, __entry->ib,
+	    TP_printk("sched_job=%llu, sched_fence=%p, ring_name=%s, num_ibs=%u",
+		      __entry->sched_job_id,
 		      __entry->fence, __entry->ring_name, __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
-			     __field(struct amdgpu_device *, adev)
 			     __field(uint64_t, sched_job_id)
-			     __field(struct amdgpu_ib *, ib)
-			     __field(struct dma_fence *, fence)
 			     __string(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
 			     __field(char *, ring_name)
 			     __field(u32, num_ibs)
 			     ),
 
 	    TP_fast_assign(
-			   __entry->adev = job->adev;
 			   __entry->sched_job_id = job->base.id;
-			   __entry->ib = job->ibs;
-			   __entry->fence = &job->base.s_fence->finished;
 			   __assign_str(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
 			   __entry->context = job->base.s_fence->finished.context;
 			   __entry->seqno = job->base.s_fence->finished.seqno;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("adev=%p, sched_job=%llu, first_ib=%p, sched_fence=%p, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
-		      __entry->adev, __entry->sched_job_id, __entry->ib,
-		      __entry->fence, __get_str(timeline), __entry->context, __entry->seqno,
-		      __entry->ring_name, __entry->num_ibs)
+	    TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
+		      __entry->sched_job_id, __get_str(timeline), __entry->context,
+		      __entry->seqno, __entry->ring_name, __entry->num_ibs)
 );
 
 
 TRACE_EVENT(amdgpu_vm_grab_id,
 	    TP_PROTO(struct amdgpu_vm *vm, int ring, struct amdgpu_job *job),
 	    TP_ARGS(vm, ring, job),
 	    TP_STRUCT__entry(
 			     __field(struct amdgpu_vm *, vm)
 			     __field(u32, ring)
 			     __field(u32, vmid)
-- 
2.9.3

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 5/5] drm/amdgpu: replace fence pointer with fence data in traces
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
                     ` (3 preceding siblings ...)
  2017-03-10  2:25   ` [PATCH 4/5] drm/amdgpu: remove useless pointers from traces Andres Rodriguez
@ 2017-03-10  2:25   ` Andres Rodriguez
  2017-03-10  2:51   ` [PATCH] More amdgpu trace patches zhoucm1
  5 siblings, 0 replies; 8+ messages in thread
From: Andres Rodriguez @ 2017-03-10  2:25 UTC (permalink / raw)
  To: amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q,
	andresx7-Re5JQEeQqe8AvxtiuMwx3w

Fence data is easier to read and allows us to correlate to identify
corresponding dma_fence ftrace events.

Signed-off-by: Andres Rodriguez <andresx7@gmail.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
index 39529a1..88e1704 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -95,34 +95,39 @@ TRACE_EVENT(amdgpu_cs,
 	    TP_printk("bo_list=%p, ring=%u, dw=%u, fences=%u",
 		      __entry->bo_list, __entry->ring, __entry->dw,
 		      __entry->fences)
 );
 
 TRACE_EVENT(amdgpu_cs_ioctl,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
 			     __field(uint64_t, sched_job_id)
+			     __string(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
+			     __field(unsigned int, context)
+			     __field(unsigned int, seqno)
 			     __field(struct dma_fence *, fence)
 			     __field(char *, ring_name)
 			     __field(u32, num_ibs)
 			     ),
 
 	    TP_fast_assign(
 			   __entry->sched_job_id = job->base.id;
-			   __entry->fence = &job->base.s_fence->finished;
+			   __assign_str(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
+			   __entry->context = job->base.s_fence->finished.context;
+			   __entry->seqno = job->base.s_fence->finished.seqno;
 			   __entry->ring_name = job->ring->name;
 			   __entry->num_ibs = job->num_ibs;
 			   ),
-	    TP_printk("sched_job=%llu, sched_fence=%p, ring_name=%s, num_ibs=%u",
-		      __entry->sched_job_id,
-		      __entry->fence, __entry->ring_name, __entry->num_ibs)
+	    TP_printk("sched_job=%llu, timeline=%s, context=%u, seqno=%u, ring_name=%s, num_ibs=%u",
+		      __entry->sched_job_id, __get_str(timeline), __entry->context,
+		      __entry->seqno, __entry->ring_name, __entry->num_ibs)
 );
 
 TRACE_EVENT(amdgpu_sched_run_job,
 	    TP_PROTO(struct amdgpu_job *job),
 	    TP_ARGS(job),
 	    TP_STRUCT__entry(
 			     __field(uint64_t, sched_job_id)
 			     __string(timeline, job->base.s_fence->finished.ops->get_timeline_name(&job->base.s_fence->finished))
 			     __field(unsigned int, context)
 			     __field(unsigned int, seqno)
-- 
2.9.3

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH] More amdgpu trace patches
       [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
                     ` (4 preceding siblings ...)
  2017-03-10  2:25   ` [PATCH 5/5] drm/amdgpu: replace fence pointer with fence data in traces Andres Rodriguez
@ 2017-03-10  2:51   ` zhoucm1
       [not found]     ` <58C214B3.5040608-5C7GfCeVMHo@public.gmane.org>
  5 siblings, 1 reply; 8+ messages in thread
From: zhoucm1 @ 2017-03-10  2:51 UTC (permalink / raw)
  To: Andres Rodriguez, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: deathsimple-ANTagKRnAhcb1SvskN2V4Q

nice patches, the set is Reviewed-by: Chunming Zhou <david1.zhou@amd.com>

On 2017年03月10日 10:25, Andres Rodriguez wrote:
> These are some of the extra changes Christian was requesting in the
> previous ftrace thread.
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH] More amdgpu trace patches
       [not found]     ` <58C214B3.5040608-5C7GfCeVMHo@public.gmane.org>
@ 2017-03-10  9:28       ` Christian König
  0 siblings, 0 replies; 8+ messages in thread
From: Christian König @ 2017-03-10  9:28 UTC (permalink / raw)
  To: zhoucm1, Andres Rodriguez,
	amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW

Am 10.03.2017 um 03:51 schrieb zhoucm1:
> nice patches, the set is Reviewed-by: Chunming Zhou <david1.zhou@amd.com>

Indeed looks good to me as well, but a few lines seems to be to long.

Please throw the patches into checkpatch.pl and at least try to fix any 
fallout.

With that done the patches are Reviewed-by: Christian König 
<christian.koenig@amd.com> as well.

Regards,
Christian.

>
> On 2017年03月10日 10:25, Andres Rodriguez wrote:
>> These are some of the extra changes Christian was requesting in the
>> previous ftrace thread.
>>
>> _______________________________________________
>> amd-gfx mailing list
>> amd-gfx@lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
>

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2017-03-10  9:28 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-10  2:25 [PATCH] More amdgpu trace patches Andres Rodriguez
     [not found] ` <20170310022554.4509-1-andresx7-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-03-10  2:25   ` [PATCH 1/5] drm/amd/sched: add a unique job id to amd_sched_job Andres Rodriguez
2017-03-10  2:25   ` [PATCH 2/5] drm/amdgpu: more ftrace formatting consistency fixes Andres Rodriguez
2017-03-10  2:25   ` [PATCH 3/5] drm/amdgpu: use sched_job id instead of pointer for tracing Andres Rodriguez
2017-03-10  2:25   ` [PATCH 4/5] drm/amdgpu: remove useless pointers from traces Andres Rodriguez
2017-03-10  2:25   ` [PATCH 5/5] drm/amdgpu: replace fence pointer with fence data in traces Andres Rodriguez
2017-03-10  2:51   ` [PATCH] More amdgpu trace patches zhoucm1
     [not found]     ` <58C214B3.5040608-5C7GfCeVMHo@public.gmane.org>
2017-03-10  9:28       ` Christian König

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.