Message ID | 20210803222943.27686-22-matthew.brost@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Parallel submission aka multi-bb execbuf | expand |
On Tue, Aug 03, 2021 at 03:29:18PM -0700, Matthew Brost wrote: > Since child contexts do not own the guc_ids or GuC context registration, > child contexts can simply be freed on destroy. Add > guc_child_context_destroy context operation to do this. > > Signed-off-by: Matthew Brost <matthew.brost@intel.com> > --- > drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > index 2d8296bcc583..850edeff9230 100644 > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > @@ -2828,6 +2828,13 @@ static void destroy_worker_func(struct work_struct *w) > intel_gt_pm_unpark_work_add(gt, destroy_worker); > } > > +/* Future patches will use this function */ > +__maybe_unused Pure bikeshed, but for something this small just squash it in with the first user. This kinda does nothing alone. -Daniel > +static void guc_child_context_destroy(struct kref *kref) > +{ > + __guc_context_destroy(container_of(kref, struct intel_context, ref)); > +} > + > static void guc_context_destroy(struct kref *kref) > { > struct intel_context *ce = container_of(kref, typeof(*ce), ref); > -- > 2.28.0 >
On Mon, Aug 09, 2021 at 05:36:12PM +0200, Daniel Vetter wrote: > On Tue, Aug 03, 2021 at 03:29:18PM -0700, Matthew Brost wrote: > > Since child contexts do not own the guc_ids or GuC context registration, > > child contexts can simply be freed on destroy. Add > > guc_child_context_destroy context operation to do this. > > > > Signed-off-by: Matthew Brost <matthew.brost@intel.com> > > --- > > drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > > index 2d8296bcc583..850edeff9230 100644 > > --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > > +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c > > @@ -2828,6 +2828,13 @@ static void destroy_worker_func(struct work_struct *w) > > intel_gt_pm_unpark_work_add(gt, destroy_worker); > > } > > > > +/* Future patches will use this function */ > > +__maybe_unused > > Pure bikeshed, but for something this small just squash it in with the > first user. This kinda does nothing alone. > -Daniel > Sure. Matt > > +static void guc_child_context_destroy(struct kref *kref) > > +{ > > + __guc_context_destroy(container_of(kref, struct intel_context, ref)); > > +} > > + > > static void guc_context_destroy(struct kref *kref) > > { > > struct intel_context *ce = container_of(kref, typeof(*ce), ref); > > -- > > 2.28.0 > > > > -- > Daniel Vetter > Software Engineer, Intel Corporation > http://blog.ffwll.ch
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c index 2d8296bcc583..850edeff9230 100644 --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@ -2828,6 +2828,13 @@ static void destroy_worker_func(struct work_struct *w) intel_gt_pm_unpark_work_add(gt, destroy_worker); } +/* Future patches will use this function */ +__maybe_unused +static void guc_child_context_destroy(struct kref *kref) +{ + __guc_context_destroy(container_of(kref, struct intel_context, ref)); +} + static void guc_context_destroy(struct kref *kref) { struct intel_context *ce = container_of(kref, typeof(*ce), ref);
Since child contexts do not own the guc_ids or GuC context registration, child contexts can simply be freed on destroy. Add guc_child_context_destroy context operation to do this. Signed-off-by: Matthew Brost <matthew.brost@intel.com> --- drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 7 +++++++ 1 file changed, 7 insertions(+)