Lines Matching refs:threads
483 struct slpc_thread *threads; in live_slpc_tile_interaction() local
486 threads = kcalloc(I915_MAX_GT, sizeof(*threads), GFP_KERNEL); in live_slpc_tile_interaction()
487 if (!threads) in live_slpc_tile_interaction()
491 threads[i].worker = kthread_create_worker(0, "igt/slpc_parallel:%d", gt->info.id); in live_slpc_tile_interaction()
493 if (IS_ERR(threads[i].worker)) { in live_slpc_tile_interaction()
494 ret = PTR_ERR(threads[i].worker); in live_slpc_tile_interaction()
498 threads[i].gt = gt; in live_slpc_tile_interaction()
499 kthread_init_work(&threads[i].work, slpc_spinner_thread); in live_slpc_tile_interaction()
500 kthread_queue_work(threads[i].worker, &threads[i].work); in live_slpc_tile_interaction()
506 if (IS_ERR_OR_NULL(threads[i].worker)) in live_slpc_tile_interaction()
509 kthread_flush_work(&threads[i].work); in live_slpc_tile_interaction()
510 status = READ_ONCE(threads[i].result); in live_slpc_tile_interaction()
515 kthread_destroy_worker(threads[i].worker); in live_slpc_tile_interaction()
518 kfree(threads); in live_slpc_tile_interaction()