From 2c73901cf761a8f8494d6966f90728efeb487bfe Mon Sep 17 00:00:00 2001 From: Yaroslav Furman Date: Wed, 11 Dec 2019 03:06:26 +0300 Subject: [PATCH] rcu: fix a performance regression Commit "rcu: Create RCU-specific workqueues with rescuers" switched RCU to using local workqueses and removed power efficiency flag from them. This caused a performance regression that can be observed in Geekbench 5 after enabling CONFIG_WQ_POWER_EFFICIENT_DEFAULT: score went down from 760/2500 to 620/2300 (single/multi core respectively). Add WQ_POWER_EFFICIENT flag to avoid this regression. Signed-off-by: Yaroslav Furman Signed-off-by: Pranav Vashi --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 5a28ff21b3c5..2d8f71ad51ab 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -4240,7 +4240,7 @@ void __init rcu_init(void) } /* Create workqueue for expedited GPs and for Tree SRCU. */ - rcu_gp_wq = alloc_workqueue("rcu_gp", WQ_MEM_RECLAIM, 0); + rcu_gp_wq = alloc_workqueue("rcu_gp", WQ_POWER_EFFICIENT | WQ_MEM_RECLAIM, 0); WARN_ON(!rcu_gp_wq); }