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. Change-Id: I2c4f41faa55548f9e81a1c0cbe10703948062d89
This commit is contained in:
parent
5380adeb80
commit
9c41dd9383
1 changed files with 3 additions and 4 deletions
|
@ -4607,12 +4607,11 @@ void __init rcu_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create workqueue for expedited GPs and for Tree SRCU. */
|
/* Create workqueue for expedited GPs and for Tree SRCU. */
|
||||||
rcu_gp_wq = alloc_workqueue("rcu_gp", WQ_POWER_EFFICIENT | WQ_MEM_RECLAIM | WQ_UNBOUND, 0);
|
rcu_gp_wq = alloc_workqueue("rcu_gp", WQ_POWER_EFFICIENT | WQ_MEM_RECLAIM, 0);
|
||||||
WARN_ON(!rcu_gp_wq);
|
WARN_ON(!rcu_gp_wq);
|
||||||
rcu_par_gp_wq = alloc_workqueue("rcu_par_gp", WQ_POWER_EFFICIENT | WQ_MEM_RECLAIM | WQ_UNBOUND, 0);
|
rcu_par_gp_wq = alloc_workqueue("rcu_par_gp", WQ_POWER_EFFICIENT | WQ_MEM_RECLAIM, 0);
|
||||||
WARN_ON(!rcu_par_gp_wq);
|
WARN_ON(!rcu_par_gp_wq);
|
||||||
srcu_init();
|
srcu_init();
|
||||||
|
|
||||||
/* Fill in default value for rcutree.qovld boot parameter. */
|
/* Fill in default value for rcutree.qovld boot parameter. */
|
||||||
/* -After- the rcu_node ->lock fields are initialized! */
|
/* -After- the rcu_node ->lock fields are initialized! */
|
||||||
if (qovld < 0)
|
if (qovld < 0)
|
||||||
|
|
Loading…
Add table
Reference in a new issue