Re: [RFC][PATCH 2/2] PM: Make system-wide PM and runtime PM handle subsystems consistently

From: Rafael J. Wysocki
Date: Thu Feb 17 2011 - 17:16:44 EST


On Thursday, February 17, 2011, Greg KH wrote:
> On Thu, Feb 17, 2011 at 09:55:46AM -0500, Alan Stern wrote:
> > On Thu, 17 Feb 2011, Rafael J. Wysocki wrote:
> >
> > > > > Apart from this I think the order of checks introduced by the $subject patch
> > > > > should be:
> > > > > (1) If dev->class != NULL and dev->class->pm != NULL, use dev->class,
> > > > > or otherwise
> > > > > (2) if dev->type != NULL and dev->type->pm != NULL, use dev->type,
> > > > > or otherwise
> > > > > (3) use dev->bus (if present).
> > > > > as that would allow classes and device types to override bus type PM
> > > > > callbacks if they wish to.
> > > >
> > > > I haven't heard of any device types being present on more than one kind
> > > > of bus, so it makes sense for device types to override bus types.
> > >
> > > OK
> > >
> > > > But I'm not so sure about the priority we should give to classes. On the
> > > > other hand, if no classes define a dev_pm_ops then of course it doesn't
> > > > matter.
> > >
> > > The change will also affect classes that provide "legacy" suspend-resume
> > > (if there are any, which I'm totally unsure of).
> > >
> > > Anyway, I think we need to choose one ordering. :-)
> > >
> > > What about type / bus / class , then?
> >
> > I really don't know. Somebody who has more experience with device
> > class implementations should answer.
> >
> > Greg, any ideas?
> >
> > To recap: The issue is how to handle multiple PM callbacks. Since the
> > bus type, device type, and device class may all have their own
> > callbacks, Rafael has decided the best approach is to prioritize them
> > and invoke only the highest-priority callback. But what priority order
> > should we use?
>
> I think we should do it in the following order:
> device type
> device class
> device bus
>
> for the reasons that a device itself could override the default class
> and bus information if it "knows" it is special. After that, the class
> of the device holds a lot of information about what is going on with the
> logic involved (i.e. network stuff), and lastly, the bus knows some
> default hardware information.
>
> Sound reasonable?
>
> I think that follows the default we have today, right?

No, right now the class goes first during suspend and last during resume (and
of course they all can be called during system suspend/resume now).

That said I'm going to follow your suggestion. :-)

Thanks,
Rafael
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/