On Sat, 2010-12-18 at 16:20 +0100, Julien BLACHE wrote:
> Ben Hutchings <b...@decadent.org.uk> wrote:
> 
> Hi,
> 
> > Some distributions provide a list all exported symbols which can be
> > depended on not to change.  We haven't done that but we do consider
> 
> What you're saying here is very important: you haven't done that yet,
> which implies that all symbols are covered by the ABI.
> 
> This is reinforced by reading the packaging scripts and realizing they
> check the whole ABI, prior to -28.

This is not correct.  We have ignored many changes since 2.6.32-12 when
the ABI number was bumped to 5.  In 2.6.32-27 the symbol version files
were refreshed and the ignore list was reset.

> > where symbols are used before deciding a change can be ignored.
> 
> I can perfectly imagine that you weren't aware of VMware's reliance upon
> this symbol before, but you are now.
> 
> No need to tell you that quite a few of our users out there will use
> VMware on Squeeze and be impacted by this change.
>
> > (As an example, there are several sets of drivers for related hardware
> > in which one core module exports symbols to the specific driver modules.
> > Those exports should in no way be depended on by OOT modules.)
> 
> As smp_ops is exported by the core kernel and not by the common core of
> a self-contained set of drivers, I don't think this argument holds here.
> 
> Reviewing the kernel revision history, smp_ops was indeed exported to
> allow building KVM as a module. The commit message certainly doesn't
> claim that KVM should be the sole user of this exported symbol.

The upstream policy is that symbol exports may be removed when there are
no in-tree users.  So that export could even be made conditional on
CONFIG_KVM_MODULE (or whatever it's called).

> I fail to see a reason why VMware or anybody else should refrain from
> using smp_ops if they need it.

Because it's a low-level implementation detail.

Maybe I should find a way to limit that export so OOT users won't make
this mistake.

> >> We would not accept that behaviour from a shared library, I don't see
> >> any reason why we would accept it from the kernel.
> >
> > This is not true; for example, the interface between libc and NSS is not
> > stable.
> 
> And it's been widely recognized as a design flaw and a royal pain in the
> ass for, like, forever. Not exactly an example you want to follow.
> 
> > If someone claims to certify something about future Debian kernels
> > without talking to the kernel team, they are a fraud.
> 
> See the top of this mail where you state that no list of symbols covered
> by the ABI was ever published for Debian kernels. It isn't unreasonable
> under these circumstances to assume that all symbols are covered.

It is extremely stupid.

> >> Out of tree modules exist and you can't just ignore them; in some
> >> environments they are necessary to make things work and you won't have a
> >> way around that.
> >
> > Example?
> 
> VMware, nVidia, various drivers and infrastructure for communications
> hardware (been there, done that), ...

VMware - use KVM.
nvidia - use nouveau, report a bug if it doesn't work.
random drivers - send them to the maintainer of crap (Greg K-H, for the
staging tree).

Ben.

-- 
Ben Hutchings
Once a job is fouled up, anything done to improve it makes it worse.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to