mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
workqueue: update sysfs interface to reflect NUMA awareness and a kernel param to disable NUMA affinity
Unbound workqueues are now NUMA aware. Let's add some control knobs and update sysfs interface accordingly. * Add kernel param workqueue.numa_disable which disables NUMA affinity globally. * Replace sysfs file "pool_id" with "pool_ids" which contain node:pool_id pairs. This change is userland-visible but "pool_id" hasn't seen a release yet, so this is okay. * Add a new sysf files "numa" which can toggle NUMA affinity on individual workqueues. This is implemented as attrs->no_numa whichn is special in that it isn't part of a pool's attributes. It only affects how apply_workqueue_attrs() picks which pools to use. After "pool_ids" change, first_pwq() doesn't have any user left. Removed. Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Lai Jiangshan <laijs@cn.fujitsu.com>
This commit is contained in:
parent
4c16bd327c
commit
d55262c4d1
3 changed files with 73 additions and 23 deletions
|
@ -119,10 +119,15 @@ struct delayed_work {
|
|||
/*
|
||||
* A struct for workqueue attributes. This can be used to change
|
||||
* attributes of an unbound workqueue.
|
||||
*
|
||||
* Unlike other fields, ->no_numa isn't a property of a worker_pool. It
|
||||
* only modifies how apply_workqueue_attrs() select pools and thus doesn't
|
||||
* participate in pool hash calculations or equality comparisons.
|
||||
*/
|
||||
struct workqueue_attrs {
|
||||
int nice; /* nice level */
|
||||
cpumask_var_t cpumask; /* allowed CPUs */
|
||||
bool no_numa; /* disable NUMA affinity */
|
||||
};
|
||||
|
||||
static inline struct delayed_work *to_delayed_work(struct work_struct *work)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue