Lines Matching refs:waiters
33 const struct intel_wait *waiters, in check_rbtree() argument
40 if (&b->irq_wait->node != rb_first(&b->waiters)) { in check_rbtree()
46 for (rb = rb_first(&b->waiters); rb; rb = rb_next(rb)) { in check_rbtree()
48 int idx = w - waiters; in check_rbtree()
70 const struct intel_wait *waiters, in check_completion() argument
76 if (intel_wait_complete(&waiters[n]) != !!test_bit(n, bitmap)) in check_completion()
80 n, waiters[n].seqno, in check_completion()
81 intel_wait_complete(&waiters[n]) ? "complete" : "active", in check_completion()
98 if (!RB_EMPTY_ROOT(&b->waiters)) { in check_rbtree_empty()
111 struct intel_wait *waiters; in igt_random_insert_remove() local
120 waiters = kvmalloc_array(count, sizeof(*waiters), GFP_KERNEL); in igt_random_insert_remove()
121 if (!waiters) in igt_random_insert_remove()
134 intel_wait_init_for_seqno(&waiters[n], seqno_bias + n); in igt_random_insert_remove()
136 err = check_rbtree(engine, bitmap, waiters, count); in igt_random_insert_remove()
146 intel_engine_add_wait(engine, &waiters[i]); in igt_random_insert_remove()
149 err = check_rbtree(engine, bitmap, waiters, count); in igt_random_insert_remove()
158 intel_engine_remove_wait(engine, &waiters[i]); in igt_random_insert_remove()
161 err = check_rbtree(engine, bitmap, waiters, count); in igt_random_insert_remove()
172 kvfree(waiters); in igt_random_insert_remove()
182 struct intel_wait *waiters; in igt_insert_complete() local
190 waiters = kvmalloc_array(count, sizeof(*waiters), GFP_KERNEL); in igt_insert_complete()
191 if (!waiters) in igt_insert_complete()
200 intel_wait_init_for_seqno(&waiters[n], n + seqno_bias); in igt_insert_complete()
201 intel_engine_add_wait(engine, &waiters[n]); in igt_insert_complete()
204 err = check_rbtree(engine, bitmap, waiters, count); in igt_insert_complete()
218 if (intel_wait_complete(&waiters[n])) { in igt_insert_complete()
220 n, waiters[n].seqno); in igt_insert_complete()
235 intel_engine_remove_wait(engine, &waiters[n]); in igt_insert_complete()
236 RB_CLEAR_NODE(&waiters[n].node); in igt_insert_complete()
238 err = check_rbtree(engine, bitmap, waiters, count); in igt_insert_complete()
245 err = check_completion(engine, bitmap, waiters, count); in igt_insert_complete()
257 kvfree(waiters); in igt_insert_complete()
349 struct igt_wakeup *waiters; in igt_wakeup() local
359 waiters = kvmalloc_array(count, sizeof(*waiters), GFP_KERNEL); in igt_wakeup()
360 if (!waiters) in igt_wakeup()
368 waiters[n].wq = &wq; in igt_wakeup()
369 waiters[n].ready = &ready; in igt_wakeup()
370 waiters[n].set = &set; in igt_wakeup()
371 waiters[n].done = &done; in igt_wakeup()
372 waiters[n].engine = engine; in igt_wakeup()
373 waiters[n].flags = BIT(IDLE); in igt_wakeup()
375 waiters[n].tsk = kthread_run(igt_wakeup_thread, &waiters[n], in igt_wakeup()
377 if (IS_ERR(waiters[n].tsk)) in igt_wakeup()
380 get_task_struct(waiters[n].tsk); in igt_wakeup()
392 GEM_BUG_ON(!test_bit(IDLE, &waiters[n].flags)); in igt_wakeup()
393 waiters[n].seqno = in igt_wakeup()
430 if (IS_ERR(waiters[n].tsk)) in igt_wakeup()
433 set_bit(STOP, &waiters[n].flags); in igt_wakeup()
439 if (IS_ERR(waiters[n].tsk)) in igt_wakeup()
442 kthread_stop(waiters[n].tsk); in igt_wakeup()
443 put_task_struct(waiters[n].tsk); in igt_wakeup()
446 kvfree(waiters); in igt_wakeup()