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

Issue 271703002: Simplify and speed up address-to-page cache for conservative stack scanning. (Closed)

Created:
6 years, 7 months ago by Erik Corry
Modified:
6 years, 7 months ago
CC:
blink-reviews, haraken, kouhei+heap_chromium.org, Mads Ager (chromium)
Visibility:
Public.

Description

Simplify and speed up address-to-page cache for conservative stack scanning. This change makes the per-heap address-to-page cache positive only and handles large pages more naturally. There is now a separate whole-process negative cache that keeps track of pages that are not in any of the heaps. This speeds up my microbenchmark from ~87 to ~65. R=ager@chromium.org, haraken@chromium.org, wibling@chromium.org, zerny@chromium.org BUG= Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=173749

Patch Set 1 #

Total comments: 34

Patch Set 2 : Revert GC heuristic change and CL feedback #

Patch Set 3 : There were some missing cache flushes. Strengthened asserts #

Total comments: 7

Patch Set 4 : Merge up #

Unified diffs Side-by-side diffs Delta from patch set Stats (+241 lines, -171 lines) Patch
M Source/platform/heap/Heap.h View 1 2 3 13 chunks +126 lines, -78 lines 0 comments Download
M Source/platform/heap/Heap.cpp View 1 2 3 21 chunks +78 lines, -54 lines 0 comments Download
M Source/platform/heap/HeapTest.cpp View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
M Source/platform/heap/ThreadState.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M Source/platform/heap/ThreadState.cpp View 1 2 3 3 chunks +27 lines, -38 lines 0 comments Download

Messages

Total messages: 17 (0 generated)
Erik Corry
6 years, 7 months ago (2014-05-07 15:07:36 UTC) #1
haraken
LGTM with comments. This is a nice change! https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/Heap.cpp File Source/platform/heap/Heap.cpp (right): https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/Heap.cpp#newcode763 Source/platform/heap/Heap.cpp:763: heapContainsCache()->flush(); ...
6 years, 7 months ago (2014-05-08 05:44:57 UTC) #2
zerny-chromium
Nothing to add to Haraken's comments, lgtm
6 years, 7 months ago (2014-05-08 06:39:36 UTC) #3
Mads Ager (chromium)
LGTM https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/Heap.cpp File Source/platform/heap/Heap.cpp (right): https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/Heap.cpp#newcode1529 Source/platform/heap/Heap.cpp:1529: if (reinterpret_cast<uintptr_t>(address) < blinkPageSize) This is an optimization ...
6 years, 7 months ago (2014-05-08 06:52:37 UTC) #4
wibling-chromium
lgtm https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/ThreadState.cpp File Source/platform/heap/ThreadState.cpp (right): https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/ThreadState.cpp#newcode475 Source/platform/heap/ThreadState.cpp:475: BaseHeapPage* page = heapPageFromAddress(address); NIT: Perhaps add a ...
6 years, 7 months ago (2014-05-08 07:43:41 UTC) #5
Erik Corry
https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/Heap.cpp File Source/platform/heap/Heap.cpp (right): https://codereview.chromium.org/271703002/diff/1/Source/platform/heap/Heap.cpp#newcode763 Source/platform/heap/Heap.cpp:763: heapContainsCache()->flush(); On 2014/05/08 05:44:58, haraken wrote: > > For ...
6 years, 7 months ago (2014-05-08 09:26:08 UTC) #6
wibling-chromium
https://codereview.chromium.org/271703002/diff/40001/Source/platform/heap/Heap.cpp File Source/platform/heap/Heap.cpp (right): https://codereview.chromium.org/271703002/diff/40001/Source/platform/heap/Heap.cpp#newcode1529 Source/platform/heap/Heap.cpp:1529: #ifdef NDEBUG Why not do this optimization in release ...
6 years, 7 months ago (2014-05-09 10:25:20 UTC) #7
wibling-chromium
6 years, 7 months ago (2014-05-09 10:25:24 UTC) #8
Erik Corry
https://codereview.chromium.org/271703002/diff/40001/Source/platform/heap/Heap.cpp File Source/platform/heap/Heap.cpp (right): https://codereview.chromium.org/271703002/diff/40001/Source/platform/heap/Heap.cpp#newcode1529 Source/platform/heap/Heap.cpp:1529: #ifdef NDEBUG On 2014/05/09 10:25:20, wibling-chromium wrote: > Why ...
6 years, 7 months ago (2014-05-09 10:31:54 UTC) #9
wibling-chromium
lgtm https://codereview.chromium.org/271703002/diff/40001/Source/platform/heap/Heap.cpp File Source/platform/heap/Heap.cpp (right): https://codereview.chromium.org/271703002/diff/40001/Source/platform/heap/Heap.cpp#newcode1529 Source/platform/heap/Heap.cpp:1529: #ifdef NDEBUG On 2014/05/09 10:31:54, Erik Corry wrote: ...
6 years, 7 months ago (2014-05-09 10:40:21 UTC) #10
Erik Corry
The CQ bit was checked by erik.corry@gmail.com
6 years, 7 months ago (2014-05-09 11:16:04 UTC) #11
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/erik.corry@gmail.com/271703002/40001
6 years, 7 months ago (2014-05-09 11:17:15 UTC) #12
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 7 months ago (2014-05-09 11:17:28 UTC) #13
commit-bot: I haz the power
Failed to apply patch for Source/platform/heap/Heap.h: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
6 years, 7 months ago (2014-05-09 11:17:30 UTC) #14
Erik Corry
The CQ bit was checked by erik.corry@gmail.com
6 years, 7 months ago (2014-05-09 11:26:24 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/erik.corry@gmail.com/271703002/60001
6 years, 7 months ago (2014-05-09 11:27:27 UTC) #16
commit-bot: I haz the power
6 years, 7 months ago (2014-05-09 12:49:23 UTC) #17
Message was sent while issue was closed.
Change committed as 173749

Powered by Google App Engine
This is Rietveld 408576698