** Changed in: firefox (Debian) Status: New => Confirmed -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to firefox in Ubuntu. https://bugs.launchpad.net/bugs/1694425
Title: performance critical libyuv built with Os Status in firefox package in Ubuntu: New Status in firefox package in Debian: Confirmed Bug description: Imported from Debian bug http://bugs.debian.org/863672: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --aN5BOcfPQ1wkI3kOWF0Bpe7cmio8VfIEp Content-Type: multipart/mixed; boundary="SrbvOHijIbL538GHuOsAk6jhGEBxW5ENR"; protected-headers="v1" From: Julian Taylor <jtaylor.deb...@googlemail.com> To: Debian Bug Tracking System <sub...@bugs.debian.org> Message-ID: <009ef781-1692-0d59-4b28-1742166ba...@googlemail.com> Subject: performance critical libyuv built with Os --SrbvOHijIbL538GHuOsAk6jhGEBxW5ENR Content-Type: text/plain; charset=utf-8 Content-Language: en-GB Content-Transfer-Encoding: quoted-printable Package: firefox Version: 53.0.is.52.0.2-1 Severity: normal libyuv which is a performance critical library for firefix is built with -Os which is horrible for performance for it. In particular row_common.cc which contains the generic parts of the color transformation code: See: https://buildd.debian.org/status/fetch.php?pkg=3Dfirefox&arch=3Damd64&ver= =3D53.0.is.52.0.2-1&stamp=3D1492644908&raw=3D0 /usr/bin/g++ -std=3Dgnu++11 -o row_common.o -c ... -fPIC -DMOZILLA_CLIENT -include /<<PKGBUILDDIR>>/build-browser/mozilla-config.h -MD -MP -MF =2Edeps/row_common.o.pp -Wdate-time -D_FORTIFY_SOURCE=3D2 -Wall -Wc++11-compat -Wempty-body -Wignored-qualifiers -Woverloaded-virtual -Wpointer-arith -Wsign-compare -Wtype-limits -Wunreachable-code -Wwrite-strings -Wno-invalid-offsetof -Wc++14-compat -Wno-error=3Dmaybe-uninitialized -Wno-error=3Ddeprecated-declarations -Wno-error=3Darray-bounds -fno-lifetime-dse -fstack-protector-strong -Wformat -Werror=3Dformat-security -fno-schedule-insns2 -fno-lifetime-dse= -fno-delete-null-pointer-checks -fno-exceptions -fno-strict-aliasing -fno-rtti -ffunction-sections -fdata-sections -fno-exceptions -fno-math-errno -pthread -pipe -g -freorder-blocks -Os -fomit-frame-pointer /<<PKGBUILDDIR>>/media/libyuv/source/row_common.cc The problematic part is the YuvPixel function which is called in loops and in turn calls tiny clamp functions. Os disables inlining so this causes massive overhead. This is the top cpu profile on sites which e.g. display videos. 17.25% libxul.so [.] YuvPixel =E2=96=92 6.58% libxul.so [.] Clamp =E2=96=92 6.46% libxul.so [.] clamp255 The problem is not as bad as it looks as this generic code is only executed on machines that do not have SSSE3, AVX2 or NEON (see convert_argb.cc) But there are still plenty useful cpus that do not have these instruction sets and are crippled by the compiler flags used. Is it possible to compile this library with O3 to allow the compiler to vectorize it with the best available generic instruction set (e.g. SSE2 on x64). cheers, Julian Taylor --SrbvOHijIbL538GHuOsAk6jhGEBxW5ENR-- --aN5BOcfPQ1wkI3kOWF0Bpe7cmio8VfIEp Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQI7BAEBCAAlBQJZLI9HHhxqdGF5bG9yLmRlYmlhbkBnb29nbGVtYWlsLmNvbQAK CRAyzEqsAodW/yfHD/0ZBE3JGMGPM/yD3HNR4EslXMGKHxoT6JowG5TWI9UHy+5U utj6vgrZ3hDEefGbI+UCDPehDK8tAlSTCI/wFxuqOO4+AB7EQia4bA2Agt7f3xfV Y458uBPG860j7AEhgAtLHGN5TAZUwN5jegXj12qBtR1wCrk5gBCRDC6+wy+cqiE6 tApXdeM+3XsdYBS7udezJkw6NyhzMhiRebEwnB9wpztBIz/GSDxaftF0zLmrN4b8 CYNVPH426/YAbDkzzAphKJnlcLoELxeU42xVd2G34rPA8NoDbuw2J3ZV4oIGi+/v S2XZsLkmcxFRb8JndfuayQtuGyMziPs4W2QDn3sZsh350hg77+V9/hYosxfnQc5d Eetuu4rX4dGLdGFmq2fkrsB08G37Z6kl31B1TtvenZ2ejSGWoxc1gkHVmFfSDmCk nfzuM5m+T518+7WZJ1HbEzI3ISQz1KtrKRPHLQi73N0qMRk6JZe4u3FVAOdxJYx9 QYqEKYaGLVMa3A3Nuwtn3QI4bXC3OoJSdHEl5wxDUV/zvruAsFhWYKl9QjqNo8Zn 2UWbr/hd3+2Lv/vVJLBr41AISi/6Ybs47FnloIqvEMlQDxlf1d4e2fLoqmal0oFv QT3mIXWjBmf0f52tsYSRGNw4OiYPx/6iaMET9WhQm8K5lKSTgkjv04s9cad90A== =P1R4 -----END PGP SIGNATURE----- --aN5BOcfPQ1wkI3kOWF0Bpe7cmio8VfIEp-- To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/firefox/+bug/1694425/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp