On 5/16/24 02:14, YangYang wrote:
@@ -513,9 +527,9 @@ static void dd_depth_updated(struct blk_mq_hw_ctx
*hctx)
struct deadline_data *dd = q->elevator->elevator_data;
struct blk_mq_tags *tags = hctx->sched_tags;
- dd->async_depth = max(1UL, 3 * q->nr_requests / 4);
+ dd->async_depth = q->nr_requests;
- sbitmap_queue_min_shallow_depth(&tags->bitmap_tags,
dd->async_depth);
+ sbitmap_queue_min_shallow_depth(&tags->bitmap_tags, 1);
If sbq->min_shallow_depth is set to 1, sbq->wake_batch will also be set
to 1. I guess this may result in batch wakeup not working as expected.
The value of the sbq->min_shallow_depth parameter may affect performance
but does not affect correctness. See also the comment above the
sbitmap_queue_min_shallow_depth() declaration. Is this sufficient to
address your concern?
Thanks,
Bart.