New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 905304 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 14
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Task



Sign in to add a comment

Locate paint-time improvement on gmail

Project Member Reported by pdr@chromium.org, Nov 14

Issue description

This is a tracking bug for running a few pinpoint jobs to try to locate the cause of a paint-time progression.
 
Cc: dtapu...@chromium.org
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/14f3cf40140000

Use TLS to stash the thread id on linux. by dtapuska@chromium.org
https://chromium.googlesource.com/chromium/src/+/5efc4727bcd983d81b3ae676b184bddcaac3095b
thread_raster_cpu_time_per_frame: 0.009404 → 0.006953 (-0.002451)

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions

Benchmark documentation link:
  https://bit.ly/rendering-benchmarks
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/138f034be40000

Use TLS to stash the thread id on linux. by dtapuska@chromium.org
https://chromium.googlesource.com/chromium/src/+/5efc4727bcd983d81b3ae676b184bddcaac3095b
thread_total_all_cpu_time_per_frame: 2.976 → 2.877 (-0.09954)

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions

Benchmark documentation link:
  https://bit.ly/rendering-benchmarks
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/178ebd27e40000

Use TLS to stash the thread id on linux. by dtapuska@chromium.org
https://chromium.googlesource.com/chromium/src/+/5efc4727bcd983d81b3ae676b184bddcaac3095b
thread_raster_cpu_time_per_frame: 0.08845 → 0.08362 (-0.004822)

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions

Benchmark documentation link:
  https://bit.ly/rendering-benchmarks
Status: Fixed (was: Assigned)
dtapuska@chromium.org, it's pretty clear you caused several improvements. Great work!

See the above links for the specific benchmarks.



I don't see any indications that this change was responsible for the paint-time drop we saw in UKM data on gmail though. I'm afraid it looks like we don't have perf tests that cover the improvement we saw in the wild. I'm going to close this as we will have to use another approach.
Cc: skyos...@chromium.org alexclarke@chromium.org
pdr@ That is great there were concrete metrics improved.
Can you tell me where the call sites of these calls were? (blink should already be caching all this stuff in TLS, so it really possibly means that the gpu or compositor was making swi calls)

I wonder if we should have a similar change for getpid() which glibc stopped caching.
I am not sure where the calls are from; I just ran these pinpoint jobs looking for the cause of another progression and they ended up showing your change as being the cause.
Are these benchmarks calculated from tracing? The change definitely did make tracing more lightweight avoiding at least two swis for every logged trace macro.
I think most of our benchmarks are tracing-based. If this made tracing more lightweight, that's a plausible explanation for this progression. Alas :/

Sign in to add a comment