- 22 Sep, 2020 1 commit
-
-
Ulan Degenbaev authored
Building and running tests with v8_enabled_concurrent_marking=false currently produces two failures: 1) Segmentation fault on attempt to mark a read-only object. This is fixed by changing MarkBit::Set to be a no-op if the object is already marked (which is the case for the readonly space). 2) Missing write-barrier due to bogus condition in the bailout. The barrier can be skipped only if the host object is not marked yet. This also disables two concurrent allocation tests that rely on concurrent marking write-barrier. Bug: v8:10875 Change-Id: Ib3a238fc34c8f20c697470e0bd4ac427fb4bdc0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2421816Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#70041}
-
- 20 Apr, 2020 1 commit
-
-
Ulan Degenbaev authored
Deserializer can trigger OOB read in the marking bitmap inside the RegisterDeserializedObjectsForBlackAllocation function. This happens for example if an internalized string is deserialized as the last object on a page and is the turned into a thin-string leaving a one-word filler at the end of the page. In such a case IsBlack(filler) will try to fetch a cell outside the marking bitmap. The fix is to increase the size of the marking bitmap by one cell, so that it is always safe to query markbits of any object on a page. Bug: chromium:978156 Change-Id: If3c74e4f97d2caeb3c3f37a4147f38dea5f0e5a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2152838 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#67223}
-
- 23 May, 2019 1 commit
-
-
Yang Guo authored
NOPRESUBMIT=true TBR=mstarzinger@chromium.org Bug: v8:9247 Change-Id: I4cd6b79a1c2cba944f6f23caed59d4f1a4ee358b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624217 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#61790}
-
- 29 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in heap code to 'using' declarations. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I8a9f6e1eebdd0adca4373c866e95ebab0a1e992d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545892Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60523}
-
- 25 Feb, 2019 1 commit
-
-
Pierre Langlois authored
When calling the `bitmap(chunk)` method of the various *MarkingState accessors we would receive a raw `Bitmap` pointer which does not tell you if accesses to markbits should be made atomically or not. As a result, we would default to doing atomic operation when in fact it may not be necessary. Here we're introducing a templated `ConcurrentBitmap` class that wraps operations done on the markbits and allows them to be made non-atomic. Additionaly, some of the `Bitmap` methods were only used to verify the heap and in the tests so they do not need atomic implementations. Using them in a concurrent context should now fail to link to make sure they're not mis-used in the future. Change-Id: Ifb55f8522c8bf0c87d65da9227864ee428d21bbd Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1482916Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/master@{#59836}
-
- 19 Dec, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8477, v8:8562 Change-Id: Iaa995c8fbb9f309dadac4e308d727f628fdb8b3c Reviewed-on: https://chromium-review.googlesource.com/c/1384314Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#58379}
-
- 26 Oct, 2018 2 commits
-
-
Ulan Degenbaev authored
This reverts commit 2690e2fc. Reason for revert: this is not needed because objects in the worklist are guaranteed to be not black allocated. Original change's description: > [heap] Correctly check for black allocated objects in concurrent marker. > > The markbit check should be performed before using the map of the > object. > > Change-Id: Ia19e48fd4660387d239e1e330368808727359c7f > Reviewed-on: https://chromium-review.googlesource.com/c/1301496 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57040} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org Change-Id: I4f188197620c511060fda4f60c80a3c389007054 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/1301993Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57043}
-
Ulan Degenbaev authored
The markbit check should be performed before using the map of the object. Change-Id: Ia19e48fd4660387d239e1e330368808727359c7f Reviewed-on: https://chromium-review.googlesource.com/c/1301496 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#57040}
-
- 11 Oct, 2018 1 commit
-
-
Hannes Payer authored
Change-Id: Idc52e3ed6af13b20569a412e98bae0841d32e009 Reviewed-on: https://chromium-review.googlesource.com/c/1254125 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#56572}
-
- 22 Jun, 2018 1 commit
-
-
Georg Neis authored
Use V8_INLINE and V8_NOINLINE instead. R=sigurds@chromium.org TBR=yangguo@chromium.org TBR=hpayer@chromium.org Change-Id: I1ccfcdc2178ded15ec730ab0577c4fc96a76a4f9 Reviewed-on: https://chromium-review.googlesource.com/1111840 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#53966}
-
- 20 Mar, 2018 1 commit
-
-
Dan Elphick authored
Adds a new space RO_SPACE and modifies the serializer and other machinery to support it. Currently RO_SPACE has nothing in it, but will eventually contain all the immovable immutable objects, so the GC can ignore it. Bug: v8:7464 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ib2ff474699196c138df8c24f7a2248471e30fbac Reviewed-on: https://chromium-review.googlesource.com/925703 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52053}
-
- 02 Feb, 2018 1 commit
-
-
jgruber authored
This check verifies that all .h files in the src/ directory have an include guard of the form #ifndef V8_PATH_TO_FILE_H_ #define V8_PATH_TO_FILE_H_ // ... #endif // V8_PATH_TO_FILE_H_ The check can be skipped with a magic comment: // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0a7b96abec289ad60f64ba8418f1892a6969596d Reviewed-on: https://chromium-review.googlesource.com/897487Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51079}
-
- 19 Sep, 2017 1 commit
-
-
Michael Lippautz authored
Removes - SequentialMarkingDeque - The ability to handle marking deque overflow - BlackToGrey transitions We switched to a different marking work list on M61 that fails in OOM upon failing to allocate Segments used in the work list. Bug: chromium:758570 Change-Id: I66e2ab912271bf84b085dccc9b4bdd96076b64fb Reviewed-on: https://chromium-review.googlesource.com/632676 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48078}
-
- 29 Jun, 2017 1 commit
-
-
Michael Lippautz authored
Bug: chromium:651354 Change-Id: Ib384ca2d386421a0a466ef318b278f8fc677cdb2 Reviewed-on: https://chromium-review.googlesource.com/555172Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46320}
-
- 20 Jun, 2017 1 commit
-
-
Michael Lippautz authored
During minor MC new space evacuation we could have two adjacent LABs sharing a mark bit cell. The DCHECK when observing and changing markbits of the target needs to reflect that. Bug: chromium:651354 Change-Id: I737d0f9e3d37dfb1cda3f126d37ed5e7123bedc9 Reviewed-on: https://chromium-review.googlesource.com/541296Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46032}
-
- 19 Jun, 2017 1 commit
-
-
Ulan Degenbaev authored
Change-Id: If0f80ceac9582f5bd0f9177db67b2a833fa8c8cd Reviewed-on: https://chromium-review.googlesource.com/539418Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46010}
-
- 13 Jun, 2017 1 commit
-
-
Michael Lippautz authored
Bug: Change-Id: I5ea0e072c3ac100a6f3bed62a9a4d2c11d2b7c9a Reviewed-on: https://chromium-review.googlesource.com/533414 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45920}
-
- 12 Jun, 2017 1 commit
-
-
Ulan Degenbaev authored
The fence ensures that the concurrent marker observes consistent state of mark-bits for newly allocated objects. The patch also moves Bitmap functions to cc file and removes non-atomic versions of SetRange and ClearRange. BUG=chromium:694255 Change-Id: I466bef654f3d4a21b7aaebdfd6d5a39ddb5f2a0a Reviewed-on: https://chromium-review.googlesource.com/530367Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45868}
-
- 07 Jun, 2017 1 commit
-
-
Ulan Degenbaev authored
This patch also changes String body descriptor to use synchronized length and adds atomic live_bytes accessor. BUG=chromium:694255 Change-Id: I41233b2097ec5c6a4ea2c45d4b8febf7ffca155e Reviewed-on: https://chromium-review.googlesource.com/527093Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#45761}
-
- 06 Jun, 2017 1 commit
-
-
Ulan Degenbaev authored
The boundary cells of the mark-bitmap can be access concurrently, so they need to be updated with atomic CAS. BUG=chromium:694255 Change-Id: Ibe85f00c8b4ccc61edc43b400c5b08a6d0ba620e Reviewed-on: https://chromium-review.googlesource.com/521103 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#45731}
-
- 30 May, 2017 1 commit
-
-
ulan authored
This is consistent with C++ memory model and avoids confusion with GC write barrier. BUG= Review-Url: https://codereview.chromium.org/2912773002 Cr-Commit-Position: refs/heads/master@{#45584}
-
- 22 May, 2017 1 commit
-
-
Wiktor Garbacz authored
Change-Id: I20ed35a7fb5104a9cc66bb54fa8966589c43d7f9 Reviewed-on: https://chromium-review.googlesource.com/507287Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Daniel Clifford <danno@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Commit-Queue: Wiktor Garbacz <wiktorg@google.com> Cr-Commit-Position: refs/heads/master@{#45458}
-
- 05 May, 2017 4 commits
-
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2863703004 Cr-Commit-Position: refs/heads/master@{#45136}
-
ulan authored
Revert of [heap] Reland "Make non-atomic markbit operations consistent with atomic ones." (patchset #2 id:20001 of https://codereview.chromium.org/2860323003/ ) Reason for revert: box2d failures on buildbot Original issue's description: > [heap] Reland "Make non-atomic markbit operations consistent with atomic ones." > > Now non-atomic color transition operations return a boolean indicating > whether the transition succeeded or not. > > This allows to replace color check and transition operations with a > single transition operation. For example: > > if (IsWhite(object)) { > WhiteToBlack(object); > Foo(); > } > > becomes > > if (WhiteToBlack(object)) { > Foo(); > } > > BUG=chromium:694255 > > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng > > Review-Url: https://codereview.chromium.org/2860323003 > Cr-Commit-Position: refs/heads/master@{#45123} > Committed: https://chromium.googlesource.com/v8/v8/+/c0a65cd295301f334e2bbfcce46a937cd708beec TBR=mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2863953002 Cr-Commit-Position: refs/heads/master@{#45127}
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2860323003 Cr-Commit-Position: refs/heads/master@{#45123}
-
https://codereview.chromium.org/2857713002Michael Achenbach authored
Revert "[heap] Make non-atomic markbit operations consistent with atomic ones." This reverts commit dd37366f Revert "[heap] Use atomic marking operations in incremental marking if" This reverts commit 1f2c3596 Revert "[heap] Prepare IncrementalMarking::VisitObject for concurrent marking." This reverts commit 00d1e2cf Revert "[heap] Use shared markbits in the concurrent marker." This reverts commit b0db0541 https://codereview.chromium.org/2857713002 blocks the current roll: https://codereview.chromium.org/2857423002/ Doesn't revert cleanly. NOTRY=true TBR=ulan@chromium.org Bug: chromium:694255 Change-Id: Iada35af5c2529cd9e604802700604b16cc30aa2d Reviewed-on: https://chromium-review.googlesource.com/497387Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45118}
-
- 04 May, 2017 1 commit
-
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2857713002 Cr-Commit-Position: refs/heads/master@{#45085}
-
- 06 Apr, 2017 1 commit
-
-
mlippautz authored
The actual value was always &-ed with 0 so technically correct. ASAN rightfully complains when allocating an external bitmap though. BUG=chromium:651354 R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2799283002 Cr-Commit-Position: refs/heads/master@{#44453}
-
- 15 Mar, 2017 1 commit
-
-
Michael Lippautz authored
BUG=chromium:694255 R=hpayer@chromium.org Change-Id: Ie8d23ec88e9b8f97ac094630f4e46e9b31f93cc5 Reviewed-on: https://chromium-review.googlesource.com/452817Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43829}
-
- 08 Mar, 2017 1 commit
-
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2492263002 Cr-Commit-Position: refs/heads/master@{#43679}
-
- 07 Mar, 2017 1 commit
-
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2731363002 Cr-Commit-Position: refs/heads/master@{#43645}
-
- 06 Mar, 2017 3 commits
-
-
ulan authored
The concurrent marker uses ObjectVisitor to iterate pointers in objects and local marking bitmaps to keep track of visited objects. To keep it simple for now, I removed support for multiple tasks and canceling unfinished tasks. BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2732053002 Cr-Commit-Position: refs/heads/master@{#43618}
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2737483002 Cr-Commit-Position: refs/heads/master@{#43609}
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2734823003 Cr-Commit-Position: refs/heads/master@{#43607}
-
- 03 Mar, 2017 1 commit
-
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2728113002 Cr-Commit-Position: refs/heads/master@{#43586}
-
- 01 Mar, 2017 1 commit
-
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2720133005 Cr-Commit-Position: refs/heads/master@{#43519}
-
- 01 Aug, 2016 1 commit
-
-
hpayer authored
BUG=chromium:630969,chromium:630386 Review-Url: https://codereview.chromium.org/2186863005 Cr-Commit-Position: refs/heads/master@{#38195}
-
- 28 Jul, 2016 1 commit
-
-
hpayer authored
Revert of [heap] Reland "Remove black pages and use black areas instead." (patchset #4 id:60001 of https://codereview.chromium.org/2185613002/ ) Reason for revert: Still crashing. Original issue's description: > [heap] Reland "Remove black pages and use black areas instead." > > BUG=chromium:630969,chromium:630386 > LOG=n > > Committed: https://crrev.com/9e37a07c8de0a20ef2681e26824ff4d329102603 > Cr-Commit-Position: refs/heads/master@{#38057} TBR=ulan@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:630969,chromium:630386 Review-Url: https://codereview.chromium.org/2183383004 Cr-Commit-Position: refs/heads/master@{#38129}
-
- 26 Jul, 2016 1 commit
-
-
hpayer authored
BUG=630969,630386 LOG=n Review-Url: https://codereview.chromium.org/2185613002 Cr-Commit-Position: refs/heads/master@{#38057}
-
- 25 Jul, 2016 1 commit
-
-
yangguo authored
Revert of [heap] Remove black pages and use black areas instead. (patchset #6 id:100001 of https://codereview.chromium.org/2160613002/ ) Reason for revert: Suspected to cause crbug.com/630969 Original issue's description: > [heap] Remove black pages and use black areas instead. > > BUG=630386 > LOG=n > > Committed: https://crrev.com/b008a0d5a3db80a854cb93d9c94d67bf2d780f2c > Cr-Commit-Position: refs/heads/master@{#37967} TBR=ulan@chromium.org,hpayer@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=630386 Review-Url: https://codereview.chromium.org/2176133002 Cr-Commit-Position: refs/heads/master@{#38006}
-