- 31 Jul, 2020 3 commits
-
-
Igor Sheludko authored
This is a reland of 13141c8a ... with a fix for an UB issue of passing null pointers to memcpy() when size is zero. TBR=leszeks@chromium.org Original change's description: > [zone-compr] Introduce ZoneTypeTraits and ZoneCompression > > Also move zone compression flags to src/common/globals.h. > > Bug: v8:9923 > Change-Id: Id0a77720e735e2669a1e5eef48e1b4866ad99480 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2324255 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69160} Bug: v8:9923 Change-Id: I2245b81516c39ccea262c282c659ef601af57abf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332165 Commit-Queue: Igor Sheludko (OOO Aug 3-17) <ishell@chromium.org> Reviewed-by: Igor Sheludko (OOO Aug 3-17) <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#69166}
-
Nico Hartmann authored
This reverts commit 13141c8a. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/12253? Original change's description: > [zone-compr] Introduce ZoneTypeTraits and ZoneCompression > > Also move zone compression flags to src/common/globals.h. > > Bug: v8:9923 > Change-Id: Id0a77720e735e2669a1e5eef48e1b4866ad99480 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2324255 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69160} TBR=leszeks@chromium.org,ishell@chromium.org Change-Id: I01fc05b33d01c19f9a9432d4b2dd73cf8b38b972 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9923 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332163Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#69162}
-
Igor Sheludko authored
Also move zone compression flags to src/common/globals.h. Bug: v8:9923 Change-Id: Id0a77720e735e2669a1e5eef48e1b4866ad99480 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2324255Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#69160}
-
- 24 Jul, 2020 1 commit
-
-
Igor Sheludko authored
* Added GN flag v8_enable_zone_compression. * AccountingAllocator supports allocation of zone segments via both malloc/free and bounded page allocator. The latter implementation is known to be not efficient yet. This issue will be addressed in a follow-up CLs. * Add support_compression flag to Zone constructor/instance. Bug: v8:9923 Change-Id: I12ee2d85267dd16f455b1b47edc425dc90c57bcf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2308345Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#69035}
-
- 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}
-
- 28 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
When switching from atomicops to std::atomic, I introduced a bug that makes us miss the actual peak memory consumption, and only report the second-highest memory usage in each zone. This CL fixes that. R=petermarshall@chromium.org Bug: chromium:939724 Change-Id: I3db8eeb9719eb026cf6b4a9690c702cbc4c11bd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541227Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60505}
-
- 08 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
R=sigurds@chromium.org Bug: v8:7490, v8:8834 Change-Id: I5d94c2f262826977bbf15ad32a10875f01304039 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505432Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60126}
-
- 01 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
This pooling introduces severe lock contention for Liftoff compilation, since each compilation uses its own Zone which does at least one segment allocation. It's also unclear whether pooling improves performance, since {malloc} should implement a similar pooling mechanism, but better optimized for multithreaded uses. Feel free to revert if this introduces significant regressions. R=verwaest@chromium.org Bug: v8:8916 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Change-Id: Iaf988bed898e35700f5f7f3310df8e01918de4c9 Reviewed-on: https://chromium-review.googlesource.com/c/1491632 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#59959}
-
- 28 Feb, 2019 4 commits
-
-
Clemens Hammacher authored
1) Rename {size()} to {total_size()} because {size() != end() - start()}. 2) Avoid undefined behaviour when creating segments, i.e. construct them via a constructor. 3) Minor drive-by cleanups. R=mstarzinger@chromium.org Bug: v8:8834 Change-Id: I3de47b2a775cf277e2f01ba5482afbd400acd06c Reviewed-on: https://chromium-review.googlesource.com/c/1493926 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59950}
-
Clemens Hammacher authored
This is a reland of b2f8280e, fixing asan and msan invocations to use {Segment::capacity()} instead of {Segment::size()}. Original change's description: > [zone] Teach ASan about the zone segment pool > > This adds proper poisoning/unpoisoning to segments put into the segment > pool of an accounting allocator, and also marks a segment uninitialized > when returning it from the pool. This gives ASan a better chance at > catching use-after-free and others. > > Drive-by: Fix type check in ASAN_POISON_MEMORY_REGION > > R=mstarzinger@chromium.org > > Change-Id: Iadbdd7c0a0c80da8e7b9bb8f3399209715436073 > Reviewed-on: https://chromium-review.googlesource.com/c/1489086 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59932} Change-Id: I3150a7f96fefd94bd96af2fdc24c302a4a5d0ea3 Reviewed-on: https://chromium-review.googlesource.com/c/1493866Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59937}
-
Michael Achenbach authored
This reverts commit b2f8280e. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/25509 Original change's description: > [zone] Teach ASan about the zone segment pool > > This adds proper poisoning/unpoisoning to segments put into the segment > pool of an accounting allocator, and also marks a segment uninitialized > when returning it from the pool. This gives ASan a better chance at > catching use-after-free and others. > > Drive-by: Fix type check in ASAN_POISON_MEMORY_REGION > > R=mstarzinger@chromium.org > > Change-Id: Iadbdd7c0a0c80da8e7b9bb8f3399209715436073 > Reviewed-on: https://chromium-review.googlesource.com/c/1489086 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59932} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: Iacf322d04822382ea8e1f5abe1d5e72758adc399 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/1493055Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#59934}
-
Clemens Hammacher authored
This adds proper poisoning/unpoisoning to segments put into the segment pool of an accounting allocator, and also marks a segment uninitialized when returning it from the pool. This gives ASan a better chance at catching use-after-free and others. Drive-by: Fix type check in ASAN_POISON_MEMORY_REGION R=mstarzinger@chromium.org Change-Id: Iadbdd7c0a0c80da8e7b9bb8f3399209715436073 Reviewed-on: https://chromium-review.googlesource.com/c/1489086 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59932}
-
- 27 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
Instead of using our own atomic utils, use std::atomic. R=mstarzinger@chromium.org Bug: v8:8916, v8:8834 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Change-Id: I663d7f28dbaaa476a62407cf42dca1927c69f68b Reviewed-on: https://chromium-review.googlesource.com/c/1491631 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59913}
-
- 27 Nov, 2018 1 commit
-
-
Toon Verwaest authored
Unfortunately the previous strategy was slower but more memory efficient. For now simply revert. Revert "[zone] Use 32kb instead of 1MB as high zone page size" Revert "[zone] Get rid of the Zone's segment pool" Revert "[zone] Further simplify zone expansion, use single default page size" Bug: chromium:908359 Change-Id: I649542e7e61eef0c14a26ffd21039e8340ab4d04 Reviewed-on: https://chromium-review.googlesource.com/c/1351027Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#57872}
-
- 21 Nov, 2018 1 commit
-
-
Toon Verwaest authored
It's unclear that this helps performance. Let's see what the bots say. Change-Id: Ic28783c90495f6ce01b4980d84794d394f941a4f Reviewed-on: https://chromium-review.googlesource.com/c/1346331 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57696}
-
- 12 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
LockGuard is mostly used with Mutex. Since both are defined outside the internal namespace, we often have to write {base::LockGuard<base::Mutex>}. This CL shortens this to {base::MutexGuard} across the code base R=mlippautz@chromium.org Bug: v8:8238 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I020d5933b73aafb98c4b72e3bb2dfd07c979ba73 Reviewed-on: https://chromium-review.googlesource.com/c/1278796Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56612}
-
- 22 Dec, 2017 2 commits
-
-
Bill Budge authored
- Moves all allocation retry logic into allocation. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I810d01f0a0a002b08bf3f82ea4195d636ab6e03a Reviewed-on: https://chromium-review.googlesource.com/843230Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#50305}
-
Bill Budge authored
- Adds overload to v8::Platform that will make it easier for embedders to maintain a reserve of address space for large, contiguous allocations. - Rewrites retry logic using loops. - Moves retry logic from some VirtualMemory allocation functions to AllocPages. Bug: chromium:756050 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I52e66f9f8b15b6ce2a2f36e74783f178b8cd5cf7 Reviewed-on: https://chromium-review.googlesource.com/840724 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#50303}
-
- 01 Aug, 2017 1 commit
-
-
Bill Budge authored
This is a reland of 3f90d9f9 Original change's description: > [Memory] Add an OnCriticalMemoryPressure method to V8::Platform. > > Adds virtual V8::Platform::OnCriticalMemoryPressure method, default > implementation does nothing. > > Calls this method on first allocation failures in NewArray, Malloced, > and zone AccountingAllocator and adds retry logic. > > Adds utility functions for allocating base::VirtualMemory to functions > in allocation.h, which call this method and add retry logic. > > Calls these utility functions in heap CodeRange, Spaces, StoreBuffer > and SequentialMarkingDeque. > > Bug: v8:6635 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I38afd394f3be556aca037d16675e9884658158cb > Reviewed-on: https://chromium-review.googlesource.com/583543 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46988} Bug: v8:6635 Change-Id: I0d70c5796f407f0ed42cfddf581d26f533f9bea8 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/593090Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47027}
-
- 29 Jul, 2017 2 commits
-
-
Georg Neis authored
This reverts commit 3f90d9f9. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/16510 Original change's description: > [Memory] Add an OnCriticalMemoryPressure method to V8::Platform. > > Adds virtual V8::Platform::OnCriticalMemoryPressure method, default > implementation does nothing. > > Calls this method on first allocation failures in NewArray, Malloced, > and zone AccountingAllocator and adds retry logic. > > Adds utility functions for allocating base::VirtualMemory to functions > in allocation.h, which call this method and add retry logic. > > Calls these utility functions in heap CodeRange, Spaces, StoreBuffer > and SequentialMarkingDeque. > > Bug: v8:6635 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I38afd394f3be556aca037d16675e9884658158cb > Reviewed-on: https://chromium-review.googlesource.com/583543 > Commit-Queue: Bill Budge <bbudge@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46988} TBR=bbudge@chromium.org,ulan@chromium.org,mlippautz@chromium.org Change-Id: I79afea5982e62db1462cc5a5585a226f0ddbe752 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6635 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/592887Reviewed-by: Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46989}
-
Bill Budge authored
Adds virtual V8::Platform::OnCriticalMemoryPressure method, default implementation does nothing. Calls this method on first allocation failures in NewArray, Malloced, and zone AccountingAllocator and adds retry logic. Adds utility functions for allocating base::VirtualMemory to functions in allocation.h, which call this method and add retry logic. Calls these utility functions in heap CodeRange, Spaces, StoreBuffer and SequentialMarkingDeque. Bug: v8:6635 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I38afd394f3be556aca037d16675e9884658158cb Reviewed-on: https://chromium-review.googlesource.com/583543 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46988}
-
- 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}
-
- 08 Mar, 2017 1 commit
-
-
Michael Starzinger authored
This fixes various allocator methods to properly propagate {nullptr} to callers without accidentally dereferencing it. We also disable one test case for stress mode as it runs out of memory due to inlining limits being lifted in the stress mode. R=bmeurer@chromium.org TEST=mjsunit/array-natives-elements BUG=v8:6061 Change-Id: Id0a7b826a8612d00b4f4ae8aa0bea011c50890ca Reviewed-on: https://chromium-review.googlesource.com/451365Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#43672}
-
- 21 Nov, 2016 1 commit
-
-
verwaest authored
BUG=chromium:655129 Review-Url: https://codereview.chromium.org/2520903002 Cr-Commit-Position: refs/heads/master@{#41138}
-
- 20 Oct, 2016 1 commit
-
-
heimbuef authored
Added a size constraint to the configuration to limit the segment pool. This will likely fix the memory alerts from small android devices. BUG=chromium:655129 Review-Url: https://chromiumcodereview.appspot.com/2424393002 Cr-Commit-Position: refs/heads/master@{#40476}
-
- 11 Oct, 2016 1 commit
-
-
heimbuef authored
Can be displayed in the external tool as well. BUG=v8:5489 Review-Url: https://codereview.chromium.org/2392183004 Cr-Commit-Position: refs/heads/master@{#40166}
-
- 10 Oct, 2016 1 commit
-
-
heimbuef authored
BUG=v8:5409 Committed: https://crrev.com/37c688a24578e787d3d8941093563ed049c3497e Committed: https://crrev.com/316669f62ea3834395bf4caab7bc3d7c32f6bbc6 Review-Url: https://codereview.chromium.org/2335343007 Cr-Original-Original-Commit-Position: refs/heads/master@{#39631} Cr-Original-Commit-Position: refs/heads/master@{#40044} Cr-Commit-Position: refs/heads/master@{#40137}
-
- 07 Oct, 2016 1 commit
-
-
hablich authored
Revert of Pool implementation for zone segments (patchset #13 id:520001 of https://codereview.chromium.org/2335343007/ ) Reason for revert: blocks roll: https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/294283/steps/compile%20%28with%20patch%29/logs/stdio Original issue's description: > Pool implementation for zone segments > > BUG=v8:5409 > > Committed: https://crrev.com/37c688a24578e787d3d8941093563ed049c3497e > Committed: https://crrev.com/316669f62ea3834395bf4caab7bc3d7c32f6bbc6 > Cr-Original-Commit-Position: refs/heads/master@{#39631} > Cr-Commit-Position: refs/heads/master@{#40044} TBR=jochen@chromium.org,jkummerow@chromium.org,verwaest@chromium.org,yangguo@chromium.org,heimbuef@google.com NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true BUG=v8:5409 Review-Url: https://codereview.chromium.org/2400343002 Cr-Commit-Position: refs/heads/master@{#40100}
-
- 06 Oct, 2016 1 commit
-
-
heimbuef authored
BUG=v8:5409 Committed: https://crrev.com/37c688a24578e787d3d8941093563ed049c3497e Review-Url: https://codereview.chromium.org/2335343007 Cr-Original-Commit-Position: refs/heads/master@{#39631} Cr-Commit-Position: refs/heads/master@{#40044}
-
- 04 Oct, 2016 1 commit
-
-
heimbuef authored
BUG= Review-Url: https://codereview.chromium.org/2377943003 Cr-Commit-Position: refs/heads/master@{#39946}
-
- 23 Sep, 2016 1 commit
-
-
hablich authored
Revert of Pool implementation for zone segments (patchset #9 id:420001 of https://codereview.chromium.org/2335343007/ ) Reason for revert: Blocks Roll https://codereview.chromium.org/2366733002/ Original issue's description: > Pool implementation for zone segments > > BUG=v8:5409 > > Committed: https://crrev.com/37c688a24578e787d3d8941093563ed049c3497e > Cr-Commit-Position: refs/heads/master@{#39631} TBR=jkummerow@chromium.org,jochen@chromium.org,verwaest@chromium.org,heimbuef@google.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5409 Review-Url: https://codereview.chromium.org/2365843002 Cr-Commit-Position: refs/heads/master@{#39652}
-
- 22 Sep, 2016 1 commit
-
-
heimbuef authored
BUG=v8:5409 Review-Url: https://codereview.chromium.org/2335343007 Cr-Commit-Position: refs/heads/master@{#39631}
-
- 20 Sep, 2016 1 commit
-
-
heimbuef authored
This is some initial cleanup to keep /src clean. The AccountingAllocator is actually exclusively used by zones and this common subfolder makes that more clear. BUG=v8:5409 Review-Url: https://codereview.chromium.org/2344143003 Cr-Commit-Position: refs/heads/master@{#39558}
-