Re: [PATCHv5 for-next 13/19] block/rnbd-clt: Support polling mode for IO latency optimization

Leon Romanovsky
2021-04-19T07:47:17Z

On Mon, Apr 19, 2021 at 09:37:16AM +0200, Gioh Kim wrote:
> From: Gioh Kim <gi-oh.kim@cloud.ionos.com>
>
> RNBD can make double-queues for irq-mode and poll-mode.
> For example, on 4-CPU system 8 request-queues are created,
> 4 for irq-mode and 4 for poll-mode.
> If the IO has HIPRI flag, the block-layer will call .poll function
> of RNBD. Then IO is sent to the poll-mode queue.
> Add optional nr_poll_queues argument for map_devices interface.
>
> To support polling of RNBD, RTRS client creates connections
> for both of irq-mode and direct-poll-mode.
>
> For example, on 4-CPU system it could've create 5 connections:
> con[0] => user message (softirq cq)
> con[1:4] => softirq cq
>
> After this patch, it can create 9 connections:
> con[0] => user message (softirq cq)
> con[1:4] => softirq cq
> con[5:8] => DIRECT-POLL cq
>
> Cc: Leon Romanovsky <leonro@nvidia.com>
> Cc: linux-rdma@vger.kernel.org
> Signed-off-by: Gioh Kim <gi-oh.kim@ionos.com>
> Signed-off-by: Jack Wang <jinpu.wang@ionos.com>
> Acked-by: Jason Gunthorpe <jgg@nvidia.com>
> ---
> drivers/block/rnbd/rnbd-clt-sysfs.c | 55 ++++++++++++----
> drivers/block/rnbd/rnbd-clt.c | 89 +++++++++++++++++++++++---
> drivers/block/rnbd/rnbd-clt.h | 5 +-
> drivers/infiniband/ulp/rtrs/rtrs-clt.c | 62 ++++++++++++++----
> drivers/infiniband/ulp/rtrs/rtrs-pri.h | 1 +
> drivers/infiniband/ulp/rtrs/rtrs.h | 3 +-
> 6 files changed, 181 insertions(+), 34 deletions(-)