From: Willy Tarreau Date: Sat, 10 Apr 2021 15:28:18 +0000 (+0200) Subject: MINOR: threads: mark all_threads_mask as read_mostly X-Git-Tag: v2.4-dev17~154 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=56c3b8b4e8ba49626ce4698acbf7a661eb78aac5;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/thread.c b/src/thread.c index 93a5294204..742e47c09d 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;