Commit a7a0c7b5 authored by Leon Bettscheider's avatar Leon Bettscheider Committed by V8 LUCI CQ

[heap] MarkingFromInternalFields write barrier bailout for MinorMC

This CL skips the MarkingFromInternalFields write barrier when
MinorMC concurrent marking is active, because we do not run Oilpan
young GCs yet.

Bug: v8:13012
Change-Id: Ib73dea8357be6d135290009258b5d172477a633b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865464Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
Commit-Queue: Leon Bettscheider <bettscheider@google.com>
Cr-Commit-Position: refs/heads/main@{#82895}
parent 25506204
......@@ -11,6 +11,7 @@
#include "src/common/code-memory-access-inl.h"
#include "src/common/globals.h"
#include "src/heap/heap-write-barrier.h"
#include "src/heap/marking-barrier.h"
#include "src/objects/code.h"
#include "src/objects/compressed-slots-inl.h"
#include "src/objects/fixed-array.h"
......@@ -354,6 +355,12 @@ void WriteBarrier::MarkingFromInternalFields(JSObject host) {
if (V8_ENABLE_THIRD_PARTY_HEAP_BOOL) return;
auto heap = GetHeapIfMarking(host);
if (!heap) return;
if (CurrentMarkingBarrier(heap.value())->is_minor()) {
// TODO(v8:13012): We do not currently mark Oilpan objects while MinorMC is
// active. Once Oilpan uses a generational GC with incremental marking and
// unified heap, this barrier will be needed again.
return;
}
MarkingSlowFromInternalFields(*heap, host);
}
......
......@@ -45,6 +45,10 @@ class MarkingBarrier {
// Returns true if the slot needs to be recorded.
inline bool MarkValue(HeapObject host, HeapObject value);
bool is_minor() const {
return marking_barrier_type_ == MarkingBarrierType::kMinor;
}
private:
inline bool WhiteToGreyAndPush(HeapObject value);
......@@ -61,9 +65,6 @@ class MarkingBarrier {
template <typename TSlot>
inline void MarkRange(HeapObject value, TSlot start, TSlot end);
bool is_minor() const {
return marking_barrier_type_ == MarkingBarrierType::kMinor;
}
bool is_major() const {
return marking_barrier_type_ == MarkingBarrierType::kMajor;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment