On Thursday, January 31, 2013 8:54:50 AM UTC-8, Ehsan Akhgari wrote:
> On 2013-01-31 10:59 AM, ... wrote:
> 
> >> As a historical note, when we first enabled PGO support for Windows our
> 
> >> profiling scenario was "start Firefox, wait 10 seconds, shut down
> 
> >> Firefox". Enabling PGO with this profiling run provided us with 20-25%
> 
> >> perf improvements in many of our benchmarks on Talos. We later changed
> 
> >> it to the current set of profiling data[1] (Blueprint CSS samples, the
> 
> >> SunSpider benchmark), and there was almost no visible change in the
> 
> >> Talos numbers.
> 
> >
> 
> > This seems to indicate our current coverage isn't oriented toward
> 
> > performance gains users will see, and that there are potential
> 
> > gains to be found. All the more reason to keep pgo around a while
> 
> > longer and figure out how we can simplify testing with different test
> 
> > runs.
> 
> 
> 
> There are costs to keeping PGO enabled, and while we can argue that we 
> 
> _could_ be getting more PGO gain by providing a better profile, one 
> 
> could counter-argue that engineers can spend more time optimizing other 
> 
> things if they didn't need to find the perfect profile (which is sort of 
> 
> a black magic.)
> 
> 
> 
> >> We should also remind that there would be an infra load win from
> 
> >> disabling Windows PGO builds.
> 
> >
> 
> > IMHO, if it's a choice between infra load and better performance
> 
> > in the end product, performance should win out.
> 
> 
> 
> I agree, infrastructure load is not relevant to this conversation. 
> 
> There are tons of other ways to improve that besides disabling PGO.
> 
> 
> 
> Cheers,
> 
> Ehsan

I'm weighing in a little late here, but from the JS team's perspective, PGO is 
a nightmare. It introduces subtle compiler bugs (often topcrashes) that are 
extremely difficult to track down. We end up littering the codebase with de-PGO 
hints. To date I have yet to see a PGO-only crash that manifests in the JS 
engine, that was not directly caused by PGO.

Related, I don't think MOZ_LIKELY/UNLIKELY are either a good idea or would 
cover the PGO gap. PGO does way more than just branch prediction, it has all 
sorts of speculative partial inlining and register allocation tricks. (That, 
unfortunately, are buggy.)

Anyway, disabling PGO is music to my ears - I'd bet money that our overall 
crash-stats will improve.

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

Reply via email to