On Thu, Sep 5, 2024 at 2:17 PM Ian Forbes <ian.forbes@xxxxxxxxxxxx> wrote: > > Adds the necessary files to create tracepoints for the vmwgfx driver. > > Adds a single tracepoint for command buffer completion. This tracepoint > can be used to time command buffer execution time and to decode command > buffer errors. The submission time is also now recorded when the command > buffer is submitted to hardware. > > Signed-off-by: Ian Forbes <ian.forbes@xxxxxxxxxxxx> > --- > drivers/gpu/drm/vmwgfx/Makefile | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c | 9 +++- > drivers/gpu/drm/vmwgfx/vmwgfx_trace.c | 32 +++++++++++++ > drivers/gpu/drm/vmwgfx/vmwgfx_trace.h | 62 ++++++++++++++++++++++++++ > 4 files changed, 102 insertions(+), 3 deletions(-) > create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_trace.c > create mode 100644 drivers/gpu/drm/vmwgfx/vmwgfx_trace.h > > diff --git a/drivers/gpu/drm/vmwgfx/Makefile b/drivers/gpu/drm/vmwgfx/Makefile > index 46a4ab688a7f..482c1935bde6 100644 > --- a/drivers/gpu/drm/vmwgfx/Makefile > +++ b/drivers/gpu/drm/vmwgfx/Makefile > @@ -10,6 +10,6 @@ vmwgfx-y := vmwgfx_execbuf.o vmwgfx_gmr.o vmwgfx_kms.o vmwgfx_drv.o \ > vmwgfx_simple_resource.o vmwgfx_va.o vmwgfx_blit.o \ > vmwgfx_validation.o vmwgfx_page_dirty.o vmwgfx_streamoutput.o \ > vmwgfx_devcaps.o ttm_object.o vmwgfx_system_manager.o \ > - vmwgfx_gem.o vmwgfx_vkms.o > + vmwgfx_gem.o vmwgfx_vkms.o vmwgfx_trace.o > > obj-$(CONFIG_DRM_VMWGFX) := vmwgfx.o > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > index 94e8982f5616..1ac7f382cdb1 100644 > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c > @@ -27,6 +27,7 @@ > > #include "vmwgfx_bo.h" > #include "vmwgfx_drv.h" > +#include "vmwgfx_trace.h" > > #include <drm/ttm/ttm_bo.h> > > @@ -141,6 +142,7 @@ struct vmw_cmdbuf_man { > * @man: The command buffer manager. > * @cb_header: Device command buffer header, allocated from a DMA pool. > * @cb_context: The device command buffer context. > + * @inline_space: Whether inline command buffer space is used. > * @list: List head for attaching to the manager lists. > * @node: The range manager node. > * @handle: The DMA address of @cb_header. Handed to the device on command > @@ -148,19 +150,20 @@ struct vmw_cmdbuf_man { > * @cmd: Pointer to the command buffer space of this buffer. > * @size: Size of the command buffer space of this buffer. > * @reserved: Reserved space of this buffer. > - * @inline_space: Whether inline command buffer space is used. > + * @submit_time: When the CB was submitted to hardware in jiffies. In general it looks good but what's the reason for the submit_time? z