Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-19 Thread Hector Oron
Hi,

2010/7/18 Steve Langasek :
> On Fri, Jul 16, 2010 at 09:46:29AM +0200, Loïc Minier wrote:
>> On Fri, Jul 16, 2010, Hector Oron wrote:
[...]

Just an email to note that this thread has been forked to another
subject name and points future mailing lists readers to the right
place.
  "Multiarch and ABI support" on debian-...@l.d.o and debian-d...@l.d.o

Cheers,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktimu3i_8m5kwqwvh92j7yeeui_s5dku5mejye...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-18 Thread Aurelien Jarno
On Sun, Jul 18, 2010 at 09:40:11PM +0200, Loïc Minier wrote:
> On Sun, Jul 18, 2010, Steve Langasek wrote:
> > (BTW... if you want to run both armel and armhf under multiarch... which
> > package's libc gets to own ld.so? :P)
> 
>  I understand ld.so can be wherever we want, since it's part of the
>  executables, but I understand you're asking which architecture gets to
>  own whatever /lib/ld-linux.so.2 is, since there's only one of them and
>  we want to preserve compatibility with non-Debian binaries, right?
> 
>  On my amd64 system, /bin/rm points at /lib64/ld-linux-x86-64.so.2 for
>  an interpreter (*cough* /lib64) but on an armel system, it points at
>  /lib/ld-linux.so.3, and on i386 system /lib/ld-linux.so.2 so perhaps we
>  can expect 64-bits arches to have a suffix while 32-bits arches so that
>  one could leave ld-linux to 32-bits arches and use the suffix for
>  64-bits arches?  No idea whether there's a general rule for this
> 

It's not a general rule. For example, 32-bit sparc is /lib/ld-linux.so.2
while 64-bit sparc is /lib64/ld-linux.so.2.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100718235614.ga4...@volta.aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-18 Thread Loïc Minier
On Sun, Jul 18, 2010, Steve Langasek wrote:
> (BTW... if you want to run both armel and armhf under multiarch... which
> package's libc gets to own ld.so? :P)

 I understand ld.so can be wherever we want, since it's part of the
 executables, but I understand you're asking which architecture gets to
 own whatever /lib/ld-linux.so.2 is, since there's only one of them and
 we want to preserve compatibility with non-Debian binaries, right?

 On my amd64 system, /bin/rm points at /lib64/ld-linux-x86-64.so.2 for
 an interpreter (*cough* /lib64) but on an armel system, it points at
 /lib/ld-linux.so.3, and on i386 system /lib/ld-linux.so.2 so perhaps we
 can expect 64-bits arches to have a suffix while 32-bits arches so that
 one could leave ld-linux to 32-bits arches and use the suffix for
 64-bits arches?  No idea whether there's a general rule for this

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100718194011.ga25...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-18 Thread Steve Langasek
On Fri, Jul 16, 2010 at 09:46:29AM +0200, Loïc Minier wrote:
> On Fri, Jul 16, 2010, Hector Oron wrote:

> > to take it as another architecture, but, nowadays,
> > arm-none-linux-gnueabi supports hard, soft and softfp. Bringing old
> > discussions up to front, would not make sense to have ABI support in
> > the distribution itself (which really is  an overhead) and not in the
> > upstream code?

>  We need a new port because the binaries are incompatible with each
>  others, we need a different triplet because it's a dpkg limitation.

>  Perhaps we could change dpkg to not require that anymore, but we'd
>  still need a new port.  We also need a different triplet for the
>  multiarch use case; I know you're not too interested in multiarch
>  yourself anymore, but it's safer to pick a different triplet
>  nevertheless IMHO, using the vendor field.

I'm puzzled why dpkg needs a unique triplet for a port.  dpkg needs to map
port names to triplets, but why does it need to do the inverse?  And if it
doesn't need to map triplet->port, why would the triplet need to be unique?

There is a need for a distinct port name; I think this is also not a
Debian-specific problem, it's a problem common to any distributions that
want to do what's described here.

Paul commented that:

> Anything that relies on the target triplet is going to break as soon as you
> move outside a pure Debian system. i.e. any patches relying on a particular
> target triplet are inherently Debian specific, and IMO should never be
> pushed upstream.

But, er, relying on the target triplet for this shouldn't be done in Debian,
either!


FWIW, this discussion ties in with one of the known outstanding issues with
multiarch, namely we want to support coinstallation of libraries optimized
for multiple /compatible/ instruction sets.  And we don't want to have to
add /lib/i386-linux-gnu, /lib/i486-linux-gnu, /lib/i586-linux-gnu [,...] to
the path one by one to accomplish that, especially when we already have
hwcaps to do the job for us.  So perhaps triplets aren't the right level of
abstraction to encode in the library paths after all?  I mean, it's ok to
have libraries in /lib/i486-linux-gnu/686/cmov, but we definitely don't want
to *change* the library path if and when Debian's base compatibility level
moves from i486 to i586 (or from armv4t to armv5t, to keep this on topic ;)
and have to deal with path transitions.  Is there a better identifier we
should be using to qualify the library paths, instead of these triplets? 
I.e., instead of the cpu from the triplet, perhaps there are official names
for the ELF architectures that can be used - that can be determined without
too much hard-coding all over the place?

(BTW... if you want to run both armel and armhf under multiarch... which
package's libc gets to own ld.so? :P)

-- 
Steve Langasek   Give me a lever long enough and a Free OS
Debian Developer   to set it on, and I can move the world.
Ubuntu Developerhttp://www.debian.org/
slanga...@ubuntu.com vor...@debian.org


signature.asc
Description: Digital signature


Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-17 Thread JLB

I am absolutely gobsmacked that popcon DOESN'T report CPU architecture.

On Sat, 17 Jul 2010, Martin Guy wrote:


On 7/16/10, Aurelien Jarno  wrote:

Martin Guy a écrit :



> users of armv4t boards, from using "the universal operating system"
> Debian?


I was not aware of that. If they are some real users of an armv4t port,
 we should probably keep it.


The most widespread is the Technologic Systems TS-72xx series of
boards (see the noisy yahoo TS7200 forum for an idea of how many) and
Glomation, while the Sim.One and Snapper boards are about to be
marketed. All these are based on that awful Cirrus EP93xx SoC.

I'm asking popcon if it's feasible to extend that package to report
CPU arch, since concrete figures are always preferable to hearsay and
individual impressions.

Cheers

   M


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktinlqmterfztlb4v1_rghhgs_po6ys5ubie_h...@mail.gmail.com


Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-17 Thread Martin Guy
On 7/16/10, Aurelien Jarno  wrote:
> Martin Guy a écrit :

>  > users of armv4t boards, from using "the universal operating system"
>  > Debian?
>
>
> I was not aware of that. If they are some real users of an armv4t port,
>  we should probably keep it.

The most widespread is the Technologic Systems TS-72xx series of
boards (see the noisy yahoo TS7200 forum for an idea of how many) and
Glomation, while the Sim.One and Snapper boards are about to be
marketed. All these are based on that awful Cirrus EP93xx SoC.

I'm asking popcon if it's feasible to extend that package to report
CPU arch, since concrete figures are always preferable to hearsay and
individual impressions.

Cheers

M


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktinlqmterfztlb4v1_rghhgs_po6ys5ubie_h...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Matt Sealey
On Fri, Jul 16, 2010 at 9:23 AM, Wookey  wrote:
> +++ Konstantinos Margaritis [2010-07-16 16:04 +0300]:
>> On Friday 16 July 2010 15:36:26 Wookey wrote:
>> > Just to save others a bit of time:
>> >
>> > The summary from that lot is that hardfp is about 4% faster on average
>> > (between 0 and 11% on various tests). So definitely faster for
>> > real-world stuff, but 4% won't justify a new port from Debian's POV.
>>
>> 4% won't, but 30% might?
>
> Yes. Exactly.

In reality the speedup could be anything between 0 and maybe 25% with
some outliers which perform much, much better for some reason. In any
case, compiling the distro for armv7-a instead of armv4t introduces
further optimizations by the compiler on top of the FPU ABI change,
which improves the chances of it being faster (not tested here yet by
Konstantinos, I don't think).

>> Or what about the huge gain in povray?
>
> That was dramatic. I guess it leads on to the question of how many
> more really dramatic speedups there are in software people actually
> use (or would if it was faster :-)

See above. In theory anything that uses the FPU to do anything and
that FPU code is handled by being passed floating point arguments in
functions. For all we know a standard desktop is not improved: sitting
there, clicking a menu with a rectangular shape, showing all of 5
icons at a time. Imagine scrolling a folder with 5000 files with SVG
icons for each which need rendering and caching. That may improve a
little, but there is much more going on than the math behind the SVG.

As I summarized, the idea is that there are no *hidden potentially
expensive register transfers* which are inserted by the compiler just
to service an ABI which is pretty much pointless on the range of
processors we're suggesting optimization for.

sinf as a function is not a good test: it's one out of many. You layer
50, 100 calls to other FPU functions with more register usage, more
float or double argument passing (hey guys try double, hardfp will win
every time IMO) and the benefit is compounding.

-- Matt


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktinig3tlopbwsum3kuo9lmiitydeu7rtnunbl...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Wookey
+++ Konstantinos Margaritis [2010-07-16 16:04 +0300]:
> On Friday 16 July 2010 15:36:26 Wookey wrote:
> > Just to save others a bit of time:
> > 
> > The summary from that lot is that hardfp is about 4% faster on average
> > (between 0 and 11% on various tests). So definitely faster for
> > real-world stuff, but 4% won't justify a new port from Debian's POV.
> 
> 4% won't, but 30% might? 

Yes. Exactly. 

> Or what about the huge gain in povray?

That was dramatic. I guess it leads on to the question of how many
more really dramatic speedups there are in software people actually
use (or would if it was faster :-)

I guess we'll find out soon enough. 

> > It would be interesting to test on some other hardware too, as A8 is
> > expected to be the hardware where this makes the most difference, right?
> 
> I have no other hardware nearby,only A8 -well I have remote access to a quad-
> core A9, but I haven't yet tried hardfp on it yet as it's not mine to play :)

Yes. I was meaning for other people to try stuff as this is such an
easy benchmark to run if you've got a browser built. 

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716142300.gy7...@dream.aleph1.co.uk



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
On Friday 16 July 2010 15:36:26 Wookey wrote:
> Just to save others a bit of time:
> 
> The summary from that lot is that hardfp is about 4% faster on average
> (between 0 and 11% on various tests). So definitely faster for
> real-world stuff, but 4% won't justify a new port from Debian's POV.

4% won't, but 30% might? Or what about the huge gain in povray?

> It would be interesting to test on some other hardware too, as A8 is
> expected to be the hardware where this makes the most difference, right?

I have no other hardware nearby,only A8 -well I have remote access to a quad-
core A9, but I haven't yet tried hardfp on it yet as it's not mine to play :)

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161604.13585.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Wookey
+++ Konstantinos Margaritis [2010-07-16 14:56 +0300]:
> Ok, here are Arora Sunspider (javascript) benchmarks
 
Handy benchmark. I didn't know about that before (just found out my
desktop is 2.8 times faster than my laptop on this).




Just to save others a bit of time:

The summary from that lot is that hardfp is about 4% faster on average
(between 0 and 11% on various tests). So definitely faster for
real-world stuff, but 4% won't justify a new port from Debian's POV.

> I also ran the Peacekeeper [1] on the system, this is very simplistic, and 
> produces only a score. Suffice to say, ARM/Arora is nowhere near the top 
> browsing speeds.
> 
> for softfp: 259 points
> 
> for hardfp: 278 points

or 7% speedup.

Not bad for just a recompile.

It would be interesting to test on some other hardware too, as A8 is
expected to be the hardware where this makes the most difference, right?

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716123625.gx7...@dream.aleph1.co.uk



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Hector Oron
Hello,

2010/7/16 Aurelien Jarno :
>> So, the same question: what is the measured speed up for users of ARM
>> architectures >=5, and is it worth excluding the significant number of
>> users of armv4t boards, from using "the universal operating system"
>> Debian?
>
> I was not aware of that. If they are some real users of an armv4t port,
> we should probably keep it.

Yes, openmoko, based on Samsung s3c2410 SoC is armv4t, also my GP32[1]
uses same SoC.

Is it worth to lose an much more optimized port within Debian for armv7?
Things simplify by rebuilding either Debian or Ubuntu with optimized
flags over 'armel' architecture as new fork, is that what we all want
(nowadays)?

[1] http://ajt.iki.fi/travel/debconf5/img_2606-linuxpda_large.jpg

Cheers,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktik9v8vvbc8k5am53ke8wrn2q3cwfqcmr6due...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Aurelien Jarno
Martin Guy a écrit :
> On 7/16/10, Martin Michlmayr  wrote:
>> * Aurelien Jarno  [2010-07-16 09:38]:
>>
>>> BTW, has anybody thought about increasing the minimum requirement for
>>  > the armel port, for example to armv5? Available machines has evolved,
>>  > maybe the port should do the same.
>>
>>
>> Indeed.  From Paul's emails, I'm getting the feeling that moving the
>>  armel port to armv5 and proving optimized libraries for some things
>>  might be the way to go.
> 
> A company I work with is hoping to be able (finally!) to start
> marketing an armv4t board we've been developing over the last years,
> with Debian as the default operating system.  I guess we can just
> remain with lenny or squeeze...
> 
> Being the cheapest ARM boards on the market, these tend to be used by
> the long tail of hobbyists, which include potential contributors to
> Debian and the OS community.
> 
> So, the same question: what is the measured speed up for users of ARM
> architectures >=5, and is it worth excluding the significant number of
> users of armv4t boards, from using "the universal operating system"
> Debian?

I was not aware of that. If they are some real users of an armv4t port,
we should probably keep it.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c405165.1020...@aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Loïc Minier
On Fri, Jul 16, 2010, Konstantinos Margaritis wrote:
> Ok, here are Arora Sunspider (javascript) benchmarks
> for softfp:

 http://bit.ly/a4bS0V

> for hardfp:

 http://bit.ly/9M0OPo

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716120509.gd2...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
On Friday 16 July 2010 14:30:38 Paul Brook wrote:
> Based on what evidence?
> 
> The G4 has an single cycle pipelined out-of-order FPU. The A8 has a
> non-pipelined FPU that takes between 5 and 20 (normal single precision is
>  10) cycles to give a result. A 9x slowdown sounds right on the ball.

Ok, I would be very interested in an explanation as to why it goes down from 
2:44 to 50s by a simple recompile. I also tried other example scenes, it 
wasn't the exception, rather the rule. If you believe I manipulated the 
benchmark in some way, feel free to try it yourself, you'll be surprised.

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161458.20900.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
Ok, here are Arora Sunspider (javascript) benchmarks

for softfp:
http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?{%223d-cube%22:[649,737,722,721,720],%223d-morph%22:[1050,1070,1058,1058,1053],%223d-
raytrace%22:[630,674,659,668,667],%22access-binary-trees%22:[254,254,254,265,245],%22access-fannkuch%22:[404,449,404,402,403],%22access-nbody%22:
[650,745,742,742,741],%22access-nsieve%22:[161,165,158,161,170],%22bitops-3bit-bits-in-byte%22:[125,125,125,125,125],%22bitops-bits-in-byte%22:
[173,171,172,172,173],%22bitops-bitwise-and%22:[172,182,172,181,172],%22bitops-nsieve-bits%22:[358,358,357,357,367],%22controlflow-recursive%22:
[104,103,103,103,103],%22crypto-aes%22:[234,233,233,232,233],%22crypto-md5%22:[269,277,281,268,272],%22crypto-sha1%22:[253,263,262,259,265],%22date-
format-tofte%22:[542,543,547,538,539],%22date-format-xparb%22:[967,953,958,951,958],%22math-cordic%22:[538,613,535,553,534],%22math-partial-sums%22:
[1021,1148,1024,1027,1013],%22math-spectral-norm%22:[296,331,297,299,298],%22regexp-dna%22:[1593,1749,1586,1568,1579],%22string-base64%22:
[433,447,443,437,442],%22string-fasta%22:[631,618,615,621,613],%22string-tagcloud%22:[978,979,979,984,979],%22string-unpack-code%22:
[1267,1273,1267,1271,1269],%22string-validate-input%22:[805,797,802,795,801]}

for hardfp:
http://www2.webkit.org/perf/sunspider-0.9/sunspider-results.html?{%223d-cube%22:[637,709,712,717,716],%223d-morph%22:[977,1003,992,995,992],%223d-
raytrace%22:[618,655,660,654,660],%22access-binary-trees%22:[249,237,243,246,242],%22access-fannkuch%22:[397,396,400,396,396],%22access-nbody%22:
[641,737,753,747,739],%22access-nsieve%22:[156,155,154,155,154],%22bitops-3bit-bits-in-byte%22:[122,123,122,123,122],%22bitops-bits-in-byte%22:
[176,176,174,172,176],%22bitops-bitwise-and%22:[181,175,174,175,175],%22bitops-nsieve-bits%22:[350,357,360,362,360],%22controlflow-recursive%22:
[100,99,100,98,100],%22crypto-aes%22:[227,227,229,228,229],%22crypto-md5%22:[254,253,268,259,265],%22crypto-sha1%22:[258,250,256,254,256],%22date-
format-tofte%22:[487,486,488,485,485],%22date-format-xparb%22:[940,907,914,912,911],%22math-cordic%22:[537,539,537,537,537],%22math-partial-sums%22:
[955,959,971,949,947],%22math-spectral-norm%22:[295,297,299,296,297],%22regexp-dna%22:[1630,1684,1628,1627,1627],%22string-base64%22:
[417,423,426,425,423],%22string-fasta%22:[589,611,587,609,594],%22string-tagcloud%22:[936,944,952,945,940],%22string-unpack-code%22:
[1174,1176,1173,1173,1178],%22string-validate-input%22:[748,740,761,762,753]}

I also ran the Peacekeeper [1] on the system, this is very simplistic, and 
produces only a score. Suffice to say, ARM/Arora is nowhere near the top 
browsing speeds.

for softfp: 259 points

for hardfp: 278 points

Konstantinos

[1] http://service.futuremark.com/peacekeeper/index.action


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161456.17593.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Paul Brook
> >  One way to check how well softfp performs would be to run povray in
> >  Ubuntu versus in Debian; this will mix noise in the results, but I
> >  don't expect the minor sourceful differences to make the biggest
> >  impact, but rather the toolchain opts would.  (You're speaking of a
> >  3-folds increase.)
> 
> I don't have a debian armel installation here, so I can't test how it
> performs there, however running the same version on a g...@1ghz running
> squeeze -no altivec- I got total runtime 20 seconds, which is imho
> indicative of the potential performance of the imx...@800mhz, as the ARM
> vfp is much less powerful than the G4's. 20 vs 50, sounds almost expected,
> 20s vs ~3min sounds like a joke.

Based on what evidence?

The G4 has an single cycle pipelined out-of-order FPU. The A8 has a 
non-pipelined FPU that takes between 5 and 20 (normal single precision is 10) 
cycles to give a result. A 9x slowdown sounds right on the ball.

Altivec v.s. NEON is a somewhat different question, there's only a 2x 
difference in peak performance there.

Paul 


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161230.40496.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Martin Guy
On 7/16/10, Martin Michlmayr  wrote:
> * Aurelien Jarno  [2010-07-16 09:38]:
>
> > BTW, has anybody thought about increasing the minimum requirement for
>  > the armel port, for example to armv5? Available machines has evolved,
>  > maybe the port should do the same.
>
>
> Indeed.  From Paul's emails, I'm getting the feeling that moving the
>  armel port to armv5 and proving optimized libraries for some things
>  might be the way to go.

A company I work with is hoping to be able (finally!) to start
marketing an armv4t board we've been developing over the last years,
with Debian as the default operating system.  I guess we can just
remain with lenny or squeeze...

Being the cheapest ARM boards on the market, these tend to be used by
the long tail of hobbyists, which include potential contributors to
Debian and the OS community.

So, the same question: what is the measured speed up for users of ARM
architectures >=5, and is it worth excluding the significant number of
users of armv4t boards, from using "the universal operating system"
Debian?

   M


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktimdda6eba-xoinf9bweqatacsnpdcl3wkc4n...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Martin Guy
>  hardfp 5% faster than softfp
>  hardfp 3% faster than softfp
>  hardfp: 5% faster than softfp

But these are negligable differences!

M


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikckbpazt7jtjg7-5cvdnnsdftqiplehaap_...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Riku Voipio
On Fri, Jul 16, 2010 at 09:55:49AM +0100, Martin Michlmayr wrote:
> * Aurelien Jarno  [2010-07-16 09:38]:
> > BTW, has anybody thought about increasing the minimum requirement for
> > the armel port, for example to armv5? Available machines has evolved,
> > maybe the port should do the same.
 
> Indeed.  From Paul's emails, I'm getting the feeling that moving the
> armel port to armv5

My impression is the ARMv4t -> ARMV5 doesn't really gain many useful
instructions (PLD, CLZ), so it is not neccesarily worth it, at least
as long as there ar ARMv4t users (basicly openmoko).

> and proving optimized libraries for some things might be the way to go.

And when the performance critical code is not in a library but in a binary?


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716094141.ga30...@afflict.kos.to



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Hector Oron
Hello Loic,

2010/7/16 Loïc Minier :
>  still need a new port.  We also need a different triplet for the
>  multiarch use case; I know you're not too interested in multiarch
>  yourself anymore, but it's safer to pick a different triplet
>  nevertheless IMHO, using the vendor field.

Excuse me! Do not exclude me from multiarch, I am interested.

I just propose that sysroot (supported by upstream) might be the easy
working route, while I can see lots of overhead on current multiarch,
plus we need upstream support (it might take another 5 years before we
see the baby! - but yeah, go for it!)

Cheers,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktilwh2zaub4ve0op4na34r5yx4fmqujhuchrm...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Martin Michlmayr
* Aurelien Jarno  [2010-07-16 09:38]:
> BTW, has anybody thought about increasing the minimum requirement for
> the armel port, for example to armv5? Available machines has evolved,
> maybe the port should do the same.

Indeed.  From Paul's emails, I'm getting the feeling that moving the
armel port to armv5 and proving optimized libraries for some things
might be the way to go.

-- 
Martin Michlmayr
http://www.cyrius.com/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716085549.gi11...@jirafa.cyrius.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Loïc Minier
On Fri, Jul 16, 2010, Konstantinos Margaritis wrote:
> softfp:

 I wonder what you built with softfp exactly?  Did you rebuild
 libc6, libpng12-0 for instance?  Not that I expect that most of the
 time is spent in libpng12-0, but still.

 As I understand it, we have these options:
 - keep Debian armel as is, add a new armhf hard-float port
 - keep Debian armel as is, and provide an archive of Debian armel+vfp
   rebuilt with softfp
 - keep Debian armel as is, and change a dozen of libs to provide a VFP
   version (softfp)

 One way to check how well softfp performs would be to run povray in
 Ubuntu versus in Debian; this will mix noise in the results, but I
 don't expect the minor sourceful differences to make the biggest
 impact, but rather the toolchain opts would.  (You're speaking of a
 3-folds increase.)

archive disttoolchain defaults
--- --
Debian armelsid, squeezearmv4t + soft
freevec.org karmic  armv6 + hardfp
Ubuntu armelkarmic  armv6 + softfp
Ubuntu armeljaunty  armv5t + soft
Ubuntu armellucid   armv7t2 + softfp

 Would be nice to know against which userspace you ran your povray
 "softfp".

 I think povray is a nice example of a random package where we wouldn't
 put the effort to create a vfp pass, and where there's no lib, so it
 might indeed be a good example of a hardfp candidate.

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716081124.ga21...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
On Friday 16 July 2010 11:11:24 Loïc Minier wrote:
> On Fri, Jul 16, 2010, Konstantinos Margaritis wrote:
> > softfp:
> 
>  I wonder what you built with softfp exactly?  Did you rebuild
>  libc6, libpng12-0 for instance?  Not that I expect that most of the
>  time is spent in libpng12-0, but still.

I didn't build anything, I just installed the default package from karmic -
which as you already said is softfp.

>  As I understand it, we have these options:
>  - keep Debian armel as is, add a new armhf hard-float port
>  - keep Debian armel as is, and provide an archive of Debian armel+vfp
>rebuilt with softfp
>  - keep Debian armel as is, and change a dozen of libs to provide a VFP
>version (softfp)

Obviously, I vote for the first option :)

>  One way to check how well softfp performs would be to run povray in
>  Ubuntu versus in Debian; this will mix noise in the results, but I
>  don't expect the minor sourceful differences to make the biggest
>  impact, but rather the toolchain opts would.  (You're speaking of a
>  3-folds increase.)

I don't have a debian armel installation here, so I can't test how it performs 
there, however running the same version on a g...@1ghz running squeeze -no 
altivec- I got total runtime 20 seconds, which is imho indicative of the 
potential performance of the imx...@800mhz, as the ARM vfp is much less 
powerful than the G4's. 20 vs 50, sounds almost expected, 20s vs ~3min sounds 
like a joke. -I know ARM is not a cpu fit for rendering, but that's beside the 
point.

> archive disttoolchain defaults
> --- --
> Debian armelsid, squeezearmv4t + soft
> freevec.org karmic  armv6 + hardfp
> Ubuntu armelkarmic  armv6 + softfp
> Ubuntu armeljaunty  armv5t + soft
> Ubuntu armellucid   armv7t2 + softfp
> 
>  Would be nice to know against which userspace you ran your povray
>  "softfp".

I did say that, it is a default karmic installation, the efikas come 
preinstalled with that.

Konstantinos


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161134.30040.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
On Friday 16 July 2010 11:11:39 Aurelien Jarno wrote:
> Why are we comparing softfp vs hardfp? We should compare the existing
> armel port, that is soft, vs both softfp and hardfp.

Er, that's the whole point of the discussion. There is no question about 
having a new soft port, but a hardfp port -and some people argued that softfp 
is equally good and compatible, so instead of a new hardfp port, Debian could 
just as well enable softfp and get almost as good performance. The existing 
armel port has its userbase, but now with modern and more powerful ARM cpus 
around, we should at least examine the potential of a new and more optimized 
port. Hence the need -at least on our side- of the hardfp port.

> What do you call Debian exactly?
> 
> Experience shows that maintainers usually do not care about a new port
> until it blocks migration to testing.
> 
> For the release team and ftpmaster point of view, the best is probably
> to ask them first.

The discussion originated here in this list -and -dpkg- first. I guess when 
the port is in a semi-working order, we could ask release and ftpmaster, but 
until then, I'm pretty sure their answer would be "tell us when you have 
something ready and we'll see if there is demand for this port" or something 
similar.


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161127.37870.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Aurelien Jarno
Loïc Minier a écrit :
> On Fri, Jul 16, 2010, Konstantinos Margaritis wrote:
>> softfp:
> 
>  I wonder what you built with softfp exactly?  Did you rebuild
>  libc6, libpng12-0 for instance?  Not that I expect that most of the
>  time is spent in libpng12-0, but still.
> 
>  As I understand it, we have these options:
>  - keep Debian armel as is, add a new armhf hard-float port
>  - keep Debian armel as is, and provide an archive of Debian armel+vfp
>rebuilt with softfp
>  - keep Debian armel as is, and change a dozen of libs to provide a VFP
>version (softfp)
> 
>  One way to check how well softfp performs would be to run povray in
>  Ubuntu versus in Debian; this will mix noise in the results, but I
>  don't expect the minor sourceful differences to make the biggest
>  impact, but rather the toolchain opts would.  (You're speaking of a
>  3-folds increase.)
> 
> archive disttoolchain defaults
> --- --
> Debian armelsid, squeezearmv4t + soft
> freevec.org karmic  armv6 + hardfp
> Ubuntu armelkarmic  armv6 + softfp
> Ubuntu armeljaunty  armv5t + soft
> Ubuntu armellucid   armv7t2 + softfp
> 
>  Would be nice to know against which userspace you ran your povray
>  "softfp".
> 
>  I think povray is a nice example of a random package where we wouldn't
>  put the effort to create a vfp pass, and where there's no lib, so it
>  might indeed be a good example of a hardfp candidate.
> 

OTOH, I am not sure povray is the most use software on ARM...

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c4014e2.7020...@aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Aurelien Jarno
Konstantinos Margaritis a écrit :
> On Friday 16 July 2010 10:47:40 Aurelien Jarno wrote:
>> Have this 30% have actually been measured on such applications?
> 
> how can I benchmark the desktop? It feels faster, that's definite. 
> 
>> If softfp is already 10x faster, does the additional 30% between softfp
>> and hardfp really worth it? Do we need to switch to hardfp instead of
>> softfp, while only the second one needs a new port?
> 
> No, no, softfp is faster than _soft_, which is, well, irrelevant here. We're 
> not comparing to soft, we're comparing softfp vs hardfp. The point is that 
> the 
> cpus in the particular family are more than able to perform much better than 
> they are right now, and it's only a case of recompilation.

Why are we comparing softfp vs hardfp? We should compare the existing
armel port, that is soft, vs both softfp and hardfp.

>> Picking the right name is probably lest than 0.0001% of the work...
> 
> Yes, but we seem to get stuck even there. Anyway, assuming we pick a name 
> that 
> Debian likes, would Debian assist us and -if successful- eventually adopt the 
> port? 
> I'm aware of the hard work needed, but imho, it's more than worth it.
> 

What do you call Debian exactly?

Experience shows that maintainers usually do not care about a new port
until it blocks migration to testing.

For the release team and ftpmaster point of view, the best is probably
to ask them first.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c40143b.9040...@aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
On Friday 16 July 2010 10:47:40 Aurelien Jarno wrote:
> Have this 30% have actually been measured on such applications?

how can I benchmark the desktop? It feels faster, that's definite. 

> If softfp is already 10x faster, does the additional 30% between softfp
> and hardfp really worth it? Do we need to switch to hardfp instead of
> softfp, while only the second one needs a new port?

No, no, softfp is faster than _soft_, which is, well, irrelevant here. We're 
not comparing to soft, we're comparing softfp vs hardfp. The point is that the 
cpus in the particular family are more than able to perform much better than 
they are right now, and it's only a case of recompilation.

> Picking the right name is probably lest than 0.0001% of the work...

Yes, but we seem to get stuck even there. Anyway, assuming we pick a name that 
Debian likes, would Debian assist us and -if successful- eventually adopt the 
port? 
I'm aware of the hard work needed, but imho, it's more than worth it.

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161109.11309.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Konstantinos Margaritis
On Friday 16 July 2010 10:38:19 Aurelien Jarno wrote: 
> I don't say a hardfp port should not be done, but that starting such a
> port should be done based on solid *facts*, benchmarks, tests and so on.

Ok, I just couldn't help it and ran another benchmark, this time I chose 
povray (3.6.1-12), first using the karmic version (built with softfp) and then 
my own package built using CS compiler (exact same version). I guess gcc-
linaro compiler will perform similarly, but I'm still building this.

I chose one sample scene from the examples, and ran it on both softfp/hardfp 
systems with this command:

$ povray +V /usr/share/doc/povray/examples/radiosity/radiosity.pov

this produced a radiosity.png file, which on both systems has the same md5sum:

$ md5sum radiosity.png
c0923759c771679a19a0020c3ac7f6e2  radiosity.png

which means both versions produced exactly the same result (as they should). 
if they didn't the benchmark would be qualitative and not quantitative, even 
if the image appeared to be exactly the same.

Now, here are the results (which will shock you as much they have shocked me):

softfp:
Total Scene Processing Times

 
  Parse Time:0 hours  0 minutes  0 seconds (0 seconds)  

 
  Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)  

 
  Render Time:   0 hours  2 minutes 45 seconds (165 seconds)

 
  Total Time:0 hours  2 minutes 45 seconds (165 seconds)

(ran 3 times, always the same result)

hardfp:
Total Scene Processing Times
  Parse Time:0 hours  0 minutes  0 seconds (0 seconds)
  Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
  Render Time:   0 hours  0 minutes 50 seconds (50 seconds)
  Total Time:0 hours  0 minutes 50 seconds (50 seconds)

(no that's not a mistake, I also ran this 3 times).

Now, do you believe me? Do I have to do a proper "analysis" at the assembly 
level of every package to show that hardfp beats the crap out of softfp and it 
_should_ be made into a new port?

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007161104.21368.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Aurelien Jarno
Konstantinos Margaritis a écrit :
> On Thursday 15 July 2010 17:34:01 Martin Guy wrote:
>> I still doubt that the disruption and extra work for the community of
>> Debian package maintainers, and the lower quality of the resulting
>> archive, is worth the small increment in speed that is promised. I
>> hope
> 
> 30% *measured* (vs promised) speed increase is nothing to sneer at on low-end 
> cpus like Cortex-A8 is. This speed increase might just make the difference 
> from a jerky movie playback to a fluid one, or it might make desktop 
> experience just a bit more pleasant -yes, there is a LOT of floating point 
> work on the desktop (eg. SVG icon rendering). Actually, come to think of it, 

Have this 30% have actually been measured on such applications?

> according to some people here, Debian uses soft (not even softfp) so the 
> speed 
> difference of the fp applications of the new port to the *existing* Debian 
> port (armel) would be HUGE (more than 10x faster, according to my 
> measurements). It's not a matter of comparing this port to an existing 
> hardfloat port -like OpenEmbedded or Gentoo, or whatever, it's offering a 
> better choice for ARM users who want to use Debian.

If softfp is already 10x faster, does the additional 30% between softfp
and hardfp really worth it? Do we need to switch to hardfp instead of
softfp, while only the second one needs a new port?

> Anyway, this is beside the point. We're doing it, one way or the other, the 
> question here is if Debian itself would be interested to accomodate such a 
> port -if it becomes successful. If one of the steps needed for Debian to do 
> so 
> is picking the right name, I'm all for it -in fact I'd go as far as choose 
> armhf right now, but I'll get back on that a bit later.
> 

Picking the right name is probably lest than 0.0001% of the work...

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c400e9c.7040...@aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Loïc Minier
On Fri, Jul 16, 2010, Hector Oron wrote:
>In that case, Debian was clear
> to take it as another architecture, but, nowadays,
> arm-none-linux-gnueabi supports hard, soft and softfp. Bringing old
> discussions up to front, would not make sense to have ABI support in
> the distribution itself (which really is  an overhead) and not in the
> upstream code?

 We need a new port because the binaries are incompatible with each
 others, we need a different triplet because it's a dpkg limitation.
 Perhaps we could change dpkg to not require that anymore, but we'd
 still need a new port.  We also need a different triplet for the
 multiarch use case; I know you're not too interested in multiarch
 yourself anymore, but it's safer to pick a different triplet
 nevertheless IMHO, using the vendor field.

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716074629.gb12...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Loïc Minier
On Thu, Jul 15, 2010, Paul Brook wrote:
> A simple benchmark confirms this hypothesis.
> softfp is actually faster in many cases.

 Could we consider it a gcc bug that when hardfp is turned on, it could
 still pick a faster soft float code path and doesn't?

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716074008.ga12...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-16 Thread Aurelien Jarno
Matt Sealey a écrit :
> I am fairly sure (oh you did!) find a contrived benchmark to show that
> some code is faster on softfp in some cases, but taking a holistic
> approach I find it hard to believe that every time a floating point
> function is called across any of 20,000 packages possibly running on a
> system in a Debian port, that you will be able to benchmark a
> softfp+vfp system running faster than a hard+vfp one, and the features
> outlined above in the VFPv3 spec, the ability to judge the benefits of
> VFP vs. NEON without compilers generating special magic in the way,
> will help people out and make for a "nicer" system.
> 

I think we all agree that in overall hardfp is faster than softfp+vfp.
The question is by how much *from the user experience point of view*. I
don't doubt Eigen3 is a lot faster, but it's not the kind of software
users usually use on their smartphone/tablet/notebook. What users want
is a more reactive machine when doing web browsing, document editing,
video playing and so on.

Keep in mind that creating a new port is a huge work, and from the
experience will take a few years. You have to deal with bootstrapping,
patching code, deal with maintainers, build daemons, etc. All of that
while the code base also evolve as new versions of packages are
uploaded. Moreover at the end to get the port accepted as an official
one, you have to convince it is really useful.

I don't say a hardfp port should not be done, but that starting such a
port should be done based on solid *facts*, benchmarks, tests and so on.

BTW, has anybody thought about increasing the minimum requirement for
the armel port, for example to armv5? Available machines has evolved,
maybe the port should do the same.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c400c6b.40...@aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
On Friday 16 July 2010 07:58:02 Paul Brook wrote:
> Mainly that your analysis of the code was almost entirely bogus.

You are free of course to take my analysis any way you like -btw it wasn't an 
analysis, it was just an indication of the possible performance hit on softfp, 
I'm sure you know the difference between a real analysis and an example.

> You chose sinf as an example of a common critical routine and made a big
>  show of the effect, predicting that softfp would be over a hundred cycles

woud be != could be. Obviously not all the vmovs are executed all the time, 
but there are cases where many of them will run. Some stalls may overlap, 
leading to a lesser drop in performance, but which _is_ there. Btw, your first 
reply seems to be missing some text after "However if the value came from 
memory", I'd be interested to see it completed.

>  slower (6 instructions * 20 cycle stalls).  In reality it's a dozen cycles
>  either way, with softfp being faster in some circumstances.

.. but slower overall, which again has been my point all the time. Anyway, no 
point arguing, people are able to choose for themselves I think. We (Genesi) 
are going for a hardfp port, one way or the other. The real question is, 
assuming we pick a suitable name (armhf), would Debian be interested in 
helping -and eventually adopting- this port? If not, we're wasting each 
other's time trying to prove the obvious.

Regards

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007160840.06623.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> > Do the math, there are 6 more vmov instructions (all between rX and sX
> > registers) in the softfp versions. Ok, if one gives a stall of 20 cycles,
> > how many cycles do we lose in sinf() alone?

> So, what exactly did you want to prove? 

Mainly that your analysis of the code was almost entirely bogus.

You chose sinf as an example of a common critical routine and made a big show 
of the effect, predicting that softfp would be over a hundred cycles slower (6 
instructions * 20 cycle stalls).  In reality it's a dozen cycles either way, 
with softfp being faster in some circumstances.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007160558.02615.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
On Friday 16 July 2010 07:14:17 Konstantinos Margaritis wrote:
> No comment needed. Such results are consistent with all math functions that
>  I have tested (cosf, tanf, expf, etc). Speed gain is accumulative, so in
>  say a rotation matrix function, with (usually) 2 cosf+2 sinf calls, the
>  speed gain would be ~20%. Add some more math optimizations, and we end up
>  to the ~30-35% speed gain we reached. Still don't believe me?

Rereading that, I realise this might be misunderstood. The 20% comes from the 
rotation functions being rather small in size and fast, in fact most of the 
time wasted in such a function comes from the sinf/cosf calls, it's obviously 
not the case in bigger functions with lots of calculations where a sinf would 
only take a miniscule amount of time -eg. software renderers like blender. A 
gain in sinf() would benefit there as well, but not as much. Though I do 
intend to measure blender in the future. Anyway, just a clarification.

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007160744.51484.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
Oh, btw, I also had done some benchmarking -much more elaborate than yours, 
I'm afraid- when rewriting these functions using another algorithm (Pade 
approximants, but that's not the discussion here):

0..M_PI/4
hardfp: 3184713.38 calculations of sinf()/sec
softfp:  3039513.68 calculations of sinf()/sec
hardfp 5% faster than softfp

0..M_PI/2
hardfp: 2304147.47 calculations of sinf()/sec
softfp: 2232142.86 calculations of sinf()/sec
hardfp 3% faster than softfp

0..M_PI
hardfp: 1949317.74 calculations of sinf()/sec
softfp:  1865671.64 calculations of sinf()/sec
hardfp: 5% faster than softfp

No comment needed. Such results are consistent with all math functions that I 
have tested (cosf, tanf, expf, etc). Speed gain is accumulative, so in say a 
rotation matrix function, with (usually) 2 cosf+2 sinf calls, the speed gain 
would be ~20%. Add some more math optimizations, and we end up to the ~30-35% 
speed gain we reached. Still don't believe me?

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007160714.17650.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
On Friday 16 July 2010 00:29:27 Paul Brook wrote:
> A simple benchmark confirms this hypothesis.
> softfp is actually faster in many cases.



If you want to do a benchmark on sinf, next time do it right, span the values 
on 0..M_PI at least (not 0..1.0), here are the results with only one change:

23: y[i] = M_PI* i / (float) N;

You obviously are knowledgable enough to work a benchmark that works faster on 
softfp, but you were wrong with sinf (results from time, real value):

//x[i] = sinf(y[i]); // hard 15% slower
softfp: 0m4.975s, hard: 0m5.222s, hardfp actually 10% slower

//x[i] = sinf(y[i]) + 1.0; // hard 5% slower
softfp:0m5.341s, hard: 0m5.325s, not really a difference here

//x[i] = sinf(y[i] + 1.0); // hard 0.5% slower
softfp: 0m6.347s, hard: 0m6.033s, hardfp 5% faster

//x[i] = sinf(y[i] + 1.0) + 1.0; // softfp 2.5% slower
softfp: 0m6.842s, hard: 0m6.222s, hardfp 10% faster

So, what exactly did you want to prove? That softfp is better? yes, in some 
cases. What about the other cases? Anyway, I'm not discussing if it's better 
or not, for *our* needs it's more than better, it's the proper way of using an 
FPU -all arches use it that way, about time ARM starts using it right too.

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007160653.17172.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Hector Oron
Hello Loïc,

2010/7/15, Loïc Minier :
>  Concerning the triplet choice, I'd highly recommend reading this
>  upstream thread:
> http://gcc.gnu.org/ml/gcc/2010-07/threads.html#00179

Thanks for sharing it. Quite interesting.

For my point of view, ABI should not be encoded in the upstream
triplet names, as Paul comments, but, indeed when transition from OABI
to EABI, they did create another triplet (indeed, another
architecture: arm-none-linux-gnueabi). In that case, Debian was clear
to take it as another architecture, but, nowadays,
arm-none-linux-gnueabi supports hard, soft and softfp. Bringing old
discussions up to front, would not make sense to have ABI support in
the distribution itself (which really is  an overhead) and not in the
upstream code?

Best regards,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktim-xugodbysbugdta-zks_s9h9xwxxygaqe5...@mail.gmail.com



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Hector Oron
Dear developers,

2010/7/13, Riku Voipio :
> Subarchs could also be useful if we wanted to build softfp abi compatible
> armv6/armv7 armel builds of the whole debian repository. Of course we could
> do
> builds without subarchs, but then users would be unable distinguish which
> installed packages are for which cpu, and providing that via debian infra
> would not be possible.

  Having ABI support in dpkg (already discussed on 'armel' port) could
had been helpful, indeed, as all the upcoming differences between
processors, could make much sense. But is it worth the extra burden of
having to implement such support, arriving to consensus and do the
needed changes in the archive as well as deal with dependency solvers?

  Back the, when, at Extremadura [1], when 'armel' was picked up as
new architecture, was said that "in Debian a new ABI is a new
architecture". Could we have been wrong and should we had instead
tried to add ABI field to then control file?

Would you, dpkg maintainers, think that it is worth to go through the
extra hassle of adding such field without having an implementation,
having to change the archive, dependency solvers and achive a
consensus among the rest of the community? Might be the right way for
long term support (which does not mean it has to happen now).

[1] http://wiki.debian.org/DebianEmbeddedWorkSessionExtremadura2006

Best Regards,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikereidzmsvjqdjrqxzrfc2rc4gpxoyfinvs...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Wookey
+++ Matt Sealey [2010-07-15 16:39 -0500]:
> Hi Paul
> 
> Please understand we know what we're talking about here :D

And so does Paul :-)

> In summary:
> 
> soft
> * FPU is all emulated. FPU work is done in integer registers.
> 
> softfp+vfp
> * actual FPU used, FPU argument passing done in integer registers due
> to the soft/softfp EABI spec. your 10x speedup is here and comes from
> using the FPU instead of emulating it
> * You can use NEON here but you still are limited to passing float
> arguments in integer registers per the ABI
> * Each register transfer from integer to float register costs about 20 cycles
> * Boost in performance from using the FPU or NEON instead of emulation
> * Hidden performance penalty from the register transfers
> * Compatible with the above - soft and softfp code can be mixed
> 
> 
> hard+vfp
> * actual FPU is used in the same way
> * actual FPU code does not run faster
> * Boost in performance from using the FPU or NEON is the same
> * No hidden performance penalty
> * Completely incompatible ABI with the two above - no code mixing.
> 
> 
> That is what we're proposing. 

Thanks for that clear and concise summary. 

> This, coupled with the benefits of
> compiling for an improved ISA (ARMv7-A instead of ARMv4) 

armel (Debian) is actually v4t. v4 was not supported (too hard, only
Strongarm thus disenfranchised)

> I am fairly sure (oh you did!) find a contrived benchmark to show that
> some code is faster on softfp in some cases, but taking a holistic
> approach I find it hard to believe that every time a floating point
> function is called across any of 20,000 packages possibly running on a
> system in a Debian port, that you will be able to benchmark a
> softfp+vfp system running faster than a hard+vfp one, 

This remains a crucial question. If Paul is right then maybe it
doesn't actually make as much difference as you think. If we have both
of these builds then it shouldn't be too hard to measure their
relative performances. Ubuntu's existing armel flavour, (with softfp+vfp+thumb2
(v6.5) (I think)) is close to the necesary direct comparison with your
hardfp+vfp+ARM port. The arm/thumb2 thing clouds the waters somewhat,
and a genuinely equivalent comparison would be good. (I was under the
impression that thumb2 was usally faster in practice - you may want to
build for that in fact? Although I note the PB is not convinced on that point). 

> Anyway I think everyone is agreed on that it should be done, just not the 
> name..

Well, right at the beginning of this discussion a number of people
said 'I'd like to see the numbers'. That remains true, and the results
will help determine what flavours are woprth maintaining in the long
term. But of course in order to do that someone has to build the
necessary flavours/ports, so yes please, go for it. We await results
with bated breath/

We need some good benchmarks too.
https://blueprints.launchpad.net/ubuntu/+spec/arm-m-ui-and-test-heads
is relevant to that I guess.

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100716001701.gr7...@dream.aleph1.co.uk



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> > > > Do the math, there are 6 more vmov instructions (all between rX and
> > > > sX registers) in the softfp versions. Ok, if one gives a stall of 20
> > > > cycles, how many cycles do we lose in sinf() alone?
> > > 
> > > Depends how the function is called. Worst case we loose 17 cycles, best
> > > case we should be ~10 cycles faster.
> > 
> > A simple benchmark confirms this hypothesis.
> > softfp is actually faster in many cases.
> > 
> >   // uncomment one of these.
> >   //x[i] = sinf(y[i]); // hard 15% slower
> >   //x[i] = sinf(y[i]) + 1.0; // hard 5% slower
> >   //x[i] = sinf(y[i] + 1.0); // hard 0.5% slower
> >   //x[i] = sinf(y[i] + 1.0) + 1.0; // softfp 2.5% slower
> 
> Hmm, interesting.
> 
> What hardware/CPU/emulator did you test this on? I guess the answers
> will vary to some degree depending what it is run on.

A beagleboard and an imx51.

Looking a bit closer, some of the hard-float lossage may be due to unrelated 
GCC issues. Most of my analysis still stands though.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007160127.42937.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Wookey
+++ Paul Brook [2010-07-15 22:29 +0100]:

> > > Do the math, there are 6 more vmov instructions (all between rX and sX
> > > registers) in the softfp versions. Ok, if one gives a stall of 20 cycles,
> > > how many cycles do we lose in sinf() alone?
> > 
> > Depends how the function is called. Worst case we loose 17 cycles, best
> > case we should be ~10 cycles faster.
> 
> A simple benchmark confirms this hypothesis.
> softfp is actually faster in many cases.
> 
>   // uncomment one of these.
>   //x[i] = sinf(y[i]); // hard 15% slower 
>   //x[i] = sinf(y[i]) + 1.0; // hard 5% slower
>   //x[i] = sinf(y[i] + 1.0); // hard 0.5% slower
>   //x[i] = sinf(y[i] + 1.0) + 1.0; // softfp 2.5% slower

Hmm, interesting.

What hardware/CPU/emulator did you test this on? I guess the answers
will vary to some degree depending what it is run on. 

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715235644.gq7...@dream.aleph1.co.uk



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> As Konstantinos explained, this is something of the order of 6 moves
> around from integer to float and back again for a relatively simple
> function like sinf() which takes one floating point argument and
> returns one. vmov rN, sN has a penalty of around 20 cycles. Nothing is
> being done here, it stalls the entire pipeline until it is complete.
> You can't schedule around it. And it does this 6 times.

This is nonsense, as I already explained[1].
The hard-float ABI version of sinf actually has more unavoidable stalls than 
the soft-float ABI.

Paul

[1] http://lists.debian.org/debian-arm/2010/07/msg00147.html.


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152338.43976.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Matt Sealey
Hi Paul

Please understand we know what we're talking about here :D

In summary:

We want a new port that uses the hard floating point version of the
EABI - floating point arguments to functions are passed in floating
point registers (sN, dN, qN) as the ABI allows.

This is to get around the fact that in soft (no FPU at all) and softfp
mode (can use FPU) the EABI is defined such that all floating point
arguments to a function are passed in integer registers - r0, r1 and
so on, and in pairs of registers for double arguments. In the case
where FPU instruction generation is enabled (softfp and fpu=vfpv3 for
example - softfp abi does not imply an FPU), there is significant code
inserted by the compiler that moves data from integer to floating
point registers before the FPU can use it.

As Konstantinos explained, this is something of the order of 6 moves
around from integer to float and back again for a relatively simple
function like sinf() which takes one floating point argument and
returns one. vmov rN, sN has a penalty of around 20 cycles. Nothing is
being done here, it stalls the entire pipeline until it is complete.
You can't schedule around it. And it does this 6 times.

The basic benefits for moving around are

soft
* FPU is all emulated. FPU work is done in integer registers.

softfp+vfp
* actual FPU used, FPU argument passing done in integer registers due
to the soft/softfp EABI spec. your 10x speedup is here and comes from
using the FPU instead of emulating it
* You can use NEON here but you still are limited to passing float
arguments in integer registers per the ABI
* Each register transfer from integer to float register costs about 20 cycles
* Boost in performance from using the FPU or NEON instead of emulation
* Hidden performance penalty from the register transfers
* Compatible with the above - soft and softfp code can be mixed


hard+vfp
* actual FPU is used in the same way
* actual FPU code does not run faster
* Boost in performance from using the FPU or NEON is the same
* No hidden performance penalty
* Completely incompatible ABI with the two above - no code mixing.


That is what we're proposing. This, coupled with the benefits of
compiling for an improved ISA (ARMv7-A instead of ARMv4) with better,
more efficient instructions, potentially a slightly different strategy
for scheduling instructions, and removing the need to run emulated FPU
library code by specifying VFPv3-D16 as the base level of FPU
required. Using VFPv3-D16 in the base system means not having to deal
with Debian multilib just to get FPU code. Everything is FPU enabled
by default. Debian multilib would be used to enable extra features
such as NEON (which is still not in every ARMv7 processor) and the
FP16 extension (which isn't present on any A8)

That's what justifies the port, the fact that the ABI is incompatible,
plus the baseline architecture requirement (it will no longer run on
ARMv4 or ARMv5 .. ARMv6 is possible if you're lucky) plus the baseline
FPU requirement (needs VFPv3-D16 at least).

Why VFPv3-D16? Simply because VCVT and VMOV immediate has immediate
optimization opportunities. Converting between integer and floating
point is a very common need (think floor() and ceil() kind of stuff),
and being able to put immediate values in FP registers is the first
thing you learn when optimizing for AltiVec (vec_splat is your
greatest friend!) to reduce the need to access memory which causes
pipeline stalls. Because we're used to using AltiVec we think we'd
absolutely, positively miss that functionality if we had to be
restricted to VFPv2 which does not include them :)

No, we don't need to do anything but change the ABI for the purpose of
the port, but all the multilib mess of 10 different FPU types,
slightly better architectures (5, 6) than the one the port is compiled
for.. this is an opportunity to clean it up a bit and reduce the
workload by standardizing at the very least to a common denominator
(which just happens to be the Marvell ARMADA 500) while running well
on Tegra2 and working at still pretty close to best performance
possible on Snapdragon and iMX51 and OMAP3.

I am fairly sure (oh you did!) find a contrived benchmark to show that
some code is faster on softfp in some cases, but taking a holistic
approach I find it hard to believe that every time a floating point
function is called across any of 20,000 packages possibly running on a
system in a Debian port, that you will be able to benchmark a
softfp+vfp system running faster than a hard+vfp one, and the features
outlined above in the VFPv3 spec, the ability to judge the benefits of
VFP vs. NEON without compilers generating special magic in the way,
will help people out and make for a "nicer" system.

Any optimizations made on this "performance blend" of Debian for
armv7+hard+vfp when it comes to NEON will backport easily to the
"armel" port and work just the same with the same relative
improvement, they just won't have the *base* performance of the port.

Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> > In libm.so, I took sinf() -a very often used function, absolutely
> > necessary for any trig stuff- and tried to actually find the differences
> > using
> >
> > objdump:
> >...
> >
> > Do the math, there are 6 more vmov instructions (all between rX and sX
> > registers) in the softfp versions. Ok, if one gives a stall of 20 cycles,
> > how many cycles do we lose in sinf() alone?
> 
> Depends how the function is called. Worst case we loose 17 cycles, best
> case we should be ~10 cycles faster.

A simple benchmark confirms this hypothesis.
softfp is actually faster in many cases.

Paul

#include 
#define N 100
float x[N], y[N];
void __attribute__((noinline)) foo(void)
{
  int i;

  for (i = 0; i < N; i++)
{
  // uncomment one of these.
  //x[i] = sinf(y[i]); // hard 15% slower 
  //x[i] = sinf(y[i]) + 1.0; // hard 5% slower
  //x[i] = sinf(y[i] + 1.0); // hard 0.5% slower
  //x[i] = sinf(y[i] + 1.0) + 1.0; // softfp 2.5% slower
}

}

int main()
{
  int i;
  for (i = 0; i < N; i++)
y[i] = i / (float) N;
  for (i = 0; i < 10; i++)
foo();
  return 0;
}



-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152229.28361.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> In libm.so, I took sinf() -a very often used function, absolutely necessary
> for any trig stuff- and tried to actually find the differences using
> objdump:
>...
> Do the math, there are 6 more vmov instructions (all between rX and sX
> registers) in the softfp versions. Ok, if one gives a stall of 20 cycles,
> how many cycles do we lose in sinf() alone?

Depends how the function is called. Worst case we loose 17 cycles, best case 
we should be ~10 cycles faster.

Remember that mcr (i.e. vmov sX, rX) has zero latency, and the stall only 
occurs when the value is used.  Also remember that any comparison of a 
floating point value introduces the same latency, whether it be due to copying 
the value or the condition flags.

By my reading teh only problematic instruction is the move os the return value 
into r0.  However this won't actually stall until the value is used.  Even if 
the caller uses the value immediately the rest of the function epilogue should 
soak up a few cycles of that latency.

In general the first use of a function argument could cause a stall if the 
caller loaded that argument with mrc. However if the value came from memory or 
was already in core regs (e.g. because it was a function argument/return 
value).

In this case the first significant use of the value is a comparison. As 
mentioned above this may cause a stall in the soft-float case, but will always 
cause a stall in the hard-float case.

Likewise the stalls on the call to __kernel_sinf ballance each other out - 
softfp stalls on the return value, hard-float stalls on the argument 
comparison.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152126.26819.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
On Thursday 15 July 2010 18:20:07 Konstantinos Margaritis wrote:
> On Thursday 15 July 2010 17:34:01 Martin Guy wrote:
> > I still doubt that the disruption and extra work for the community of
> > Debian package maintainers, and the lower quality of the resulting
> > archive, is worth the small increment in speed that is promised. I
> > hope
> 
> 30% *measured* (vs promised) speed increase is nothing to sneer at on
>  low-end cpus like Cortex-A8 is. 

Just to reply to myself:

In libm.so, I took sinf() -a very often used function, absolutely necessary 
for any trig stuff- and tried to actually find the differences using objdump:

on softfp:
$ objdump -S /lib/libm.so.6 --start-address= --stop-
address=|grep -c vmov
7

on hardfp:
$ objdump -S /lib/libm.so.6 --start-address= --stop-
address=|grep -c vmov
2

Mind you the 2nd vmov in hardfp version, is this:

vmov.f32s16, s0, 

which definitely does not cost 20 cycles (it's not an mrc instruction).
Do the math, there are 6 more vmov instructions (all between rX and sX 
registers) in the softfp versions. Ok, if one gives a stall of 20 cycles, how 
many cycles do we lose in sinf() alone?

Still not convinced?

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152233.53440.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> > Switching to the hard-float ABI certainly does give some benefit. While
> > 20% isn't a trivial difference, it's important to keep this in context.
> >  This is on top of what I'd guess is a 10x (i.e. 1000%) speedup achieved
> > without breaking the ABI and requiring a whole new port.
> 
> How do you figure a 10x speedup?

A fairly conservative guess at the cost of software floating point. Even a 
dog-slow FPU like on the Cortex-A8 should be at an order of magnitude faster 
than software.

> > about performance then a NEON optimized version of your critical code
> > should get you annother 4x or so on a Cortex-A8.
> 
> Yes it's about 4x mathematically but 2x in practice because of the ABI
> fudging.

Theoretical peak gain is way more than 4x. VFP on the A8 has a peak single 
precision performance of about 0.1 FLOP/cycle, maybe 0.2 if you enable runfast 
mode. NEON peak performance is 4 FLOP/cycle.
I've seen 2-3x speedup on plain scalar code without even attempting 
vectorization, so 4x seems fairly realistic given a bit of effort.

> >> What would not be so great is that even if it was fixed, the option to
> >> use a faster floating point ABI drags in a clone of
> >> every package on your system (at the very least, libc, libm, and all
> >> the system library dependencies) increasing the
> >> size of the installed system.
> > 
> > What you're describing here is multiarch.
> 
> Yes, which is needed anyway to support NEON where it's available. 

A new port (or arch) is only required if you break the ABI. Enabling NEON has 
no effect on the ABI.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152000.08447.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> > What you're describing here is multiarch.
> 
> Multiarch still isn't there, even after at least 5 years when I saw the
> first presentation. It may have been hard on x86/x86_64 or ppc/ppc64 where
> there were only 2 variants, here we have what? 5? 10? I seriously think
> it's not worth it.

No. We have precisely two variants. The base ABI, and the VFP ABI. Everything 
else is binary compatible, and multiarch is almost certainly the wrong answer.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151944.57133.p...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Loïc Minier
On Thu, Jul 15, 2010, Aurelien Jarno wrote:
>It allows
> to provide different versions of a given symbol using an IFUNC symbol
> type. This will be resolved by the dynamic loader during relocation
> depending on the hardware characteristics.
[...]
> Currently only x86, x86_64, ia64, powerpc and sparc are supported, but
> it should not be difficult to add support for more architectures.

 Unfortunately, this requires getting it in the ARM ABI spec first, and
 apparently that can take very long, they avoid rev-ing the ABI too
 frequently (Linaro intends to work on this later this year [1])


 [1]
 https://blueprints.launchpad.net/binutils-linaro/+spec/stt-gnu-ifunc
 and
 https://blueprints.launchpad.net/binutils-linaro/+spec/gold-stt-gnu-ifunc
-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715183524.ga6...@bee.dooz.org



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Konstantinos Margaritis
On Thursday 15 July 2010 21:06:52 Paul Brook wrote:
> Not quite. It provides a mechanism for selecting different routines without
> the runtime overhead of a check on every call.  It effecitvely provides a
>  hook into the dynamaic linker that allows you to decide which function to
>  export for a particular symbol.  A typical example is to select CPU
>  specific implementations of memcpy. You still need to supply all the
>  different implementations, and a function to determine which to use.

Er, of course I'd have to supply all the implementations, the difference is 
that there is now a proper and common way to do it -anyone who's checked 
xine/mplayer/vlc source will know what I mean. Still, it's very good news that 
something like this has -at last- been implemented. 

> All the implementations must use the same ABI.

Of course. I totally understand that this is not a way to keep softfp/hardfp 
versions in the same binary.

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152118.56343.mar...@genesi-usa.com



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Paul Brook
> On Thursday 15 July 2010 19:48:43 Aurelien Jarno wrote:
> > Note that the new alternative to hwcap is called "multiarch" in the GNU
> > libc (something totally different than "multiarch" in Debian). It allows
> > to provide different versions of a given symbol using an IFUNC symbol
> > type. This will be resolved by the dynamic loader during relocation
> > depending on the hardware characteristics.
> > 
> > This avoid building multiple version of the same software (but still
> > multiple versions of a given function), and to introduce more
> > granularity (e.g. on x86 SSE, SSE2, SSE3, SSSE4.2, AVX, etc).
> 
> So, in essence an application/library can include in the same binary
> multiple versions of the same function and the system picks one depending
> on the current cpu capabilities? So things like autodetecting SSE/Altivec,
> etc are not needed anymore?

Not quite. It provides a mechanism for selecting different routines without 
the runtime overhead of a check on every call.  It effecitvely provides a hook 
into the dynamaic linker that allows you to decide which function to export 
for a particular symbol.  A typical example is to select CPU specific 
implementations of memcpy. You still need to supply all the different 
implementations, and a function to determine which to use.

All the implementations must use the same ABI.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151906.52610.p...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Aurelien Jarno
On Thu, Jul 15, 2010 at 08:06:42PM +0300, Konstantinos Margaritis wrote:
> On Thursday 15 July 2010 19:48:43 Aurelien Jarno wrote:
> > Note that the new alternative to hwcap is called "multiarch" in the GNU
> > libc (something totally different than "multiarch" in Debian). It allows
> > to provide different versions of a given symbol using an IFUNC symbol
> > type. This will be resolved by the dynamic loader during relocation
> > depending on the hardware characteristics.
> > 
> > This avoid building multiple version of the same software (but still
> > multiple versions of a given function), and to introduce more
> > granularity (e.g. on x86 SSE, SSE2, SSE3, SSSE4.2, AVX, etc).
> 
> So, in essence an application/library can include in the same binary multiple 
> versions of the same function and the system picks one depending on the 
> current cpu capabilities? So things like autodetecting SSE/Altivec, etc are 
> not needed anymore?

For libraries sure. I think it might be possible to also get it working
for binaries, though I haven't looked more in details.

Note that you need a recent toolchain for that (binutils and glibc).

> > Currently only x86, x86_64, ia64, powerpc and sparc are supported, but
> > it should not be difficult to add support for more architectures.
> 
> I'm interested in that, is it documented somewhere? ( I know the old hwcap 
> was 
> not at all, unless one wanted to read half of glibc source code).
> 

I am afraid there are not a lot of documentation, beside the glibc
source code. This patch can be interesting though:

http://old.nabble.com/indirect-function-support-td28576476.html

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715174325.gt18...@hall.aurel32.net



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Konstantinos Margaritis
On Thursday 15 July 2010 19:48:43 Aurelien Jarno wrote:
> Note that the new alternative to hwcap is called "multiarch" in the GNU
> libc (something totally different than "multiarch" in Debian). It allows
> to provide different versions of a given symbol using an IFUNC symbol
> type. This will be resolved by the dynamic loader during relocation
> depending on the hardware characteristics.
> 
> This avoid building multiple version of the same software (but still
> multiple versions of a given function), and to introduce more
> granularity (e.g. on x86 SSE, SSE2, SSE3, SSSE4.2, AVX, etc).

So, in essence an application/library can include in the same binary multiple 
versions of the same function and the system picks one depending on the 
current cpu capabilities? So things like autodetecting SSE/Altivec, etc are 
not needed anymore?

> Currently only x86, x86_64, ia64, powerpc and sparc are supported, but
> it should not be difficult to add support for more architectures.

I'm interested in that, is it documented somewhere? ( I know the old hwcap was 
not at all, unless one wanted to read half of glibc source code).

Regards

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007152006.42846.mar...@genesi-usa.com



Re: armelfp: new architecture name for an armel variant

2010-07-15 Thread Aurelien Jarno
Riku Voipio a écrit :
> On Thu, Jul 08, 2010 at 01:06:58PM +0200, Guillem Jover wrote:
>> Personally, before any further discussion I'd like to see some numbers
>> with core libraries (libc, libgcc, libgmp, libatlas? etc) built with
>> softfp, which eventually might be able to switch to use the hwcaps
>> infrastructure in a similar way as how packages like libc6-i686 are
>> handled.
> 
> The key limitation with hwcap approach is that it only extends to shared
> libraries. Optimized binaries and plugins cannot be provided with hwcaps.
> Things like libc-i686 are also problematic for endusers. How do I
> quickly install all 686 optimized versions of libraries I already have?
> 

Note that the new alternative to hwcap is called "multiarch" in the GNU
libc (something totally different than "multiarch" in Debian). It allows
to provide different versions of a given symbol using an IFUNC symbol
type. This will be resolved by the dynamic loader during relocation
depending on the hardware characteristics.

This avoid building multiple version of the same software (but still
multiple versions of a given function), and to introduce more
granularity (e.g. on x86 SSE, SSE2, SSE3, SSSE4.2, AVX, etc).

Currently only x86, x86_64, ia64, powerpc and sparc are supported, but
it should not be difficult to add support for more architectures.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c3f3beb.3030...@aurel32.net



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Matt Sealey
On Thu, Jul 15, 2010 at 11:19 AM, Paul Brook  wrote:
>> > Enabling use of VFP does not require use of the hard-float ABI. Please
>> > don't confuse the two.
>>
>> The whole point of the port is that we get rid of the softfloat ABI in
>> order to use the VFP unit without playing around moving
>> registers around. This sort of came about from Konstantinos' porting
>> of the Eigen2 library (after he had done it for AltiVec)
>> to NEON and some of the developers noticed it wasn't so much faster
>> because gcc inserts what can only be described as
>> evil between the start of the function and the real meat of the code.
>> The pipeline stalls for register movement are noticable
>> in real code as a 20% or higher performance hit.
>
> Yes, but the point I was responding to is that you don't necessarily need to
> use hard-float ABI to get most of the performance gain.

I believe Konstantinos when he says we sort of do.

I've been working with him on AltiVec stuff for a long while and what
performance gains
we saw and tested on this (and eventually got picked up by YellowDog Linux) were
pretty good. Exactly what you would expect.

Using softfp ABI means that the code you expected to run exactly 4x
faster, actually
can't because there is a significant prologue and epilogue inserted by
the compiler
which is causing pipeline stalls in register moves. This means the 4x
faster code isn't
running for most of the lifetime of the function.

> I completely agree that if you want to use the hard-float ABI then you need a
> new port.
>
> However changing the ABI doesn't solve many of the underlying problem.
> Specifically how to provide optimized binaries that take advantage of new
> features on modern CPUs while still supporting older hardware.

... the point is to not support older hardware. We picked a base
level: armv7-a and vfpv3-d16
is our target for it. The same way lpia picked the Pentium III core,
SSE2 as an FPU and
certain other optimizations as the basis for that port. Not only does
compiling it for that CPU
and the hardfloat ABI level increase performance (instruction set
improvements, reduced
amount of code) but it should in the same way improve battery life
(lpia was reported as
a 10% reduction in power usage). 10% on a 90 minute battery for Atom
notebooks is not
much but we know we can get 6 hours on a Cortex-A8 already with a 2
cell battery. Bump
the battery size to 4 cells and it goes up, oddly enough, to about 12
hours. 10% improvement
in power usage on 12 hours is an extra hour of battery life, 30
minutes for the smaller sizes,
compared to about enough time to put the system into an emergency
standby state on Atom
and keep the system on suspend current until it reaches an AC adapter.

> Switching to the hard-float ABI certainly does give some benefit. While 20%
> isn't a trivial difference, it's important to keep this in context.  This is
> on top of what I'd guess is a 10x (i.e. 1000%) speedup achieved without
> breaking the ABI and requiring a whole new port.

How do you figure a 10x speedup?

> about performance then a NEON optimized version of your critical code should
> get you annother 4x or so on a Cortex-A8.

Yes it's about 4x mathematically but 2x in practice because of the ABI fudging.

>> What would not be so great is that even if it was fixed, the option to
>> use a faster floating point ABI drags in a clone of
>> every package on your system (at the very least, libc, libm, and all
>> the system library dependencies) increasing the
>> size of the installed system.
>
> What you're describing here is multiarch.

Yes, which is needed anyway to support NEON where it's available. But we're
considering taking a more comprehensive base CPU and FPU requirement and
adding a little bit of multiarch (NEON, -fp16) instead of taking the
lowest common
denominator and adding an entire distro worth of multiarch and not
seeing anything
like the performance improvement you'd expect.

Using the hard float ABI and picking a base level of the ARM architecture means
the port is going to run it's best on a certain subset of CPUs which
are going into
Smartphones and Smartbooks right now - OMAP3, iMX51, iMX53, Snapdragon,
Samsung/Apple.. all benefit. Beagleboard, EfikaMX, Nexus One, Tegra2...

That it won't run on other CPUs of a lower pedigree, unfortunate, but armel will
always still work for them. What you have to do is weigh the advantage of
building for last year's base system against the status quo of 15 years ago. In
fact, ARM obseleted 90% of the architecture and cores that "armel" runs on.
This base level we have chosen is the new base level...

(Genesi has a commercial interest on it running on certain ARM926EJ-S cores
and a couple ARM11 cores too, and it won't - i.MX27, i.MX37 and Toshiba TMPA910
will be left out. It's not like we're focusing entirely on what we
want to do. This is
actually going to be a benefit to every modern smartbook processor,
basically lpia
done right)

-- 
Matt


--
To UNSUBSCRIBE, emai

Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
On Thursday 15 July 2010 19:19:13 Paul Brook wrote:
> However changing the ABI doesn't solve many of the underlying problem.
> Specifically how to provide optimized binaries that take advantage of new
> features on modern CPUs while still supporting older hardware.

You can't bridge that gap. There are many optimized distros out there, each of 
them requiring a specific minimum to run, for a reason. It would be impossible 
or at the very least, extremely hard for them to maintain backwards 
compatibility, and in the end, what for? Having yet another substandard 
performance port and read articles about how Gentoo or even Ubuntu beats the 
crap out of base Debian in speed? (I know Debian is not about speed, but 
seriously, it doesn't have to be *slow*).

> Switching to the hard-float ABI certainly does give some benefit. While 20%
> isn't a trivial difference, it's important to keep this in context.  This
>  is on top of what I'd guess is a 10x (i.e. 1000%) speedup achieved without
>  breaking the ABI and requiring a whole new port.  If you're really serious
>  about performance then a NEON optimized version of your critical code
>  should get you annother 4x or so on a Cortex-A8.

Yes, and we're working on NEON optimizations as well, but that's much harder, 
as it requires algorithm optimization and not just a simple recompile -
autovectorization is a joke. Eg. optimizing NEON took less than a day, but I 
already knew how it worked as I had done the AltiVec port before, and because 
it was such a beautiful design. Stuff like zlib took longer -I had to rework 
the algorithm to paralellize it- and it was useless after all because the 
license prevents altered binary releases.

> What you're describing here is multiarch.

Multiarch still isn't there, even after at least 5 years when I saw the first 
presentation. It may have been hard on x86/x86_64 or ppc/ppc64 where there 
were only 2 variants, here we have what? 5? 10? I seriously think it's not 
worth it.

It's much easier and less intrusive to the end user to not force upon him all 
the variants and just have a lean system that does what it promises to do.

Regards

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151940.02267.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> > Enabling use of VFP does not require use of the hard-float ABI. Please
> > don't confuse the two.
> 
> The whole point of the port is that we get rid of the softfloat ABI in
> order to use the VFP unit without playing around moving
> registers around. This sort of came about from Konstantinos' porting
> of the Eigen2 library (after he had done it for AltiVec)
> to NEON and some of the developers noticed it wasn't so much faster
> because gcc inserts what can only be described as
> evil between the start of the function and the real meat of the code.
> The pipeline stalls for register movement are noticable
> in real code as a 20% or higher performance hit.

Yes, but the point I was responding to is that you don't necessarily need to 
use hard-float ABI to get most of the performance gain.

I completely agree that if you want to use the hard-float ABI then you need a 
new port.

However changing the ABI doesn't solve many of the underlying problem. 
Specifically how to provide optimized binaries that take advantage of new 
features on modern CPUs while still supporting older hardware.

Switching to the hard-float ABI certainly does give some benefit. While 20% 
isn't a trivial difference, it's important to keep this in context.  This is 
on top of what I'd guess is a 10x (i.e. 1000%) speedup achieved without 
breaking the ABI and requiring a whole new port.  If you're really serious 
about performance then a NEON optimized version of your critical code should 
get you annother 4x or so on a Cortex-A8.

> What would not be so great is that even if it was fixed, the option to
> use a faster floating point ABI drags in a clone of
> every package on your system (at the very least, libc, libm, and all
> the system library dependencies) increasing the
> size of the installed system.

What you're describing here is multiarch.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151719.14372.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Matt Sealey
On Thu, Jul 15, 2010 at 10:26 AM, Paul Brook  wrote:
>> On Thu, Jul 15, 2010 at 03:47:33PM +0100, Paul Brook wrote:
>> > >   armel can also use vfp instructions, so I personally find it
>> > >   confusing.
>> > Yes, however fixing this this does not require a new port. It only
>> > requires providing alternative packages builds within the same port. The
>> > important point being that (assuming capable hardware) you can freely
>> > mix the two.
>>
>> It sounded so far like you can't.  If a library expects softfloat then
>> you can't call it from a hardfloat binary since the calling convension
>> is different.  They are about as compatible as i386 and amd64 in that
>> case.  Sure both can run on an amd64 kernel and cpu, both can be on one
>> system, but they really aren't mixed together.
>
> Enabling use of VFP does not require use of the hard-float ABI. Please don't
> confuse the two.

Hi Paul,

The whole point of the port is that we get rid of the softfloat ABI in
order to use the VFP unit without playing around moving
registers around. This sort of came about from Konstantinos' porting
of the Eigen2 library (after he had done it for AltiVec)
to NEON and some of the developers noticed it wasn't so much faster
because gcc inserts what can only be described as
evil between the start of the function and the real meat of the code.
The pipeline stalls for register movement are noticable
in real code as a 20% or higher performance hit.

It makes the entire process of using an FPU or NEON kind of a chore,
to implement an optimization and see all the benefits
removed because of the design of the ABI allowing FPU emulation. Your
best option is then to force inline everything and hope
for the best.

I think I pointed out in the wiki, and I think it was Martin who did
the test, while the ARM EABI docs say that generated
objects from the compiler have the build information embedded into
them, and any compiler (including your version :) will
refuse to link together softfp and hardfp objects, somehow this
information is lost in the translation to ELF, or ld.so does
not bother to check, so a hardfp, linked, stripped or unstripped
executable can be linked successfully with a softfp
linked, stripped or unstripped dynamic shared object. And this causes
something approaching you expect a function to
work on FPU arguments but the hardfp executable is operating on FPU
registers and the softfp library expects it to be in
the integer registers. The work is done but they're looking in the wrong places.

I think that checking needs to be looked at somewhere, and I think
that's something Codesourcery are good at :)

Until that fix goes in the only consideration right now is that you
shouldn't be able to even install - without a massive
warning from the packager - a hardfloat binary on top of a softfloat
system or vice versa - since every dependency
needs to be compiled using the same ABI.

What would not be so great is that even if it was fixed, the option to
use a faster floating point ABI drags in a clone of
every package on your system (at the very least, libc, libm, and all
the system library dependencies) increasing the
size of the installed system. If you can guarantee you're running on a
system with certain minimum requirements it
makes a lot of sense to design the OS to those certain minimum
requirements. armel covers the ones that don't
match up, and uses softfp to basically bridge the gap between running
a system with FPU vs one without, and selecting
the FPU capabilities and loading the right libraries as a matter of
course. The same will be true of the new port: but
VFPv3-D16 is guaranteed, hard float ABI is guaranteed, and things like
NEON or fp16 are loaded automatically
depending on capabilities. What it does is increases performance while
reducing the installed footprint of the system.

-- 
Matt Sealey 
Product Development Analyst, Genesi USA, Inc.


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktilxmuy-u7_gyv0c0yllymtxzb8snomhpatx7...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> On Thu, Jul 15, 2010 at 03:47:33PM +0100, Paul Brook wrote:
> > >   armel can also use vfp instructions, so I personally find it
> > >   confusing.
> > Yes, however fixing this this does not require a new port. It only
> > requires providing alternative packages builds within the same port. The
> > important point being that (assuming capable hardware) you can freely
> > mix the two.
> 
> It sounded so far like you can't.  If a library expects softfloat then
> you can't call it from a hardfloat binary since the calling convension
> is different.  They are about as compatible as i386 and amd64 in that
> case.  Sure both can run on an amd64 kernel and cpu, both can be on one
> system, but they really aren't mixed together.

Enabling use of VFP does not require use of the hard-float ABI. Please don't 
confuse the two.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151626.26486.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Konstantinos Margaritis
On Thursday 15 July 2010 17:34:01 Martin Guy wrote:
> I still doubt that the disruption and extra work for the community of
> Debian package maintainers, and the lower quality of the resulting
> archive, is worth the small increment in speed that is promised. I
> hope

30% *measured* (vs promised) speed increase is nothing to sneer at on low-end 
cpus like Cortex-A8 is. This speed increase might just make the difference 
from a jerky movie playback to a fluid one, or it might make desktop 
experience just a bit more pleasant -yes, there is a LOT of floating point 
work on the desktop (eg. SVG icon rendering). Actually, come to think of it, 
according to some people here, Debian uses soft (not even softfp) so the speed 
difference of the fp applications of the new port to the *existing* Debian 
port (armel) would be HUGE (more than 10x faster, according to my 
measurements). It's not a matter of comparing this port to an existing 
hardfloat port -like OpenEmbedded or Gentoo, or whatever, it's offering a 
better choice for ARM users who want to use Debian.

Anyway, this is beside the point. We're doing it, one way or the other, the 
question here is if Debian itself would be interested to accomodate such a 
port -if it becomes successful. If one of the steps needed for Debian to do so 
is picking the right name, I'm all for it -in fact I'd go as far as choose 
armhf right now, but I'll get back on that a bit later.

Regards

Konstantinos


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151820.07808.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Lennart Sorensen
On Thu, Jul 15, 2010 at 04:58:29PM +0200, Loïc Minier wrote:
>  First, i386 was a bad name  (it should have been called x86, or ia32),
>  let's not redo the same mistake.

Good point.

>  Second, cortex is not a minimum CPU, it's a particular implementation.
>  Cortex-A implies ARMv7, but you can be ARMv7 without being a Cortex-A
>  implementation (e.g. QCM snapdragon isn't, Marvell Dove isn't).

Hmm, why is arm so complicated. Do they really need 1000 different
CPU variants?

-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100715150415.ga2...@caffeine.csclub.uwaterloo.ca



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Loïc Minier
On Thu, Jul 15, 2010, Lennart Sorensen wrote:
> How is that different than i386 works on i686?  The name is essentially
> the minimum cpu that can run the code.

 First, i386 was a bad name  (it should have been called x86, or ia32),
 let's not redo the same mistake.

 Second, cortex is not a minimum CPU, it's a particular implementation.
 Cortex-A implies ARMv7, but you can be ARMv7 without being a Cortex-A
 implementation (e.g. QCM snapdragon isn't, Marvell Dove isn't).

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715145829.gb3...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Loïc Minier
On Thu, Jul 15, 2010, Martin Guy wrote:
> No it can't. Any binary that contains a vfp instruction will die with
> SIGILL on any armv4t chip that has no vfp cpu, so cannot be used in
> Debian armel.

 Yes, it will die /on chips without a VFP/, but Ubuntu has an armel port
 with vfp turned on by default, and Debian has some packages which
 provided alternate version of libraries which are optimized for a
 different FPU...

> As far as the ABI is concerned, the new roposed one specifically uses
> VFP registers to pass FP arguments, so the new arch would require a
> VFP coprocessor.

 Yes, armhf requires a VFP, but armel allows using the VFP, so VFP is
 not very clear.

> >   (BTW in the thread Richard Earnshaw makes the point that FPA isn't
> >   leagel in EABI and that maverick is incompatible with it, so I think
> >   this is another reason not to have "vfp" in our new port's name)
> 
> You must have misunderstood what Richard said.
> I use Maverick hardlfoat in EABI and provide a repository of Maverick
> hardfloat debian packages for Debian armel. It all works fine.

 Perhaps your implementation is not officially supported in the EABI
 then?  Please discuss this with Richard though; I know next to nothing
 about the EABI specification or about maverick fpus.

> As regards what ARM Ltd want:

 Are you speaking on behalf of ARM?

>   THe users would be best served by a supporting
> the least-common-denominator VFP  instruction set that runs on as many
> chips as possible, which seems to mean a baseline VFP with 16
> registers.

 The plan is to configure with vfpv3-d16 anyway, and there is no plan to
 get rid of the armel port...

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715145609.ga3...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Lennart Sorensen
On Thu, Jul 15, 2010 at 03:47:33PM +0100, Paul Brook wrote:
> Yes, however fixing this this does not require a new port. It only requires 
> providing alternative packages builds within the same port. The important 
> point being that (assuming capable hardware) you can freely mix the two.

It sounded so far like you can't.  If a library expects softfloat then
you can't call it from a hardfloat binary since the calling convension
is different.  They are about as compatible as i386 and amd64 in that
case.  Sure both can run on an amd64 kernel and cpu, both can be on one
system, but they really aren't mixed together.

> Until someone makes to the effort to define proper EABI supplements for that 
> coprocessor, I think it's reasonable to call this "not EABI".

-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100715145423.gz2...@caffeine.csclub.uwaterloo.ca



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Paul Brook
> On 7/15/10, Loïc Minier  wrote:
> >   armel can also use vfp instructions, so I personally find it confusing.
> 
> No it can't. Any binary that contains a vfp instruction will die with
> SIGILL on any armv4t chip that has no vfp cpu, so cannot be used in
> Debian armel.

Yes, however fixing this this does not require a new port. It only requires 
providing alternative packages builds within the same port. The important 
point being that (assuming capable hardware) you can freely mix the two.

> >   (BTW in the thread Richard Earnshaw makes the point that FPA isn't
> >   leagel in EABI and that maverick is incompatible with it, so I think
> >   this is another reason not to have "vfp" in our new port's name)
> 
> You must have misunderstood what Richard said.
> I use Maverick hardlfoat in EABI and provide a repository of Maverick
> hardfloat debian packages for Debian armel. It all works fine.

Until someone makes to the effort to define proper EABI supplements for that 
coprocessor, I think it's reasonable to call this "not EABI".

Paul


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007151547.33783.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Lennart Sorensen
On Thu, Jul 15, 2010 at 10:00:28AM +0200, Loïc Minier wrote:
>  cortex as the port name sounds very wrong, as others have commented
>  already:
>  * some CPUs we explicitly targe t(by configuring for vfpv3-d16) aren't
>cortex (they don't instantiate the Cortex-A8 gates on the silicon,
>but a custom design which is compatible to the armv7 architecture)
>  * (minor) what if ARM releases a "speedex" which is armv7 or armv7
>compatible?

How is that different than i386 works on i686?  The name is essentially
the minimum cpu that can run the code.

>  "armvfp" is also being put forward; while this seems to make sense,
>  armel can also use vfp instructions, so I personally find it confusing.
> 
>  If we take a step back and ask ourselves why we're doing this new port,
>  it's because of a new ABI using hard-float across library calls.  Hence
>  armhf.  It turns out that we also take an opinionated view that armv7
>  and vfpv3-d16 are modern choices for the port, so we could indeed use
>  armv7hf or armhfvfp to reflect this, but it's ugly.
> 
> 
>  I think there was consensus that {arm,armel}{hf,fp} were reasonnable
>  names; I don't care too much across these, but please avoid armv7, vfp,
>  cortex in the port name; it's first about a new ABI.
> 
> 
>  Concerning the triplet choice, I'd highly recommend reading this
>  upstream thread:
> http://gcc.gnu.org/ml/gcc/2010-07/threads.html#00179
>  Upstream is basically split on whether a new triplet is needed or not.
>  In any case, we're free to use the vendor field, but that shouldn't be
>  used in upstream software.  Upstream software should ignore the vendor
>  field and detect whether the current ABI is hard-float or soft-float.
>  I think changing the triplet is easier than changing the port name, so
>  I wouldn't be too worried if the port were to start with
>  arm-hardfloat-linux-gnueabi and change to arm-linux-gnueabi_hf or so
>  later.
> 
>  (BTW in the thread Richard Earnshaw makes the point that FPA isn't
>  leagel in EABI and that maverick is incompatible with it, so I think
>  this is another reason not to have "vfp" in our new port's name)

Too many arm choices... Argh! :)

-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100715143534.gx2...@caffeine.csclub.uwaterloo.ca



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Martin Guy
On 7/15/10, Loïc Minier  wrote:
>   armel can also use vfp instructions, so I personally find it confusing.

No it can't. Any binary that contains a vfp instruction will die with
SIGILL on any armv4t chip that has no vfp cpu, so cannot be used in
Debian armel.
As far as the ABI is concerned, the new roposed one specifically uses
VFP registers to pass FP arguments, so the new arch would require a
VFP coprocessor.

>   In any case, we're free to use the vendor field, but that shouldn't be
>   used in upstream software.
+1, if we must have a new GNU name.

>   arm-hardfloat-linux-gnueabi
Would probably work with most existing build scripts

> arm-linux-gnueabi_hf
Would probably require modifying again every build script that has
already been modified to recognize -gnueabi - to make it do the same
as it would have done for -gnueabi, which seems like creating
pointless extra work for other people...

>   (BTW in the thread Richard Earnshaw makes the point that FPA isn't
>   leagel in EABI and that maverick is incompatible with it, so I think
>   this is another reason not to have "vfp" in our new port's name)

You must have misunderstood what Richard said.
I use Maverick hardlfoat in EABI and provide a repository of Maverick
hardfloat debian packages for Debian armel. It all works fine.

You're right that FPA hardfloat won't work with it, because the ABI
specifies FP storage format and FPA's storage format is different
(45670123 mixed-endian).

However, since the new ABI would mandate passing floating point values
in VFP registers, that knocks any other incompatible FPUs out of the
water anyway.

As regards what ARM Ltd want: to stamp their cortex trademark on a
Debian port and to get Debian to optimise an architecture for (and
mandate the use of) the very latest version of their product line,
this is not necessarily in the best interests of the users or the
developers of Debian. THe users would be best served by a supporting
the least-common-denominator VFP  instruction set that runs on as many
chips as possible, which seems to mean a baseline VFP with 16
registers.

I still doubt that the disruption and extra work for the community of
Debian package maintainers, and the lower quality of the resulting
archive, is worth the small increment in speed that is promised. I
hope

M


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikbjxslnllwotrsk4zw0_nwpf1u-b2oic8mb...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Wookey
+++ Loïc Minier [2010-07-15 10:00 +0200]:
> On Wed, Jul 14, 2010, Hector Oron wrote:
> > Genesi have recommended 'cortex' as Debian architecture name and
> > 'arm-hardfloat-linux-gnueabi' as triplet. This has been in fact
> > approved and endorsed -and actually encouraged- by ARM itself, they
> > really liked the idea of having a debian-cortex port.

I don't know who said this but I guess they were marketing people. We
all know that marketing people love naming things in short-termist,
confusing and meaningless ways. Debian tries hard to avoid this. And
the people I just talked to at ARM said 'Oh no, that's just wrong!'

>  cortex as the port name sounds very wrong, as others have commented
>  already:
>  * some CPUs we explicitly targe t(by configuring for vfpv3-d16) aren't
>cortex (they don't instantiate the Cortex-A8 gates on the silicon,
>but a custom design which is compatible to the armv7 architecture)
>  * (minor) what if ARM releases a "speedex" which is armv7 or armv7
>compatible?
> 
>  "armvfp" is also being put forward; while this seems to make sense,
>  armel can also use vfp instructions, so I personally find it confusing.
> 
>  If we take a step back and ask ourselves why we're doing this new port,
>  it's because of a new ABI using hard-float across library calls.  Hence
>  armhf.  It turns out that we also take an opinionated view that armv7
>  and vfpv3-d16 are modern choices for the port, so we could indeed use
>  armv7hf or armhfvfp to reflect this, but it's ugly.

>  I think there was consensus that {arm,armel}{hf,fp} were reasonnable
>  names; I don't care too much across these, but please avoid armv7, vfp,
>  cortex in the port name; it's first about a new ABI.

Exactly. I am in total agreement with Loic here. I know names is
always contentious and a classic 'bikeshed' issue, but they do also
last a long time and it's important to do the best we can given the
info available at the time.

Obviously Genesi can do whatever the hell they like - we can't stop
them, and indeed don't want to, but please - think carefully about the
above. I was impressed that they came to this list to try and get a
consensus before doing a load of incompatible work - that's excellent,
and the way things should be done, but Matt's last post suggests they
didn't really like the answers received and will go ahead with 'cortex'.

That's much less good. I don't think Debian (or probably Linaro or
Ubuntu) can accept the cortex name for the reasons Loic outlines above
and it'll mean at least names have to be changed before they can
upstream thier patches, which is a pain for everyone, and we won't be
able to just adopt the Genesi port in due course. And they won't
benefit from Linaro, Ubuntu and Debian work in reverse. That's all
bad. Can we really not agree on something basically correct and not
confusing, either now or in the future, i.e 'armelhf' (or 'armhf' if
that's too long).?

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715141335.gf7...@dream.aleph1.co.uk



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Loïc Minier
On Wed, Jul 14, 2010, Hector Oron wrote:
> Genesi have recommended 'cortex' as Debian architecture name and
> 'arm-hardfloat-linux-gnueabi' as triplet. This has been in fact
> approved and endorsed -and actually encouraged- by ARM itself, they
> really liked the idea of having a debian-cortex port.

 cortex as the port name sounds very wrong, as others have commented
 already:
 * some CPUs we explicitly targe t(by configuring for vfpv3-d16) aren't
   cortex (they don't instantiate the Cortex-A8 gates on the silicon,
   but a custom design which is compatible to the armv7 architecture)
 * (minor) what if ARM releases a "speedex" which is armv7 or armv7
   compatible?

 "armvfp" is also being put forward; while this seems to make sense,
 armel can also use vfp instructions, so I personally find it confusing.

 If we take a step back and ask ourselves why we're doing this new port,
 it's because of a new ABI using hard-float across library calls.  Hence
 armhf.  It turns out that we also take an opinionated view that armv7
 and vfpv3-d16 are modern choices for the port, so we could indeed use
 armv7hf or armhfvfp to reflect this, but it's ugly.


 I think there was consensus that {arm,armel}{hf,fp} were reasonnable
 names; I don't care too much across these, but please avoid armv7, vfp,
 cortex in the port name; it's first about a new ABI.


 Concerning the triplet choice, I'd highly recommend reading this
 upstream thread:
http://gcc.gnu.org/ml/gcc/2010-07/threads.html#00179
 Upstream is basically split on whether a new triplet is needed or not.
 In any case, we're free to use the vendor field, but that shouldn't be
 used in upstream software.  Upstream software should ignore the vendor
 field and detect whether the current ABI is hard-float or soft-float.
 I think changing the triplet is easier than changing the port name, so
 I wouldn't be too worried if the port were to start with
 arm-hardfloat-linux-gnueabi and change to arm-linux-gnueabi_hf or so
 later.

 (BTW in the thread Richard Earnshaw makes the point that FPA isn't
 leagel in EABI and that maverick is incompatible with it, so I think
 this is another reason not to have "vfp" in our new port's name)

-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100715080028.ga2...@bee.dooz.org



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-15 Thread Hector Oron
Hello,

2010/7/15, Paul Brook :
> It isn't. "Cortex" is the marketing name for the current set of CPU core
> implementations designed by ARM ltd.  Calling the armv7 port "cortex" is
> equivalent to calling the i686 port "pentium" [1].

But i?86 is ABI compatible, while ARM ABI is a full mess AFAICS and
those ABI are incompatible, requiring new Debian architectures.

> [1] Those paying attention will note that not all pentium cores are i686.
> The
> Cortex family includes cores that are not armv7 (Specifically armv6-m).

M profiles are out of the scope of the port, only A profiles are
interesting and maybe R when compatible.

While the name does not seem to conflict within Debian. It seems that
Ubuntu/Linaro have a problem with it, and too many politics seem to
happen. I would like to have a name that suits all of us (not only
Ubuntu/Linaro, but any other posible third party). Maybe Ubuntu/Linaro
could develop the way arround the naming if it does not suit them?

It was said, the one that bootstraps the port, picks the name.

Genesi has always been kind to Debian Developers, giving hardware
away, and paying people to do the work, they are really commited to
Debian at the moment, and it would be nice (from my point of view) to
have a Debian port with such characteristics in Debian.

I would also like to state that I am (like Debian) commercial
independent, nor Genesi pays me, nor Ubuntu/Linaro pays me. My
interest is best for Debian community and good support for my prefered
gadgets with my prefered distribution.

Cheers and have a good day,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikevkckq6flcja5yqfdbdjmzk4w7nkv0hqha...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Paul Brook
> On Wed, Jul 14, 2010 at 05:11:16PM -0500, Matt Sealey wrote:
> > It's ARM's architecture and theirs to license, not Marvell's or
> > Qualcomm's.
> > 
> > Qualcomm won't be so particularly annoyed as they get a big reference
> > in ARM's manuals (Qualcomm Scorpion is referenced).
> > 
> > In the end by far the most common (in terms of chips using it) variant
> > of armv7 is the cortex series. If another manufacturer uses their ARM
> > license to make a new core design that is compatible, good for them.
> > That doesn't stop the official armv7-a/r/m line being Cortex, and for
> > the vast majority of people out there to consistently compare the
> > armv7 designs they make to the capabilities of the "standard" ARM
> > Cortex designs.
> 
> Oh I hadn't realized cortex was an ARM name for that particular feature
> set.  

It isn't. "Cortex" is the marketing name for the current set of CPU core 
implementations designed by ARM ltd.  Calling the armv7 port "cortex" is 
equivalent to calling the i686 port "pentium" [1].

Paul

[1] Those paying attention will note that not all pentium cores are i686. The 
Cortex family includes cores that are not armv7 (Specifically armv6-m).


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007150017.59068.p...@codesourcery.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Matt Sealey
On Wed, Jul 14, 2010 at 5:21 PM, Lennart Sorensen
 wrote:
> On Wed, Jul 14, 2010 at 05:11:16PM -0500, Matt Sealey wrote:
>> It's ARM's architecture and theirs to license, not Marvell's or Qualcomm's.
>>
>
> Oh I hadn't realized cortex was an ARM name for that particular feature
> set.  In that case I can see how it makes lots of sense as the name.
> I for some stupid reason thought that was a product name of some ARM
> licensee.

It's not really a name for a feature set, so much as.. well.. If you
go grab a Cortex-A8 (i.e. a CPU) license you probably get as a job lot
the libraries to make an ARMv7-A CPU core, the VFPv3, NEON stuff. It's
part of the architecture in about the same way as AMD Vision is the
Athlon Neo line, and Intel Centrino is anything with
CPU/NB/SB/Wireless all from Intel. A brand that lets you know, these
features are in there somewhere and you can count on a certain level
of functionality within a limited subset of options. You can directly
compare Cortex-A8 "branded" processors from different vendors. This
helps ARM sell more licenses and gives companies like Genesi the
ultimate choice of silicon vendor based on the IP that the silicon
vendor adds and not the CPU core itself. We're solid on the fact that
the Cortex-A8 and Cortex-A9 are damn nice little CPUs... the choice is
in, what graphics is in there with it, does it support MS-CAN, how
many SPI buses.. :)

The other option is you go get an architecture license which lets you
go out and implement the instruction set with your own special
pipelines and bus interfaces to the cache and other bolt-ons like
custom SIMD units. You lose the ability to say it's a Cortex-A8 but
Freescale,  Samsung, TI (all cpu licensees) and Marvell, Qualcomm
(architecture licensees) have already spoken with 2 years of chips
that meet pretty much a standard set of requirements which you can
attribute to this grouping of features that ARM have dictated under
the banner of their Cortex-A8 brand even if they don't all use it. The
silicon vendors are tied in by what each other are doing and how they
can do as little software work as possible :) What a Debian port with
hard floating point ABI in use might spur (perhaps once all the
derivatives catch on, Ubuntu especially as they have their hooks in
commercial interests like Adobe) is greater adoption of a better base
level of CPU from ARM-licensee silicon vendors.

Yes, Marvell Armada 500 and 600 support a different armv7 core (it's
licensed but it's not Cortex-A, it's Sheeva P4J) and Qualcomm's
Scorpion core is on some kind of performance-enhancing drug, and even
Samsung/Intrinsity/Apple's A4 "Hummingbird" is Cortex-A8 with some
special power features and a speed bump but they don't advertise it as
ANYTHING (it's just a.. you can't please everyone's brand names or
feature sets, so we felt it's best to go up to the top level and ask,
what do ARM call this selection of features? They are all ARM
licensees so, they are in a common group and it does not pander to
individual silicon vendors (except perhaps those who took the Cortex
brand where it will be more obvious). Who will this benefit most?
Right this very second, all of them, with a little more emphasis on
ARM who get to make it look like all their processor designs are
suddenly 20-40% faster :)

In the end this port will not work on every plausible (even if never
produced) Cortex-A series variant. Some might not have an FPU - we
haven't seen one yet though. But it will work on some other compatible
architectures like Scorpion and Sheeva P4J and Hummingbird. This is a
matter for documentation in the same way armelhf would have to explain
what CPUs this actually encompasses (and what the difference is
between arm and armel in the first place). But it will support pretty
much everyone to the specifications we've recommended even if they
hate that they are not getting their brand name in there :)

-- 
Matt Sealey 
Product Development Analyst, Genesi USA, Inc.


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktimndfo2ym9wockfrz0fz3ch1fekxyn8hhrlh...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Lennart Sorensen
On Wed, Jul 14, 2010 at 05:11:16PM -0500, Matt Sealey wrote:
> It's ARM's architecture and theirs to license, not Marvell's or Qualcomm's.
> 
> Qualcomm won't be so particularly annoyed as they get a big reference
> in ARM's manuals (Qualcomm Scorpion is referenced).
> 
> In the end by far the most common (in terms of chips using it) variant
> of armv7 is the cortex series. If another manufacturer uses their ARM
> license to make a new core design that is compatible, good for them.
> That doesn't stop the official armv7-a/r/m line being Cortex, and for
> the vast majority of people out there to consistently compare the
> armv7 designs they make to the capabilities of the "standard" ARM
> Cortex designs.

Oh I hadn't realized cortex was an ARM name for that particular feature
set.  In that case I can see how it makes lots of sense as the name.
I for some stupid reason thought that was a product name of some ARM
licensee.

-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100714222114.gu2...@caffeine.csclub.uwaterloo.ca



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Hector Oron
Hello,

2010/7/15, Konstantinos Margaritis :
> First, 'cortex' is not a vendor. it's a cpu family. It's not owned by
> Marvell
> or Qualcomm, but by ARM, if they are OK with us using the name, I don't see
> why the other companies would mind, esp. if they don't offer a cpu in that
> particular family. Our targets are Cortex A8/A9-class cpus, with at least
> vfpv3 and possibly NEON - we'll provide a separate repository with NEON
> binaries where that seems appropriate. So, if Marvell/Qualcomm do provide
> Cortex A8/A9-type cpus -I don't know really, I'm not following all cpu
> models
> from every company- then I don't see a problem. If not, then the port would
> probably not work on those cpus from these companies anyway. Plain 'armel'
> could/should be used in that case.

I personally like 'cortex' as it is much clear. Nowadays we still have
users that ask what they should use 'arm' or 'armel' and what are
their differences.

Cheers,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikarwjjvjqnjl7c3ws50tszh3jryaribpxh3...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Matt Sealey
It's ARM's architecture and theirs to license, not Marvell's or Qualcomm's.

Qualcomm won't be so particularly annoyed as they get a big reference
in ARM's manuals (Qualcomm Scorpion is referenced).

In the end by far the most common (in terms of chips using it) variant
of armv7 is the cortex series. If another manufacturer uses their ARM
license to make a new core design that is compatible, good for them.
That doesn't stop the official armv7-a/r/m line being Cortex, and for
the vast majority of people out there to consistently compare the
armv7 designs they make to the capabilities of the "standard" ARM
Cortex designs.

Right now we're "fighting" over whether we call it armelhf armelfp or
whatever else. Sure, they are nice descriptive names but they do not
specify which FPU is in use in most case, or revision, or make it
known at first glance that it is the "hard" float EABI. The endianness
and ABI version are irrelevant, and only got tacked onto the end to
differentiate the arm and armel ports where someone made the decision.
The Cortex-A series specification - which even Qualcomm and Marvell
adhere to on their own cores since armv7 architecture specification
defined in that documentation dictates it - that an armv7 CPU has the
option to have a VFPv3 FPU and implement the "d16" variant at the very
least, and "d32" if you use NEON, however you implemented it.

In order to distance the port from the arm and armel ports which will
work *absolutely everywhere* under those restrictions placed by the
ports (eabi and little-endian in the latter instance) I think "cortex"
works, in lieu of calling it something confusing like "armv7" (which
IMO ARM screwed up since there is an ARM7 core and an armv7 core
(which is actually ARM11 or so) and the difference between a core and
a programmer's interface is absolutely irrelevant to a Linux port
anyway, so the numbers are just in the way of instantly knowing which
one it works on, and you're going to have to document it. How is it
worse to say "cortex" which gives a broad indication of where it will
work, and the same documentation to say "all processors in ARM's
Cortex-A series, plus Qualcomm Scorpion and whatever is in the Marvell
Dove"?

Marvell and Qualcomm should be happy that someone is actually doing
this in the mainstream, regardless of the name. Ubuntu will accept
whatever Debian did. In any case, Genesi is going to proceed with a
port under this name regardless of a decision by Debian, because we
don't want to be involved in the politiking over how many letters and
how recursive the acronym is. We consulted with the ARM Cortex-A9
product manager and he likes the idea, gave us a blessing, we're ready
to move forward.

-- 
Matt Sealey 
Product Development Analyst, Genesi USA, Inc.



On Wed, Jul 14, 2010 at 4:33 PM, Paul Brook  wrote:
>> Genesi have recommended 'cortex' as Debian architecture name and
>> 'arm-hardfloat-linux-gnueabi' as triplet. This has been in fact
>> approved and endorsed -and actually encouraged- by ARM itself, they
>> really liked the idea of having a debian-cortex port.
>
> I suspect the other architecture licensees (Marvell, Qualcomm) might not be so
> enthusiastic about this naming...
>
> Paul
>
>
> --
> To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
> Archive: http://lists.debian.org/201007142233.20904.p...@codesourcery.com
>
>


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktim8w2ujgbhb-crxqugabhjp-wpq5whufcteb...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Konstantinos Margaritis
On Thursday 15 July 2010 00:45:56 Michael Casadevall wrote:
> > I suspect the other architecture licensees (Marvell, Qualcomm) might not
> > be so enthusiastic about this naming...
> 
> Seconded. Since this port will work on all ARM SoCs that meet the
> minimal hardware requirements, it should not be named around a
> specific vendor. 

First, 'cortex' is not a vendor. it's a cpu family. It's not owned by Marvell 
or Qualcomm, but by ARM, if they are OK with us using the name, I don't see 
why the other companies would mind, esp. if they don't offer a cpu in that 
particular family. Our targets are Cortex A8/A9-class cpus, with at least 
vfpv3 and possibly NEON - we'll provide a separate repository with NEON 
binaries where that seems appropriate. So, if Marvell/Qualcomm do provide 
Cortex A8/A9-type cpus -I don't know really, I'm not following all cpu models 
from every company- then I don't see a problem. If not, then the port would 
probably not work on those cpus from these companies anyway. Plain 'armel' 
could/should be used in that case.

> Something vendor neutral like "armfp",
> "armel_hardfloat", etc. is much more appropriate (although we should
> probably try to make it clear in the vendor name that you need
> specific CPU features to fully support it).

If 'cortex' for some reason becomes unsuitable, the next option is armelvfp -
again to denote that the port is strictly for cpus that do include a vfp (as 
Matt said before in this list, armelhf though it sounds really nice, it still 
is not clear whether it supports vfp, fpa, etc.).

Regards

Konstantinos Margaritis


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007150106.14820.mar...@genesi-usa.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Michael Casadevall
On Wed, Jul 14, 2010 at 5:33 PM, Paul Brook  wrote:
>> Genesi have recommended 'cortex' as Debian architecture name and
>> 'arm-hardfloat-linux-gnueabi' as triplet. This has been in fact
>> approved and endorsed -and actually encouraged- by ARM itself, they
>> really liked the idea of having a debian-cortex port.
>
> I suspect the other architecture licensees (Marvell, Qualcomm) might not be so
> enthusiastic about this naming...
>

Seconded. Since this port will work on all ARM SoCs that meet the
minimal hardware requirements, it should not be named around a
specific vendor. Something vendor neutral like "armfp",
"armel_hardfloat", etc. is much more appropriate (although we should
probably try to make it clear in the vendor name that you need
specific CPU features to fully support it).

> Paul
>
>
> --
> To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
> Archive: http://lists.debian.org/201007142233.20904.p...@codesourcery.com
>
>


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktin64_hqbm0ew1e6rvudy4ixjnqjnlkznxjia...@mail.gmail.com



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Lennart Sorensen
On Wed, Jul 14, 2010 at 10:33:20PM +0100, Paul Brook wrote:
> I suspect the other architecture licensees (Marvell, Qualcomm) might not be 
> so 
> enthusiastic about this naming...

Does marvell and qualcomm have hardfloat on their chips?

Certainly if it will run on other chips, the name does seem very very
wrong.

-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100714214543.gt2...@caffeine.csclub.uwaterloo.ca



Re: cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Paul Brook
> Genesi have recommended 'cortex' as Debian architecture name and
> 'arm-hardfloat-linux-gnueabi' as triplet. This has been in fact
> approved and endorsed -and actually encouraged- by ARM itself, they
> really liked the idea of having a debian-cortex port.

I suspect the other architecture licensees (Marvell, Qualcomm) might not be so 
enthusiastic about this naming...

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007142233.20904.p...@codesourcery.com



cortex / arm-hardfloat-linux-gnueabi (was Re: armelfp: new architecture name for an armel variant)

2010-07-14 Thread Hector Oron
Hello,

2010/7/6, Hector Oron :
> Dear armel porters,
[...]

It is past over a week and people is wanting to start.

I would like to point you to a parallel discussion hold at recent
created Linaro group [1]

There is also a wiki page for the port [2]

The one that bootstraps the port picks the name.

Genesi have recommended 'cortex' as Debian architecture name and
'arm-hardfloat-linux-gnueabi' as triplet. This has been in fact
approved and endorsed -and actually encouraged- by ARM itself, they
really liked the idea of having a debian-cortex port.

So, thanks all for the comments and the high interest.

As Debian Developer I would like to see this port to become an
official Debian port someday and have it hosted at debian-ports.org
whenever posible. I am really trying my best for this work to be part
of the community if community wants it (and it is the right thing to
do (TM)), but you also have to understand, that Genesi (always kind
and willing to work with Debian community) would like to push this in
the best interests of performance for their products present and
future.

[1] http://lists.linaro.org/pipermail/linaro-dev/2010-July/subject.html
[2] http://wiki.debian.org/ArmHardFloatPort

-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikdnxa7bu1kqlu6-eidmkntpxhr0nbgci9ni...@mail.gmail.com



Re: armelfp: new architecture name for an armel variant

2010-07-13 Thread Aurelien Jarno
On Tue, Jul 13, 2010 at 11:49:48PM +0200, Hector Oron wrote:
> Dear Aurelien,
> 
> 2010/7/13, Aurelien Jarno :
> > One more technical issue, though not directly related to ARM: we need to
> > upgrade the hard drives on the debian-ports.org machine before accepting
> > a new port. Nothing hudge, but that may introduce a bit of delay.
> 
> Is there something I can do to help out?

It's mostly about buying the hardware and finding a moment to get there
(Paris) to do the change. OTOH if we don't add new ports we have enough
space.

> > Alternatively we can move one port (SH4 ?) to the official Debian
> > archive ;-)
> 
> Great! Those are great news! Congrats!

Nothing is done, it's just a proposal. SH4 looks the most advanced
port of the ones hosted on debian-ports.

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100713221110.gl18...@hall.aurel32.net



Re: armelfp: new architecture name for an armel variant

2010-07-13 Thread Hector Oron
Dear Aurelien,

2010/7/13, Aurelien Jarno :
> One more technical issue, though not directly related to ARM: we need to
> upgrade the hard drives on the debian-ports.org machine before accepting
> a new port. Nothing hudge, but that may introduce a bit of delay.

Is there something I can do to help out?

> Alternatively we can move one port (SH4 ?) to the official Debian
> archive ;-)

Great! Those are great news! Congrats!

Cheers,
-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikylxyuu4hkuarv-rvquuawu8sbbhvkqi5jz...@mail.gmail.com



Re: armelfp: new architecture name for an armel variant

2010-07-13 Thread Aurelien Jarno
Loïc Minier a écrit :
>  In fact, I chatted with a couple of people about this port, with the
>  proposal that we should have an ad hoc BoF at Debconf to chose a good
>  name.
> 
>  During these chats, I heard other suggestions around a new port
>  notably, optimizing for much more recent CPUs such as armv7+.  Ubuntu
>  did see quite a difference by moving all the way up to armv7 + thumb-2.
> 
>  Some technical issues to be aware of:
>  * hard float needs gcc 4.5 or a bunch of patches from 4.4; CodeSourcery
>GCC 4.4 (and hopefully soon Linaro GCC 4.4) has these
>  * hard float is quite a win on Cortex A8, but might be much less so
>on A9 -- I think on the long term we want hard float support in a
>port
>  * there's the question of which vfp version we turn on, vfpv3 is not
>supported on all armv7 SoCs (e.g. Marvell's Dove only supports
>vfpv3-d16)
>  * some libraries need porting to hard-float, such as libffi and others
> 

One more technical issue, though not directly related to ARM: we need to
upgrade the hard drives on the debian-ports.org machine before accepting
a new port. Nothing hudge, but that may introduce a bit of delay.

Alternatively we can move one port (SH4 ?) to the official Debian
archive ;-)

-- 
Aurelien Jarno  GPG: 1024D/F1BCDB73
aurel...@aurel32.net http://www.aurel32.net


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c3c90f8.4050...@aurel32.net



Re: armelfp: new architecture name for an armel variant

2010-07-13 Thread Riku Voipio
On Thu, Jul 08, 2010 at 01:06:58PM +0200, Guillem Jover wrote:
> Personally, before any further discussion I'd like to see some numbers
> with core libraries (libc, libgcc, libgmp, libatlas? etc) built with
> softfp, which eventually might be able to switch to use the hwcaps
> infrastructure in a similar way as how packages like libc6-i686 are
> handled.

The key limitation with hwcap approach is that it only extends to shared
libraries. Optimized binaries and plugins cannot be provided with hwcaps.
Things like libc-i686 are also problematic for endusers. How do I
quickly install all 686 optimized versions of libraries I already have?

> Adding a new (official) architecture variant is a huge overhead for
> everyone, it implies adding new porter boxes, patching packages (but
> hopefully not many) to handle the new arch, having someone handle the
> build daemons,

Adding a new arch creates a big overhead for *selected* people, rather than
everyone - most packagers in debian are unaffected. Multiple libraries
is not exactly zero-effort either, there could easily be hundreds libraries
we could want optimized. That is if we want to provide a *good* service
to users with VFP's rather than a lipservice. And we still wouldn't have
a vfp version of quake2.

> The lpia is a great example of an architecture variant that was a
> mistake, and should haver never been created.

LPIA was mainly a issue since people used it as "if arch=lpia then build
mobile ui". That prevented users from installing full versions of software
or trying mobile UI's in regular i386 installations.

If dpkg had subarchitecture support, lpia wouldn't have been as big
a issue. Ubuntu decided to shortcut and not add support for compatible
subarchs in dpkg, and the result was what it always is when people make
shortcuts...

Subarchs could also be useful if we wanted to build softfp abi compatible
armv6/armv7 armel builds of the whole debian repository. Of course we could do
builds without subarchs, but then users would be unable distinguish which
installed packages are for which cpu, and providing that via debian infra
would not be possible.

But the key difference with lpia and hardfloat armel is that they are not binary
compatible. And if we use it as a opportunity to target armv7+, do not really
share much of hardware either.


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100713130615.ga14...@afflict.kos.to



Re: armelfp: new architecture name for an armel variant

2010-07-12 Thread Lennart Sorensen
On Sun, Jul 11, 2010 at 03:40:16AM +0100, Wookey wrote:
> I don't think you can re-use Debian arch names. They mean something
> and if it's been used at all widely you can't just change it later (or
> at least not for 10-20 years or so). (armeb was little-enough used
> that we probably could change it). 
> 
> Yes, this would be nice, by some mechanism or other. It's currently
> harder than is helpful.
> 
> You are conflating ABI with optional build/instruction set features.
> 
> Debian arches should be reserved for _incompatible_ ABIs (OABI, EABI
> hard-float, EABI softfloat). With/without VFP and cortex A8
> optimisations is not incompatible - it's orthogonal. Each Debian arch
> has a _default_ for those (which can change over time as i386 used to
> be built for i386, then i486, now i586).

It was still i486 last I checked.

> Encoding those flavours/build options in the (incompatible ABI) 'Arch'
> name is the wrong way to go (IMHO). It's too heavyweight and intrusive and
> you get get alphabet soup. We should use other mechanisms to build and
> select optimisations and instruction-set extensions (at either
> install-time or runtime, maybe both). 
> 
> The tricky-bit here is that instruction-set extensions (VFP3, thumb2,
> NEON) and instruction set versions (v4, v5, v6a, v7) can also be
> incompatible in the sense that they won't run on hardware without
> those features. But I really think we should try to deal with that by
> correctly decorating ELF headers and making sure that the loaders and
> dpkg 'DTRT' in terms of selecting compatible stuff. Not create an arch
> for every combination.

I think there is a difference in instruction set versus calling
convention.  You should be able to mix binaries with different instruction
sets as long as your hardware supports them all.  You can't mix binaries
with different calling convensions (so where you pass arguments matters).
The ABI covers the calling convension, not the instruction set as far
as I know.

Certainly on i386 you can run i386 and i486 optimized and instruction
set binaries on an i686 processor.  You can even mix libraries with i486
instructions with programs using i686 instructions.  You can't mix them
with amd64 binaries and libraries though, because that's a different ABI
(fortunately the amd64 kernel supports both ABIs of course).  So yeah
the tricky bit is picking a name for the ABI without encoding instruction
set into it that isn't relevant to the ABI.  Arm sure is a big mess with
all those incompatible extensions to the instruction set.

-- 
Len Sorensen


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20100712175037.gp2...@caffeine.csclub.uwaterloo.ca



Re: armelfp: new architecture name for an armel variant

2010-07-12 Thread Paul Brook
> On 12/07/10 14:34, Paul Brook wrote:
> > Anything that relies on the target triplet is going to break as soon
> > as you move outside a pure Debian system. i.e. any patches relying on
> > a particular target triplet are inherently Debian specific, and IMO
> > should never be pushed upstream.
> 
> Which is why we're trying to get it agreed upstream in advance. If they
> say no, then that'll be the end of it, and we'll have to do as you suggest.

Any configure script that infers the ABI from the target triplet is 
fundamentally broken. It is wrong to assume that arm-eabi is soft-float 
and arm-hf-eabi uses the VFP ABI. We may decide to make this assumption hold 
within Debian (thought even that is somewhat questionable if you consider 
multiarch systems), but is definitely not true outside those constraints

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007121547.42159.p...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-12 Thread Andrew Stubbs

On 12/07/10 14:34, Paul Brook wrote:

Anything that relies on the target triplet is going to break as soon
as you move outside a pure Debian system. i.e. any patches relying on
a particular target triplet are inherently Debian specific, and IMO
should never be pushed upstream.


Which is why we're trying to get it agreed upstream in advance. If they
say no, then that'll be the end of it, and we'll have to do as you suggest.


The only way to reliably determine the current ABI is to ask the
compiler, probably checking for a preprocessor macro that doesn't
exist yet :-/


We have a bug to fix this:
 https://bugs.launchpad.net/gcc-linaro/+bug/602745

Once I get to this and push it upstream debian should be able to
backport it easy enough, as can anybody else.

Andrew


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c3b1d32.8090...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-12 Thread Paul Brook
> On 09/07/10 19:16, Hector Oron wrote:
>  >arm-hardfloat-linux-gnueabi
> 
> This would be the path of least resistance. You can do this without
> breaking much, and without annoying anybody upstream. You might need to
> do a few hacks to various packages that want to know which ABI is in
> use, but probably somebody would have to port these anyway.

I strongly encourage this solution.

Anything that relies on the target triplet is going to break as soon as you 
move outside a pure Debian system. i.e. any patches relying on a particular 
target triplet are inherently Debian specific, and IMO should never be pushed  
upstream.

The only way to reliably determine the current ABI is to ask the compiler, 
probably checking for a preprocessor macro that doesn't exist yet :-/

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007121434.42292.p...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-12 Thread Andrew Stubbs

On 09/07/10 19:16, Hector Oron wrote:
>arm-hardfloat-linux-gnueabi

This would be the path of least resistance. You can do this without 
breaking much, and without annoying anybody upstream. You might need to 
do a few hacks to various packages that want to know which ABI is in 
use, but probably somebody would have to port these anyway.


>armhf-linux-gnueabi

This is wrong. The processor has not changed, and you'd have to handle 
armv7hf- and many others. Ugh.


It's the OS part of the triplet that indicates binary compatibility, so 
the "proper" way to do it would be something like:


   arm-linux-gnueabihf

Of course, if you want to do it "properly", you need to get upstream 
approval first, or else you'll find yourself hung out to dry.


Also, if a toolchain supports multiple ABIs (such as CodeSourcery SG++ 
does), then the correct triplet would be whichever is the default 
configuration.


Linaro are also interested in having hard-FP, so they have asked me to 
start the discussion upstream and get a name agreed.


Andrew Stubbs
CodeSourcery (currently working with Linaro)


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4c3b01ed.7030...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-12 Thread Loïc Minier
Hey

 Just wanted to raise that it might be wise to check whether any ABI
 changes or tweaks are in the pipe upstream before kicking a new port;
 it's not happening that frequently after all, so worth the extra
 burden.

 I'm happy to take action to check that with upstream GCC folks, and
 will report back ASAP.

   Cheers,
-- 
Loïc Minier


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100712104441.ga6...@bee.dooz.org



Re: armelfp: new architecture name for an armel variant

2010-07-11 Thread Wookey
+++ Paul Brook [2010-07-11 14:16 +0100]:
> > The tricky-bit here is that instruction-set extensions (VFP3, thumb2,
> > NEON) and instruction set versions (v4, v5, v6a, v7) can also be
> > incompatible in the sense that they won't run on hardware without
> > those features. But I really think we should try to deal with that by
> > correctly decorating ELF headers and making sure that the loaders and
> > dpkg 'DTRT' in terms of selecting compatible stuff. Not create an arch
> > for every combination.
> 
> At the object file level (i.e. static linker) this is already handled by the 
> EABI object attributes.
> 
> At the executable/shared library level (i.e. dynamic linker) the EABI defines 
> PT_ARM_ARCHEXT for this purpose.  This is not currently implemented by either 
> binutils or glibc.

Right - that's the thing I was thinking it would be helpful to actually
fill in as that makes it possible for the linker to prevent you trying
to run things you can't run (with better error messages than
'instruction abort') or for it to choose alternative variants. 

Can we use this feature to mark alternate functions within a binary - e.g. a
'tubby-elf' format version of libm containing both soft-emulation and
VFP versions of functions?), or does it apply to the whole binary?

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100711133956.gd7...@dream.aleph1.co.uk



Re: armelfp: new architecture name for an armel variant

2010-07-11 Thread Paul Brook
> The tricky-bit here is that instruction-set extensions (VFP3, thumb2,
> NEON) and instruction set versions (v4, v5, v6a, v7) can also be
> incompatible in the sense that they won't run on hardware without
> those features. But I really think we should try to deal with that by
> correctly decorating ELF headers and making sure that the loaders and
> dpkg 'DTRT' in terms of selecting compatible stuff. Not create an arch
> for every combination.

At the object file level (i.e. static linker) this is already handled by the 
EABI object attributes.

At the executable/shared library level (i.e. dynamic linker) the EABI defines 
PT_ARM_ARCHEXT for this purpose.  This is not currently implemented by either 
binutils or glibc.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007111416.47476.p...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-11 Thread Paul Brook
> > The tricky-bit here is that instruction-set extensions (VFP3, thumb2,
> > NEON) and instruction set versions (v4, v5, v6a, v7) can also be
> > incompatible in the sense that they won't run on hardware without
> > those features. But I really think we should try to deal with that by
> > correctly decorating ELF headers and making sure that the loaders and
> > dpkg 'DTRT' in terms of selecting compatible stuff. Not create an arch
> > for every combination.
> 
> But then doesn't that mean that everything is "armel", so we never have a
> hope of having Debian officially support more than one combination?

Only if you assume a single set of builds per architecture.

There are several ways to allow different variants within the existing 
architecture port.  Ranging from third party repositories, though libc6-i686 
type hacks to a new dpkg field to distinguish different builds of the same 
package.

Paul


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/201007111412.05622.p...@codesourcery.com



Re: armelfp: new architecture name for an armel variant

2010-07-11 Thread Martin Guy
On 7/11/10, Bill Gatliff  wrote:
> But then doesn't that mean that everything is "armel", so we never have a
> hope of having Debian officially support more than one combination?

Well, "armel" should be as generic as possible. In an ideal world, it
would be called "arm" and run on pretty much all ARM processors. After
all, Debian's tagline is "The Universal Operating System", while
cpu-specific tweaking is the speciality of Gentoo, OpenEmbedded and so
on.

But, since "arm" was already taken, and it used emulated hardfloat
instructions instead of softfloat, the main advantage of facing the
pain and embarassment of a new port was that it would make FP 11 times
faster on all ARM CPUs, as well as permitting use of real FPUs, making
it 30 or 40 times faster.  That's the difference between encoding a
30-second MP3 in a minute or encoding it in 2 seconds.

The argument in favour of yet another ARM Debian arch (making four so
far) is the figure of another 30% being waved about. Not another
factor of 30,  just another 30%, and presumably that figure comes from
beating some worst-case situation to death.  Actual figures would be
nice.

> I'm ok with that, actually--- an ecosystem of unofficial "armel"
> repositories cropping up containing optimized packages for specific
> configurations.

Yes. That is the right way to go to leverage FPUs in the Debian
framework, and was one of the justifications for the upheavals that
the "armel" port caused.

Where does this "30%" figure that's been floated around for hardfloat
ABI over softfloat ABI with VFP instructions come from? Do we have any
actual measurements?

Wanting to politick a fourth Debian ARM architecture into dpkg, with
all the work that involves for other people, just to get a few percent
speed increase in a few packages doesn't seem worth doing.  You can
get a 3 or 4 times speed increase with an FPU-specific armel
repository, which is a mechanism well suited to supporting specific
combinations.
  It doesn't seem worth causing all that pain again just to get an
extra 30% of frames per second in glgears. It's an optimization, yes,
but look at the cost.

   M


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktikcay4wm1vgdvnt-irv5b357esxpu6fyebw4...@mail.gmail.com



Re: armelfp: new architecture name for an armel variant

2010-07-10 Thread Bill Gatliff
>
>
> The tricky-bit here is that instruction-set extensions (VFP3, thumb2,
> NEON) and instruction set versions (v4, v5, v6a, v7) can also be
> incompatible in the sense that they won't run on hardware without
> those features. But I really think we should try to deal with that by
> correctly decorating ELF headers and making sure that the loaders and
> dpkg 'DTRT' in terms of selecting compatible stuff. Not create an arch
> for every combination.
>

But then doesn't that mean that everything is "armel", so we never have a
hope of having Debian officially support more than one combination?

I'm ok with that, actually--- an ecosystem of unofficial "armel"
repositories cropping up containing optimized packages for specific
configurations.  Especially if it's true that Debian won't officially
support much more than armeb/armel.


b.g.
-- 
Bill Gatliff
b...@billgatliff.com


Re: armelfp: new architecture name for an armel variant

2010-07-10 Thread Wookey
+++ Bill Gatliff [2010-07-10 21:05 -0500]:
> 
> I would suggest to pick a generic, short name, with we could reuse
> later if it is proven that hardfloat has no sense in the next years.
> Comments?

I don't think you can re-use Debian arch names. They mean something
and if it's been used at all widely you can't just change it later (or
at least not for 10-20 years or so). (armeb was little-enough used
that we probably could change it). 

> I don't see them all becoming official Debian ports, but it would be awfully
> nice to someday have several repositories to choose from depending on whether
> you want least-common-denominator Debian for ARM, packages that have been 
> built
> with compiler optimizations for Cortex A8, or XScale, or whatever.  And then
> big/little-endian, EABI/OABI, SMP, and whatever else comes along later.

Yes, this would be nice, by some mechanism or other. It's currently
harder than is helpful.

> I think the howls of maintenance protest are somewhat justified, but you just
> can't go wrong with names like "arma8vfpel", "arm920tel", and so on. > 
> It would be really cool if we could find a way to make it easy to launch a
> buildd to create packages for, say, "A8 with VFP and EABI", 

You are conflating ABI with optional build/instruction set features.

Debian arches should be reserved for _incompatible_ ABIs (OABI, EABI
hard-float, EABI softfloat). With/without VFP and cortex A8
optimisations is not incompatible - it's orthogonal. Each Debian arch
has a _default_ for those (which can change over time as i386 used to
be built for i386, then i486, now i586).

Encoding those flavours/build options in the (incompatible ABI) 'Arch'
name is the wrong way to go (IMHO). It's too heavyweight and intrusive and
you get get alphabet soup. We should use other mechanisms to build and
select optimisations and instruction-set extensions (at either
install-time or runtime, maybe both). 

The tricky-bit here is that instruction-set extensions (VFP3, thumb2,
NEON) and instruction set versions (v4, v5, v6a, v7) can also be
incompatible in the sense that they won't run on hardware without
those features. But I really think we should try to deal with that by
correctly decorating ELF headers and making sure that the loaders and
dpkg 'DTRT' in terms of selecting compatible stuff. Not create an arch
for every combination.

Wookey
-- 
Principal hats:  Linaro, Emdebian, Wookware, Balloonboard, ARM
http://wookware.org/


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20100711024016.gb7...@dream.aleph1.co.uk



Re: armelfp: new architecture name for an armel variant

2010-07-10 Thread Bill Gatliff
>
>
> I would suggest to pick a generic, short name, with we could reuse
> later if it is proven that hardfloat has no sense in the next years.
> Comments?
>

I suggest just the opposite.  :)

We should pick a name that is clear and concise, so that it doesn't collide
with another name we'd like to use later.  For example, I'm glad we dropped
"arm" because it tells me very little in detail about _which_ ARM machines
are supported.  And there aren't a lot of people you can ask about stuff
like that who have a truly informed answer.

I don't see them all becoming official Debian ports, but it would be awfully
nice to someday have several repositories to choose from depending on
whether you want least-common-denominator Debian for ARM, packages that have
been built with compiler optimizations for Cortex A8, or XScale, or
whatever.  And then big/little-endian, EABI/OABI, SMP, and whatever else
comes along later.

I think the howls of maintenance protest are somewhat justified, but you
just can't go wrong with names like "arma8vfpel", "arm920tel", and so on.
 In an ideal world, I would prefer we go that route.  To me, names like
"armel" are just too generic to be meaningful.

I'm speaking from the perspective of someone who uses Debian (and emDebian)
across the full range of ARM machines.  For embedded applications, mostly.
 So the clarity is important to me, even if the names are somewhat
inconsistent with the tidy, generic names that Debian uses for its
architectures now.

It would be really cool if we could find a way to make it easy to launch a
buildd to create packages for, say, "A8 with VFP and EABI", and the package
scripts somehow tolerate a new ARM-based arch name that they haven't seen
before because I'm the first guy to try to optimize for a certain machine.


b.g.
-- 
Bill Gatliff
b...@billgatliff.com


Re: armelfp: new architecture name for an armel variant

2010-07-10 Thread Hector Oron
Hello,

2010/7/10, Hector Oron :
> 2010/7/10, Martin Guy :
>> Sure. So my question was "what are the technical impacts of the string
>> chosen as an arch name?" -or- "What would make it 'wrong'"?
>
> AFAICS, there are no technical impacts. If someone knows it better,
> please expand.

Rethinking on the name, Debian already has 3 names (arm, armel,
armeb). There is real use of two out of the three, but soon, there
only be one of current use. If we had picked generic names, maybe
nowadays, we could change 'armeb' defaults to another setup. The same
will happen soon with 'arm'.

I would suggest to pick a generic, short name, with we could reuse
later if it is proven that hardfloat has no sense in the next years.
Comments?

-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktilfnxhysvs3eajhuls5n3tc9nra55csrm15s...@mail.gmail.com



Re: armelfp: new architecture name for an armel variant

2010-07-10 Thread Hector Oron
Hello,

2010/7/10, Martin Guy :
> Sure. So my question was "what are the technical impacts of the string
> chosen as an arch name?" -or- "What would make it 'wrong'"?

AFAICS, there are no technical impacts. If someone knows it better,
please expand.

> Sorry, I didn't mean that literal string, I meant changes to build
> scripts where the architecture name is fished out and matched against
> a pattern beginning with "arm", for example in shell script case
> statements or in Makefiles using that awful "findstring" syntax.

Like toolchain packages, those need patching. It might be wise to add
arm* instead "arm armel armeb" in some cases, where it fits.

> Even once the bootstrapping is done, adding a new architecture to
> Debian is a lot of work.

I know, but what should we do? Step back and use another distro for
hardfloating point? I think we are more than enough "capable" people
interested to bring this port to Debian.

BTW, thanks for the hints.

-- 
 Héctor Orón

"Our Sun unleashes tremendous flares expelling hot gas into the Solar
System, which one day will disconnect us."


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/aanlktilbuyblljc3jrkl_htcabrnfrirqllbnfozc...@mail.gmail.com



  1   2   >