- 13 Dec, 2016 1 commit
-
-
honggyu.kp authored
Since class RememberedSet only contains static methods, it'd be better to make it as AllStatic class. BUG= R=ulan@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/2570783004 Cr-Commit-Position: refs/heads/master@{#41678}
-
- 28 Nov, 2016 1 commit
-
-
ishell authored
BUG=chromium:666046 Review-Url: https://codereview.chromium.org/2539503002 Cr-Commit-Position: refs/heads/master@{#41330}
-
- 18 Oct, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2428493003 Cr-Commit-Position: refs/heads/master@{#40393}
-
- 14 Oct, 2016 1 commit
-
-
machenbach authored
Revert of [heap] Move slot filtering logic into sweeper. (patchset #4 id:60001 of https://codereview.chromium.org/2418773002/ ) Reason for revert: [Sheriff] Speculative revert for heap corruption on all platforms, e.g.: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/12377 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/12379 https://build.chromium.org/p/client.v8/builders/V8%20Win32/builds/4819 https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/16783 https://build.chromium.org/p/client.v8/builders/V8%20Mac64%20-%20debug/builds/10007 Original issue's description: > [heap] Move slot filtering logic into sweeper. > > BUG=chromium:648568 > > Committed: https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00 > Cr-Commit-Position: refs/heads/master@{#40267} TBR=ulan@chromium.org,mlippautz@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2418053002 Cr-Commit-Position: refs/heads/master@{#40292}
-
- 13 Oct, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2418773002 Cr-Commit-Position: refs/heads/master@{#40267}
-
- 12 Oct, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2403423007 Cr-Commit-Position: refs/heads/master@{#40221}
-
- 07 Oct, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2397373002 Cr-Commit-Position: refs/heads/master@{#40075}
-
- 06 Oct, 2016 2 commits
-
-
hpayer authored
Revert of [heap] Concurrent slot filtering in sweeper threads. (patchset #4 id:60001 of https://codereview.chromium.org/2401563002/ ) Reason for revert: Crashing. Original issue's description: > [heap] Concurrent slot filtering in sweeper threads. > > This is an intermediate step for concurrent slot filtering. This CL already makes filtering concurrent, but does not integrate it in the actual sweeping. This will be done in two follow up CLs. One for the regular slot set and one for the typed slot set. > > BUG=chromium:648568 > > Committed: https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7 > Cr-Commit-Position: refs/heads/master@{#40040} TBR=ulan@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2399003002 Cr-Commit-Position: refs/heads/master@{#40043}
-
hpayer authored
This is an intermediate step for concurrent slot filtering. This CL already makes filtering concurrent, but does not integrate it in the actual sweeping. This will be done in two follow up CLs. One for the regular slot set and one for the typed slot set. BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2401563002 Cr-Commit-Position: refs/heads/master@{#40040}
-
- 05 Oct, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2390743005 Cr-Commit-Position: refs/heads/master@{#39982}
-
- 26 Sep, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2366393002 Cr-Commit-Position: refs/heads/master@{#39735}
-
- 22 Sep, 2016 2 commits
-
-
machenbach authored
Revert of [heap] Reland Concurrently free empty typed slot set chunks. (patchset #2 id:20001 of https://codereview.chromium.org/2365603002/ ) Reason for revert: Leaks and TSAN: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN/builds/15441 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11867 Original issue's description: > [heap] Reland Concurrently free empty typed slot set chunks. > > BUG=chromium:648568 > > Committed: https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23 > Cr-Commit-Position: refs/heads/master@{#39630} TBR=ulan@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2364603002 Cr-Commit-Position: refs/heads/master@{#39632}
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2365603002 Cr-Commit-Position: refs/heads/master@{#39630}
-
- 21 Sep, 2016 3 commits
-
-
adamk authored
Revert of [heap] Concurrently free empty typed slot set chunks. (patchset #3 id:40001 of https://codereview.chromium.org/2352423002/ ) Reason for revert: TSAN failures on Linux64: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11850 Also saw various threading-related flakiness on multiple bots. Original issue's description: > [heap] Concurrently free empty typed slot set chunks. > > BUG=chromium:648568 > > Committed: https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539 > Cr-Commit-Position: refs/heads/master@{#39605} TBR=ulan@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2358333002 Cr-Commit-Position: refs/heads/master@{#39607}
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2352423002 Cr-Commit-Position: refs/heads/master@{#39605}
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2360513002 Cr-Commit-Position: refs/heads/master@{#39596}
-
- 30 Jun, 2016 1 commit
-
-
ulan authored
BUG=chromium:624544 LOG=NO Review-Url: https://codereview.chromium.org/2110213003 Cr-Commit-Position: refs/heads/master@{#37451}
-
- 28 Jun, 2016 1 commit
-
-
ahaas authored
The reason for reverting is: This breaks gc-stress bot: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot Abortion of compaction could cause duplicate entries in the typed-old-to-new remembered set. These duplicates could cause a DCHECK to trigger which checks that slots recorded in the remembered set never point to to-space. This reland-CL allows duplicates in the remembered set by removing the DCHECK, and additionally clears entries in the remembered set if objects are moved. Original issue's description: Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js Review-Url: https://codereview.chromium.org/2097023002 Cr-Commit-Position: refs/heads/master@{#37325}
-
- 23 Jun, 2016 2 commits
-
-
vogelheim authored
Revert of Reland [heap] Avoid the use of cells to point from code to new-space objects. (patchset #3 id:40001 of https://codereview.chromium.org/2091733002/ ) Reason for revert: This breaks gc-stress bot: https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot # # Fatal error in ../../src/heap/mark-compact.cc, line 3715 # Check failed: Page::FromAddress(reinterpret_cast<HeapObject*>(*slot)->address()) ->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION). # I can reproduce locally, and local revert also fixes it -> revert. Reproduce with: out/Debug/d8 --test --random-seed=2140216864 --nohard-abort --nodead-code-elimination --nofold-constants --enable-slow-asserts --debug-code --verify-heap --allow-natives-syntax --harmony-tailcalls test/mjsunit/mjsunit.js test/mjsunit/es6/tail-call-megatest-shard2.js --gc-interval=500 --stress-compaction --concurrent-recompilation-queue-length=64 --concurrent-recompilation-delay=500 --concurrent-recompilation (Maybe run in loop; it's flaky when broken; but passes reliably w/ revert.) Original issue's description: > Reland [heap] Avoid the use of cells to point from code to new-space objects. > > The reason for reverting was: [Sheriff] Breaks arm debug: > https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038. > > The problem was the dereferencing of handles for smi checks. It turned out > that these smi checks can be removed anyways, both on arm and on mips. > > Additionally some rebasing was necessary. > > Original issue's description: > > Cells were needed originally because there was no typed remembered set to > record direct pointers from code space to new space. A previous > CL (https://codereview.chromium.org/2003553002/) already introduced > the remembered set, this CL uses it. > > This CL > * stores direct pointers in code objects, even if the target is in new space, > * records the slot of the pointer in typed-old-to-new remembered set, > * adds a list which stores weak code-to-new-space references, > * adds a test to test-heap.cc for weak code-to-new-space references, > * removes prints in tail-call-megatest.js > > R=mlippautz@chromium.org > > Committed: https://crrev.com/5508e16592522658587da71ba6743c8e832fe4d1 > Cr-Commit-Position: refs/heads/master@{#37217} TBR=mlippautz@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2090983002 Cr-Commit-Position: refs/heads/master@{#37221}
-
ahaas authored
The reason for reverting was: [Sheriff] Breaks arm debug: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038. The problem was the dereferencing of handles for smi checks. It turned out that these smi checks can be removed anyways, both on arm and on mips. Additionally some rebasing was necessary. Original issue's description: Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js R=mlippautz@chromium.org Review-Url: https://codereview.chromium.org/2091733002 Cr-Commit-Position: refs/heads/master@{#37217}
-
- 21 Jun, 2016 2 commits
-
-
machenbach authored
Revert of [heap] Avoid the use of cells to point from code to new-space objects. (patchset #7 id:120001 of https://codereview.chromium.org/2045263002/ ) Reason for revert: [Sheriff] Breaks arm debug: https://build.chromium.org/p/client.v8.ports/builders/V8%20Linux%20-%20arm%20-%20sim%20-%20debug/builds/1038 Original issue's description: > [heap] Avoid the use of cells to point from code to new-space objects. > > Cells were needed originally because there was no typed remembered set to > record direct pointers from code space to new space. A previous > CL (https://codereview.chromium.org/2003553002/) already introduced > the remembered set, this CL uses it. > > This CL > * stores direct pointers in code objects, even if the target is in new space, > * records the slot of the pointer in typed-old-to-new remembered set, > * adds a list which stores weak code-to-new-space references, > * adds a test to test-heap.cc for weak code-to-new-space references, > * removes prints in tail-call-megatest.js > > R=ulan@chromium.org > > Committed: https://crrev.com/2d2087b79a293a92a6ed34a2775e481ff2173b3c > Cr-Commit-Position: refs/heads/master@{#37134} TBR=titzer@chromium.org,ulan@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2087463004 Cr-Commit-Position: refs/heads/master@{#37139}
-
ahaas authored
Cells were needed originally because there was no typed remembered set to record direct pointers from code space to new space. A previous CL (https://codereview.chromium.org/2003553002/) already introduced the remembered set, this CL uses it. This CL * stores direct pointers in code objects, even if the target is in new space, * records the slot of the pointer in typed-old-to-new remembered set, * adds a list which stores weak code-to-new-space references, * adds a test to test-heap.cc for weak code-to-new-space references, * removes prints in tail-call-megatest.js R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2045263002 Cr-Commit-Position: refs/heads/master@{#37134}
-
- 03 Jun, 2016 1 commit
-
-
ahaas authored
We need the host address in another CL to clear invalid slots. R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2025833002 Cr-Commit-Position: refs/heads/master@{#36696}
-
- 23 May, 2016 1 commit
-
-
ahaas authored
R=ulan@chromium.org, titzer@chromium.org Review-Url: https://codereview.chromium.org/2003553002 Cr-Commit-Position: refs/heads/master@{#36431}
-
- 19 May, 2016 1 commit
-
-
ahaas authored
This patch moves the wrapper code from the remembered-set to the scavenger and the mark-compact code. The wrapper code inspected a slot address to see if the object that belongs to the address is in the from-space. If it was in the from-space, then some callback was executed on the object. If the object got move to the to-space, then the wrapper returned KEEP_SLOT, otherwise REMOVE_SLOT. This logic does not really belong to the remembered set, so I moved it away from there. R=ulan@chromium.org Review-Url: https://codereview.chromium.org/1994933002 Cr-Commit-Position: refs/heads/master@{#36364}
-
- 21 Mar, 2016 1 commit
-
-
mlippautz authored
Now that we have page-local remembered sets (due to refilling in page granularity) we can perform all updates on the sets during compaction in parallel without caching slots locally. BUG=chromium:524425 LOG=N NOTRY=true Review URL: https://codereview.chromium.org/1811573002 Cr-Commit-Position: refs/heads/master@{#34952}
-
- 18 Mar, 2016 1 commit
-
-
ulan authored
Since we clear invalid slots eagerly, there is no need to check if a slot is a valid slot. BUG=chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1817523002 Cr-Commit-Position: refs/heads/master@{#34898}
-
- 10 Mar, 2016 1 commit
-
-
ulan authored
BUG=chromium:568495 LOG=NO Review URL: https://codereview.chromium.org/1775003003 Cr-Commit-Position: refs/heads/master@{#34665}
-
- 25 Feb, 2016 1 commit
-
-
ulan authored
Reland "Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ )" This reverts commit 9146bc5e. This contains a fix for the following crash: 1. We record slots for a fixed array. 2. We trim the fixed array, so that some recorded slots are now in free space. 3. During mark-compact we sweep the page with the fixed array. Now free list items contain memory with recorded slots. 4. We evacuate a byte array using the new free list items. 5. We iterate slots that are now inside the byte array and crash. BUG=chromium:589413,chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1735523002 Cr-Commit-Position: refs/heads/master@{#34302}
-
- 24 Feb, 2016 1 commit
-
-
ulan authored
Revert of Replace slots buffer with remembered set. (patchset #14 id:250001 of https://codereview.chromium.org/1703823002/ ) Reason for revert: Revert because of canary crashes: crbug.com/589413 Original issue's description: > Replace slots buffer with remembered set. > > Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>. > > The remembered set is extended to support typed slots. > > During parallel evacuation all migration slots are recorded in local slots buffers. > After evacuation all local slots are added to the remembered set. > > BUG=chromium:578883 > LOG=NO > > Committed: https://crrev.com/2285a99ef6f7d52f4f0c4d88a7db4224443ee152 > Cr-Commit-Position: refs/heads/master@{#34212} TBR=jochen@chromium.org,hpayer@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:578883 Review URL: https://codereview.chromium.org/1725073003 Cr-Commit-Position: refs/heads/master@{#34238}
-
- 23 Feb, 2016 1 commit
-
-
ulan authored
Slots pointing to evacuation candidates are now recorded in the new RememberedSet<OLD_TO_OLD>. The remembered set is extended to support typed slots. During parallel evacuation all migration slots are recorded in local slots buffers. After evacuation all local slots are added to the remembered set. BUG=chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1703823002 Cr-Commit-Position: refs/heads/master@{#34212}
-
- 17 Feb, 2016 1 commit
-
-
ulan authored
If sweeping is in progress then we need to filter out slots in free space after array trimming, because the sweeper will add the free space into free list. This CL also fixes a bug in SlotSet::RemoveRange. BUG=chromium:587004 LOG=NO TBR=hpayer@chromium.org Review URL: https://codereview.chromium.org/1701963003 Cr-Commit-Position: refs/heads/master@{#34071}
-
- 16 Feb, 2016 1 commit
-
-
ulan authored
This new class provides a unified interface for recording and iterating slots in store and slots buffers: RememberedSet<OLD_TO_NEW>::Insert(page, slot); RememberedSet<OLD_TO_OLD>::Insert(page, slot); RememberedSet<OLD_TO_NEW>::Iterate(heap, callback); RememberedSet<OLD_TO_OLD>::Iterate(heap, callback); After this change the store buffer is responsible only for collecting slots from the generated code. Subsequent CLs will remove the slots buffer. BUG=chromium:578883 LOG=NO Review URL: https://codereview.chromium.org/1683653002 Cr-Commit-Position: refs/heads/master@{#34031}
-