[Openmcl-devel] trunk unstable. Linux ARM port identified as culprit.
Brian Mastenbrook
brian at mastenbrook.net
Fri Aug 6 13:19:49 PDT 2010
On 8/6/2010 12:07 PM, Gary Byers wrote:
> On Thu, 5 Aug 2010, Brian Mastenbrook wrote:
>> Is ARMv6T2 a sensible minimum?
(I should have clarified here that I wasn't questioning your judgment,
but just looking for the reasons behind it, which you've certainly
supplied.)
> It'd be really great if it was possible to both fully exploit newer,
> higher-end ARM hardware (say, the Cortex A8, A9, and their successors)
> and simultaneously support things like the SheevaPlug and the OpenRD
> boxes. (I have two OpenRD boxes; they're nice little machines. All
> other things being equal, it'd be great if CCL ran on them. I don't
> think that things are equal, and after thinking about fairly hard and
> for a fairly long time, I'm pretty much convinced that the most sensible
> minimum is nearer the higher end of the spectrum.)
>
> The OpenRD and the SheevaPlug (and most other ARMv5 machines) don't
> have the Vector Floating Point (VFP) unit that's present on later
> machines. (They either have some proprietary Marvell FPU or are
> FPU-less). You -might- be able to write a VFP emulator and run the
> same code on an ARMv5 and on a more modern machine, and you might live
> to tell about that if that code didn't do non-incidental FP
> arithmetic. I haven't tried, and don't know whether emulating VFP
> instructions on VFP-less hardware would be at all practical.
>
> Not using VFP instructions for floating-point - because the SheevaPlug
> is Really Neat and cheap and there are probably lots of them out there -
> is another way of solving this problem. (The technical term for this
> approach is "A Really Stupid Idea.")
This is a very good point. With my Ordinary User hat on, floating point
doesn't concern me all that much, which is why I've forgotten about the
complete mess in this area on ARM. With a compiler-author hat on wanting
to use VFP makes complete sense. It's a shame, as the Marvell parts are
likely to show up in a number of small NAS devices that would otherwise
be attractive target. Oddly enough they do seem to have a separate
series of "Discovery" parts that do support VFP, but are otherwise bog
standard ARMv5TE.
*snip discussion of ldrex/strex/clrex and movw/movt*
> I'm fairly sure that the ARMv6KZ (which is the same class of machine as was
> used in early iPod Touches and iPhones) supports movw/movt; the docs that
> I'm looking at are less clear as to whether clrex is supported. I think
> that it's desirable to use clrex if it's available and necessary.
The technical reference manual for the ARM1176JZ doesn't mention movw
and movt, but it does support ldrex/strex/clrex.
>> The Marvell processor in the SheevaPlug devices is an ARMv5TE, which
>> would rule it out as well. There are numerous cheap Android tablets
>> coming on the market with ARMv6KZ-or-below processors as well.
>
> There'll be bazillions of Cortex A8s and A9s, too.
>
> GCC on Ubuntu 10.04 defaults to generating Thumb 2 code. The majority
> of the ARM boxes that I have won't run Thumb 2 code; for some reason,
> Canonical didn't ask me what I thought about this and I assume that
> they didn't ask you about this, either. If I had to guess whether
> "they just didn't think about it" or "thought long and hard about
> continuing to support older machines and decided not to", I think that
> I'd probably guess the latter. (I don't know whether compiling CCL
> to Thumb 2 would be better or not; I'm skeptical that code density
> would improve much, but there might be other ways in which it'd be
> better. If it was clearly better ... well, good bye forever pre-T2
> machines.)
Once again I should clarify that I wasn't trying to question your
decision, and apologies if it came across otherwise!
I think the Ubuntu folks' thought was that the netbook-class hardware
they were targeting would clearly be using Cortex A[n]-or-better
processors. Given the speed at which the mobile market moves, it's
likely that this time next year most existing uses of ARM11-series
processors will be replaced with Cortex-A5/A8 parts, in which case
targeting OpenMCL exclusively at ARMv7 would probably not be a bad
thing. As much as I dislike it, these devices are disposable and usually
obsolete before the warranty expires or the contract is up.
> Rumors about the system requirements for Android 3 are just that at
> this point. If there's any truth to them, I can probably give up on
> the idea of running Android 3 on my N810. I'd better tell Google
> ... unless they know and don't particularly care.
I think it's safe to give up on the idea of running Android anything on
those machines, as much as I'd like to be able to bring it up to date
and keep using it.
--
Brian Mastenbrook
brian at mastenbrook.net
http://brian.mastenbrook.net/
More information about the Openmcl-devel
mailing list