diff options
Diffstat (limited to 'kernel/workqueue.c')
| -rw-r--r-- | kernel/workqueue.c | 15 | 
1 files changed, 8 insertions, 7 deletions
diff --git a/kernel/workqueue.c b/kernel/workqueue.c index 5ca46a2e261..248d18aa2a5 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -1644,9 +1644,10 @@ static struct worker *alloc_worker(void)   */  static struct worker *create_worker(struct worker_pool *pool)  { -	const char *pri = pool->attrs->nice < 0  ? "H" : "";  	struct worker *worker = NULL; +	int node = pool->cpu >= 0 ? cpu_to_node(pool->cpu) : NUMA_NO_NODE;  	int id = -1; +	char id_buf[16];  	lockdep_assert_held(&pool->manager_mutex); @@ -1672,13 +1673,13 @@ static struct worker *create_worker(struct worker_pool *pool)  	worker->id = id;  	if (pool->cpu >= 0) -		worker->task = kthread_create_on_node(worker_thread, -					worker, cpu_to_node(pool->cpu), -					"kworker/%d:%d%s", pool->cpu, id, pri); +		snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id, +			 pool->attrs->nice < 0  ? "H" : "");  	else -		worker->task = kthread_create(worker_thread, worker, -					      "kworker/u%d:%d%s", -					      pool->id, id, pri); +		snprintf(id_buf, sizeof(id_buf), "u%d:%d", pool->id, id); + +	worker->task = kthread_create_on_node(worker_thread, worker, node, +					      "kworker/%s", id_buf);  	if (IS_ERR(worker->task))  		goto fail;  |