From 56c3b8b4e8ba49626ce4698acbf7a661eb78aac5 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Sat, 10 Apr 2021 17:28:18 +0200 Subject: [PATCH] MINOR: threads: mark all_threads_mask as read_mostly This variable almost never changes and is read a lot in time-critical sections. threads_want_rdv_mask is read very often as well in thread_harmless_end() and is almost never changed (only when someone uses thread_isolate()). Let's move both to read_mostly. --- src/thread.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/thread.c b/src/thread.c index 93a529420..742e47c09 100644 --- a/src/thread.c +++ b/src/thread.c @@ -34,10 +34,10 @@ THREAD_LOCAL struct thread_info *ti = &ha_thread_info[0]; #ifdef USE_THREAD -volatile unsigned long threads_want_rdv_mask = 0; +volatile unsigned long threads_want_rdv_mask __read_mostly = 0; volatile unsigned long threads_harmless_mask = 0; volatile unsigned long threads_sync_mask = 0; -volatile unsigned long all_threads_mask = 1; // nbthread 1 assumed by default +volatile unsigned long all_threads_mask __read_mostly = 1; // nbthread 1 assumed by default THREAD_LOCAL unsigned int tid = 0; THREAD_LOCAL unsigned long tid_bit = (1UL << 0); int thread_cpus_enabled_at_boot = 1; -- 2.47.3