I'm still thinking about PGO:

1. I did another test. I wanted to know the effect on games, so I played 
BananaBread and eyeballed modal fps. (If anyone knows of a more accurate way to 
measure fps in the game, let me know.) I got:

 opt  38
 pgo  41

Similar magnitude to other domains. Super-unscientific test, though.

2. PGO-related topcrashes

The reason I started studying PGO was that PGO-related topcrashes are really 
vexing for developers, and I wanted to be sure dealing with all that vexation 
was actually paying off. It seems that it is, but now I want to ask, can it vex 
less?

The lifecycle of a PGO-related topcrash seems to be something like this:

 1. Someone changes the code base in a way that exposes a bug in the PGO 
compiler system.
 2. A topcrash gets noticed.
 3. Developers look at the topcrash and conclude it is a PGO bug.
 4. Developers patch code around the crash point by turning off optimizations 
locally, or randomly frobulating the code.
 5. The topcrash goes away.

I assume that some time after that:

 6. Someone changes the code base in a way so that that site no longer triggers 
the compiler bug. The random change or deoptimization changes.

What I'm getting at is that it seems like we are adding permanent gunk to the 
code base that only temporarily fixes problems. I can't be sure that's what's 
happening, but it seems plausible. Anyway, I am fairly sure we are currently 
playing whack-a-mole.

 (a) How about building Windows with a newer version of MSVC, say 2012? (What 
version are we using now, anyway? The build instructions page says 2010 is 
official, but a tbpl log showed Visual Studio 9.0 on the path.) Maybe they have 
fixed bugs in PGO.

 (b) Failing that, how about not fixing PGO bugs unless they are reproducible, 
on a trial basis? If my lifecycle theory is correct, then the total crash rate 
would stay roughly constant. And I assume that if the crash rate doesn't 
actually go up, that's OK. If it does, and especially if that can be shown to 
be due to an increasing number due to outstanding PGO bugs, that would show 
that we do benefit from fixing them.

Dave
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to