Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-31 Thread Hannu Nyman

 This could be a problem caused by mips16. We use that in BB to create
smaller binaries. but Jonas saw a performance problem in some
applications, mostly stuff doing crypto (big integer calculations).

Have developers evaluated the pros and cons of using mips16 as the default?

It was made the default along the switch to gcc4.8, but I do not remember 
seeing any extensive discussion about that change. Yes, it produces smaller 
binaries, but apparently with a visible performance hit.


The performance problems can materialize in strange ways, e.g. ssh login time 
to dropbear doubled (increased by several seconds), 
https://dev.openwrt.org/ticket/15209 . So, it is not just about gradual 
performance hit, but it can apparently cause visible annoyances.


Now that the performance issues have been noticed, is there any plan for 
developers to systematically go through the core apps to check the impact and 
turn mips16 off for problematic apps? I guess that based by evedence so far, 
it might be turned off for all math-intensive apps like crypto libraries, but 
there may be also others (maybe voice  image encoding/decoding?)


To have small binaries is nice, but I guess that a growing amount of Openwrt 
users are power users with modern routers with more flash space and having 
interest for VPNs etc. And for them mips16 may have brought more trouble than 
benefits.

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Matthias Schiffer
Hi,
I've noticed that the code produced by Barrier Breaker's toolchain
sometimes has significantly worse performance that that built by
Attitude Adjustment.

I can see this extremely with the VPN tool fastd developed and
maintained by me: On the same Barrier Breaker system, a binary built by
the default Barrier Breaker toolchain (GCC 4.8-linaro) gets about 35%
less throughput than one built with Attitude Adjustment (GCC
4.6-linaro). With the 4.6-linaro toolchain of Barrier Breaker, I still
get 20% worse performance than with the 4.6-linaro of Attitude Adjustment.

Do you have any suggestions what I can do to solve or analyze the issue?
Any compiler flags I should try fiddling with? Optimizing with -Os vs.
-O3 doesn't seem to make a difference.

Thanks,
Matthias



signature.asc
Description: OpenPGP digital signature
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Matthias Schiffer
On 08/30/2014 06:42 PM, Matthias Schiffer wrote:
 Hi,
 I've noticed that the code produced by Barrier Breaker's toolchain
 sometimes has significantly worse performance that that built by
 Attitude Adjustment.
 
 I can see this extremely with the VPN tool fastd developed and
 maintained by me: On the same Barrier Breaker system, a binary built by
 the default Barrier Breaker toolchain (GCC 4.8-linaro) gets about 35%
 less throughput than one built with Attitude Adjustment (GCC
 4.6-linaro). With the 4.6-linaro toolchain of Barrier Breaker, I still
 get 20% worse performance than with the 4.6-linaro of Attitude Adjustment.
 
 Do you have any suggestions what I can do to solve or analyze the issue?
 Any compiler flags I should try fiddling with? Optimizing with -Os vs.
 -O3 doesn't seem to make a difference.
 
 Thanks,
 Matthias
 

I forgot to tell that this is on ar71xx.




signature.asc
Description: OpenPGP digital signature
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Hauke Mehrtens
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 08/30/2014 06:45 PM, Matthias Schiffer wrote:
 On 08/30/2014 06:42 PM, Matthias Schiffer wrote:
 Hi, I've noticed that the code produced by Barrier Breaker's
 toolchain sometimes has significantly worse performance that that
 built by Attitude Adjustment.
 
 I can see this extremely with the VPN tool fastd developed and 
 maintained by me: On the same Barrier Breaker system, a binary
 built by the default Barrier Breaker toolchain (GCC 4.8-linaro)
 gets about 35% less throughput than one built with Attitude
 Adjustment (GCC 4.6-linaro). With the 4.6-linaro toolchain of
 Barrier Breaker, I still get 20% worse performance than with the
 4.6-linaro of Attitude Adjustment.
 
 Do you have any suggestions what I can do to solve or analyze the
 issue? Any compiler flags I should try fiddling with? Optimizing
 with -Os vs. -O3 doesn't seem to make a difference.
 
 Thanks, Matthias
 
 
 I forgot to tell that this is on ar71xx.

This could be a problem caused by mips16. We use that in BB to create
smaller binaries. but Jonas saw a performance problem in some
applications, mostly stuff doing crypto (big integer calculations).

Can you try to build the BB toolchain without the mips16 feature in
target/linux/ar71xx/Makefile and try your application again.

Hauke

-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAEBAgAGBQJUAgDuAAoJEIZ0px9YPRMyoaIP/2poElmUMxw/LyDL4I5Il/c3
eYsqGmB13PTYhnRBnHKfokG/1us43Q6bZgMx6AqktEEp+rCGfB4N771ed653YEwU
q2SiKIvMU+7z3bPfON9tie6lRA3Ubv/BlSXHS/PKFpJ3H0veywitvqDRhywEfsD6
JCo44Vh5o6p5CTCc3HFJ5FvH/UUiNBEtvSSAbMOBM/z+cO1dJL40yFKf49WLL9BI
hTVXaUCbQpBFlISl8202IZJkxNDvpytHMRMPmy1ntweHalOXhmHYEL1BsJszxeZO
ntmCIa6lhZnA2JvzZda/drle6Wo9t51QUH/DCf9xL6FgdTyWnEE1QUkJpvkxJlH+
2iZIpK0FVQ3QFxFQ1eFloSjiiGZUbkhAGknQXLRa/6FfU/QNGSzysgqRrtK8Ekji
RdUfQLTKrq6r8vwOGVo2QwB0tAKjoCOm8PTGyctGcIXAZqs5+jb8SdVmHirmR5dm
1IVGIbsI4UvN2lkbgz/Xkz0y0E8en0uo/4/vclv62RzC6PYh0j7GJoI0CUJUDEyI
h5ZFbAj54F3v+riEB0YYPKBeS9CF2Gv6PVTGc1szIkc7lvURDk3aMiPc/hwqQ6E7
RFepHBQ0HLf8wzXa6d709P5/xEWVlER4kbWOI4Iij84fyUbLdI6pASnihX0GaP6h
RRQ5Z7nUAcns46VMtAzp
=e4/e
-END PGP SIGNATURE-
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Felix Fietkau
On 2014-08-30 18:45, Matthias Schiffer wrote:
 On 08/30/2014 06:42 PM, Matthias Schiffer wrote:
 Hi,
 I've noticed that the code produced by Barrier Breaker's toolchain
 sometimes has significantly worse performance that that built by
 Attitude Adjustment.
 
 I can see this extremely with the VPN tool fastd developed and
 maintained by me: On the same Barrier Breaker system, a binary built by
 the default Barrier Breaker toolchain (GCC 4.8-linaro) gets about 35%
 less throughput than one built with Attitude Adjustment (GCC
 4.6-linaro). With the 4.6-linaro toolchain of Barrier Breaker, I still
 get 20% worse performance than with the 4.6-linaro of Attitude Adjustment.
 
 Do you have any suggestions what I can do to solve or analyze the issue?
 Any compiler flags I should try fiddling with? Optimizing with -Os vs.
 -O3 doesn't seem to make a difference.
 
 Thanks,
 Matthias
 
 
 I forgot to tell that this is on ar71xx.
Did you try disabling mips16 support for fastd?

PKG_USE_MIPS16:=0

- Felix
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Matthias Schiffer
On 08/30/2014 06:54 PM, Felix Fietkau wrote:
 On 2014-08-30 18:45, Matthias Schiffer wrote:
 On 08/30/2014 06:42 PM, Matthias Schiffer wrote:
 Hi,
 I've noticed that the code produced by Barrier Breaker's toolchain
 sometimes has significantly worse performance that that built by
 Attitude Adjustment.

 I can see this extremely with the VPN tool fastd developed and
 maintained by me: On the same Barrier Breaker system, a binary built by
 the default Barrier Breaker toolchain (GCC 4.8-linaro) gets about 35%
 less throughput than one built with Attitude Adjustment (GCC
 4.6-linaro). With the 4.6-linaro toolchain of Barrier Breaker, I still
 get 20% worse performance than with the 4.6-linaro of Attitude Adjustment.

 Do you have any suggestions what I can do to solve or analyze the issue?
 Any compiler flags I should try fiddling with? Optimizing with -Os vs.
 -O3 doesn't seem to make a difference.

 Thanks,
 Matthias


 I forgot to tell that this is on ar71xx.
 Did you try disabling mips16 support for fastd?
 
 PKG_USE_MIPS16:=0
 
 - Felix
 

That actually did the trick when applying it to the package nacl which
contains some of the crypto algorithms used by fastd :) I'll update nacl
with the option added.

Thanks,
Matthias



signature.asc
Description: OpenPGP digital signature
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Felix Fietkau
On 2014-08-30 18:51, Hauke Mehrtens wrote:
 On 08/30/2014 06:45 PM, Matthias Schiffer wrote:
 On 08/30/2014 06:42 PM, Matthias Schiffer wrote:
 Hi, I've noticed that the code produced by Barrier Breaker's
 toolchain sometimes has significantly worse performance that that
 built by Attitude Adjustment.
 
 I can see this extremely with the VPN tool fastd developed and 
 maintained by me: On the same Barrier Breaker system, a binary
 built by the default Barrier Breaker toolchain (GCC 4.8-linaro)
 gets about 35% less throughput than one built with Attitude
 Adjustment (GCC 4.6-linaro). With the 4.6-linaro toolchain of
 Barrier Breaker, I still get 20% worse performance than with the
 4.6-linaro of Attitude Adjustment.
 
 Do you have any suggestions what I can do to solve or analyze the
 issue? Any compiler flags I should try fiddling with? Optimizing
 with -Os vs. -O3 doesn't seem to make a difference.
 
 Thanks, Matthias
 
 
 I forgot to tell that this is on ar71xx.
 
 This could be a problem caused by mips16. We use that in BB to create
 smaller binaries. but Jonas saw a performance problem in some
 applications, mostly stuff doing crypto (big integer calculations).
 
 Can you try to build the BB toolchain without the mips16 feature in
 target/linux/ar71xx/Makefile and try your application again.
There's no need to disable it for the target, since it can be disabled
for individual packages.

- Felix
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Nikos Mavrogiannopoulos
On Sat, 2014-08-30 at 20:10 +0200, Felix Fietkau wrote:

  This could be a problem caused by mips16. We use that in BB to create
  smaller binaries. but Jonas saw a performance problem in some
  applications, mostly stuff doing crypto (big integer calculations).
  Can you try to build the BB toolchain without the mips16 feature in
  target/linux/ar71xx/Makefile and try your application again.
 There's no need to disable it for the target, since it can be disabled
 for individual packages.

So should all packages that contain performance critical code have that
flag? 35% performance penalty is too high for such systems.

regards,
Nikos
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Felix Fietkau
On 2014-08-30 21:27, Nikos Mavrogiannopoulos wrote:
 On Sat, 2014-08-30 at 20:10 +0200, Felix Fietkau wrote:
 
  This could be a problem caused by mips16. We use that in BB to create
  smaller binaries. but Jonas saw a performance problem in some
  applications, mostly stuff doing crypto (big integer calculations).
  Can you try to build the BB toolchain without the mips16 feature in
  target/linux/ar71xx/Makefile and try your application again.
 There's no need to disable it for the target, since it can be disabled
 for individual packages.
 
 So should all packages that contain performance critical code have that
 flag? 35% performance penalty is too high for such systems.
Some kinds of code may be more affected than others. For crypto code we
should definitely disable mips16, as it seems to be most affected.

- Felix
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment

2014-08-30 Thread Fernando Frediani
Well done guys. These type of findings that makes significant different 
on embedded systems.


Fernando

On 30/08/2014 20:33, Felix Fietkau wrote:

On 2014-08-30 21:27, Nikos Mavrogiannopoulos wrote:

On Sat, 2014-08-30 at 20:10 +0200, Felix Fietkau wrote:


This could be a problem caused by mips16. We use that in BB to create
smaller binaries. but Jonas saw a performance problem in some
applications, mostly stuff doing crypto (big integer calculations).
Can you try to build the BB toolchain without the mips16 feature in
target/linux/ar71xx/Makefile and try your application again.

There's no need to disable it for the target, since it can be disabled
for individual packages.

So should all packages that contain performance critical code have that
flag? 35% performance penalty is too high for such systems.

Some kinds of code may be more affected than others. For crypto code we
should definitely disable mips16, as it seems to be most affected.

- Felix
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel