Message ID | 20230914172453.9707-1-robdclark@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RFC] drm/msm/rd: Check PT_PTRACED for cmdstream dumping | expand |
On 14/09/2023 20:24, Rob Clark wrote: > From: Rob Clark <robdclark@chromium.org> > > So, when you want to get a cmdstream trace of some deqp or piglit test, > but you happen to be running it on the same laptop with full desktop > env, the current dump-everything firehose of `cat $debugfs/dri/n/rd` is > quite a bit too much. Ptrace seemed kind of a natural way to control > it, ie. either run what you want to trace under gdb or hack in a > ptrace(PTRACE_TRACEME) call. > > Signed-off-by: Rob Clark <robdclark@chromium.org> > --- > drivers/gpu/drm/msm/msm_gem_submit.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> I think this is a good idea, to be able to separate process being debugged and all other tasks. > > diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c > index a908373cf34b..a105ca1f2102 100644 > --- a/drivers/gpu/drm/msm/msm_gem_submit.c > +++ b/drivers/gpu/drm/msm/msm_gem_submit.c > @@ -979,7 +979,8 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, > /* The scheduler owns a ref now: */ > msm_gem_submit_get(submit); > > - msm_rd_dump_submit(priv->rd, submit, NULL); > + if (current->ptrace & PT_PTRACED) > + msm_rd_dump_submit(priv->rd, submit, NULL); > > pm_runtime_get_sync(&gpu->pdev->dev); >
diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index a908373cf34b..a105ca1f2102 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -979,7 +979,8 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, /* The scheduler owns a ref now: */ msm_gem_submit_get(submit); - msm_rd_dump_submit(priv->rd, submit, NULL); + if (current->ptrace & PT_PTRACED) + msm_rd_dump_submit(priv->rd, submit, NULL); pm_runtime_get_sync(&gpu->pdev->dev);