From 591bf7caeb3096207ea7c4fcc0804f0680da43e7 Mon Sep 17 00:00:00 2001 From: Maoni0 Date: Thu, 8 Jun 2023 01:37:57 -0700 Subject: [PATCH] dont set mark array bits during concurrent marking --- src/coreclr/gc/gc.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index 92f6653ba20ce..61558f63510fd 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -44352,14 +44352,15 @@ CObjectHeader* gc_heap::allocate_uoh_object (size_t jsize, uint32_t flags, int g uint8_t* current_lowest_address = background_saved_lowest_address; uint8_t* current_highest_address = background_saved_highest_address; - if ((result < current_highest_address) && (result >= current_lowest_address)) - { - dprintf (3, ("Clearing mark bit at address %zx", - (size_t)(&mark_array [mark_word_of (result)]))); + //if ((result < current_highest_address) && (result >= current_lowest_address)) + //{ + // dprintf (3, ("Clearing mark bit at address %zx", + // (size_t)(&mark_array [mark_word_of (result)]))); - mark_array_clear_marked (result); - } - if (current_c_gc_state != c_gc_state_free) + // mark_array_clear_marked (result); + //} + //if (current_c_gc_state != c_gc_state_free) + if (current_c_gc_state == c_gc_state_planning) { dprintf (3, ("Concurrent allocation of a large object %zx", (size_t)obj));