Lines Matching refs:ws
381 sbq->ws = kzalloc_node(SBQ_WAIT_QUEUES * sizeof(*sbq->ws), flags, node);
382 if (!sbq->ws) {
389 init_waitqueue_head(&sbq->ws[i].wait);
390 atomic_set(&sbq->ws[i].wait_cnt, sbq->wake_batch);
413 atomic_set(&sbq->ws[i].wait_cnt, 1);
500 struct sbq_wait_state *ws = &sbq->ws[wake_index];
502 if (waitqueue_active(&ws->wait)) {
505 return ws;
516 struct sbq_wait_state *ws;
520 ws = sbq_wake_ptr(sbq);
521 if (!ws)
524 wait_cnt = atomic_dec_return(&ws->wait_cnt);
540 * to wakeup a new batch on a different 'ws'.
542 ret = atomic_cmpxchg(&ws->wait_cnt, wait_cnt, wake_batch);
545 wake_up_nr(&ws->wait, wake_batch);
603 struct sbq_wait_state *ws = &sbq->ws[wake_index];
605 if (waitqueue_active(&ws->wait))
606 wake_up(&ws->wait);
634 seq_puts(m, "ws={\n");
636 struct sbq_wait_state *ws = &sbq->ws[i];
639 atomic_read(&ws->wait_cnt),
640 waitqueue_active(&ws->wait) ? "active" : "inactive");
650 struct sbq_wait_state *ws,
656 add_wait_queue(&ws->wait, &sbq_wait->wait);
672 struct sbq_wait_state *ws,
679 prepare_to_wait_exclusive(&ws->wait, &sbq_wait->wait, state);
683 void sbitmap_finish_wait(struct sbitmap_queue *sbq, struct sbq_wait_state *ws,
686 finish_wait(&ws->wait, &sbq_wait->wait);