Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(500)

Issue 11782028: Parallel and concurrent sweeping. (Closed)

Created:
7 years, 11 months ago by Hannes Payer (out of office)
Modified:
7 years, 10 months ago
CC:
v8-dev
Visibility:
Public.

Description

Parallel and concurrent sweeping. Sweep old pointer space and old data space concurrently to the main mutator thread and in parallel. BUG= Committed: https://code.google.com/p/v8/source/detail?r=13552

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Patch Set 6 : #

Patch Set 7 : #

Patch Set 8 : #

Patch Set 9 : #

Patch Set 10 : #

Total comments: 16

Patch Set 11 : #

Patch Set 12 : #

Patch Set 13 : #

Patch Set 14 : #

Total comments: 44

Patch Set 15 : #

Total comments: 12

Patch Set 16 : #

Patch Set 17 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+427 lines, -39 lines) Patch
M src/flag-definitions.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +4 lines, -0 lines 0 comments Download
M src/heap.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -0 lines 0 comments Download
M src/heap.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +4 lines, -3 lines 0 comments Download
M src/isolate.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +7 lines, -0 lines 0 comments Download
M src/isolate.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +21 lines, -0 lines 0 comments Download
M src/mark-compact.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +21 lines, -1 line 0 comments Download
M src/mark-compact.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 16 chunks +111 lines, -24 lines 0 comments Download
M src/spaces.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 11 chunks +49 lines, -3 lines 0 comments Download
M src/spaces.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 7 chunks +55 lines, -3 lines 0 comments Download
A + src/sweeper-thread.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +47 lines, -5 lines 0 comments Download
A src/sweeper-thread.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +105 lines, -0 lines 0 comments Download
M tools/gyp/v8.gyp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
Hannes Payer (out of office)
7 years, 11 months ago (2013-01-09 08:18:32 UTC) #1
Michael Starzinger
This is going into the right direction. A first round of high level comments. https://chromiumcodereview.appspot.com/11782028/diff/19002/src/flag-definitions.h ...
7 years, 11 months ago (2013-01-24 17:15:53 UTC) #2
Michael Starzinger
One more comment. https://chromiumcodereview.appspot.com/11782028/diff/19002/src/mark-compact.cc File src/mark-compact.cc (right): https://chromiumcodereview.appspot.com/11782028/diff/19002/src/mark-compact.cc#newcode385 src/mark-compact.cc:385: heap_->WaitUntilParallelSweepingCompleted(); This should be moved into ...
7 years, 11 months ago (2013-01-24 17:28:57 UTC) #3
Hannes Payer (out of office)
https://chromiumcodereview.appspot.com/11782028/diff/19002/src/flag-definitions.h File src/flag-definitions.h (right): https://chromiumcodereview.appspot.com/11782028/diff/19002/src/flag-definitions.h#newcode416 src/flag-definitions.h:416: DEFINE_bool(concurrent_sweeping, false, "enable concurrent sweeping") On 2013/01/24 17:15:54, Michael ...
7 years, 11 months ago (2013-01-25 10:46:49 UTC) #4
Michael Starzinger
Already looking good. This should be the last round of comments I think. Cool stuff, ...
7 years, 10 months ago (2013-01-28 16:30:18 UTC) #5
Hannes Payer (out of office)
There is currently a race with concurrent sweeping and modification of the pages list of ...
7 years, 10 months ago (2013-01-30 10:11:27 UTC) #6
Michael Starzinger
LGTM if final comments are addresed. I like this! https://chromiumcodereview.appspot.com/11782028/diff/34001/src/isolate.cc File src/isolate.cc (right): https://chromiumcodereview.appspot.com/11782028/diff/34001/src/isolate.cc#newcode1737 src/isolate.cc:1737: ...
7 years, 10 months ago (2013-01-30 11:01:19 UTC) #7
Hannes Payer (out of office)
7 years, 10 months ago (2013-01-30 12:07:32 UTC) #8
https://chromiumcodereview.appspot.com/11782028/diff/34001/src/isolate.cc
File src/isolate.cc (right):

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/isolate.cc#new...
src/isolate.cc:1737: for (int i = 0; i < FLAG_sweeper_threads; i++) {
On 2013/01/30 11:01:19, Michael Starzinger wrote:
> Can we merge the two for-loops, I think that's easier to read.

Done.

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.cc
File src/mark-compact.cc (right):

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.c...
src/mark-compact.cc:3478: if (mode == MarkCompactCollector::SWEEP_SEQUENTIALLY)
{
I templatized Free, the code looks cleaner.

On 2013/01/30 11:01:19, Michael Starzinger wrote:
> You could factor out this logic and move it into the static Free() helper,
> templatize the helper and hope that GCC inlines it. Would make the source
> cleaner and produce the same code. I would prefer that over the current
> implementation, but I'll leave the decision whether to do that or not up to
you.

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.c...
src/mark-compact.cc:3652: PrintF("Prepare conservatively parallel sweeping 0x%"
V8PRIxPTR ".\n",
On 2013/01/30 11:01:19, Michael Starzinger wrote:
> Let's rephrase this log line to "Sweeping 0x??? conservatively in parallel.",
I
> think that's easier to understand.

Done.

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.c...
src/mark-compact.cc:3706: 
On 2013/01/30 11:01:19, Michael Starzinger wrote:
> I think you have white-space on that empty line. Should trip a presubmit
> failure.

Done.

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.c...
src/mark-compact.cc:3715: // The starting of the sweeper threads should be after
SweepSpace
On 2013/01/30 11:01:19, Michael Starzinger wrote:
> Let's turn this comment into a TODO().

Done.

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.h
File src/mark-compact.h (right):

https://chromiumcodereview.appspot.com/11782028/diff/34001/src/mark-compact.h...
src/mark-compact.h:859: void PrepareParallelSweeping(PagedSpace* space);
On 2013/01/30 11:01:19, Michael Starzinger wrote:
> The implementation of this method is gone, let's also drop the declaration.

Done.

Powered by Google App Engine
This is Rietveld 408576698