On Thu, May 22, 2014 at 02:13:37PM +0100, oscar.mateo@xxxxxxxxx wrote: > From: Oscar Mateo <oscar.mateo@xxxxxxxxx> > > Up until now, contexts had one (and only one) backing object that was > used by the hardware to save/restore render ring contexts (via the > MI_SET_CONTEXT command). Other rings did not have or need this, so > our i915_hw_context struct had a 1:1 relationship with a a real HW > context. > > With Logical Ring Contexts and Execlists, this is not possible anymore: > all rings need a backing object, and it cannot be reused. To prepare > for that, rename our contexts to the more generic term intel_context. > > No functional changes. > > Signed-off-by: Oscar Mateo <oscar.mateo@xxxxxxxxx> Aside: Thus far our naming scheme has been to prefix stuff with i915_ when it's core driver or gem, and with intel_ if it's modeset stuff. The lines are getting a bit blurry, but I guess we can make an exception for low-level CS stuff like rings, contexts and such ;-) -Daniel > --- > drivers/gpu/drm/i915/i915_debugfs.c | 6 ++--- > drivers/gpu/drm/i915/i915_drv.h | 16 ++++++------- > drivers/gpu/drm/i915/i915_gem.c | 4 ++-- > drivers/gpu/drm/i915/i915_gem_context.c | 38 +++++++++++++++--------------- > drivers/gpu/drm/i915/i915_gem_execbuffer.c | 6 ++--- > drivers/gpu/drm/i915/i915_gem_gtt.h | 2 +- > drivers/gpu/drm/i915/i915_sysfs.c | 2 +- > drivers/gpu/drm/i915/intel_ringbuffer.h | 4 ++-- > drivers/gpu/drm/i915/intel_uncore.c | 2 +- > 9 files changed, 40 insertions(+), 40 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c > index 833fdd2..4f0f697 100644 > --- a/drivers/gpu/drm/i915/i915_debugfs.c > +++ b/drivers/gpu/drm/i915/i915_debugfs.c > @@ -172,7 +172,7 @@ describe_obj(struct seq_file *m, struct drm_i915_gem_object *obj) > seq_printf(m, " (%s)", obj->ring->name); > } > > -static void describe_ctx(struct seq_file *m, struct i915_hw_context *ctx) > +static void describe_ctx(struct seq_file *m, struct intel_context *ctx) > { > seq_putc(m, ctx->is_initialized ? 'I' : 'i'); > seq_putc(m, ctx->remap_slice ? 'R' : 'r'); > @@ -1718,7 +1718,7 @@ static int i915_context_status(struct seq_file *m, void *unused) > struct drm_device *dev = node->minor->dev; > struct drm_i915_private *dev_priv = dev->dev_private; > struct intel_engine_cs *ring; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int ret, i; > > ret = mutex_lock_interruptible(&dev->mode_config.mutex); > @@ -1854,7 +1854,7 @@ static int i915_swizzle_info(struct seq_file *m, void *data) > > static int per_file_ctx(int id, void *ptr, void *data) > { > - struct i915_hw_context *ctx = ptr; > + struct intel_context *ctx = ptr; > struct seq_file *m = data; > struct i915_hw_ppgtt *ppgtt = ctx_to_ppgtt(ctx); > > diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h > index 2199a73..b9ab950 100644 > --- a/drivers/gpu/drm/i915/i915_drv.h > +++ b/drivers/gpu/drm/i915/i915_drv.h > @@ -587,7 +587,7 @@ struct i915_ctx_hang_stats { > > /* This must match up with the value previously used for execbuf2.rsvd1. */ > #define DEFAULT_CONTEXT_ID 0 > -struct i915_hw_context { > +struct intel_context { > struct kref ref; > int id; > bool is_initialized; > @@ -1738,7 +1738,7 @@ struct drm_i915_gem_request { > u32 tail; > > /** Context related to this request */ > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > > /** Batch buffer related to this request if any */ > struct drm_i915_gem_object *batch_obj; > @@ -1765,7 +1765,7 @@ struct drm_i915_file_private { > } mm; > struct idr context_idr; > > - struct i915_hw_context *private_default_ctx; > + struct intel_context *private_default_ctx; > atomic_t rps_wait_boost; > struct intel_engine_cs *bsd_ring; > }; > @@ -2383,21 +2383,21 @@ int i915_gem_context_open(struct drm_device *dev, struct drm_file *file); > int i915_gem_context_enable(struct drm_i915_private *dev_priv); > void i915_gem_context_close(struct drm_device *dev, struct drm_file *file); > int i915_switch_context(struct intel_engine_cs *ring, > - struct i915_hw_context *to); > -struct i915_hw_context * > + struct intel_context *to); > +struct intel_context * > i915_gem_context_get(struct drm_i915_file_private *file_priv, u32 id); > void i915_gem_context_free(struct kref *ctx_ref); > -static inline void i915_gem_context_reference(struct i915_hw_context *ctx) > +static inline void i915_gem_context_reference(struct intel_context *ctx) > { > kref_get(&ctx->ref); > } > > -static inline void i915_gem_context_unreference(struct i915_hw_context *ctx) > +static inline void i915_gem_context_unreference(struct intel_context *ctx) > { > kref_put(&ctx->ref, i915_gem_context_free); > } > > -static inline bool i915_gem_context_is_default(const struct i915_hw_context *c) > +static inline bool i915_gem_context_is_default(const struct intel_context *c) > { > return c->id == DEFAULT_CONTEXT_ID; > } > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 677e950..891fb4e 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -2422,7 +2422,7 @@ i915_gem_request_remove_from_client(struct drm_i915_gem_request *request) > } > > static bool i915_context_is_banned(struct drm_i915_private *dev_priv, > - const struct i915_hw_context *ctx) > + const struct intel_context *ctx) > { > unsigned long elapsed; > > @@ -2446,7 +2446,7 @@ static bool i915_context_is_banned(struct drm_i915_private *dev_priv, > } > > static void i915_set_reset_status(struct drm_i915_private *dev_priv, > - struct i915_hw_context *ctx, > + struct intel_context *ctx, > const bool guilty) > { > struct i915_ctx_hang_stats *hs; > diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c > index 8e57e1d..2100f6e 100644 > --- a/drivers/gpu/drm/i915/i915_gem_context.c > +++ b/drivers/gpu/drm/i915/i915_gem_context.c > @@ -178,7 +178,7 @@ static int get_context_size(struct drm_device *dev) > > void i915_gem_context_free(struct kref *ctx_ref) > { > - struct i915_hw_context *ctx = container_of(ctx_ref, > + struct intel_context *ctx = container_of(ctx_ref, > typeof(*ctx), ref); > struct i915_hw_ppgtt *ppgtt = NULL; > > @@ -199,7 +199,7 @@ void i915_gem_context_free(struct kref *ctx_ref) > } > > static struct i915_hw_ppgtt * > -create_vm_for_ctx(struct drm_device *dev, struct i915_hw_context *ctx) > +create_vm_for_ctx(struct drm_device *dev, struct intel_context *ctx) > { > struct i915_hw_ppgtt *ppgtt; > int ret; > @@ -218,12 +218,12 @@ create_vm_for_ctx(struct drm_device *dev, struct i915_hw_context *ctx) > return ppgtt; > } > > -static struct i915_hw_context * > +static struct intel_context * > __create_hw_context(struct drm_device *dev, > struct drm_i915_file_private *file_priv) > { > struct drm_i915_private *dev_priv = dev->dev_private; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int ret; > > ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); > @@ -285,14 +285,14 @@ err_out: > * context state of the GPU for applications that don't utilize HW contexts, as > * well as an idle case. > */ > -static struct i915_hw_context * > +static struct intel_context * > i915_gem_create_context(struct drm_device *dev, > struct drm_i915_file_private *file_priv, > bool create_vm) > { > const bool is_global_default_ctx = file_priv == NULL; > struct drm_i915_private *dev_priv = dev->dev_private; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int ret = 0; > > BUG_ON(!mutex_is_locked(&dev->struct_mutex)); > @@ -365,7 +365,7 @@ void i915_gem_context_reset(struct drm_device *dev) > * the next switch */ > for (i = 0; i < I915_NUM_RINGS; i++) { > struct intel_engine_cs *ring = &dev_priv->ring[i]; > - struct i915_hw_context *dctx = ring->default_context; > + struct intel_context *dctx = ring->default_context; > > /* Do a fake switch to the default context */ > if (ring->last_context == dctx) > @@ -391,7 +391,7 @@ void i915_gem_context_reset(struct drm_device *dev) > int i915_gem_context_init(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int i; > > /* Init should only be called once per module load. Eventually the > @@ -426,7 +426,7 @@ int i915_gem_context_init(struct drm_device *dev) > void i915_gem_context_fini(struct drm_device *dev) > { > struct drm_i915_private *dev_priv = dev->dev_private; > - struct i915_hw_context *dctx = dev_priv->ring[RCS].default_context; > + struct intel_context *dctx = dev_priv->ring[RCS].default_context; > int i; > > if (dctx->obj) { > @@ -495,7 +495,7 @@ int i915_gem_context_enable(struct drm_i915_private *dev_priv) > > static int context_idr_cleanup(int id, void *p, void *data) > { > - struct i915_hw_context *ctx = p; > + struct intel_context *ctx = p; > > /* Ignore the default context because close will handle it */ > if (i915_gem_context_is_default(ctx)) > @@ -534,12 +534,12 @@ void i915_gem_context_close(struct drm_device *dev, struct drm_file *file) > i915_gem_context_unreference(file_priv->private_default_ctx); > } > > -struct i915_hw_context * > +struct intel_context * > i915_gem_context_get(struct drm_i915_file_private *file_priv, u32 id) > { > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > > - ctx = (struct i915_hw_context *)idr_find(&file_priv->context_idr, id); > + ctx = (struct intel_context *)idr_find(&file_priv->context_idr, id); > if (!ctx) > return ERR_PTR(-ENOENT); > > @@ -548,7 +548,7 @@ i915_gem_context_get(struct drm_i915_file_private *file_priv, u32 id) > > static inline int > mi_set_context(struct intel_engine_cs *ring, > - struct i915_hw_context *new_context, > + struct intel_context *new_context, > u32 hw_flags) > { > int ret; > @@ -598,10 +598,10 @@ mi_set_context(struct intel_engine_cs *ring, > } > > static int do_switch(struct intel_engine_cs *ring, > - struct i915_hw_context *to) > + struct intel_context *to) > { > struct drm_i915_private *dev_priv = ring->dev->dev_private; > - struct i915_hw_context *from = ring->last_context; > + struct intel_context *from = ring->last_context; > struct i915_hw_ppgtt *ppgtt = ctx_to_ppgtt(to); > u32 hw_flags = 0; > int ret, i; > @@ -734,7 +734,7 @@ unpin_out: > * object while letting the normal object tracking destroy the backing BO. > */ > int i915_switch_context(struct intel_engine_cs *ring, > - struct i915_hw_context *to) > + struct intel_context *to) > { > struct drm_i915_private *dev_priv = ring->dev->dev_private; > > @@ -763,7 +763,7 @@ int i915_gem_context_create_ioctl(struct drm_device *dev, void *data, > { > struct drm_i915_gem_context_create *args = data; > struct drm_i915_file_private *file_priv = file->driver_priv; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int ret; > > if (!hw_context_enabled(dev)) > @@ -789,7 +789,7 @@ int i915_gem_context_destroy_ioctl(struct drm_device *dev, void *data, > { > struct drm_i915_gem_context_destroy *args = data; > struct drm_i915_file_private *file_priv = file->driver_priv; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int ret; > > if (args->ctx_id == DEFAULT_CONTEXT_ID) > diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > index 7829b90..008e208 100644 > --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c > +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c > @@ -912,11 +912,11 @@ validate_exec_list(struct drm_i915_gem_exec_object2 *exec, > return 0; > } > > -static struct i915_hw_context * > +static struct intel_context * > i915_gem_validate_context(struct drm_device *dev, struct drm_file *file, > struct intel_engine_cs *ring, const u32 ctx_id) > { > - struct i915_hw_context *ctx = NULL; > + struct intel_context *ctx = NULL; > struct i915_ctx_hang_stats *hs; > > if (ring->id != RCS && ctx_id != DEFAULT_CONTEXT_ID) > @@ -1051,7 +1051,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, > struct drm_i915_gem_object *batch_obj; > struct drm_clip_rect *cliprects = NULL; > struct intel_engine_cs *ring; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > struct i915_address_space *vm; > const u32 ctx_id = i915_execbuffer2_get_context_id(*args); > u64 exec_start = args->batch_start_offset, exec_len; > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h > index d187c02..1b96a06 100644 > --- a/drivers/gpu/drm/i915/i915_gem_gtt.h > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h > @@ -257,7 +257,7 @@ struct i915_hw_ppgtt { > dma_addr_t *gen8_pt_dma_addr[4]; > }; > > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > > int (*enable)(struct i915_hw_ppgtt *ppgtt); > int (*switch_mm)(struct i915_hw_ppgtt *ppgtt, > diff --git a/drivers/gpu/drm/i915/i915_sysfs.c b/drivers/gpu/drm/i915/i915_sysfs.c > index 3620997..86ce39a 100644 > --- a/drivers/gpu/drm/i915/i915_sysfs.c > +++ b/drivers/gpu/drm/i915/i915_sysfs.c > @@ -186,7 +186,7 @@ i915_l3_write(struct file *filp, struct kobject *kobj, > struct drm_minor *dminor = dev_to_drm_minor(dev); > struct drm_device *drm_dev = dminor->dev; > struct drm_i915_private *dev_priv = drm_dev->dev_private; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > u32 *temp = NULL; /* Just here to make handling failures easy */ > int slice = (int)(uintptr_t)attr->private; > int ret; > diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h b/drivers/gpu/drm/i915/intel_ringbuffer.h > index 5c509e7..910c83c 100644 > --- a/drivers/gpu/drm/i915/intel_ringbuffer.h > +++ b/drivers/gpu/drm/i915/intel_ringbuffer.h > @@ -174,8 +174,8 @@ struct intel_engine_cs { > > wait_queue_head_t irq_queue; > > - struct i915_hw_context *default_context; > - struct i915_hw_context *last_context; > + struct intel_context *default_context; > + struct intel_context *last_context; > > struct intel_ring_hangcheck hangcheck; > > diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c > index cd0d6e2..12e3068 100644 > --- a/drivers/gpu/drm/i915/intel_uncore.c > +++ b/drivers/gpu/drm/i915/intel_uncore.c > @@ -923,7 +923,7 @@ int i915_get_reset_stats_ioctl(struct drm_device *dev, > struct drm_i915_private *dev_priv = dev->dev_private; > struct drm_i915_reset_stats *args = data; > struct i915_ctx_hang_stats *hs; > - struct i915_hw_context *ctx; > + struct intel_context *ctx; > int ret; > > if (args->flags || args->pad) > -- > 1.9.0 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx