Re: [OpenWrt-Devel] Toolchain issue: Significant decrease in performance of binaries produced by Barrier Breaker relative to Attitude Adjustment
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
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
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
-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
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
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
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
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
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
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