Re: [RFD] Functional dependencies between devices

From: Tomeu Vizoso
Date: Fri Jan 08 2016 - 02:28:42 EST


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

Thanks,

Tomeu