Page MenuHomeSolus

Improve PGO data generation & enable perf switches
ClosedPublic

Authored by joebonrichie on Mar 16 2018, 9:03 PM.

Details

Summary

Packaging Changes

Firefox needs to run during a PGO build to generate useful data,
use xvfb-run to provide a virtual X11 framebuffer to allow it
to do so.

Add --enable-rust-simd, even though SIMD is not in upstream rust yet
the firefox tarball provides it's own simd cargo crate to enable SIMD
instructions

Add --enable-elf-hack, more information about this can be found on the mozilla
wiki here

Add --enable-stylo, since we are matching offical tarball performance, let's enable this.

Remove the flags workaround for GCC6, they are no longer required

Signed-off-by: Joey Riches <josephriches@gmail.com>

Test Plan

Run various benchmarks as well as popular sites including youtube and twitch.tv

Diff Detail

Repository
R755 firefox
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

joebonrichie created this revision.Mar 16 2018, 9:03 PM
joebonrichie requested review of this revision.Mar 16 2018, 9:03 PM

Benchmarks

Solus perf = --enable-elf-hack, --enable-rust-simd, --enable-stylo
Solus perf & Fixed PGO = this patch

browserbench.org/JetStream/

Solus before: 185.88
Solus Perf: 187.62
Solus Perf & Fixed PGO: 200.84
Official tarball: 200.09

www.robohornet.org/#

Solus before: 0158.73
Solus Perf: 0152.46
Solus Perf & Fixed PGO: 0174.63
Official tarball: 0171.76

browserbench.org/Speedometer2.0/

Solus before: 51.4
Solus Perf: DNF
Solus Perf & Fixed PGO: 68.2
Official tarball: 67.6

browserbench.org/Speedometer/

Solus before: 81.8
Solus Perf: 83.31
Solus Perf & Fixed PGO: 101
Official tarball: 97.63

Should be noted that this is kind of hacky and xvfb-run complains about missing ~/.Xauthority file and firefox complains about lack of dbus when it's running. In the future solbuild should provide X11 and dbus access when requested as noted in T4235, but, hey, it works.

taaem added a subscriber: taaem.Mar 16 2018, 11:45 PM
ermo awarded a token.Mar 17 2018, 1:57 PM
bwat47 added a subscriber: bwat47.Mar 20 2018, 12:14 AM
joebonrichie retitled this revision from Fix PGO data generation & enable perf switches to Improve PGO data generation & enable perf switches.

Change title fix -> improve

Waiting for review on this, do you want more testing with perf switches disabled?

The only question is, is it well tested and stable?

joebonrichie added a comment.EditedMar 23 2018, 10:35 PM

I haven't had any problems with it with using it as a daily driver since making this change, I'm mostly worried about people who had issues before with stylo enabled with specific hardware and whether stylo has matured since then.

sunnyflunk accepted this revision.Mar 23 2018, 10:56 PM

I waited till sync, so it's got a week. I'm hoping that since stylo is rust that the simd changes will fix any of those issues.

This revision is now accepted and ready to land.Mar 23 2018, 10:56 PM
This revision was automatically updated to reflect the committed changes.