Lines Matching refs:q

19 struct llist_node *__lwq_dequeue(struct lwq *q)  in __lwq_dequeue()  argument
23 if (lwq_empty(q)) in __lwq_dequeue()
25 spin_lock(&q->lock); in __lwq_dequeue()
26 this = q->ready; in __lwq_dequeue()
27 if (!this && !llist_empty(&q->new)) { in __lwq_dequeue()
29 smp_store_release(&q->ready, (void *)1); in __lwq_dequeue()
30 this = llist_reverse_order(llist_del_all(&q->new)); in __lwq_dequeue()
32 q->ready = NULL; in __lwq_dequeue()
35 q->ready = llist_next(this); in __lwq_dequeue()
36 spin_unlock(&q->lock); in __lwq_dequeue()
49 struct llist_node *lwq_dequeue_all(struct lwq *q) in lwq_dequeue_all() argument
53 if (lwq_empty(q)) in lwq_dequeue_all()
56 spin_lock(&q->lock); in lwq_dequeue_all()
57 r = q->ready; in lwq_dequeue_all()
58 q->ready = NULL; in lwq_dequeue_all()
59 t = llist_del_all(&q->new); in lwq_dequeue_all()
60 spin_unlock(&q->lock); in lwq_dequeue_all()
84 struct lwq *q = qv; in lwq_exercise() local
89 wait_var_event(q, (t = lwq_dequeue(q, struct tnode, n)) != NULL); in lwq_exercise()
91 if (lwq_enqueue(&t->n, q)) in lwq_exercise()
92 wake_up_var(q); in lwq_exercise()
102 struct lwq q; in lwq_test() local
108 lwq_init(&q); in lwq_test()
111 threads[i] = kthread_run(lwq_exercise, &q, "lwq-test-%d", i); in lwq_test()
118 if (lwq_enqueue(&t->n, &q)) in lwq_test()
119 wake_up_var(&q); in lwq_test()
131 t = lwq_dequeue(&q, struct tnode, n); in lwq_test()
137 l = lwq_dequeue_all(&q); in lwq_test()
147 lwq_enqueue_batch(l, &q); in lwq_test()
149 while ((t = lwq_dequeue(&q, struct tnode, n)) != NULL) { in lwq_test()