Commit af73f5c9 authored by Tejun Heo's avatar Tejun Heo

workqueue: Rename workqueue_attrs->no_numa to ->ordered

With the recent removal of NUMA related module param and sysfs knob,
workqueue_attrs->no_numa is now only used to implement ordered workqueues.
Let's rename the field so that it's less confusing especially with the
planned CPU affinity awareness improvements.

Just a rename. No functional changes.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 636b927e
...@@ -142,13 +142,13 @@ struct workqueue_attrs { ...@@ -142,13 +142,13 @@ struct workqueue_attrs {
cpumask_var_t cpumask; cpumask_var_t cpumask;
/** /**
* @no_numa: disable NUMA affinity * @ordered: work items must be executed one by one in queueing order
* *
* Unlike other fields, ``no_numa`` isn't a property of a worker_pool. It * Unlike other fields, ``ordered`` isn't a property of a worker_pool. It
* only modifies how :c:func:`apply_workqueue_attrs` select pools and thus * only modifies how :c:func:`apply_workqueue_attrs` select pools and thus
* doesn't participate in pool hash calculations or equality comparisons. * doesn't participate in pool hash calculations or equality comparisons.
*/ */
bool no_numa; bool ordered;
}; };
static inline struct delayed_work *to_delayed_work(struct work_struct *work) static inline struct delayed_work *to_delayed_work(struct work_struct *work)
......
...@@ -3672,10 +3672,10 @@ static void copy_workqueue_attrs(struct workqueue_attrs *to, ...@@ -3672,10 +3672,10 @@ static void copy_workqueue_attrs(struct workqueue_attrs *to,
cpumask_copy(to->cpumask, from->cpumask); cpumask_copy(to->cpumask, from->cpumask);
/* /*
* Unlike hash and equality test, this function doesn't ignore * Unlike hash and equality test, this function doesn't ignore
* ->no_numa as it is used for both pool and wq attrs. Instead, * ->ordered as it is used for both pool and wq attrs. Instead,
* get_unbound_pool() explicitly clears ->no_numa after copying. * get_unbound_pool() explicitly clears ->ordered after copying.
*/ */
to->no_numa = from->no_numa; to->ordered = from->ordered;
} }
/* hash value of the content of @attr */ /* hash value of the content of @attr */
...@@ -3933,10 +3933,10 @@ static struct worker_pool *get_unbound_pool(const struct workqueue_attrs *attrs) ...@@ -3933,10 +3933,10 @@ static struct worker_pool *get_unbound_pool(const struct workqueue_attrs *attrs)
pool->node = target_node; pool->node = target_node;
/* /*
* no_numa isn't a worker_pool attribute, always clear it. See * ordered isn't a worker_pool attribute, always clear it. See
* 'struct workqueue_attrs' comments for detail. * 'struct workqueue_attrs' comments for detail.
*/ */
pool->attrs->no_numa = false; pool->attrs->ordered = false;
if (worker_pool_assign_id(pool) < 0) if (worker_pool_assign_id(pool) < 0)
goto fail; goto fail;
...@@ -4141,7 +4141,7 @@ static struct pool_workqueue *alloc_unbound_pwq(struct workqueue_struct *wq, ...@@ -4141,7 +4141,7 @@ static struct pool_workqueue *alloc_unbound_pwq(struct workqueue_struct *wq,
static void wq_calc_node_cpumask(const struct workqueue_attrs *attrs, int node, static void wq_calc_node_cpumask(const struct workqueue_attrs *attrs, int node,
int cpu_going_down, cpumask_t *cpumask) int cpu_going_down, cpumask_t *cpumask)
{ {
if (!wq_numa_enabled || attrs->no_numa) if (!wq_numa_enabled || attrs->ordered)
goto use_dfl; goto use_dfl;
/* does @node have any online CPUs @attrs wants? */ /* does @node have any online CPUs @attrs wants? */
...@@ -4253,7 +4253,7 @@ apply_wqattrs_prepare(struct workqueue_struct *wq, ...@@ -4253,7 +4253,7 @@ apply_wqattrs_prepare(struct workqueue_struct *wq,
goto out_free; goto out_free;
for_each_possible_cpu(cpu) { for_each_possible_cpu(cpu) {
if (new_attrs->no_numa) { if (new_attrs->ordered) {
ctx->dfl_pwq->refcnt++; ctx->dfl_pwq->refcnt++;
ctx->pwq_tbl[cpu] = ctx->dfl_pwq; ctx->pwq_tbl[cpu] = ctx->dfl_pwq;
} else { } else {
...@@ -4411,7 +4411,7 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu, ...@@ -4411,7 +4411,7 @@ static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
lockdep_assert_held(&wq_pool_mutex); lockdep_assert_held(&wq_pool_mutex);
if (!wq_numa_enabled || !(wq->flags & WQ_UNBOUND) || if (!wq_numa_enabled || !(wq->flags & WQ_UNBOUND) ||
wq->unbound_attrs->no_numa) wq->unbound_attrs->ordered)
return; return;
/* /*
...@@ -6358,11 +6358,10 @@ void __init workqueue_init_early(void) ...@@ -6358,11 +6358,10 @@ void __init workqueue_init_early(void)
/* /*
* An ordered wq should have only one pwq as ordering is * An ordered wq should have only one pwq as ordering is
* guaranteed by max_active which is enforced by pwqs. * guaranteed by max_active which is enforced by pwqs.
* Turn off NUMA so that dfl_pwq is used for all nodes.
*/ */
BUG_ON(!(attrs = alloc_workqueue_attrs())); BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i]; attrs->nice = std_nice[i];
attrs->no_numa = true; attrs->ordered = true;
ordered_wq_attrs[i] = attrs; ordered_wq_attrs[i] = attrs;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment