On Thursday, January 31, 2013 12:40:13 PM UTC-8, Ehsan Akhgari wrote:
> On 2013-01-31 2:49 PM, David Anderson wrote:
> 
> > 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.
> 
> 
> 
> As I explained in my first email, this thread does not cover PGO in the 
> 
> JS engine.
> 
> 
> 
> Cheers,
> 
> Ehsan

I have debugged such crashes outside of JS too. I expect PGO to be unstable 
everywhere.

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

Reply via email to