提交 860024e5 编写于 作者: C Christian König 提交者: Alex Deucher

drm/radeon: add command submission tracepoint

Neither complete nor perfect, but solves my problem at hand
and might be useful in the future.
Signed-off-by: NChristian König <christian.koenig@amd.com>
Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
上级 c647dcfd
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <drm/radeon_drm.h> #include <drm/radeon_drm.h>
#include "radeon_reg.h" #include "radeon_reg.h"
#include "radeon.h" #include "radeon.h"
#include "radeon_trace.h"
static int radeon_cs_parser_relocs(struct radeon_cs_parser *p) static int radeon_cs_parser_relocs(struct radeon_cs_parser *p)
{ {
...@@ -559,6 +560,8 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) ...@@ -559,6 +560,8 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
return r; return r;
} }
trace_radeon_cs(&parser);
r = radeon_cs_ib_chunk(rdev, &parser); r = radeon_cs_ib_chunk(rdev, &parser);
if (r) { if (r) {
goto out; goto out;
......
...@@ -27,6 +27,26 @@ TRACE_EVENT(radeon_bo_create, ...@@ -27,6 +27,26 @@ TRACE_EVENT(radeon_bo_create,
TP_printk("bo=%p, pages=%u", __entry->bo, __entry->pages) TP_printk("bo=%p, pages=%u", __entry->bo, __entry->pages)
); );
TRACE_EVENT(radeon_cs,
TP_PROTO(struct radeon_cs_parser *p),
TP_ARGS(p),
TP_STRUCT__entry(
__field(u32, ring)
__field(u32, dw)
__field(u32, fences)
),
TP_fast_assign(
__entry->ring = p->ring;
__entry->dw = p->chunks[p->chunk_ib_idx].length_dw;
__entry->fences = radeon_fence_count_emitted(
p->rdev, p->ring);
),
TP_printk("ring=%u, dw=%u, fences=%u",
__entry->ring, __entry->dw,
__entry->fences)
);
DECLARE_EVENT_CLASS(radeon_fence_request, DECLARE_EVENT_CLASS(radeon_fence_request,
TP_PROTO(struct drm_device *dev, u32 seqno), TP_PROTO(struct drm_device *dev, u32 seqno),
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册