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: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Родитель
c647dcfde6
Коммит
860024e5c9
|
@ -28,6 +28,7 @@
|
|||
#include <drm/radeon_drm.h>
|
||||
#include "radeon_reg.h"
|
||||
#include "radeon.h"
|
||||
#include "radeon_trace.h"
|
||||
|
||||
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)
|
|||
return r;
|
||||
}
|
||||
|
||||
trace_radeon_cs(&parser);
|
||||
|
||||
r = radeon_cs_ib_chunk(rdev, &parser);
|
||||
if (r) {
|
||||
goto out;
|
||||
|
|
|
@ -27,6 +27,26 @@ TRACE_EVENT(radeon_bo_create,
|
|||
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,
|
||||
|
||||
TP_PROTO(struct drm_device *dev, u32 seqno),
|
||||
|
|
Загрузка…
Ссылка в новой задаче