[opensolaris-summit] driver limits [was Re: My comments (very subjective) on proposed Summit topics]
Randy Fishel
randy.fishel at sun.com
Wed Sep 26 11:21:41 PDT 2007
On Wed, 26 Sep 2007, Garrett D'Amore wrote:
> I believe that sticking to the DDI, while not a hard requirement for
> drivers in ON, is a worthwhile cause even for the drivers in ON.
I would argue that it must be a hard requirement, and for the
reasons you state below.
>
> 1) It reduces the pain and suffering when non-DDI interfaces change
> 2) By sticking to documented APIs (or APIs you expect to be documented)
> you're unlikely to be bitten later by changes in undocumented behavior.
> 3) By using the DDI, you know that you're using the same APIs that we
> recommend to external developers. That means you help to uncover any
> limitations in the DDI.
>
> I think if the drivers in ON "had" to use the DDI or go thru the process
> of getting a waiver/contract, then its likely the DDI would be a lot
> richer than it is today. (For one, we'd probably have a public API for
> nexus drivers!)
>
> Note that for APIs like GLDv3, kEF, etc. I think use is appropriate...
> largely because we are using those APIs as we expect an external
> consumer would, and we're in the process of trying to make them public.
> This is quite different than drivers that start up their own kernel
> threads, etc.
>
> -- Garrett
We do make the requirement of drivers to specify all the interfaces
they expect to import and export. We don't make them list the
DDI/DKI, as that is a set of implied interfaces. They must, however,
specify if they intend to use GLDvX, kEF, and even FMA. If a driver
is using any other interface, it should have listed it, and would be
in violation of its ARC case if it didn't (IMHO, they should even list
consolidation private interfaces).
The problem, with this "requirement", is that we have no way to
validate or enforce that only the ARC'd API's have been used. We
leave it to the developer (in theory, checked by the RTI advocate) to
appropriately use the API's. But if you know of a driver that uses a
non-public API, and it doesn't have an ARC case stating this use (so
all the GLDv3 drivers should be OK), then you can file a bug on the
driver.
Just maybe one of the things we need to think about is some set of
driver validation tools.
---- Randy
More information about the opensolaris-summit
mailing list