[ofw] RE: Ibbus as a filter driver for mthca.
Smith, Stan
stan.smith at intel.com
Tue Aug 5 17:22:44 PDT 2008
Fab Tillier wrote:
>>> 2. Attached DevTree images after clean install on a machine with one
>>> HCA (mt25204) which has one port.
>>> From the images it seems that ibbus reports on the same port
>>> twice and mthca also report for this port. (When tested on
>>> machine with 2 HCA with 2 port each, 8 child objects were
>>> reported by ibbus and 4 by mlx4_hca) I think that mthca report
>>> is happen since get_relation function is still in p_ci_interface
>>> and mthca replies to PnP messages using this function (which
>>> goes to ibbus
>>> get_relation). I don't have a clue about ibbus reports.
>>
>> Interesting, there does seem to be duplication in reporting
>> relations. As I remember, mthca uses the
>> p_ci_interface->get_relations call only when mthca receives a
>> QUERY_REMOVE_DEVICE; removal relations reporting. Since the bus
>> driver is correctly reporting bus relations and there exists an
>> implicit relation between the bus driver and mthca driver (same
>> device stack, mthca cannot unload until it's instance of ibbus
>> unloads). Possibly, the mthca driver should not be reporting
>> relations like it does; one step closer to simple? Do you know
>> where in mthca relations are reported?
>
> This could be the problem with the reboot. An easy work around
> without changing mthca is to have the get_relations function return
> without updating the child device list (basically turn it into a
> noop).
>
> -Fab
In the ibbus:fdo_query_bus_relations() call the DEVICE_QUERY_RELEATIONS irp needs to be completed and not passed down to the HCA driver. When the IRP is passed down to mthca, mthca uses the CI->get_relations upcall to ibbus which then reports the same relations as fdo_query_bus_relations reported earlier, hence the duplication of relations.
HCA drivers should not be asked about bus relations.
More information about the ofw
mailing list