From 8d32e155afd780d00a74e9f4717d571f00f1940a Mon Sep 17 00:00:00 2001 From: Dipin Hora Date: Wed, 4 Dec 2024 09:38:30 -0500 Subject: [PATCH] disable scheduler scaling until all threads are created --- src/libponyrt/sched/scheduler.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/libponyrt/sched/scheduler.c b/src/libponyrt/sched/scheduler.c index 27e7494445..1b43dc602d 100644 --- a/src/libponyrt/sched/scheduler.c +++ b/src/libponyrt/sched/scheduler.c @@ -1325,6 +1325,9 @@ bool ponyint_sched_start(bool library) atomic_store_explicit(&detect_quiescence, !library, memory_order_relaxed); + // disable dynamic scheduler scaling for startup until all threads are created + atomic_store_explicit(&temporarily_disable_scheduler_scaling, true, memory_order_relaxed); + DTRACE0(RT_START); uint32_t start = 0; @@ -1341,6 +1344,9 @@ bool ponyint_sched_start(bool library) return false; } + // enable dynamic scheduler scaling after all threads have been created + atomic_store_explicit(&temporarily_disable_scheduler_scaling, false, memory_order_relaxed); + #if defined(USE_SYSTEMATIC_TESTING) // start processing SYSTEMATIC_TESTING_START(scheduler, ponyint_asio_get_backend_tid(), ponyint_asio_get_backend_sleep_object());