Hello,On Fri, 24 Apr 2026, Julian Anastasov wrote: > Sashiko reports for races and possible crash around > the usage of est_cpulist_valid and sysctl_est_cpulist. > The problem is that we do not lock est_mutex in some > places which can lead to wrong write ordering and > as result problems when calling cpumask_weight() > and cpumask_empty(). > > Fix them by moving the est_max_threads read/write under > locked est_mutex. Do the same for one ip_vs_est_reload_start() > call to protect the cpumask_empty() usage of sysctl_est_cpulist. > > To remove the chance of deadlock while stopping the > estimation kthreads, keep the data structure for kthread 0 > even after last estimator is removed and do not hold mutexes > while stopping this task. Now we will use a new flag 'needed' > to know when kthread 0 should run. The kthreads above 0 > do not use mutexes, so stop them under est_mutex because > their kthread data still can be destroyed if they do not > serve estimators. Now all kthreads will be started by > the est_reload_work to properly serialize the stop/start > for kthread 0. > > Reduce the use of service_mutex in ip_vs_est_calc_limits() > because under est_mutex we can safely walk est_kt_arr to > stop the kthreads above slot 0. > > Link: > https://sashiko.dev/#/patchset/20260331165015.2777765-1-longman%40redhat.com > Link: https://sashiko.dev/#/patchset/20260420171308.87192-1-ja%40ssi.bg > Link: https://sashiko.dev/#/patchset/20260422125123.40658-1-ja%40ssi.bg > Fixes: f0be83d54217 ("ipvs: add est_cpulist and est_nice sysctl vars") > Signed-off-by: Julian Anastasov <[email protected]> Sashiko found another use-after-free [1] that is easy to fix here. I'll send new patch version tomorrow... pw-bot: changes-requested [1] https://sashiko.dev/#/patchset/20260424175858.54752-1-ja%40ssi.bg Regards -- Julian Anastasov <[email protected]>
