On 04/28/2017 09:15 AM, Ming Lei wrote:  
> +/*
> + * If this queue has enough hardware tags and doesn't share tags with
> + * other queues, just use hw tag directly for scheduling.
> + */
> +static inline bool blk_mq_sched_may_use_hw_tag(struct request_queue *q)
> +{
> +     if (q->tag_set->flags & BLK_MQ_F_TAG_SHARED)
> +             return false;
> +
> +     if (blk_mq_get_queue_depth(q) < q->nr_requests)
> +             return false;

I think we should leave a bigger gap. Ideally, for scheduling, we should
have a hw queue depth that's around half of what the scheduler has to
work with. That will always leave us something to schedule with, if the
hw can't deplete the whole pool.

-- 
Jens Axboe

Reply via email to