Skip to content

Commit b04e317

Browse files
author
Frederic Weisbecker
committed
treewide: Introduce kthread_run_worker[_on_cpu]()
kthread_create() creates a kthread without running it yet. kthread_run() creates a kthread and runs it. On the other hand, kthread_create_worker() creates a kthread worker and runs it. This difference in behaviours is confusing. Also there is no way to create a kthread worker and affine it using kthread_bind_mask() or kthread_affine_preferred() before starting it. Consolidate the behaviours and introduce kthread_run_worker[_on_cpu]() that behaves just like kthread_run(). kthread_create_worker[_on_cpu]() will now only create a kthread worker without starting it. Signed-off-by: Frederic Weisbecker <[email protected]> Signed-off-by: Dan Carpenter <[email protected]>
1 parent 41f70d8 commit b04e317

File tree

33 files changed

+83
-66
lines changed

33 files changed

+83
-66
lines changed

arch/x86/kvm/i8254.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,7 @@ struct kvm_pit *kvm_create_pit(struct kvm *kvm, u32 flags)
681681
pid_nr = pid_vnr(pid);
682682
put_pid(pid);
683683

684-
pit->worker = kthread_create_worker(0, "kvm-pit/%d", pid_nr);
684+
pit->worker = kthread_run_worker(0, "kvm-pit/%d", pid_nr);
685685
if (IS_ERR(pit->worker))
686686
goto fail_kthread;
687687

crypto/crypto_engine.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,7 @@ struct crypto_engine *crypto_engine_alloc_init_and_set(struct device *dev,
517517
crypto_init_queue(&engine->queue, qlen);
518518
spin_lock_init(&engine->queue_lock);
519519

520-
engine->kworker = kthread_create_worker(0, "%s", engine->name);
520+
engine->kworker = kthread_run_worker(0, "%s", engine->name);
521521
if (IS_ERR(engine->kworker)) {
522522
dev_err(dev, "failed to create crypto request pump task\n");
523523
return NULL;

drivers/cpufreq/cppc_cpufreq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ static void __init cppc_freq_invariance_init(void)
225225
if (fie_disabled)
226226
return;
227227

228-
kworker_fie = kthread_create_worker(0, "cppc_fie");
228+
kworker_fie = kthread_run_worker(0, "cppc_fie");
229229
if (IS_ERR(kworker_fie)) {
230230
pr_warn("%s: failed to create kworker_fie: %ld\n", __func__,
231231
PTR_ERR(kworker_fie));

drivers/gpu/drm/drm_vblank_work.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ int drm_vblank_worker_init(struct drm_vblank_crtc *vblank)
277277

278278
INIT_LIST_HEAD(&vblank->pending_work);
279279
init_waitqueue_head(&vblank->work_wait_queue);
280-
worker = kthread_create_worker(0, "card%d-crtc%d",
280+
worker = kthread_run_worker(0, "card%d-crtc%d",
281281
vblank->dev->primary->index,
282282
vblank->pipe);
283283
if (IS_ERR(worker))

drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ static int live_parallel_switch(void *arg)
369369
if (!data[n].ce[0])
370370
continue;
371371

372-
worker = kthread_create_worker(0, "igt/parallel:%s",
372+
worker = kthread_run_worker(0, "igt/parallel:%s",
373373
data[n].ce[0]->engine->name);
374374
if (IS_ERR(worker)) {
375375
err = PTR_ERR(worker);

drivers/gpu/drm/i915/gt/selftest_execlists.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3574,7 +3574,7 @@ static int smoke_crescendo(struct preempt_smoke *smoke, unsigned int flags)
35743574
arg[id].batch = NULL;
35753575
arg[id].count = 0;
35763576

3577-
worker[id] = kthread_create_worker(0, "igt/smoke:%d", id);
3577+
worker[id] = kthread_run_worker(0, "igt/smoke:%d", id);
35783578
if (IS_ERR(worker[id])) {
35793579
err = PTR_ERR(worker[id]);
35803580
break;

drivers/gpu/drm/i915/gt/selftest_hangcheck.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1025,7 +1025,7 @@ static int __igt_reset_engines(struct intel_gt *gt,
10251025
threads[tmp].engine = other;
10261026
threads[tmp].flags = flags;
10271027

1028-
worker = kthread_create_worker(0, "igt/%s",
1028+
worker = kthread_run_worker(0, "igt/%s",
10291029
other->name);
10301030
if (IS_ERR(worker)) {
10311031
err = PTR_ERR(worker);

drivers/gpu/drm/i915/gt/selftest_slpc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ static int live_slpc_tile_interaction(void *arg)
489489
return -ENOMEM;
490490

491491
for_each_gt(gt, i915, i) {
492-
threads[i].worker = kthread_create_worker(0, "igt/slpc_parallel:%d", gt->info.id);
492+
threads[i].worker = kthread_run_worker(0, "igt/slpc_parallel:%d", gt->info.id);
493493

494494
if (IS_ERR(threads[i].worker)) {
495495
ret = PTR_ERR(threads[i].worker);

drivers/gpu/drm/i915/selftests/i915_request.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -492,7 +492,7 @@ static int mock_breadcrumbs_smoketest(void *arg)
492492
for (n = 0; n < ncpus; n++) {
493493
struct kthread_worker *worker;
494494

495-
worker = kthread_create_worker(0, "igt/%d", n);
495+
worker = kthread_run_worker(0, "igt/%d", n);
496496
if (IS_ERR(worker)) {
497497
ret = PTR_ERR(worker);
498498
ncpus = n;
@@ -1645,7 +1645,7 @@ static int live_parallel_engines(void *arg)
16451645
for_each_uabi_engine(engine, i915) {
16461646
struct kthread_worker *worker;
16471647

1648-
worker = kthread_create_worker(0, "igt/parallel:%s",
1648+
worker = kthread_run_worker(0, "igt/parallel:%s",
16491649
engine->name);
16501650
if (IS_ERR(worker)) {
16511651
err = PTR_ERR(worker);
@@ -1806,7 +1806,7 @@ static int live_breadcrumbs_smoketest(void *arg)
18061806
unsigned int i = idx * ncpus + n;
18071807
struct kthread_worker *worker;
18081808

1809-
worker = kthread_create_worker(0, "igt/%d.%d", idx, n);
1809+
worker = kthread_run_worker(0, "igt/%d.%d", idx, n);
18101810
if (IS_ERR(worker)) {
18111811
ret = PTR_ERR(worker);
18121812
goto out_flush;
@@ -3219,7 +3219,7 @@ static int perf_parallel_engines(void *arg)
32193219

32203220
memset(&engines[idx].p, 0, sizeof(engines[idx].p));
32213221

3222-
worker = kthread_create_worker(0, "igt:%s",
3222+
worker = kthread_run_worker(0, "igt:%s",
32233223
engine->name);
32243224
if (IS_ERR(worker)) {
32253225
err = PTR_ERR(worker);

drivers/gpu/drm/msm/disp/msm_disp_snapshot.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ int msm_disp_snapshot_init(struct drm_device *drm_dev)
109109

110110
mutex_init(&kms->dump_mutex);
111111

112-
kms->dump_worker = kthread_create_worker(0, "%s", "disp_snapshot");
112+
kms->dump_worker = kthread_run_worker(0, "%s", "disp_snapshot");
113113
if (IS_ERR(kms->dump_worker))
114114
DRM_ERROR("failed to create disp state task\n");
115115

0 commit comments

Comments
 (0)