From 5850820200e3086bfd3ef6c3d2c8cca77874b5b1 Mon Sep 17 00:00:00 2001 From: Maoni0 Date: Thu, 8 Jun 2023 01:37:57 -0700 Subject: [PATCH] Don't set mark array bits for UOH objects during concurrent marking --- src/coreclr/gc/gc.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/coreclr/gc/gc.cpp b/src/coreclr/gc/gc.cpp index 92f6653ba20cec..06171d75a6963f 100644 --- a/src/coreclr/gc/gc.cpp +++ b/src/coreclr/gc/gc.cpp @@ -44352,14 +44352,7 @@ 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)]))); - - 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));