New issue
Advanced search Search tips

Issue 800809 link

Starred by 3 users

Issue metadata

Status: Archived
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac , Fuchsia
Pri: 1
Type: Bug



Sign in to add a comment

Massive renderer (GC?) pauses on several common websites

Project Member Reported by roc...@chromium.org, Jan 10 2018

Issue description

I noticed this happening a few days ago on sites like YouTube and Facebook, and I've managed to get a consistent repro on Google Calendar by simply loading it -- though I guess mileage may vary based on calendar contents. Not sure if the pauses I've been experiencing are all related, but I'd venture a guess that they are.

Took a trace during the Calendar hang and it looks like a massive GC pause based on the fact that there is a 9-second main-thread task with src_func="ScheduleIdleGC", but I may be interpreting this incorrectly.

 

Comment 1 by roc...@chromium.org, Jan 10 2018

Oh - this is on dev channel btw. Attempting to attach my trace, but I've encountered yet another bug wherein traces are not saving properly. :/

Comment 2 by roc...@chromium.org, Jan 10 2018

There we go!
trace.json.gz
2.3 MB Download

Comment 3 by roc...@chromium.org, Jan 10 2018

Cc: tdres...@chromium.org
Adding a speed person too, as I think this could use more eyes.
Cc: haraken@chromium.org jbroman@chromium.org
Components: -Blink>JavaScript>GC Blink>MemoryAllocator>GarbageCollection
This isn't a v8 GC, it's an oilpan GC (I think). CCing some oilpan folks.
Can you take another trace with the blink_gc category enabled?

Comment 6 by roc...@chromium.org, Jan 10 2018

Yeah, though it doesn't really add any more data other than probably confirming blink GC within invokePreFinalizers.


trace-blink-gc.json.gz
2.8 MB Download

Comment 7 by roc...@chromium.org, Jan 10 2018

Labels: M-65
I can also at least confirm that it appears to be limited to M65+. No success attempting to repro in beta or stable.
Why is the CPU time so low? Looks like it's getting consistently descheduled somehow.

Comment 9 by roc...@chromium.org, Jan 10 2018

I am confused by the fact that performIdleGC CPU is consistent with wall time, yet invokePreFinalizers CPU time is not - despite essentially spanning the full extent of performIdleGC. Is that even possible?
I'm not seeing what you describe. performIdleGC also appears to have tiny CPU time.

Title			ThreadState::performIdleGC
Category		blink_gc
User Friendly Category	other
Start			5,432.827 ms
Wall Duration		8,888.681 ms
CPU Duration		7.961 ms
Self Time		0.268 ms
CPU Self Time		0.267 ms
You are correct. I'm just bad at reading.

So if it's getting descheduled a bunch... IO or lock contention?
Cc: altimin@chromium.org
There's something media related happening:
src_file	"../../media/base/serial_runner.cc"
src_func	"RunOnTaskRunner"

It's also descheduled though.

The CPU usage graph at the top makes it look like there isn't much going on.

Cc: keishi@chromium.org
FWIW invokePreFinalizers should be very lightweight.

Who is the right owner for this?

Presumably someone with context on Oilpan GC?
FWIW it seems like this has disappeared since my last dev channel update.
Status: Archived (was: Untriaged)
Plase reopen if this is a still a problem.

Component: Blink>MemoryAllocator>GarbageCollection is the right one and should be triaged (we are improving the process right now).

Sign in to add a comment