diff options
author | Sergei Trofimovich <slyfox@gentoo.org> | 2016-08-30 12:10:54 +0100 |
---|---|---|
committer | Sergei Trofimovich <siarheit@google.com> | 2016-08-30 12:11:40 +0100 |
commit | a5d26f26d33bc04f31eaff50b7d633444192b4cb (patch) | |
tree | 7c796946c0fb6081904e05b7fbd03ffa5bd55afc /docs | |
parent | 9d175605e52fd0d85f2548896358d96ee441c7e4 (diff) | |
download | haskell-a5d26f26d33bc04f31eaff50b7d633444192b4cb.tar.gz |
rts: enable parallel GC scan of large (32M+) allocation area
Parallel GC does not scan large allocation area (-A)
effectively as it does not do work stealing from nursery
by default.
That leads to large imbalance when only one of threads
overflows allocation area: most of GC threads finish
quickly (as there is not much to collect) and sit idle
waiting while single GC thread finishes scan of single
allocation area for that thread.
The patch enables work stealing for (equivalent of -qb0)
allocation area of -A32M or higher.
Tested on a highlighting-kate package from Trac #9221
On 8-core machine the difference is around 5% faster
of wall-clock time. On 24-core VM the speedup is 20%.
Signed-off-by: Sergei Trofimovich <siarheit@google.com>
Test Plan: measured wall time and GC parallelism on highlighting-kate build
Reviewers: austin, bgamari, erikd, simonmar
Reviewed By: bgamari, simonmar
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D2483
GHC Trac Issues: #9221
Diffstat (limited to 'docs')
-rw-r--r-- | docs/users_guide/runtime_control.rst | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/docs/users_guide/runtime_control.rst b/docs/users_guide/runtime_control.rst index 1ae51ddc49..3968065865 100644 --- a/docs/users_guide/runtime_control.rst +++ b/docs/users_guide/runtime_control.rst @@ -449,7 +449,7 @@ performance. .. rts-flag:: -qb <gen> - :default: 1 + :default: 1 for ``-A`` < 32M, 0 otherwise :since: 6.12.1 Use load-balancing in the parallel GC in generation ⟨gen⟩ and higher. |