Improve V8 heuristics near OOM |
|||||
Issue descriptionTracking bug for V8 heuristic changes near OOM.
,
Mar 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ed3636e21bc772fec35deefc90850dc5bf850775 commit ed3636e21bc772fec35deefc90850dc5bf850775 Author: Ulan Degenbaev <ulan@chromium.org> Date: Fri Mar 23 14:47:50 2018 [heap] Ensure that OOM callback is called before OOM. This patch also fixes MaxReserved() to accound for page headers and adds two tests for heap size and memory allocator size near OOM. Bug: chromium:824214 Change-Id: I5bbe00a9d6a5798cdf4481861a10dca842244a63 Reviewed-on: https://chromium-review.googlesource.com/973614 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52184} [modify] https://crrev.com/ed3636e21bc772fec35deefc90850dc5bf850775/src/heap/heap.cc [modify] https://crrev.com/ed3636e21bc772fec35deefc90850dc5bf850775/src/heap/heap.h [modify] https://crrev.com/ed3636e21bc772fec35deefc90850dc5bf850775/src/heap/incremental-marking.cc [modify] https://crrev.com/ed3636e21bc772fec35deefc90850dc5bf850775/test/cctest/heap/test-heap.cc
,
Mar 23 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c2837f5be74c97df2826aa0a3a9f48f81863d149 commit c2837f5be74c97df2826aa0a3a9f48f81863d149 Author: Michael Achenbach <machenbach@chromium.org> Date: Fri Mar 23 19:16:14 2018 Revert "[heap] Ensure that OOM callback is called before OOM." This reverts commit ed3636e21bc772fec35deefc90850dc5bf850775. Reason for revert: Seems to lead to several timeouts in debug mode: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/19780 And on windows. Original change's description: > [heap] Ensure that OOM callback is called before OOM. > > This patch also fixes MaxReserved() to accound for page headers and > adds two tests for heap size and memory allocator size near OOM. > > Bug: chromium:824214 > Change-Id: I5bbe00a9d6a5798cdf4481861a10dca842244a63 > Reviewed-on: https://chromium-review.googlesource.com/973614 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52184} TBR=ulan@chromium.org,hpayer@chromium.org Change-Id: I1a98c070cee4039a1ef7851fcabd32d56d0629fe No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:824214 Reviewed-on: https://chromium-review.googlesource.com/977973 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52192} [modify] https://crrev.com/c2837f5be74c97df2826aa0a3a9f48f81863d149/src/heap/heap.cc [modify] https://crrev.com/c2837f5be74c97df2826aa0a3a9f48f81863d149/src/heap/heap.h [modify] https://crrev.com/c2837f5be74c97df2826aa0a3a9f48f81863d149/src/heap/incremental-marking.cc [modify] https://crrev.com/c2837f5be74c97df2826aa0a3a9f48f81863d149/test/cctest/heap/test-heap.cc
,
Mar 24 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/815c65965fba738c3e025facfe5ab9271c44b0a8 commit 815c65965fba738c3e025facfe5ab9271c44b0a8 Author: Ulan Degenbaev <ulan@chromium.org> Date: Sat Mar 24 11:11:06 2018 Reland "[heap] Ensure that OOM callback is called before OOM." This relands commit ed3636e21bc772fec35deefc90850dc5bf850775.. Original change's description: > [heap] Ensure that OOM callback is called before OOM. > > This patch also fixes MaxReserved() to accound for page headers and > adds two tests for heap size and memory allocator size near OOM. > > Bug: chromium:824214 > Change-Id: I5bbe00a9d6a5798cdf4481861a10dca842244a63 > Reviewed-on: https://chromium-review.googlesource.com/973614 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52184} TBR=machenbach@chromium.org Change-Id: Idc3086a8b9dd30038f48cae64c9a8eb0b45ee372 Reviewed-on: https://chromium-review.googlesource.com/977913 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52200} [modify] https://crrev.com/815c65965fba738c3e025facfe5ab9271c44b0a8/src/heap/heap.cc [modify] https://crrev.com/815c65965fba738c3e025facfe5ab9271c44b0a8/src/heap/heap.h [modify] https://crrev.com/815c65965fba738c3e025facfe5ab9271c44b0a8/src/heap/incremental-marking.cc [modify] https://crrev.com/815c65965fba738c3e025facfe5ab9271c44b0a8/test/cctest/heap/test-heap.cc
,
Mar 26 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d65d57a7fa4078e3ecdc816ce51a722b8bff89d5 commit d65d57a7fa4078e3ecdc816ce51a722b8bff89d5 Author: Ulan Degenbaev <ulan@chromium.org> Date: Mon Mar 26 13:36:00 2018 [heap] Track average mutator utilization in GC tracer. The mutator utilizaton is computed for each mark-compact GC cycle as mutator_time / total_time, where - total_time is the time from the end of the previous GC to the end of the current GC - mutator_time = total_time - incremental_steps_duration - gc_time. Bug: chromium:824214 Change-Id: Ie1814f22f0816a3c9c579107f4950f6fc8c8a72d Reviewed-on: https://chromium-review.googlesource.com/978215 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52221} [modify] https://crrev.com/d65d57a7fa4078e3ecdc816ce51a722b8bff89d5/src/heap/gc-tracer.cc [modify] https://crrev.com/d65d57a7fa4078e3ecdc816ce51a722b8bff89d5/src/heap/gc-tracer.h [modify] https://crrev.com/d65d57a7fa4078e3ecdc816ce51a722b8bff89d5/test/unittests/heap/gc-tracer-unittest.cc
,
Mar 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/84a80e103b090f35334fe2d168ece17489395417 commit 84a80e103b090f35334fe2d168ece17489395417 Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Mar 27 08:29:56 2018 [heap,api] Introduce near-heap-limit callbacks. The embedder can get notification when V8 heap size approaches the heap limit and can extend the heap limit if needed using - v8::Isolate::AddNearHeapLimitCallback - v8::Isolate::RemoveNearHeapLimitCallback This generalizes the exiting v8::debug::SetOutOfMemoryCallback API. Bug: chromium:824214 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia444cb7efb6fe85c57fa3785e8fd1d8b654a5224 Reviewed-on: https://chromium-review.googlesource.com/979447 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52238} [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/include/v8.h [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/api.cc [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/debug/debug-interface.h [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/heap/heap.cc [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/heap/heap.h [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/inspector/v8-debugger.cc [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/inspector/v8-debugger.h [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/src/isolate.h [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/test/cctest/heap/test-heap.cc [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/test/cctest/test-api.cc [modify] https://crrev.com/84a80e103b090f35334fe2d168ece17489395417/test/cctest/test-debug.cc
,
Mar 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/496d05967c7d58de3ba35bcec173d47836cded35 commit 496d05967c7d58de3ba35bcec173d47836cded35 Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Mar 27 13:08:36 2018 [heap] Detect ineffective GCs near the heap limit. Currently V8 can enter CPU thrashing GC loop near the heap limit. In such cases it is better to trigger an out-of-memory failure earlier to avoid wasting CPU time and to avoid unresponsiveness. This patch adds a mechanism for tracking consecutive ineffective GCs. A GC is considered ineffective if the heap size after the GC is still close to the heap limit and if the average mutator utilization dropped below a fixed threshold. V8 execution is aborted after four consecutive ineffective GCs. Bug: chromium:824214 Change-Id: I647032707d49e5383e1317c5e7616dd57077ea32 Reviewed-on: https://chromium-review.googlesource.com/978178 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52244} [modify] https://crrev.com/496d05967c7d58de3ba35bcec173d47836cded35/src/flag-definitions.h [modify] https://crrev.com/496d05967c7d58de3ba35bcec173d47836cded35/src/heap/heap.cc [modify] https://crrev.com/496d05967c7d58de3ba35bcec173d47836cded35/src/heap/heap.h [modify] https://crrev.com/496d05967c7d58de3ba35bcec173d47836cded35/test/cctest/heap/test-heap.cc
,
Mar 27 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/be5dbd8f5609bf9ee28518b26d9fe64fb5615c6c commit be5dbd8f5609bf9ee28518b26d9fe64fb5615c6c Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Mar 27 13:34:27 2018 Revert "[heap] Detect ineffective GCs near the heap limit." This reverts commit 496d05967c7d58de3ba35bcec173d47836cded35. Reason for revert: https://logs.chromium.org/v/?s=chromium%2Fbb%2Fclient.v8%2FV8_Linux64_-_internal_snapshot%2F14705%2F%2B%2Frecipes%2Fsteps%2FCheck__flakes_%2F0%2Flogs%2FOutOfMemoryIneffectiv..%2F0 Original change's description: > [heap] Detect ineffective GCs near the heap limit. > > Currently V8 can enter CPU thrashing GC loop near the heap limit. In > such cases it is better to trigger an out-of-memory failure earlier to > avoid wasting CPU time and to avoid unresponsiveness. > > This patch adds a mechanism for tracking consecutive ineffective GCs. > A GC is considered ineffective if the heap size after the GC is still > close to the heap limit and if the average mutator utilization dropped > below a fixed threshold. > > V8 execution is aborted after four consecutive ineffective GCs. > > Bug: chromium:824214 > Change-Id: I647032707d49e5383e1317c5e7616dd57077ea32 > Reviewed-on: https://chromium-review.googlesource.com/978178 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52244} TBR=ulan@chromium.org,hpayer@chromium.org Change-Id: I267d247010a90224be60c27c83eeb37c3878fba5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:824214 Reviewed-on: https://chromium-review.googlesource.com/982072 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52246} [modify] https://crrev.com/be5dbd8f5609bf9ee28518b26d9fe64fb5615c6c/src/flag-definitions.h [modify] https://crrev.com/be5dbd8f5609bf9ee28518b26d9fe64fb5615c6c/src/heap/heap.cc [modify] https://crrev.com/be5dbd8f5609bf9ee28518b26d9fe64fb5615c6c/src/heap/heap.h [modify] https://crrev.com/be5dbd8f5609bf9ee28518b26d9fe64fb5615c6c/test/cctest/heap/test-heap.cc
,
Mar 27 2018
,
Mar 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/651a7901640469a77d0a11c7a816a3ea9334f441 commit 651a7901640469a77d0a11c7a816a3ea9334f441 Author: Ulan Degenbaev <ulan@chromium.org> Date: Wed Mar 28 15:27:25 2018 [heap] Limit the number of parallel evacuation tasks near OOM. Launching too many parallel tasks near OOM increases risk of allocation failure during GC and OOM crash. Bug: chromium:824214 , v8:7605 Change-Id: I336d1f01e4005fb2a8e16ef92f40532b8ed83f2c TBR: mlippautz@chromium.org Reviewed-on: https://chromium-review.googlesource.com/983919 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52282} [modify] https://crrev.com/651a7901640469a77d0a11c7a816a3ea9334f441/src/heap/heap.cc [modify] https://crrev.com/651a7901640469a77d0a11c7a816a3ea9334f441/src/heap/mark-compact.cc
,
Mar 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2e8b3996b8786db0008a144c1ea11d7693c8eb05 commit 2e8b3996b8786db0008a144c1ea11d7693c8eb05 Author: Ulan Degenbaev <ulan@chromium.org> Date: Wed Mar 28 17:58:47 2018 Reland "[heap] Detect ineffective GCs near the heap limit."" This relands commit 496d05967c7d58de3ba35bcec173d47836cded35. Original change's description: > [heap] Detect ineffective GCs near the heap limit. > > Currently V8 can enter CPU thrashing GC loop near the heap limit. In > such cases it is better to trigger an out-of-memory failure earlier to > avoid wasting CPU time and to avoid unresponsiveness. > > This patch adds a mechanism for tracking consecutive ineffective GCs. > A GC is considered ineffective if the heap size after the GC is still > close to the heap limit and if the average mutator utilization dropped > below a fixed threshold. > > V8 execution is aborted after four consecutive ineffective GCs. > > Bug: chromium:824214 TBR: hpayer@chromium.org Change-Id: Ib09d24d6280078ce6c33519309a2563c70fb68e1 Reviewed-on: https://chromium-review.googlesource.com/980555 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52286} [modify] https://crrev.com/2e8b3996b8786db0008a144c1ea11d7693c8eb05/src/flag-definitions.h [modify] https://crrev.com/2e8b3996b8786db0008a144c1ea11d7693c8eb05/src/heap/heap.cc [modify] https://crrev.com/2e8b3996b8786db0008a144c1ea11d7693c8eb05/src/heap/heap.h [modify] https://crrev.com/2e8b3996b8786db0008a144c1ea11d7693c8eb05/test/cctest/heap/test-heap.cc
,
Mar 28 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/dc6ae69599b910f84d9819ea1673c4dd0facca22 commit dc6ae69599b910f84d9819ea1673c4dd0facca22 Author: Ulan Degenbaev <ulan@chromium.org> Date: Wed Mar 28 19:00:47 2018 [heap] Make OutOfMemoryIneffectiveGC test more robust. No-Try: true Bug: chromium:824214 TBR: hpayer@chromium.org Change-Id: I8095da413b5ca0ebba65b264b7310afd88d7a499 Reviewed-on: https://chromium-review.googlesource.com/984872 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#52289} [modify] https://crrev.com/dc6ae69599b910f84d9819ea1673c4dd0facca22/test/cctest/heap/test-heap.cc
,
Apr 3 2018
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cf52c1018dfa710e114b6c05f1e8279575a038c6 commit cf52c1018dfa710e114b6c05f1e8279575a038c6 Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Apr 03 18:12:59 2018 [heap] Optimize for memory usage near OOM. This patch enables ShouldOptimizeForMemoryUsage if the old generation size is within 1/8th of the max old generation size. This patch also passes the reduce-memory flag to incremental marking whenever ShouldOptimizeForMemoryUsage is enabled. Bug: chromium:824214 Change-Id: I5cfc0566ca0e23dfa1b8c0439a4e67424ddc852d Reviewed-on: https://chromium-review.googlesource.com/973524 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52333} [modify] https://crrev.com/cf52c1018dfa710e114b6c05f1e8279575a038c6/src/heap/heap.cc [modify] https://crrev.com/cf52c1018dfa710e114b6c05f1e8279575a038c6/src/heap/heap.h [modify] https://crrev.com/cf52c1018dfa710e114b6c05f1e8279575a038c6/src/heap/incremental-marking-job.cc [modify] https://crrev.com/cf52c1018dfa710e114b6c05f1e8279575a038c6/src/heap/spaces.cc [modify] https://crrev.com/cf52c1018dfa710e114b6c05f1e8279575a038c6/test/cctest/heap/test-heap.cc
,
Apr 23 2018
,
Apr 23 2018
,
Apr 23 2018
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by bugdroid1@chromium.org
, Mar 22 2018