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

From: Ingo Molnar
Date: Wed Mar 14 2007 - 16:21:00 EST



* Andi Kleen <andi@xxxxxxxxxxxxxx> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/