Re: [PATCH 01/15] drm/i915: Add ctx getparam ioctl parameter to retrieve ctx unique id

Daniel Vetter
2016-07-27T10:19:06Z

On Wed, Jul 27, 2016 at 02:48:38PM +0530, Deepak wrote:
>
>
>
> On 06/02/2016 10:48 AM, sourab.gupta@intel.com wrote:
> > From: Sourab Gupta <sourab.gupta@intel.com>
> >
> > This patch adds a new ctx getparam ioctl parameter, which can be used to
> > retrieve ctx unique id by userspace.
> >
> > This can be used by userspace to map the i915 perf samples with their
> > particular ctx's, since those would be having ctx unique id's.
> > Otherwise the userspace has no way of maintaining this association,
> > since it has the knowledge of only per-drm file specific ctx handles.
> >
> > Signed-off-by: Sourab Gupta <sourab.gupta@intel.com>
> > ---
> > drivers/gpu/drm/i915/i915_gem_context.c | 3 +++
> > include/uapi/drm/i915_drm.h | 1 +
> > 2 files changed, 4 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> > index e974451..09f5178 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_context.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> > @@ -1001,6 +1001,9 @@ int i915_gem_context_getparam_ioctl(struct drm_device *dev, void *data,
> > else
> > args->value = to_i915(dev)->ggtt.base.total;
> > break;
> > + case I915_CONTEXT_PARAM_HW_ID:
> > + args->value = ctx->hw_id;
> > + break;
> > default:
> > ret = -EINVAL;
> > break;
> > diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
> > index 4a1bcfd8..0badc16 100644
> > --- a/include/uapi/drm/i915_drm.h
> > +++ b/include/uapi/drm/i915_drm.h
> > @@ -1171,6 +1171,7 @@ struct drm_i915_gem_context_param {
> > #define I915_CONTEXT_PARAM_BAN_PERIOD 0x1
> > #define I915_CONTEXT_PARAM_NO_ZEROMAP 0x2
> > #define I915_CONTEXT_PARAM_GTT_SIZE 0x3
> > +#define I915_CONTEXT_PARAM_HW_ID 0x4
> > __u64 value;
> > };
> Patch looks good to me
>
> Reviewed-by: Deepak S <deepak.s@linux.intel.com>

ctx->hw_id gets recycled without any involvement from userspace. How
exactly is this supposed to work?
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation