[PATCH 3/3] drm/amdgpu: trace if a PD/PT update is done directly

Deucher, Alexander Alexander.Deucher at amd.com
Fri Sep 13 15:57:44 UTC 2019


Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
________________________________
From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> on behalf of Christian König <ckoenig.leichtzumerken at gmail.com>
Sent: Friday, September 13, 2019 8:18 AM
To: amd-gfx at lists.freedesktop.org <amd-gfx at lists.freedesktop.org>
Subject: [PATCH 3/3] drm/amdgpu: trace if a PD/PT update is done directly

This is usfull for debugging.

Signed-off-by: Christian König <christian.koenig at amd.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h   | 23 +++++++++++++--------
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c  |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c |  4 ++--
 3 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
index d3ca2424b5fe..e9feb5a8fb9d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_trace.h
@@ -325,14 +325,15 @@ DEFINE_EVENT(amdgpu_vm_mapping, amdgpu_vm_bo_cs,

 TRACE_EVENT(amdgpu_vm_set_ptes,
             TP_PROTO(uint64_t pe, uint64_t addr, unsigned count,
-                    uint32_t incr, uint64_t flags),
-           TP_ARGS(pe, addr, count, incr, flags),
+                    uint32_t incr, uint64_t flags, bool direct),
+           TP_ARGS(pe, addr, count, incr, flags, direct),
             TP_STRUCT__entry(
                              __field(u64, pe)
                              __field(u64, addr)
                              __field(u32, count)
                              __field(u32, incr)
                              __field(u64, flags)
+                            __field(bool, direct)
                              ),

             TP_fast_assign(
@@ -341,28 +342,32 @@ TRACE_EVENT(amdgpu_vm_set_ptes,
                            __entry->count = count;
                            __entry->incr = incr;
                            __entry->flags = flags;
+                          __entry->direct = direct;
                            ),
-           TP_printk("pe=%010Lx, addr=%010Lx, incr=%u, flags=%llx, count=%u",
-                     __entry->pe, __entry->addr, __entry->incr,
-                     __entry->flags, __entry->count)
+           TP_printk("pe=%010Lx, addr=%010Lx, incr=%u, flags=%llx, count=%u, "
+                     "direct=%d", __entry->pe, __entry->addr, __entry->incr,
+                     __entry->flags, __entry->count, __entry->direct)
 );

 TRACE_EVENT(amdgpu_vm_copy_ptes,
-           TP_PROTO(uint64_t pe, uint64_t src, unsigned count),
-           TP_ARGS(pe, src, count),
+           TP_PROTO(uint64_t pe, uint64_t src, unsigned count, bool direct),
+           TP_ARGS(pe, src, count, direct),
             TP_STRUCT__entry(
                              __field(u64, pe)
                              __field(u64, src)
                              __field(u32, count)
+                            __field(bool, direct)
                              ),

             TP_fast_assign(
                            __entry->pe = pe;
                            __entry->src = src;
                            __entry->count = count;
+                          __entry->direct = direct;
                            ),
-           TP_printk("pe=%010Lx, src=%010Lx, count=%u",
-                     __entry->pe, __entry->src, __entry->count)
+           TP_printk("pe=%010Lx, src=%010Lx, count=%u, direct=%d",
+                     __entry->pe, __entry->src, __entry->count,
+                     __entry->direct)
 );

 TRACE_EVENT(amdgpu_vm_flush,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
index a2daeadd770f..73fec7a0ced5 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_cpu.c
@@ -89,7 +89,7 @@ static int amdgpu_vm_cpu_update(struct amdgpu_vm_update_params *p,

         pe += (unsigned long)amdgpu_bo_kptr(bo);

-       trace_amdgpu_vm_set_ptes(pe, addr, count, incr, flags);
+       trace_amdgpu_vm_set_ptes(pe, addr, count, incr, flags, p->direct);

         for (i = 0; i < count; i++) {
                 value = p->pages_addr ?
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
index 38c966cedc26..e8db1467a71d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c
@@ -143,7 +143,7 @@ static void amdgpu_vm_sdma_copy_ptes(struct amdgpu_vm_update_params *p,
         src += p->num_dw_left * 4;

         pe += amdgpu_bo_gpu_offset(bo);
-       trace_amdgpu_vm_copy_ptes(pe, src, count);
+       trace_amdgpu_vm_copy_ptes(pe, src, count, p->direct);

         amdgpu_vm_copy_pte(p->adev, ib, pe, src, count);
 }
@@ -170,7 +170,7 @@ static void amdgpu_vm_sdma_set_ptes(struct amdgpu_vm_update_params *p,
         struct amdgpu_ib *ib = p->job->ibs;

         pe += amdgpu_bo_gpu_offset(bo);
-       trace_amdgpu_vm_set_ptes(pe, addr, count, incr, flags);
+       trace_amdgpu_vm_set_ptes(pe, addr, count, incr, flags, p->direct);
         if (count < 3) {
                 amdgpu_vm_write_pte(p->adev, ib, pe, addr | flags,
                                     count, incr);
--
2.17.1

_______________________________________________
amd-gfx mailing list
amd-gfx at lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20190913/d679e70b/attachment.html>


More information about the amd-gfx mailing list