Re: [RFD] Functional dependencies between devices

From: Greg Kroah-Hartman
Date: Fri Jan 08 2016 - 10:15:36 EST


On Fri, Jan 08, 2016 at 08:28:15AM +0100, Tomeu Vizoso wrote:
> On 7 January 2016 at 22:29, Greg Kroah-Hartman
> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> > On Thu, Jan 07, 2016 at 03:55:43PM +0100, Tomeu Vizoso wrote:
> >> On 30 October 2015 at 23:52, Greg Kroah-Hartman
> >> <gregkh@xxxxxxxxxxxxxxxxxxx> wrote:
> >> > On Tue, Oct 27, 2015 at 04:24:14PM +0100, Rafael J. Wysocki wrote:
> >> >> My idea is to represent a supplier-consumer dependency between devices (or
> >> >> more precisely between device+driver combos) as a "link" object containing
> >> >> pointers to the devices in question, a list node for each of them and some
> >> >> additional information related to the management of those objects, ie.
> >> >> something like:
> >> >>
> >> >> struct device_link {
> >> >> struct device *supplier;
> >> >> struct list_head supplier_node;
> >> >> struct device *consumer;
> >> >> struct list_head consumer_node;
> >> >> <flags, status etc>
> >> >> };
> >> >>
> >> >> In general, there will be two lists of those things per device, one list
> >> >> of links to consumers and one list of links to suppliers.
> >> >>
> >> >> In that picture, links will be created by calling, say:
> >> >>
> >> >> int device_add_link(struct device *me, struct device *my_supplier, unsigned int flags);
> >> >
> >> > At first glance, I like this, nice. Now to see how well it can be
> >> > implemented :)
> >>
> >> Hi Greg,
> >>
> >> what's your opinion on using this to order device probes so we don't
> >> try to probe a device that we know it has unfulfilled dependencies?
> >
> > Why would that matter, unless you can prove it's faster, I wouldn't
> > bother.
>
> I gave you the bootlog you asked in the post below, could you please
> comment there?
>
> https://lkml.kernel.org/g/562A280A.3040002@xxxxxxxxxxxxx

that made no sense at all...