- 20 Dec, 2017 1 commit
-
-
Hannes Payer authored
Bug: Change-Id: I53b68e8a4200a87d9f14b9540b52cab316678b2d Reviewed-on: https://chromium-review.googlesource.com/836593 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#50233}
-
- 14 Nov, 2017 1 commit
-
-
Igor Sheludko authored
.. by using macros for defining field offsets. Bug: v8:5799 Change-Id: Id76e81bedb8f348b2efaa1d553bebac0ff90b474 Reviewed-on: https://chromium-review.googlesource.com/768382Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49351}
-
- 04 Sep, 2017 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org Change-Id: I42241713b7d14dd1cb321df0570566b0873c10a4 Reviewed-on: https://chromium-review.googlesource.com/647888Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47793}
-
- 25 Aug, 2017 1 commit
-
-
Michael Lippautz authored
Bug: Change-Id: I81132af45d8fb649d4239fa0e0ef75b95e148208 Reviewed-on: https://chromium-review.googlesource.com/633604 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47606}
-
- 14 Aug, 2017 1 commit
-
-
Ulan Degenbaev authored
This follows up 4af9cfcc by separating incremental marking state from the full MC marking state. Runtime and tests now use only the incremental marking state. The full MC marking state used by MC during atomic pause. This separation decouples atomicity of markbit accesses during incremental marking and during full MC. Bug: chromium:694255 TBR: mlippautz@chromium.org Change-Id: Ia409ab06515cd0d1403a272a016633295c0d6692 Reviewed-on: https://chromium-review.googlesource.com/612350 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47336}
-
- 10 Aug, 2017 1 commit
-
-
Ulan Degenbaev authored
This patch merges ObjectMarking and MarkingState. The new marking state encapsulates object marking, live byte tracking, and access atomicity. The old ObjectMarking calls are now replaced with calls to marking state. For example: ObjectMarking::WhiteToGrey<kAtomicity>(obj, marking_state(obj) becomes marking_state()->WhiteToGrey(obj) This simplifies custom handling of live bytes and allows to chose atomicity of markbit accesses depending on collector's state. This also decouples marking bitmap from the marking code, which will allows in future to use different data-structure for mark-bits. Bug: chromium:694255 Change-Id: Ifb4bc0144187bac1c08f6bc74a9d5c618fe77740 Reviewed-on: https://chromium-review.googlesource.com/602132 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47288}
-
- 03 Aug, 2017 1 commit
-
-
Ulan Degenbaev authored
This is a reland of 35c923cc Original change's description: > [heap] Add support for atomic access to page flags. > > This patch renames AsAtomicWord to AsAtomicPointer and > adds new AsAtomicWord that works with intptr_t. > > Slot recording uses atomic page flag accessors. > > BUG=chromium:694255 > > Change-Id: I1c692813244b41320182e9eea50462d1802fcd98 > Reviewed-on: https://chromium-review.googlesource.com/597688 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47086} Bug: chromium:694255 Change-Id: I36780ff4001e068815d4be1e16cd06f1a4f98d13 Reviewed-on: https://chromium-review.googlesource.com/599909Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47131}
-
- 02 Aug, 2017 2 commits
-
-
Ulan Degenbaev authored
This reverts commit 35c923cc. Reason for revert: speculative revert for GC stress failure Original change's description: > [heap] Add support for atomic access to page flags. > > This patch renames AsAtomicWord to AsAtomicPointer and > adds new AsAtomicWord that works with intptr_t. > > Slot recording uses atomic page flag accessors. > > BUG=chromium:694255 > > Change-Id: I1c692813244b41320182e9eea50462d1802fcd98 > Reviewed-on: https://chromium-review.googlesource.com/597688 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47086} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Id77ce7970c54a55646c072787e88311f6f3e6e91 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:694255 Reviewed-on: https://chromium-review.googlesource.com/598967Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47094}
-
Ulan Degenbaev authored
This patch renames AsAtomicWord to AsAtomicPointer and adds new AsAtomicWord that works with intptr_t. Slot recording uses atomic page flag accessors. BUG=chromium:694255 Change-Id: I1c692813244b41320182e9eea50462d1802fcd98 Reviewed-on: https://chromium-review.googlesource.com/597688 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47086}
-
- 28 Jul, 2017 1 commit
-
-
Michael Lippautz authored
Also remove the comment on LayoutDescriptor as we want to pretenure those. Bug: chromium:738865 Change-Id: I5bdf66d383b481edc3250623e155b97d1081a7cc Reviewed-on: https://chromium-review.googlesource.com/590235Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46970}
-
- 27 Jul, 2017 2 commits
-
-
Michael Lippautz authored
NOTRY=true Bug: chromium:738865 Change-Id: I8e3ac86bf6f0b3356398053b157ec03217e78a08 Reviewed-on: https://chromium-review.googlesource.com/589129Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46928}
-
Michael Lippautz authored
We need to write the slot with a relaxed write. No additional barrier is needed because the new object has been published using Release_CAS and reading either value is fine (as long as all initializing stores have been published). NOTRY=true Bug: chromium:738865 Change-Id: Ieeacccf00e0a7e8eb950eee01060bd1963e30a42 Reviewed-on: https://chromium-review.googlesource.com/589007 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46924}
-
- 20 Jul, 2017 2 commits
-
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: Ie18574bb067438816238e2cf930e6d2a7bc5ecef Reviewed-on: https://chromium-review.googlesource.com/570579 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46798}
-
Michael Lippautz authored
Scavenger and full MC now rely on the same allocation behavior for their evacuation. Bug: Change-Id: Iddb0affe171187308e5b77ab0d3cfa75211bd8b8 Reviewed-on: https://chromium-review.googlesource.com/575983Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46781}
-
- 17 Jul, 2017 2 commits
-
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: Ic30a3e1012771d2e37b0e10aa59ab348a40bac10 Reviewed-on: https://chromium-review.googlesource.com/574714Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46717}
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: Icc3e292ded7f4097ef266d8db80f273a412a8b92 Reviewed-on: https://chromium-review.googlesource.com/565718 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46708}
-
- 13 Jul, 2017 1 commit
-
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: I065c4e63a437daaeba8b42826f91ddd5c1b542e4 Reviewed-on: https://chromium-review.googlesource.com/570161Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46633}
-
- 12 Jul, 2017 2 commits
-
-
Michael Lippautz authored
Various Scavenger fixes for smaller issues that accumulated over the last years. Bug: chromium:738865 Change-Id: I7573e438eba030944b99c65807944c662526a171 Reviewed-on: https://chromium-review.googlesource.com/567190 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46578}
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: I53f82a459a82057486dcba26696fadebf7befcf7 Reviewed-on: https://chromium-review.googlesource.com/567156Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46576}
-
- 10 Jul, 2017 2 commits
-
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: Icb92b649ecd3d4ab4c60f35ffe0649a35fe8b3f6 Reviewed-on: https://chromium-review.googlesource.com/565285Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46530}
-
Michael Lippautz authored
Bug: chromium:738865 Change-Id: I93721f535ecf8518bf0355e62d5848147460abc8 Reviewed-on: https://chromium-review.googlesource.com/565198Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46519}
-
- 07 Jul, 2017 1 commit
-
-
Michael Lippautz authored
Bug: Change-Id: I6953e494632684b9e2bc9a1bf7f7801eea25cdcb Reviewed-on: https://chromium-review.googlesource.com/563212 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46479}
-
- 06 Jul, 2017 1 commit
-
-
Michael Lippautz authored
Replaces the old PromotionQueue that was kept at the end of to space. This change allows a future implementation to use (a) a thread-local promotion list and (b) enables work stealing for concurrent scenarios. Bug: chromium:738865 Change-Id: I4c983a36e69ad4a9462eb9a59f586a85e51acbde Reviewed-on: https://chromium-review.googlesource.com/561141 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46446}
-
- 03 Jul, 2017 2 commits
-
-
Michael Lippautz authored
Bug: chromium:738368 Change-Id: I749517391f9d5dd0827f3d37f975f6c61542d1ff Reviewed-on: https://chromium-review.googlesource.com/558914 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46391}
-
Michael Lippautz authored
- Avoid static methods. - Instantiate the actual visitor on the stack. - Get rid of unnecessary abstractions. Bug: chromium:738865 Change-Id: I4115d7b88f17a7118aa9ee129eb39a28ec413696 Reviewed-on: https://chromium-review.googlesource.com/558878 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46384}
-
- 30 Jun, 2017 1 commit
-
-
Michael Lippautz authored
Replace the second level visitation with a much simpler logic that just separately dispatches the special cases. All other cases can use a dispatch that just evacuates an object based on size. This is similar to the logic used in the mark-compact collector. The goal is to align behaviors as much as possible, highlighting and fixing performance issues in the different behaviors. This CL is mechanical as possible. A followup will clean up the naming scheme and dispatching. Bug: chromium:738368 Change-Id: Ia5a426c5ebb25230000b127580c300c97cff8b1b Reviewed-on: https://chromium-review.googlesource.com/558060 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46364}
-
- 26 Jun, 2017 1 commit
-
-
hans authored
This is towards closing the perf gap between the MSVC build (which uses link- time optimization) and Clang (where LTO isn't ready on Windows yet). We did a study (see bug) to see which non-inlined functions are hit a lot during render start-up, and which would be inlined during LTO. This should benefit performance in all builds which currently don't use LTO (Android, Linux, Mac) as well as the Win/Clang build. The binary size of chrome_child.dll increases by 2KB with this. BUG=chromium:728324 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.mac:mac_chromium_compile_dbg_ng Review-Url: https://codereview.chromium.org/2950993002 Cr-Commit-Position: refs/heads/master@{#46229}
-
- 25 Jun, 2017 1 commit
-
-
machenbach authored
Revert of Make some functions that are hit during renderer startup available for inlining (patchset #3 id:40001 of https://codereview.chromium.org/2950993002/ ) Reason for revert: Blocks roll: https://codereview.chromium.org/2954833002/ E.g.: https://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/449680 https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_compile_dbg_ng/builds/324953 Please include those chromium trybots on reland. Maybe missing symbol export? Original issue's description: > Make some functions that are hit during renderer startup available for inlining > > This is towards closing the perf gap between the MSVC build (which uses link- > time optimization) and Clang (where LTO isn't ready on Windows yet). We did > a study (see bug) to see which non-inlined functions are hit a lot during render > start-up, and which would be inlined during LTO. This should benefit performance > in all builds which currently don't use LTO (Android, Linux, Mac) as well as > the Win/Clang build. > > The binary size of chrome_child.dll increases by 2KB with this. > > BUG=chromium:728324 > > Review-Url: https://codereview.chromium.org/2950993002 > Cr-Commit-Position: refs/heads/master@{#46191} > Committed: https://chromium.googlesource.com/v8/v8/+/d00d52be1fce9c1bf5558c8b26bf984efd09e65b TBR=jochen@chromium.org,mstarzinger@chromium.org,rmcilroy@chromium.org,vogelheim@chromium.org,marja@chromium.org,mlippautz@chromium.org,thakis@chromium.org,hans@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:728324 NOTRY=true NOPRESUBMIT=true Review-Url: https://codereview.chromium.org/2955793002 Cr-Commit-Position: refs/heads/master@{#46195}
-
- 23 Jun, 2017 2 commits
-
-
hans authored
This is towards closing the perf gap between the MSVC build (which uses link- time optimization) and Clang (where LTO isn't ready on Windows yet). We did a study (see bug) to see which non-inlined functions are hit a lot during render start-up, and which would be inlined during LTO. This should benefit performance in all builds which currently don't use LTO (Android, Linux, Mac) as well as the Win/Clang build. The binary size of chrome_child.dll increases by 2KB with this. BUG=chromium:728324 Review-Url: https://codereview.chromium.org/2950993002 Cr-Commit-Position: refs/heads/master@{#46191}
-
Michael Lippautz authored
Bug: Change-Id: I90e0c469d096cbffbecf01add6cfabbf3af275fa Reviewed-on: https://chromium-review.googlesource.com/544307Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46158}
-
- 06 Oct, 2016 1 commit
-
-
mlippautz authored
The scavenger should never consider mark bits for promotion/copy as this creates weird livetimes at the start of incremental marking. E.g. consider an object marked black by the marker at the start of incremental marking. A scavenge would promote it to the old generation although it could --and for short-living objects actually does-- become unreachable during marking Also, keeping this invariant significantly simplifies young generation mark compacting as we can compare against the scavenging decision without keeping different sets of markbits. BUG=chromium:651354 R=hpayer@chromium.org Review-Url: https://codereview.chromium.org/2397713002 Cr-Commit-Position: refs/heads/master@{#40026}
-
- 04 Aug, 2016 1 commit
-
-
ahaas authored
R=mlippautz@chromium.org BUG=chromium:633539 TEST=cctest/test-heap/TestNewSpaceRefsInCopiedCode Review-Url: https://codereview.chromium.org/2203783002 Cr-Commit-Position: refs/heads/master@{#38326}
-
- 01 Jun, 2016 1 commit
-
-
hlopko authored
It happens that a scavenger runs during incremental marking. Currently scavenger does not care about MarkCompact's mark bits. When an object is alive and marked, and at least one scavenge happens during incremental marking, the object will be copied once to the other semispace in the new_space, and then once to the old_space. For surviving objects this is useless extra work. In our current attempts (https://codereview.chromium.org/1988623002) to ensure marked objects are scavenged, all marked objects will survive therefore there will be many objects which will be uselessly copied. This cl modifies our promotion logic so when incremental marking is in progress, and the object is marked, we promote it unconditionally. BUG= LOG=no Review-Url: https://codereview.chromium.org/2005173003 Cr-Commit-Position: refs/heads/master@{#36643}
-
- 24 May, 2016 2 commits
-
-
ahaas authored
The {force_promotion} flag causes the scavenger to move an object to the old generation instead of to the other semi-space. We use the flag to force the promotion of objects which are referenced by code objects. R=ulan@chromium.org Committed: https://crrev.com/f2a7ba6449406d0b11a245aa1f5b4981265b6f20 Cr-Commit-Position: refs/heads/master@{#36443} Review-Url: https://codereview.chromium.org/2002013002 Cr-Commit-Position: refs/heads/master@{#36462}
-
mlippautz authored
Revert of [heap] Pass a force_promotion flag to the evacuation routine in the scavenger. (patchset #3 id:40001 of https://codereview.chromium.org/2002013002/ ) Reason for revert: Need to revert JSArrayBuffer change. Please rebase and reland. Original issue's description: > [heap] Pass a force_promotion flag to the evacuation routine in the scavenger. > > The {force_promotion} flag causes the scavenger to move an object to the > old generation instead of to the other semi-space. We use the flag to force > the promotion of objects which are referenced by code objects. > > R=ulan@chromium.org > > Committed: https://crrev.com/f2a7ba6449406d0b11a245aa1f5b4981265b6f20 > Cr-Commit-Position: refs/heads/master@{#36443} TBR=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/2007563004 Cr-Commit-Position: refs/heads/master@{#36460}
-
- 23 May, 2016 1 commit
-
-
ahaas authored
The {force_promotion} flag causes the scavenger to move an object to the old generation instead of to the other semi-space. We use the flag to force the promotion of objects which are referenced by code objects. R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2002013002 Cr-Commit-Position: refs/heads/master@{#36443}
-
- 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}
-
- 02 Feb, 2016 1 commit
-
-
mlippautz authored
This function is called for every live object in new space. We statically know which version to call, so let's use templates here and eliminite a branch at runtime. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1659823002 Cr-Commit-Position: refs/heads/master@{#33662}
-
- 12 Jan, 2016 1 commit
-
-
mlippautz authored
We use a scratchpad to remember visited allocation sites for post processing (making tenure decisions). The previous implementation used a rooted FixedArray with constant length (256) to remember all sites. Updating the scratchpad is a bottleneck in any parallel/concurrent implementation of newspace evacuation. The new implementation uses a HashMap with allocation sites as keys and temporary counts as values. During evacuation we collect a local hashmap of visited allocation sites. Upon merging the local hashmap back into a global one we update potential forward pointers of compacted allocation sites. The scavenger can directly enter its entries into the global hashmap. Note that the actual memento found count is still kept on the AllocationSite as it needs to survive scavenges and full GCs. BUG=chromium:524425 LOG=N R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1535723002 Cr-Commit-Position: refs/heads/master@{#33233}
-
- 04 Dec, 2015 1 commit
-
-
jochen authored
BUG=none R=ishell@chromium.org,hpayer@chromium.org LOG=n Review URL: https://codereview.chromium.org/1488053002 Cr-Commit-Position: refs/heads/master@{#32618}
-