- 05 Jul, 2022 1 commit
-
-
Michael Lippautz authored
GCInfoTable is a process-global table storing Oilpan type information. Table operations may fail in OOM scenarios which were previously just caught in regular CHECKs. Change to use a global OOM handler that is set up to use V8's handler. Bug: chromium:1283199 Change-Id: Id33263ef7cd4028d60a071f5ab3b165e59ac9593 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3745368Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81540}
-
- 17 Mar, 2021 3 commits
-
-
Michael Lippautz authored
This is a reland of d76064df Original change's description: > cppgc: Rework GC info creation > > Previously, GCInfoTrait relied on the non-trivial constructor of a > static object for registering a new GCInfo object. The generated code > is required to be thread-safe which is achieved by introducing guard > variables in the compiler. > > The new version is similar to Blink in that it relies on zero > initialization of a trivially constructible atomic. > > Compared to guard variables that are created per GCInfo registration, > the atomic creates less bloat (~20bytes/type) and also results in a > better fast path. > > Minimum example: https://godbolt.org/z/qrdTf8 > > Bug: chromium:1056170 > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73463} Bug: chromium:1056170 Change-Id: I01e60beabc1d279d352361657f408f113aac768e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767021 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73471}
-
Maya Lekova authored
This reverts commit d76064df. Reason for revert: Breaking MSAN - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37390/overview Original change's description: > cppgc: Rework GC info creation > > Previously, GCInfoTrait relied on the non-trivial constructor of a > static object for registering a new GCInfo object. The generated code > is required to be thread-safe which is achieved by introducing guard > variables in the compiler. > > The new version is similar to Blink in that it relies on zero > initialization of a trivially constructible atomic. > > Compared to guard variables that are created per GCInfo registration, > the atomic creates less bloat (~20bytes/type) and also results in a > better fast path. > > Minimum example: https://godbolt.org/z/qrdTf8 > > Bug: chromium:1056170 > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73463} Bug: chromium:1056170 Change-Id: I71960103513d6db7789d752b70727d014c2e6406 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767020 Auto-Submit: Maya Lekova <mslekova@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73466}
-
Michael Lippautz authored
Previously, GCInfoTrait relied on the non-trivial constructor of a static object for registering a new GCInfo object. The generated code is required to be thread-safe which is achieved by introducing guard variables in the compiler. The new version is similar to Blink in that it relies on zero initialization of a trivially constructible atomic. Compared to guard variables that are created per GCInfo registration, the atomic creates less bloat (~20bytes/type) and also results in a better fast path. Minimum example: https://godbolt.org/z/qrdTf8 Bug: chromium:1056170 Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73463}
-
- 11 Feb, 2021 1 commit
-
-
Omer Katz authored
HeapBase::CollectStatistics returns a HeapStatistics struct that can be used by blink to populate a memory dump. Bug: chromium:1056170 Change-Id: Ic147a02ba6b4aa77bf92cfca067da70b7e1af55b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689181 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72660}
-
- 10 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Model cppgc::InitializeProcess()/cppgc::ShutdownProcess() similar to V8's InitializePlatform()/ShutdownPlatform() in that we allow the pair to be called multiple times. GCInfoTable will not be freed on ShutdownProcess though as the current global design uses static indices to retrieve per-type metadata. Drive-by: Remove stale ShutdownProcess() call. Change-Id: Ia9b50325a964e85a72f3ef218e72bc386b69be51 Bug: chromium:1176416, chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685171Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72630}
-
- 02 Dec, 2020 1 commit
-
-
Zhi An Ng authored
Bug: v8:11074 Change-Id: I26969322948c1d062b1bc5478f547d52cba3f1b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2567312Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71548}
-
- 08 Oct, 2020 1 commit
-
-
Michael Lippautz authored
Adds NameProvider to allow specifying names of objects. The corresponding internal NameTrait is registered with the GCInfo object. Use name infrastructure to provide a hint on encountering an unmarked object in the marking verifier. Bug: chromium:1056170 Change-Id: I95bb290660f5905500f861bd5cc85148a1b47184 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2454087 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70400}
-
- 13 May, 2020 1 commit
-
-
Omer Katz authored
This is needed to trace objects found durinbg stack scanning. Bug: chromium:1056170 Change-Id: I1280d98f2fe69281c514b3a7d4a57f909a2eed96 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190425 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67788}
-
- 08 Apr, 2020 1 commit
-
-
Anton Bikineev authored
Headers containing only implementation details are better to stay in a separate dir to indicate the user that they shouldn't be included. Bug: chromium:1056170 Change-Id: I10f84ddf709b146396aadc820ec33bc6a49b2dac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139585Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67050}
-
- 24 Mar, 2020 1 commit
-
-
Michael Lippautz authored
GCInfo and its related infrastructure is used to record information about types. Currently, we store finalization and vtable information. Future changes will introduce naming and tracing, similar to Oilpan in Blink. Information is stored in a process-wide global table that is maintained at runtime. For static builds such information can be recorded in the binary without the runtime overhead which is future work. This ports `third_party/blink/renderer/platform/heap/gc_info.{h,cc}` on a semantic level. In addition to adjusting to V8's needs, we also re-commit the already filled parts of the info table as read-only when possible, making it harder to override type information. Bug: chromium:1056170 Change-Id: Ib01eb24e6f8a94a4a647efde7af37689f8c20ba2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2111214 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66847}
-