Re: [PATCH 00/18] Make common x86 arch area for i386 and x86_64 - Take 2

Ingo Molnar
2007-03-14T20:20:42Z

* Andi Kleen <andi@firstfloor.org> wrote:

> > Andrew's laptop only half a dozen times! ;) But .. in the long run,
> > it's alot easier to think about unified code. 32-bit x86 will
> > certainly stay with us for at least 10-20 years, and the best model
> > for maintainance is having one codebase.
>
> Not sure -- i'm often glad I don't have to care about all the old
> 32bit systems on x86-64. [...]

the basic dynamics of legacies does not change if we have only 50% of
them: right now x86_64 is just growing its own set of legacies, at the
same rate as i386 did it 10 years ago. That makes little difference in
practice: those legacies will quickly necessiate the _same_ kinds of
abstractions that allow the flexible injection of hardware-dependent
quirks. In another 5 years the x86_64 tree will end up looking and
behaving _just like the i386_ tree, the only difference will be less
compatibility. (In fact, it will likely look worse because currently our
efforts are 50% split between i386 and x86_64, and the random
differences between the two arches are wasting developer resources.)

so we might as well unify the two trees and /learn/ from i386's
legacies, while integrating them. Those legacies, by the rule of large
numbers, will revisit x86_64 too (or have already visited it). We
already have per-APIC-version quirks, per CPU model quirks, etc., etc.
The main cost of a quirk is the abstraction it necessiates, not the
quirk handler itself. (which, once the framework is there, is modular)

Also, 90% of our users are still running 32bit kernels _even on 64-bit
capable hardware_, so we might as well prepare ourselves for a really
long march towards a pure 64-bit world. (Which will likely never come.)

Ingo