[PATCH v4, under testing] nvme-rdma: support devices with queue size < 32

Sagi Grimberg sagi at grimberg.me
Wed May 3 09:49:36 PDT 2017


> Hello Marta, Sagi and Leon,
>
> How about changing nvme_rdma_init_sig_count() such that it always returns
> a power of two? The "+ 1" in the code below makes sure that the argument of
> ilog2() is larger than zero even if queue_size == 1. I'm not sure whether
> the time needed to compute ilog2() would make it necessary to cache the
> nvme_rdma_init_sig_count() return value.

ilog2 is pretty fast.

> static inline int nvme_rdma_init_sig_count(int queue_size)
> {
>         /* Return the largest power of two that is not above half of (queue size + 1) */
>         return 1 << ilog2((queue_size + 1) / 2);
> }

That'd work too I think...



More information about the Linux-nvme mailing list