[fedora-arm] kernels [WAS: Re: Fedora 13 ARM Beta2]
Gordan Bobic
gordan at bobich.net
Tue Mar 29 16:14:41 UTC 2011
omalleys at msu.edu wrote:
> Quoting Gordan Bobic <gordan at bobich.net>:
>
>> It'd have to be more finely grained than sub-architecture since a kernel
>> for one target won't necessarily work on other CPU of the same
>> sub-architecture (e.g. a Kirkwood kernel won't work on all ARMv5
>> processors).
>
> Is there a way around this? I mean like being able to make a megakernal
> with a ton of modules that has support for every board and autodetects
> hardware?
>
> When you look at the defconfigs for arm, you see about 50 of them. It
> would be nice to have a "generic" arm, or a generic arm5 configuration
> that would be a megakernel with all the hardware in modules or something
> that can autodetect the board and proc. Even broken out to armv5, armv6,
> etc would be nice.
Whether the kernel is modifiable to allow for that, I don't know, but it
certainly doesn't seem to be possible to do that with the current
vanilla kernel.
> If the split is not hardfp, I would seriously consider looking at
> bootstrapping FAT binaries for optimisations between v5 and v7. Im
> pretty sure this is how Apple did some of the optimisations for Altivec
> for OS X which means some of this code maybe sitting in the Darwin
> archives.
I haven't tested this myself, but I seem to remember somebody here
reporting that the typical improvement from optimizing for ARMv7 while
sticking with softfp was in the low single figure % numbers. I'm not
sure it justifies the effort.
> (Apple started off by using something similar to the perl script to
> relink, with OS 10.0 it took like 20 minute to download and install an
> update, and about 3 hours to "optimise", they ended up backgrounding the
> process and then they switched to something else which I think is the
> bootstrap.)
>
> (the 68k-> PPC fat binaries, actually was two separate binaries of the
> program, and the bootstrap just picked which "fork" in HFS to read for
> the binary from which you can't do on linux easily.)
IMO the fat binary support should be handled on the compiler level, not
post-processing. There's also the issue of dlls - you'd need the dynamic
linking to be aware of it too. And you might end up having /lib5s,
/lib5h, /lib6s, /lib6h, /lib7s, /lib7h (like we have /lib and /lib64 on
x86/x86-64).
All that seems like a lot more effort than maintaining two separate
builds, and I cannot think of a reasonable use case where it would be of
vital importance to have binary compatibility. Why bother with binary
compatibility when you have the source. :)
Gordan
More information about the arm
mailing list