Home
last modified time | relevance | path

Searched refs:sbq (Results 1 – 13 of 13) sorted by relevance

/Linux-v5.15/lib/
Dsbitmap.c398 static unsigned int sbq_calc_wake_batch(struct sbitmap_queue *sbq, in sbq_calc_wake_batch() argument
420 shallow_depth = min(1U << sbq->sb.shift, sbq->min_shallow_depth); in sbq_calc_wake_batch()
421 depth = ((depth >> sbq->sb.shift) * shallow_depth + in sbq_calc_wake_batch()
422 min(depth & ((1U << sbq->sb.shift) - 1), shallow_depth)); in sbq_calc_wake_batch()
429 int sbitmap_queue_init_node(struct sbitmap_queue *sbq, unsigned int depth, in sbitmap_queue_init_node() argument
435 ret = sbitmap_init_node(&sbq->sb, depth, shift, flags, node, in sbitmap_queue_init_node()
440 sbq->min_shallow_depth = UINT_MAX; in sbitmap_queue_init_node()
441 sbq->wake_batch = sbq_calc_wake_batch(sbq, depth); in sbitmap_queue_init_node()
442 atomic_set(&sbq->wake_index, 0); in sbitmap_queue_init_node()
443 atomic_set(&sbq->ws_active, 0); in sbitmap_queue_init_node()
[all …]
/Linux-v5.15/include/linux/
Dsbitmap.h395 int sbitmap_queue_init_node(struct sbitmap_queue *sbq, unsigned int depth,
403 static inline void sbitmap_queue_free(struct sbitmap_queue *sbq) in sbitmap_queue_free() argument
405 kfree(sbq->ws); in sbitmap_queue_free()
406 sbitmap_free(&sbq->sb); in sbitmap_queue_free()
418 void sbitmap_queue_resize(struct sbitmap_queue *sbq, unsigned int depth);
427 int __sbitmap_queue_get(struct sbitmap_queue *sbq);
442 int __sbitmap_queue_get_shallow(struct sbitmap_queue *sbq,
454 static inline int sbitmap_queue_get(struct sbitmap_queue *sbq, in sbitmap_queue_get() argument
460 nr = __sbitmap_queue_get(sbq); in sbitmap_queue_get()
479 static inline int sbitmap_queue_get_shallow(struct sbitmap_queue *sbq, in sbitmap_queue_get_shallow() argument
[all …]
/Linux-v5.15/drivers/dma/idxd/
Dsubmit.c42 struct sbitmap_queue *sbq; in idxd_alloc_desc() local
47 sbq = &wq->sbq; in idxd_alloc_desc()
48 idx = sbitmap_queue_get(sbq, &cpu); in idxd_alloc_desc()
56 ws = &sbq->ws[0]; in idxd_alloc_desc()
58 sbitmap_prepare_to_wait(sbq, ws, &wait, TASK_INTERRUPTIBLE); in idxd_alloc_desc()
61 idx = sbitmap_queue_get(sbq, &cpu); in idxd_alloc_desc()
67 sbitmap_finish_wait(sbq, ws, &wait); in idxd_alloc_desc()
79 sbitmap_queue_clear(&wq->sbq, desc->id, cpu); in idxd_free_desc()
Didxd.h195 struct sbitmap_queue sbq; member
Ddevice.c170 rc = sbitmap_queue_init_node(&wq->sbq, num_descs, -1, false, GFP_KERNEL, in idxd_wq_alloc_resources()
212 sbitmap_queue_free(&wq->sbq); in idxd_wq_free_resources()
/Linux-v5.15/drivers/staging/qlge/
Dqlge_main.c1149 sbq_fail = !!qlge_refill_bq(&rx_ring->sbq, gfp); in qlge_update_buffer_queues()
1158 if ((sbq_fail && QLGE_BQ_HW_OWNED(&rx_ring->sbq) < 2) || in qlge_update_buffer_queues()
1558 struct qlge_bq_desc *sbq_desc = qlge_get_curr_buf(&rx_ring->sbq); in qlge_process_mac_rx_skb()
1693 sbq_desc = qlge_get_curr_buf(&rx_ring->sbq); in qlge_build_rx_skb()
1723 sbq_desc = qlge_get_curr_buf(&rx_ring->sbq); in qlge_build_rx_skb()
1733 sbq_desc = qlge_get_curr_buf(&rx_ring->sbq); in qlge_build_rx_skb()
1806 sbq_desc = qlge_get_curr_buf(&rx_ring->sbq); in qlge_build_rx_skb()
2746 struct qlge_bq_desc *sbq_desc = &rx_ring->sbq.queue[i]; in qlge_free_sbq_buffers()
2775 if (rx_ring->sbq.queue) in qlge_free_rx_buffers()
2822 if (rx_ring->sbq.base) { in qlge_free_rx_resources()
[all …]
Dqlge.h1441 offsetof(struct rx_ring, sbq) : \
1481 struct qlge_bq sbq; member
/Linux-v5.15/drivers/net/ethernet/intel/ice/
Dice_controlq.c62 struct ice_ctl_q_info *cq = &hw->sbq; in ice_sb_init_regs()
627 cq = &hw->sbq; in ice_init_ctrlq()
687 return &hw->sbq; in ice_get_sbq()
709 cq = &hw->sbq; in ice_shutdown_ctrlq()
821 ice_init_ctrlq_locks(&hw->sbq); in ice_create_all_ctrlq()
855 ice_destroy_ctrlq_locks(&hw->sbq); in ice_destroy_all_ctrlq()
Dice_type.h810 struct ice_ctl_q_info sbq; member
Dice_main.c1252 cq = &hw->sbq; in __ice_clean_ctrlq()
1450 if (ice_ctrlq_pending(hw, &hw->sbq)) in ice_clean_sbq_subtask()
2193 hw->sbq.num_rq_entries = ICE_SBQ_LEN; in ice_set_ctrlq_len()
2194 hw->sbq.num_sq_entries = ICE_SBQ_LEN; in ice_set_ctrlq_len()
2195 hw->sbq.rq_buf_size = ICE_SBQ_MAX_BUF_LEN; in ice_set_ctrlq_len()
2196 hw->sbq.sq_buf_size = ICE_SBQ_MAX_BUF_LEN; in ice_set_ctrlq_len()
/Linux-v5.15/drivers/target/iscsi/
Discsi_target_util.c130 struct sbitmap_queue *sbq; in iscsit_wait_for_tag() local
135 sbq = &se_sess->sess_tag_pool; in iscsit_wait_for_tag()
136 ws = &sbq->ws[0]; in iscsit_wait_for_tag()
138 sbitmap_prepare_to_wait(sbq, ws, &wait, state); in iscsit_wait_for_tag()
141 tag = sbitmap_queue_get(sbq, cpup); in iscsit_wait_for_tag()
147 sbitmap_finish_wait(sbq, ws, &wait); in iscsit_wait_for_tag()
/Linux-v5.15/block/
Dblk-mq.c1119 struct sbitmap_queue *sbq; in blk_mq_dispatch_wake() local
1122 sbq = hctx->tags->bitmap_tags; in blk_mq_dispatch_wake()
1123 atomic_dec(&sbq->ws_active); in blk_mq_dispatch_wake()
1140 struct sbitmap_queue *sbq = hctx->tags->bitmap_tags; in blk_mq_mark_tag_wait() local
1163 wq = &bt_wait_ptr(sbq, hctx)->wait; in blk_mq_mark_tag_wait()
1173 atomic_inc(&sbq->ws_active); in blk_mq_mark_tag_wait()
1194 atomic_dec(&sbq->ws_active); in blk_mq_mark_tag_wait()
Dkyber-iosched.c495 khd->domain_wait[i].sbq = NULL; in kyber_init_hctx()