[ofw] RE: HCA Soft Reset mechanism
    Sean Hefty 
    sean.hefty at intel.com
       
    Mon Aug  4 11:07:42 PDT 2008
    
    
  
>Soft Reset here is HCA re-initialization without bus driver reloading.
>A reset can be initiated by clients (mlx4_eth, mlx4_hca) and/or driver
>(mlx4_bus).
>Driver issues reset upon card fatal error, which prevents the following
>work with the card.
>Clients may request the reset at any moment upon their will.
>From the perspective of a client, is the behavior any different than a
remove device followed by an add device?
>Clients have to register event callback after getting bus interface.
>
>When a reset event comes, the bus driver will:
>   - bar the following work with card, returning -EFAULT to all, but
>destroy_xx, commands;
>   - reset the card to stop incoming traffic (only in case of client-
>initiated reset);
>   - notify all registered clients about pending reset.
>Getting this notification clients have to:
>   - wait for all issued commands to end;
>   - reset its own clients, if any, and bar their work;
>   - release all the device resources, they were using till now;
>   - send "I'm reset-ready" notification to the bus driver;
How does this synchronize with a user unloading the driver or the entire
stack?
Also, this is a fairly difficult operation to pull off in an efficient
manner.
>The driver starts to perform device reset only after receiving the "I'm
>reset-ready" notifications from all the registered clients. It re-
>initializes the device and notifies all the clients.
>
>Having received this notification, clients have to:
>   - dereference the old bus interface;
>   - get the new interface from bus driver;
>   - register new event handler;
>   - resume/restart itself;
>   - wake up its own clients, if any;
Why do clients need to get new interfaces or re-register event handlers?
We should tie this sort of operation in with standard Windows PnP
operations.  It really sounds like out of band PnP add/remove device to
me.
- Sean
    
    
More information about the ofw
mailing list