Lines Matching +full:light +full:- +full:weight
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Light-weight single-linked queue.
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()
42 * lwq_dequeue_all - dequeue all currently enqueued objects
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()
63 ep = &(*ep)->next; in lwq_dequeue_all()
90 t->c++; in lwq_exercise()
91 if (lwq_enqueue(&t->n, q)) in lwq_exercise()
111 threads[i] = kthread_run(lwq_exercise, &q, "lwq-test-%d", i); in lwq_test()
116 t->i = i; in lwq_test()
117 t->c = 0; in lwq_test()
118 if (lwq_enqueue(&t->n, &q)) in lwq_test()
133 printk(KERN_CONT " %d(%d)", t->i, t->c); in lwq_test()
140 if ((t->i % 3) == 0) { in lwq_test()
141 t->i = -1; in lwq_test()
150 printk(KERN_CONT " %d", t->i); in lwq_test()