Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(88)

Issue 106260045: code review 106260045: runtime: simpler and faster GC (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
10 years, 3 months ago by dvyukov
Modified:
10 years, 2 months ago
Reviewers:
gobot, khr, dave
CC:
golang-codereviews, rsc, tux21b, khr1, khr, rlh
Visibility:
Public.

Description

runtime: simpler and faster GC Implement the design described in: https://docs.google.com/document/d/1v4Oqa0WwHunqlb8C3ObL_uNQw3DfSY-ztoA-4wWbKcg/pub Summary of the changes: GC uses "2-bits per word" pointer type info embed directly into bitmap. Scanning of stacks/data/heap is unified. The old spans types go away. Compiler generates "sparse" 4-bits type info for GC (directly for GC bitmap). Linker generates "dense" 2-bits type info for data/bss (the same as stacks use). Summary of results: -1680 lines of code total (-1000+ in mgc0.c only) -25% memory consumption -3-7% binary size -15% GC pause reduction -7% run time reduction

Patch Set 1 #

Patch Set 2 : diff -r 90616fa61ef4 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 3 : diff -r 4af9a710ed44 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 4 : diff -r 4af9a710ed44 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 5 : diff -r 4af9a710ed44 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 6 : diff -r fbd798b1842c https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 7 : diff -r fbd798b1842c https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 8 : diff -r 3e4c66709a62 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 9 : diff -r 0f766178488c https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 10 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 11 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 12 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 13 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 14 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 15 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 16 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 17 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 18 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 19 : diff -r b8fa05f72494 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 20 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 21 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 22 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 23 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 24 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 25 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 26 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 27 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 28 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 29 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 30 : diff -r aa480930f37e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 31 : diff -r 1a9d124153b9 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 32 : diff -r 1a9d124153b9 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 33 : diff -r d339b01e3c31 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 34 : diff -r 690153652172 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 35 : diff -r 690153652172 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 36 : diff -r 690153652172 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 37 : diff -r 690153652172 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 38 : diff -r 9562b65a3c51 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 39 : diff -r 914f3530fe9e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 40 : diff -r 914f3530fe9e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 41 : diff -r 914f3530fe9e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 42 : diff -r 914f3530fe9e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 43 : diff -r 914f3530fe9e https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 44 : diff -r 82cbf874e066 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 45 : diff -r 82cbf874e066 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 46 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 47 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 48 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 49 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 50 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 51 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 52 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 53 : diff -r da1002b78b19 https://dvyukov%40google.com@code.google.com/p/go/ #

Total comments: 24

Patch Set 54 : diff -r 2fa7b95cf34c https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 55 : diff -r 2fa7b95cf34c https://dvyukov%40google.com@code.google.com/p/go/ #

Total comments: 21

Patch Set 56 : diff -r 2fa7b95cf34c https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 57 : diff -r 2fa7b95cf34c https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 58 : diff -r 2fa7b95cf34c https://dvyukov%40google.com@code.google.com/p/go/ #

Total comments: 38

Patch Set 59 : diff -r 14c560b87afb https://dvyukov%40google.com@code.google.com/p/go/ #

Patch Set 60 : diff -r b6a42b0aeef6 https://dvyukov%40google.com@code.google.com/p/go/ #

Total comments: 2

Patch Set 61 : diff -r d4f4fb0e307c https://dvyukov%40google.com@code.google.com/p/go/ #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1625 lines, -2406 lines) Patch
M src/cmd/gc/go.h View 2 chunks +1 line, -1 line 0 comments Download
M src/cmd/gc/plive.c View 2 chunks +2 lines, -3 lines 0 comments Download
M src/cmd/gc/reflect.c View 7 chunks +264 lines, -216 lines 0 comments Download
M src/cmd/ld/data.c View 5 chunks +162 lines, -34 lines 0 comments Download
M src/cmd/ld/decodesym.c View 2 chunks +24 lines, -4 lines 0 comments Download
M src/cmd/ld/lib.h View 1 chunk +4 lines, -1 line 0 comments Download
M src/pkg/reflect/type.go View 10 chunks +134 lines, -265 lines 0 comments Download
M src/pkg/runtime/chan.goc View 1 chunk +1 line, -1 line 0 comments Download
M src/pkg/runtime/export_test.go View 1 chunk +3 lines, -0 lines 0 comments Download
M src/pkg/runtime/gc_test.go View 2 chunks +24 lines, -0 lines 0 comments Download
A src/pkg/runtime/gcinfo_test.go View 1 chunk +147 lines, -0 lines 0 comments Download
M src/pkg/runtime/heapdump.c View 9 chunks +59 lines, -193 lines 0 comments Download
M src/pkg/runtime/malloc.h View 8 chunks +4 lines, -73 lines 0 comments Download
M src/pkg/runtime/malloc.goc View 11 chunks +23 lines, -132 lines 0 comments Download
M src/pkg/runtime/malloc_test.go View 1 chunk +13 lines, -0 lines 0 comments Download
M src/pkg/runtime/mgc0.h View 1 chunk +55 lines, -63 lines 0 comments Download
M src/pkg/runtime/mgc0.c View 40 chunks +680 lines, -1388 lines 0 comments Download
M src/pkg/runtime/mheap.c View 3 chunks +0 lines, -3 lines 0 comments Download
M src/pkg/runtime/mprof.goc View 1 chunk +4 lines, -22 lines 0 comments Download
M src/pkg/runtime/proc.c View 1 chunk +1 line, -0 lines 0 comments Download
M src/pkg/runtime/race.c View 2 chunks +2 lines, -2 lines 0 comments Download
M src/pkg/runtime/runtime.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/pkg/runtime/slice.goc View 1 chunk +1 line, -1 line 0 comments Download
M src/pkg/runtime/stack.c View 1 chunk +1 line, -0 lines 0 comments Download
M src/pkg/runtime/type.h View 2 chunks +13 lines, -2 lines 0 comments Download
M src/pkg/runtime/type.go View 1 chunk +1 line, -1 line 0 comments Download
M src/pkg/runtime/typekind.h View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 64
dvyukov
Hello golang-codereviews@googlegroups.com, I'd like you to review this change to https://dvyukov%40google.com@code.google.com/p/go/
10 years, 3 months ago (2014-07-07 20:05:17 UTC) #1
dvyukov
Rietveld does not like large change descriptions, so here are benchmark results separately: garbage-1 allocated ...
10 years, 3 months ago (2014-07-07 20:06:58 UTC) #2
rsc
What are the benchmarks? It looks like they are the test/bench/garbage benchmarks? Those are not ...
10 years, 3 months ago (2014-07-10 18:42:35 UTC) #3
dvyukov
On 2014/07/10 18:42:35, rsc wrote: > What are the benchmarks? It looks like they are ...
10 years, 3 months ago (2014-07-11 09:49:49 UTC) #4
tux21b
On 2014/07/11 09:49:49, dvyukov wrote: > go1 benchmarks: Have you executed those benchmarks with the ...
10 years, 3 months ago (2014-07-11 20:23:53 UTC) #5
dvyukov
On 2014/07/11 20:23:53, tux21b wrote: > On 2014/07/11 09:49:49, dvyukov wrote: > > go1 benchmarks: ...
10 years, 3 months ago (2014-07-14 11:00:42 UTC) #6
rsc
Thanks for working on this. The doc linked in the CL description is not really ...
10 years, 3 months ago (2014-07-15 20:24:52 UTC) #7
dvyukov
On 2014/07/15 20:24:52, rsc wrote: > Thanks for working on this. > > The doc ...
10 years, 3 months ago (2014-07-16 12:07:42 UTC) #8
dvyukov
On 2014/07/16 12:07:42, dvyukov wrote: > On 2014/07/15 20:24:52, rsc wrote: > > Thanks for ...
10 years, 3 months ago (2014-07-16 12:58:20 UTC) #9
khr1
As far as the heap dumper goes, we might be able to reconstruct types. The ...
10 years, 3 months ago (2014-07-16 16:20:11 UTC) #10
dvyukov
Nice another option Btw, Keith, please take a look at the heapdump changes. It compiles, ...
10 years, 3 months ago (2014-07-16 16:27:12 UTC) #11
khr1
The heapdump changes look ok for now. It might need a fixup after I implement ...
10 years, 3 months ago (2014-07-16 17:06:51 UTC) #12
rsc
In the longer term I want to pass less information to new, so that in ...
10 years, 3 months ago (2014-07-16 17:20:47 UTC) #13
khr1
It's not the Type*s to new that matter, it is the Type*s in Eface.type and ...
10 years, 3 months ago (2014-07-16 17:52:43 UTC) #14
rsc
On Wed, Jul 16, 2014 at 8:07 AM, <dvyukov@google.com> wrote: > Here we go: > ...
10 years, 3 months ago (2014-07-18 16:35:41 UTC) #15
dvyukov
On 2014/07/18 16:35:41, rsc wrote: > On Wed, Jul 16, 2014 at 8:07 AM, <mailto:dvyukov@google.com> ...
10 years, 3 months ago (2014-07-19 18:19:55 UTC) #16
khr1
Yes, I'll handle the heap dump. On Sat, Jul 19, 2014 at 11:19 AM, <dvyukov@google.com> ...
10 years, 3 months ago (2014-07-19 18:29:15 UTC) #17
dvyukov
great! thanks! On Sat, Jul 19, 2014 at 10:29 PM, Keith Randall <khr@google.com> wrote: > ...
10 years, 3 months ago (2014-07-19 18:40:47 UTC) #18
dvyukov
On 2014/07/18 16:35:41, rsc wrote: > On Wed, Jul 16, 2014 at 8:07 AM, <mailto:dvyukov@google.com> ...
10 years, 2 months ago (2014-07-21 12:10:06 UTC) #19
dvyukov
On 2014/07/21 12:10:06, dvyukov wrote: > On 2014/07/18 16:35:41, rsc wrote: > > On Wed, ...
10 years, 2 months ago (2014-07-21 12:16:15 UTC) #20
rsc
I am still concerned about the runtime footprint. If I allocate a big fixed-size array ...
10 years, 2 months ago (2014-07-22 13:31:35 UTC) #21
dvyukov
There is a copy of the mask in GC bitmap as well. Even when the ...
10 years, 2 months ago (2014-07-22 13:57:41 UTC) #22
rsc
On Tue, Jul 22, 2014 at 9:57 AM, Dmitry Vyukov <dvyukov@google.com> wrote: > There is ...
10 years, 2 months ago (2014-07-22 14:10:10 UTC) #23
dvyukov
On Tue, Jul 22, 2014 at 6:10 PM, Russ Cox <rsc@golang.org> wrote: > On Tue, ...
10 years, 2 months ago (2014-07-22 14:38:24 UTC) #24
rsc
On Tue, Jul 22, 2014 at 10:37 AM, Dmitry Vyukov <dvyukov@google.com> wrote: > On Tue, ...
10 years, 2 months ago (2014-07-22 14:45:53 UTC) #25
dvyukov
On 2014/07/22 14:38:24, dvyukov wrote: > On Tue, Jul 22, 2014 at 6:10 PM, Russ ...
10 years, 2 months ago (2014-07-22 16:56:36 UTC) #26
dvyukov
On 2014/07/22 16:56:36, dvyukov wrote: > On 2014/07/22 14:38:24, dvyukov wrote: > > On Tue, ...
10 years, 2 months ago (2014-07-22 17:06:48 UTC) #27
rsc
I would rather have this code and not need it than need it and not ...
10 years, 2 months ago (2014-07-22 17:49:31 UTC) #28
dvyukov
On 2014/07/22 17:49:31, rsc wrote: > I would rather have this code and not need ...
10 years, 2 months ago (2014-07-22 18:29:23 UTC) #29
rsc
Okay, well then it needs to be made faster. We can't leave this code out. ...
10 years, 2 months ago (2014-07-22 18:32:01 UTC) #30
dvyukov
On Tue, Jul 22, 2014 at 10:32 PM, Russ Cox <rsc@golang.org> wrote: > Okay, well ...
10 years, 2 months ago (2014-07-22 18:35:59 UTC) #31
dvyukov
PTAL I've added GC programs (still stored in bss for every allocated type).
10 years, 2 months ago (2014-07-22 19:52:52 UTC) #32
rsc
On Tue, Jul 22, 2014 at 2:35 PM, Dmitry Vyukov <dvyukov@google.com> wrote: > Big slices ...
10 years, 2 months ago (2014-07-22 20:18:43 UTC) #33
dvyukov
On 2014/07/22 20:18:43, rsc wrote: > On Tue, Jul 22, 2014 at 2:35 PM, Dmitry ...
10 years, 2 months ago (2014-07-23 08:59:58 UTC) #34
rsc
On Wed, Jul 23, 2014 at 4:59 AM, <dvyukov@google.com> wrote: > Done > PTAL > ...
10 years, 2 months ago (2014-07-23 12:02:39 UTC) #35
rsc
Can you please update the doc? It still talks about caching in the BSS.
10 years, 2 months ago (2014-07-23 12:03:17 UTC) #36
dvyukov
On 2014/07/23 12:03:17, rsc wrote: > Can you please update the doc? It still talks ...
10 years, 2 months ago (2014-07-23 12:17:01 UTC) #37
rsc
Did not read runtime yet. The compiler changes look mostly reasonable. https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): ...
10 years, 2 months ago (2014-07-23 13:34:03 UTC) #38
dvyukov
PTAL https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c#newcode807 src/cmd/gc/reflect.c:807: ot = duintptr(s, ot, ((uvlong*)gcmask)[0]); On 2014/07/23 13:34:02, ...
10 years, 2 months ago (2014-07-23 15:35:59 UTC) #39
rsc
https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c#newcode1443 src/cmd/gc/reflect.c:1443: if(size <= MaxGCMask) { No. Waste is waste. And ...
10 years, 2 months ago (2014-07-23 15:55:13 UTC) #40
rsc
https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c#newcode1305 src/cmd/gc/reflect.c:1305: // 4 bits per word, 2 high bits encode ...
10 years, 2 months ago (2014-07-23 15:55:59 UTC) #41
rsc
I got about halfway through mgc0. I hope Keith will look at the runtime changes ...
10 years, 2 months ago (2014-07-23 16:23:20 UTC) #42
rsc
https://codereview.appspot.com/106260045/diff/920001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): https://codereview.appspot.com/106260045/diff/920001/src/cmd/gc/reflect.c#newcode1440 src/cmd/gc/reflect.c:1440: On 2014/07/23 16:23:19, rsc wrote: > please add > ...
10 years, 2 months ago (2014-07-23 16:24:17 UTC) #43
dvyukov
PTAL https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): https://codereview.appspot.com/106260045/diff/880001/src/cmd/gc/reflect.c#newcode1305 src/cmd/gc/reflect.c:1305: // 4 bits per word, 2 high bits ...
10 years, 2 months ago (2014-07-23 19:01:45 UTC) #44
dvyukov
On 2014/07/23 16:23:20, rsc wrote: > I got about halfway through mgc0. I hope Keith ...
10 years, 2 months ago (2014-07-23 19:02:30 UTC) #45
khr
I did a first pass. I'm really worried that this is too much to go ...
10 years, 2 months ago (2014-07-23 22:42:04 UTC) #46
dvyukov
On 2014/07/23 22:42:04, khr wrote: > I did a first pass. > > I'm really ...
10 years, 2 months ago (2014-07-24 07:57:27 UTC) #47
dvyukov
PTAL https://codereview.appspot.com/106260045/diff/980001/src/cmd/gc/reflect.c File src/cmd/gc/reflect.c (right): https://codereview.appspot.com/106260045/diff/980001/src/cmd/gc/reflect.c#newcode1279 src/cmd/gc/reflect.c:1279: size = size*PointersPerByte/8; // 4 bits per word ...
10 years, 2 months ago (2014-07-24 09:35:17 UTC) #48
rsc
On 2014/07/24 07:57:27, dvyukov wrote: > On 2014/07/23 22:42:04, khr wrote: > > I did ...
10 years, 2 months ago (2014-07-24 13:49:40 UTC) #49
rsc
I am going to be away from later today until August 4. The compiler changes ...
10 years, 2 months ago (2014-07-24 13:57:12 UTC) #50
dvyukov
ack, thanks On Thu, Jul 24, 2014 at 5:57 PM, Russ Cox <rsc@golang.org> wrote: > ...
10 years, 2 months ago (2014-07-24 14:02:06 UTC) #51
dvyukov
On 2014/07/24 07:57:27, dvyukov wrote: > On 2014/07/23 22:42:04, khr wrote: > > I did ...
10 years, 2 months ago (2014-07-25 15:38:52 UTC) #52
dvyukov
On 2014/07/25 15:38:52, dvyukov wrote: > On 2014/07/24 07:57:27, dvyukov wrote: > > On 2014/07/23 ...
10 years, 2 months ago (2014-07-28 13:51:37 UTC) #53
khr1
Later today. Is there a separate CL for the channel change? On Mon, Jul 28, ...
10 years, 2 months ago (2014-07-28 15:16:35 UTC) #54
dvyukov
https://codereview.appspot.com/115280043 is the chan change On Mon, Jul 28, 2014 at 7:16 PM, Keith Randall ...
10 years, 2 months ago (2014-07-28 15:33:02 UTC) #55
khr1
On Thu, Jul 24, 2014 at 2:35 AM, <dvyukov@google.com> wrote: > PTAL > > > ...
10 years, 2 months ago (2014-07-28 23:28:41 UTC) #56
khr
LGTM with those fixes. https://codereview.appspot.com/106260045/diff/1020001/src/pkg/runtime/mgc0.c File src/pkg/runtime/mgc0.c (left): https://codereview.appspot.com/106260045/diff/1020001/src/pkg/runtime/mgc0.c#oldcode1273 src/pkg/runtime/mgc0.c:1273: enqueue1(&wbuf, (Obj){(void*)&spf->fint, PtrSize, 0}); What ...
10 years, 2 months ago (2014-07-28 23:28:56 UTC) #57
dvyukov
On Tue, Jul 29, 2014 at 3:28 AM, Keith Randall <khr@google.com> wrote: https://codereview.appspot.com/106260045/diff/980001/src/pkg/runtime/mgc0.c#newcode1362 >> src/pkg/runtime/mgc0.c:1362: ...
10 years, 2 months ago (2014-07-29 05:34:53 UTC) #58
dvyukov
https://codereview.appspot.com/106260045/diff/1020001/src/pkg/runtime/mgc0.c File src/pkg/runtime/mgc0.c (left): https://codereview.appspot.com/106260045/diff/1020001/src/pkg/runtime/mgc0.c#oldcode1273 src/pkg/runtime/mgc0.c:1273: enqueue1(&wbuf, (Obj){(void*)&spf->fint, PtrSize, 0}); On 2014/07/28 23:28:55, khr wrote: ...
10 years, 2 months ago (2014-07-29 05:38:55 UTC) #59
dvyukov
*** Submitted as https://code.google.com/p/go/source/detail?r=e1fc05ce4181 *** runtime: simpler and faster GC Implement the design described in: ...
10 years, 2 months ago (2014-07-29 07:01:14 UTC) #60
dvyukov
On 2014/07/29 07:01:14, dvyukov wrote: > *** Submitted as https://code.google.com/p/go/source/detail?r=e1fc05ce4181 *** > > runtime: simpler ...
10 years, 2 months ago (2014-07-29 07:01:55 UTC) #61
dvyukov
On 2014/07/29 07:01:14, dvyukov wrote: > *** Submitted as https://code.google.com/p/go/source/detail?r=e1fc05ce4181 *** > > runtime: simpler ...
10 years, 2 months ago (2014-07-29 07:02:00 UTC) #62
gobot
This CL appears to have broken the android-arm-crawshaw builder. See http://build.golang.org/log/840ff0ebd0a41f5acfc8505cf8032495b3dcdc8b
10 years, 2 months ago (2014-07-29 07:02:36 UTC) #63
dave_cheney.net
10 years, 2 months ago (2014-07-29 07:11:12 UTC) #64
not looking good so far ...


On Tue, Jul 29, 2014 at 5:01 PM, dvyukov via golang-codereviews <
golang-codereviews@googlegroups.com> wrote:

> On 2014/07/29 07:01:14, dvyukov wrote:
>
>> *** Submitted as
>>
> https://code.google.com/p/go/source/detail?r=e1fc05ce4181 ***
>
>  runtime: simpler and faster GC
>>
>
>  Implement the design described in:
>>
>
> https://docs.google.com/document/d/1v4Oqa0WwHunqlb8C3ObL_
> uNQw3DfSY-ztoA-4wWbKcg/pub
>
>  Summary of the changes:
>> GC uses "2-bits per word" pointer type info embed directly into
>>
> bitmap.
>
>> Scanning of stacks/data/heap is unified.
>> The old spans types go away.
>> Compiler generates "sparse" 4-bits type info for GC (directly for GC
>>
> bitmap).
>
>> Linker generates "dense" 2-bits type info for data/bss (the same as
>>
> stacks use).
>
>  Summary of results:
>> -1680 lines of code total (-1000+ in mgc0.c only)
>> -25% memory consumption
>> -3-7% binary size
>> -15% GC pause reduction
>> -7% run time reduction
>>
>
>  LGTM=khr
>> R=golang-codereviews, rsc, christoph, khr
>> CC=golang-codereviews, rlh
>> https://codereview.appspot.com/106260045
>>
>
> fingers crossed
>
>
> https://codereview.appspot.com/106260045/
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-codereviews" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-codereviews+unsubscribe@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b