[ofw] RE: Windows Server 2008 (x64) mthca install via DPINST.EXE

Tzachi Dar tzachid at mellanox.co.il
Fri Dec 14 05:53:54 PST 2007


Two more questions:

1) Would you consider a co-installer that calls "CreateService" and than
starts that service an "Inf only" installation? If so than we can create
the IBBUS as a service only and still have it installed only by the INF.

2) Where can I find the documentation and an example of a filter driver?

Thanks
Tzachi 

> -----Original Message-----
> From: Fab Tillier [mailto:ftillier at windows.microsoft.com] 
> Sent: Friday, December 14, 2007 3:14 AM
> To: Tzachi Dar; Jan Bottorff; Reuven Amitai; Smith, Stan
> Cc: ofw at lists.openfabrics.org
> Subject: RE: [ofw] RE: Windows Server 2008 (x64) mthca 
> install via DPINST.EXE
> 
> Hi Tzachi,
> 
> Some comments inline.
> 
> Cheers,
> -Fab
> 
> -----Original Message-----
> > From: Tzachi Dar [mailto:tzachid at mellanox.co.il]
> > Sent: Thursday, December 13, 2007 3:34 PM
> > To: Jan Bottorff; Reuven Amitai; Fab Tillier; Smith, Stan
> > Cc: ofw at lists.openfabrics.org
> > Subject: RE: [ofw] RE: Windows Server 2008 (x64) mthca install via 
> > DPINST.EXE
> >
> > Trying to combine the two threads back to one:
> >
> > I guess that we all agree that the co installer makes 
> problems on LH.
> > The real question is how to solve them.
> >
> > I must say that I'm not sure that I understand why inf 
> installation is 
> > that important?
> 
> INF-based installation is what you use when you use the 
> device manager to install a driver, and is the fundamental 
> installation mechanism for drivers.
> 
> To quote the DDK: "The fundamental goal for device/driver 
> installation on Windows operating systems is to make the 
> process as simple as possible for the user. Your installation 
> procedures should work seamlessly with the operating system's 
> setup components. Ideally, device installation should not 
> require any user prompts, except for the system's request to 
> insert the distribution medium."
> 
> Requiring an installer application is contrary to this 
> fundamental goal, not to mention it makes driver injection 
> into a system image problematic, making deployment in 
> clusters painful - the last thing you want is to force 
> someone to log into 1000+ compute nodes to run some 
> executable so that their IB gear starts to work.
> 
> > From reading Jan mails, than I see that even today he 
> installs things 
> > manually (to a local disk), and than creates an image. Can 
> you please 
> > add more details why it is that important?
> >
> > In any case, there are 3 options that I see that will allow INF
> > installation:
> > 1) Using a filter driver with a service (auto start). I'm not sure 
> > that this is a documented way.
> 
> I don't think there's anything wrong with creating a device 
> object that isn't part of a PnP-enumerated device (say from 
> DriverEntry), and handling multiple different device object 
> types within a single driver.
> 
> > 2) Installing the IBBUS driver as a service only, probably 
> much more 
> > documented. This server will start on demand and can probably start 
> > before any user mode code.
> 
> Installing as a filter driver vastly simplifies PnP handling 
> for device relations.  The current model, where the HCA 
> driver ask the IBAL driver for what its child devices are, 
> could be completely handled in the filter driver and simplify 
> the HCA driver.  The filter driver would see all PnP requests 
> targeted at the HCA and handle all the relationship 
> management independent of the HCA.  The filter driver could 
> also handle these requests asynchronously, say to delay 
> completion until scanning the fabric for IOCs is complete, 
> which I believe will help greatly with boot-over-IB support 
> since child IOCs will get reported in a deterministic manner.
> 
> > 3) Have the functionality of the IB-BUS exposed by 
> mthca.sys. By this 
> > approach there is only one driver (mthca). MTHCA than loads the 
> > IBBUS.sys driver dynamically and implements it's functionality.
> 
> This isn't that much different from 1, conceptually - a 
> single driver serves as both a functional driver (how to 
> interact with the hardware) and a bus driver/proxy.  The 
> problem however is if you have multiple HCAs - which HCA does 
> an application create file handles on for non-HCA specific 
> operations (like listening for incoming connections on all 
> CAs)?  You probably should have a device object that is not 
> part of a PnP-enumerated device node to handle non-device 
> specific requests.
> 
> Furthermore, if you integrate the bus driver into MTHCA, how 
> do you support different HCA devices?  Would other IHVs (e.g. 
> QLogic) add code to the MTHCA driver to support their device? 
>  Integration removes the flexibility in the stack to support 
> multiple HW vendors.
> 
> >
> > All comments are welcomed.
> >
> > Thanks
> > Tzachi
> 



More information about the ofw mailing list