WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
180249
The GC load balancer should not rely on a global mutex
https://bugs.webkit.org/show_bug.cgi?id=180249
Summary
The GC load balancer should not rely on a global mutex
Filip Pizlo
Reported
2017-12-01 08:32:06 PST
The Heap::m_markingMutex was a great first attempt at synchronizing a load balancer. It's amazing how long that thing has survived. But profiling shows that this is one of the most (and sometimes the absolute most) contended mutex in WebKit when running Speedometer.
Attachments
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2017-12-01 08:33:10 PST
@Ryosuke: seems like we have a Speedometer perf opportunity from giving the GC a proper load balancer instead of our current single-global-lock-protecting-a-stack algorithm. If load balancers were like 3D engines, then our GC uses the Wolfenstein 3D of load balancers. I think we can do better.
Ryosuke Niwa
Comment 2
2017-12-03 11:55:59 PST
I guess it would be useful to know how much wall time is spent in GC during Speedometer.
Filip Pizlo
Comment 3
2017-12-03 14:21:25 PST
(In reply to Ryosuke Niwa from
comment #2
)
> I guess it would be useful to know how much wall time is spent in GC during > Speedometer.
I don’t have a number, but in the past it has responded to GC optimizations and regresssions about the same way as the average of other JS benchmarks. I just got a 1% Speedometer speedup from doing something else to the GC. “Time spent in GC” is not an easily-defined number because the GC is concurrent.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug