On 04/06/2017 12:10 PM, Bart Van Assche wrote:
> +             for (i = 0; i < queue->nr_hw_queues; i++) {
> +                     j = (i + hctx->queue_num + 1) % queue->nr_hw_queues;
> +                     h = queue->queue_hw_ctx[j];
> +                     if (h->tags == tags && blk_mq_sched_restart_hctx(h))
> +                             break;

I'm pretty sure that doing:

        j = i + hctx->queue_num + 1;;
        for (i = 0; i < queue->nr_hw_queues; i++, j++) {
                if (j == queue->nr_hw_queues)
                        j = 0;
                h = queue->queue_hw_ctx[j];
                if (h->tags == tags && blk_mq_sched_restart_hctx(h))
                        break;
        }

would be considerably more efficient than a modulo for each loop. And
let's rename 'h' to 'hctx', readability is much better that way.
Especially since you have both i and j as iterators.

-- 
Jens Axboe

Reply via email to