[Intel-gfx] [PATCH v5] drm/i915/gt: make a gt sysfs group and move power management files

Andi Shyti andi.shyti at intel.com
Tue Feb 25 12:29:53 UTC 2020


> > > > > > +void intel_gt_sysfs_register(struct intel_gt *gt)
> > > > > > +{
> > > > > > +	struct kobject *parent = kobject_get(gt_get_parent_obj(gt));
> > > > > > +	int ret;
> > > > > > +
> > 
> > and if I need to call kobject_put at the end. If for some reason
> > the files have failed to be initialized, I would have an
> > unbalanced put and a warning would be printed.
> > 
> > I'll summarize in pseudo code:
> > 
> > intel_gt_sysfs_register()
> > {
> > 	kobject_init_and_add(sysfs_root...); /* which calls kobject_get() inside */
> > 	if (fails)
> > 		kobject_put(sysfs_root); /* reference goes to '0' */
> > }
> > 
> > intel_gt_sysfs_unregister()
> > {
> > 	option1: I don't call kobject_put(), I have an unbalanced
> >                   situation as you reviewed in patch 1.
> > 
> >          option2: I call kobject_put(), if it did fail during init
> >                   there is an unbalanced situation, which is
> >                   handled but an annoying WARN() is issued.
> > 
> > 	option3: I check if "state_initialized" which I suppose
> >                   has been properly initialised during declaration
> >                   (maybe too paranoic?) and call _put()
> >                   accordingly
> > }
> 
> Yes you are right, I confused the two parents again. :I

this little things are good for jambling the brain up :)

> Okay then, is the extra kobject_get/put on the parent
> (kobject_get(gt_get_parent_obj(gt) - this one) needed?

I do not see any strong reason for calling kobject_get, I do it
only because I am creating files in there and I don't want anyone
to free those without my permission. Otherwise, the creation and
the destruction of the son object would take care of the
refcount.

Will it ever happen that parent will be destroyed before I have
time to release the files? I don't think so, but I do it more for
the form than for the use. In the sense that "I have stuff in
there and I declare I have stuff in there and I declare when I
won't need them anymore".

Andi


More information about the Intel-gfx mailing list