Driver Update Disk discussion
Peter Jeremy
PeterJeremy at optushome.com.au
Fri Feb 25 09:39:32 GMT 2005
On Thu, 2005-Feb-24 17:59:19 -0700, Scott Long wrote:
>- kernel option support. How do we support vendor modules in a kernel
>that might be compiled with PAE (rather common these days), SMP, MAC,
>etc. The loader and /boot infrastructure has no concept of this. It's
>highly important, though.
AFAIK, PAE is only relevant on iA32. I second the suggestion that PAE
be treated as a distinct architecture for these purposes.
INVARIANTS and WITNESS are the other options that impact ABI. These
are probably unnecessary on -RELEASE but it would be nice if people
could build a kernel with WITNESS and not have it panic if they loaded
a module that wasn't compiled with WITNESS (which I think it the
current behaviour).
>- kernel api/abi. We are trying to keep the kernel api/abi stable now,
...
>don't have the right hash. Should we follow with something similar, or
>should we have runtime checks that check symbol/structure signatures?
It would be wonderful if we could have a mechanism that did load-time
validation that the module was compatible with the kernel. Unfortunately,
I don't think there's any sane way to verify data structure compatability.
(Verifying function call APIs is reasonably easy). Run-time checking adds
overheads which may be significant for commonly used interfaces.
>Or should we say that we make no guarantees about a binary-only module
>working on anything but a -RELEASE kernel?
At the very least we need to support errata branches. The RE team has
expended a lot of effort to provide a mechanism to handle critical
problems found post-release. We don't want to negate this by telling
users that they have a choice of either using driver X or fixing hole Y.
Unfortunately, in the rare case where an errata fix affects a kernel
API/ABI, the change is probably critical to fixing the problem. This
would require the FreeBSD fix to be co-ordinated with the driver vendor.
I think that guaranteeing operation in -STABLE is probably impractical -
though API/ABI changes would need to be flagged to vendors so they could
test drivers for the next FreeBSD release.
--
Peter Jeremy
More information about the freebsd-hackers
mailing list