On 9/3/19 1:11 PM, Sagi Grimberg wrote:
>
>> + if (blk_integrity_rq(req) && req_op(req) == REQ_OP_READ &&
>> + error == BLK_STS_OK)
>> + t10_pi_complete(req,
>> + nr_bytes / queue_logical_block_size(req->q));
>> +
>
> div in this path? better to use >> ilog2(block_size).
>
> Also, would be better to have a wrapper in place like:
>
> static inline unsigned short blk_integrity_interval(struct request *rq)
> {
> return queue_logical_block_size(rq->q);
> }
If it's a hot path thing that matters, I'd strongly suggest to add
a queue block size shift instead.
--
Jens Axboe