[ofw] RE: Ibbus as a filter driver for mthca.

Fab Tillier ftillier at windows.microsoft.com
Tue Aug 5 11:23:25 PDT 2008


>> I have few questions from what I saw:
>> 1. Disable/Enable require restart:
>>     Trying to disable/enable mthca device require a reboot in order
>> to complete the operation.
>
> Yes - mthca disable invokes a reboot request. Is this 'new' behavior in
> that the 'current' mthca driver upon right-click disable does not
> require a reboot?

Correct, right now disabling mthca does not require a reboot.  Requiring a reboot effectively requires a reboot after any driver update.  Probably a reference counting issue related to the device objects or something similar.

> I'm not sure if this can be stopped/corrected?

It should be able to be corrected.

> Fab, is a reboot required or is it possible to defeat the reboot by
> some .inf driver setting?

Reboot is not required normally - that's one of the goals of PnP.  So something is 'broken' currently.

> IPoIB enable/disable does not require a reboot.
>
>>     Uninstall the device and re-install it using the .inf require
>>     reboot as well. Did you have the same phenomenon ? (It happens even
>>     right after
>> clean install)
>
> I would expect a device uninstall to request a reboot.

No, it shouldn't.

> In the bigger picture, customers not so often enable/disable an HCA
> device. For you and I during development, we do; a minor although
> irritating problem.

They do whenever they update drivers.

>> 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



More information about the ofw mailing list