Re: Driver Model 2 Proposal - Linux Kernel Performance v Usability

James Clark
2003-09-10T23:23:14Z

Has anyone ever done any work to quantify what the loss in performance might
be with a binary interface?

James

On Wednesday 10 Sep 2003 9:48 pm, Richard B. Johnson wrote:
> On Wed, 10 Sep 2003, Timothy Miller wrote:
> > I just have one quick question about all of this:
> >
> > People mention that driver interfaces don't change much in stable
> > releases, but if memory serves, symbol versioning information changes
> > with each minor release, requiring a recompile of modules.
> >
> > Would it be possible to have a driver module which can be dropped into,
> > say, 2.6.17 that can also be dropped into 2.6.18 as long as the
> > interface doesn't change?
>
> Short answer, YES. Anything that can be done is possible. The
> problem is that different kernel versions end up with different
> structure members, etc. So, you can't use code for 2.2.xxx in
> 2.4.xx because, amongst other things, the first element in
> 'struct file_operations' was added and the others moved up.
>
> Now, you can make a different module interface that maintains
> a compatibility level ABI. This has been discussed. Unfortunately,
> this adds code in the execution path. This extra code gets
> executed every time the module code is accessed. The result being
> that the module can't possibly operate as fast as it would if
> there were no such compatibility layer(s). It might be "good enough",
> but it is unlikely that the module contributors/maintainers would
> allow such an interface because the loss of performance is measurable
> and there has been no requirement to trade-off performance for
> anything (your and my convenience doesn't count, those are not
> technical issues).
>
>
> Cheers,
> Dick Johnson
> Penguin : Linux version 2.4.22 on an i686 machine (794.73 BogoMips).
> Note 96.31% of all statistics are fiction.
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/