From fe4a6483ff78b42889a789f2759253781af3650a Mon Sep 17 00:00:00 2001 From: Kunshan Wang Date: Thu, 16 Jan 2025 14:07:28 +0800 Subject: [PATCH] Force fixed heap size when using NoGC --- src/util/heap/gc_trigger.rs | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/util/heap/gc_trigger.rs b/src/util/heap/gc_trigger.rs index 94ba63fe6e..9e1912f1cf 100644 --- a/src/util/heap/gc_trigger.rs +++ b/src/util/heap/gc_trigger.rs @@ -40,10 +40,19 @@ impl GCTrigger { GCTriggerSelector::FixedHeapSize(size) => Box::new(FixedHeapSizeTrigger { total_pages: conversions::bytes_to_pages_up(size), }), - GCTriggerSelector::DynamicHeapSize(min, max) => Box::new(MemBalancerTrigger::new( - conversions::bytes_to_pages_up(min), - conversions::bytes_to_pages_up(max), - )), + GCTriggerSelector::DynamicHeapSize(min, max) => 'dynamic_heap_size: { + let min_pages = conversions::bytes_to_pages_up(min); + let max_pages = conversions::bytes_to_pages_up(max); + + if *options.plan == crate::util::options::PlanSelector::NoGC { + warn!("Cannot use dynamic heap size with NoGC. Using fixed heap size trigger instead."); + break 'dynamic_heap_size Box::new(FixedHeapSizeTrigger { + total_pages: max_pages, + }); + } + + Box::new(MemBalancerTrigger::new(min_pages, max_pages)) + } GCTriggerSelector::Delegated => { >::create_gc_trigger() }