- 27 May, 2021 1 commit
-
-
Dominik Inführ authored
The counter as size_t can legitimately overflow on 32-bit systems, since decreasing the counters is performed after all backing stores were freed on a background thread. Before sweeping is finished a new backing store could already be allocated which then leads to the overflow. Bug: v8:11788, chromium:1211437 Change-Id: Id9f3e58b0e84e831fe47109f7deb3a05ae7e489c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2922242 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74836}
-
- 25 Mar, 2020 1 commit
-
-
Michael Lippautz authored
This adds HeapObjectHeader, a meta object that is put in front of every managed object. HeapObjectHeader provides accessors for: 1. GCInfoIndex 2. In construction bit 3. size 4. Mark bit Meta info is distributed among two uint16_t fields as (1.,2.) and (3.,4.). This is convenient as the non-bit accessors (size, GCInfoIndex) are constant during marking. Object layout see heap-object-header.h. Note: The current implementation does not bypass ASAN poisoning and assumes an unpoisoned header whenever performing an access. Bug: chromium:1056170 Change-Id: I753f15467ed5c2b22b47e64d3aa5a3c1baddf8e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2116031 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#66861}
-
- 12 Feb, 2020 1 commit
-
-
Leszek Swirski authored
Clean-up a couple of CAS loops to avoid loading after a compare_exchange (which updates the old value), and to loosen the memory ordering to acquire-release to avoid unnecessary fences. Change-Id: Ifb8e5e5136f687ca5a71417a5d131a7023add054 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2050390 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66235}
-
- 10 Feb, 2020 1 commit
-
-
Leszek Swirski authored
Make the NextScriptId value incrementing method thread-safe, using CompareAndSwap primitives. This will allow it to be used in the future for off-thread compilation. Bug: chromium:1011762 Change-Id: I5b449e75c7dc63d24fa045ae880b0680b54c2f3d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2046883Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#66200}
-
- 30 Oct, 2019 1 commit
-
-
Dominik Inführ authored
Change SlotSet representation to a variable-sized array of pointers to buckets. The length of the array/number of buckets depends on the size of the page. Before this change the SlotSet always stored a fixed number of buckets. Large pages needed a SlotSet-Array to cover the whole object. Now both regular and large pages both use a single SlotSet object, which contains all bucket pointers. Change-Id: I2d8d62fad54b58409cd39ae7a52c64497ee7c261 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876811Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#64635}
-
- 27 Nov, 2018 1 commit
-
-
Igor Sheludko authored
Bug: v8:8238 Change-Id: I7fa1538909bfaf368498ebcc1c59eed258e81a16 Reviewed-on: https://chromium-review.googlesource.com/c/1352272Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#57877}
-
- 09 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
AtomicValue is deprecated, so we can start removing things that are not in use any more. R=mstarzinger@chromium.org Bug: v8:8238 Change-Id: I0a1445eccaf89f8869fd56e0fbece809bbcd6e5e Reviewed-on: https://chromium-review.googlesource.com/c/1326464 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57404}
-
- 01 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
The previous AtomicElement wrapper fundamentally relied on reinterpret_casting a heap address to an instance of a C++ object, which is an invalid cast. This patch replaces that pattern with an ObjectSlot-based alternative that does not rely on UB. Bug: v8:3770 Change-Id: I62fb3c7589ac59e9e18139b525174de77e0e2149 Reviewed-on: https://chromium-review.googlesource.com/c/1309297 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57197}
-
- 12 Sep, 2018 3 commits
-
-
Michael Lippautz authored
- Update those counters from space - Add fast path for move memory Fix: - Introduce proper variants for checked arithmetic on atomics. Previous revert was needed to unblock other reverts. This reverts commit 651bd0de. Bug: chromium:845409 Change-Id: I906ef6c60a589a30a0a632eadb8642735deaf0e4 Tbr: ulan@chromium.org Reviewed-on: https://chromium-review.googlesource.com/1221213Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#55828}
-
Michael Achenbach authored
This reverts commit 9d5ab51f. Reason for revert: Blocks important revert. Also rolling is down since 2 days... so please wait with relanding until rolling is confirmed to be up again. https://chromium-review.googlesource.com/c/v8/v8/+/1219695 Original change's description: > Reland "[heap] Introduce backing store counters on Heap" > > - Update those counters from space > - Add fast path for move memory > > Fix: > - Introduce proper variants for checked arithmetic on atomics. > > This reverts commit 0c62f5b3. > > Bug: chromium:845409 > Change-Id: I98ad1a7c470c7e7b805e087b4ec74e3451344712 > Reviewed-on: https://chromium-review.googlesource.com/1219647 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#55815} TBR=ulan@chromium.org,mlippautz@chromium.org Change-Id: Ifb7c6e31f7f105bd11d1497a1061f73d42c05c31 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:845409 Reviewed-on: https://chromium-review.googlesource.com/1221186Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#55816}
-
Michael Lippautz authored
- Update those counters from space - Add fast path for move memory Fix: - Introduce proper variants for checked arithmetic on atomics. This reverts commit 0c62f5b3. Bug: chromium:845409 Change-Id: I98ad1a7c470c7e7b805e087b4ec74e3451344712 Reviewed-on: https://chromium-review.googlesource.com/1219647Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#55815}
-
- 12 Jul, 2018 1 commit
-
-
Hannes Payer authored
Bug: chromium:842083 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I9a8d8327bfbab95cf9bdddb096804b65270cdfed Reviewed-on: https://chromium-review.googlesource.com/1127944 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#54388}
-
- 09 May, 2018 1 commit
-
-
Clemens Hammacher authored
Instead of {base::AtomicNumber<intptr_t>} use {std::atomic<size_t>}, since we really want to store a size_t in there, and only abused negative values before to avoid a compare-and-swap loop. R=mstarzinger@chromium.org Bug: v8:7570 Change-Id: Ibff0fe0550396f11b343f7e3c098ccf94f6e8dbb Reviewed-on: https://chromium-review.googlesource.com/1049067Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53098}
-
- 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}
-
- 21 Aug, 2017 1 commit
-
-
Ulan Degenbaev authored
This replaces custom Release_CompareAndSwap implementation with a call to compiler intrinsic / std:atomic, which is TSAN friendly. Bug: chromium:694255 Change-Id: Iab67c8f5a3a2329b18030a70f3dbf3cb5530374e Reviewed-on: https://chromium-review.googlesource.com/622431 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47469}
-
- 11 Aug, 2017 2 commits
-
-
Ulan Degenbaev authored
This class provides byte level CAS operation using word level CAS. Bug: chromium:694255 Change-Id: I39e661ee8d11e3f61fd5cb64c36f8f5ee94d1244 Reviewed-on: https://chromium-review.googlesource.com/612170 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47311}
-
Michael Lippautz authored
The removed building blocks have either been completely unused or have already been replaced. Bug: Change-Id: I68a4d5d42b7f1cc3c5f8d0e7ea7146c5a0f59048 Reviewed-on: https://chromium-review.googlesource.com/612163Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47304}
-
- 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}
-
- 21 Jun, 2017 1 commit
-
-
Ulan Degenbaev authored
BUG=chromium:694255 Change-Id: I52237650b2e80428d21acfa2c4993a07d224b8c5 Reviewed-on: https://chromium-review.googlesource.com/542819 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46098}
-
- 20 Jun, 2017 2 commits
-
-
Michael Lippautz authored
A follow up will allow inserting slots during GC without emiting fences Bug: chromium:651354 Change-Id: Ia1d0f88e3658bca31933bdb013db15a5c2ecd849 Reviewed-on: https://chromium-review.googlesource.com/541400 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46042}
-
Michael Lippautz authored
With the exception for map space we can avoid atomic access at all since pages are locked. Map space is different since it contains old to new poitners to LayoutDescriptors that are concurrently used by other tasks for iterating objects. Bug: chromium:651354 Change-Id: If7ed99d21676bad8d2944132fb9696ff4123624d Reviewed-on: https://chromium-review.googlesource.com/539642 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46031}
-
- 19 Jun, 2017 1 commit
-
-
Michael Lippautz authored
This avoids emitting the costly barriers on arm. Bug: chromium:651354 Change-Id: Ibb29e58f7c41aab37ed5c4971b2a754b4ecd7155 Reviewed-on: https://chromium-review.googlesource.com/533337 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#46011}
-
- 16 Jun, 2017 1 commit
-
-
Ulan Degenbaev authored
This patch makes the SlotSet bucket type non-atomic by default and explicitly converts buckets to Atomic32/AtomicWord for each operation. Change-Id: Ifaa60a53eb68ca579185be23e379995aeeabe343 Reviewed-on: https://chromium-review.googlesource.com/535481 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#45971}
-
- 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}
-
- 30 Jan, 2017 1 commit
-
-
jochen authored
R=mtrofin@chromium.org,verwaest@chromium.org BUG= Review-Url: https://codereview.chromium.org/2662883003 Cr-Commit-Position: refs/heads/master@{#42787}
-
- 11 Nov, 2016 1 commit
-
-
ulan authored
BUG=v8:5614 Review-Url: https://codereview.chromium.org/2496913002 Cr-Commit-Position: refs/heads/master@{#40931}
-
- 18 Oct, 2016 1 commit
-
-
hpayer authored
BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2428493003 Cr-Commit-Position: refs/heads/master@{#40393}
-
- 12 Oct, 2016 1 commit
-
-
hpayer authored
This CL also introduces a NoBarrierAtomicValue with NoBarrier accessors. BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2408233004 Cr-Commit-Position: refs/heads/master@{#40213}
-
- 20 Sep, 2016 1 commit
-
-
hpayer authored
Here we only change the type of the slot set fields to atomic values and use CAS to change the state. There is no change in behavior or semantics of the slot set. BUG=chromium:648568 Review-Url: https://codereview.chromium.org/2353553003 Cr-Commit-Position: refs/heads/master@{#39557}
-
- 07 Aug, 2016 1 commit
-
-
mlippautz authored
AtomicNumber should make dealing with atomic counters easier. This is not the case with size_t, as we cannot properly use the Increment() method for negative numbers. With this CL we can use AtomicNumber<size_t> and have proper decrements. R=jochen@chromium.org Review-Url: https://codereview.chromium.org/2215693002 Cr-Commit-Position: refs/heads/master@{#38407}
-
- 29 Jul, 2016 1 commit
-
-
jochen authored
BUG=v8:5215 R=marja@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2190333002 Cr-Commit-Position: refs/heads/master@{#38170}
-
- 09 May, 2016 1 commit
-
-
lpy authored
atomic-utils.h only uses functionality from base/, and also by moving it into base/, code outside of v8_base can benefit from it. BUG=v8:4991 LOG=n Review-Url: https://codereview.chromium.org/1954603002 Cr-Commit-Position: refs/heads/master@{#36114}
-
- 18 Nov, 2015 1 commit
-
-
mlippautz authored
Replaces the UnboundedQueue (SP/SC) with LockedQueue (MP/MC). This is necessary as we can have multiple tasks (on multiple platform threads) reporting code move events. Note that the sampling queue is not affected by this change. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1457483002 Cr-Commit-Position: refs/heads/master@{#32086}
-
- 16 Sep, 2015 1 commit
-
-
mlippautz authored
Adds concurrency support for: - MemoryChunk: Fragmentation counters - MemoryChunk: High-water mark - MemoryAllocator: Lowest and highest ever allocated addresses, size, and capacity R=hpayer@chromium.org BUG=chromium:524425 LOG=N This reverts commit 0db34dbe. BUG= Review URL: https://codereview.chromium.org/1346973002 Cr-Commit-Position: refs/heads/master@{#30760}
-
- 15 Sep, 2015 3 commits
-
-
mlippautz authored
Revert of [heap] Concurrency support for heap book-keeping info (patchset #4 id:60001 of https://codereview.chromium.org/1340923004/ ) Reason for revert: crashing: http://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug%20-%203/builds/4716 Original issue's description: > [heap] Concurrency support for heap book-keeping info. > > Adds concurrency support for: > - MemoryChunk: Fragmentation counters > - MemoryChunk: High-water mark > - MemoryAllocator: Lowest and highest ever allocated addresses, size, and > capacity > > R=hpayer@chromium.org > BUG=chromium:524425 > LOG=N > > Committed: https://crrev.com/63190721cda4966e01d71e92a730ce48ea789fbc > Cr-Commit-Position: refs/heads/master@{#30749} TBR=hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1340323002 Cr-Commit-Position: refs/heads/master@{#30752}
-
mlippautz authored
Loads get an acquire, store/cas a release. Increment gets a full barrier. R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1343883004 Cr-Commit-Position: refs/heads/master@{#30751}
-
mlippautz authored
Adds concurrency support for: - MemoryChunk: Fragmentation counters - MemoryChunk: High-water mark - MemoryAllocator: Lowest and highest ever allocated addresses, size, and capacity R=hpayer@chromium.org BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1340923004 Cr-Commit-Position: refs/heads/master@{#30749}
-
- 04 Sep, 2015 1 commit
-
-
mlippautz authored
BUG= Review URL: https://codereview.chromium.org/1324153003 Cr-Commit-Position: refs/heads/master@{#30589}
-