Encountering errors while using RNBD over rxe for v5.14

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

We are facing some issues with the rxe driver in v5.14 (tested with 5.14.21)

After mapping a single RNBD device with 2 rxe interfaces, and with the
below fio config,

[global]
description=Emulation of Storage Server Access Pattern
bssplit=512/20:1k/16:2k/9:4k/12:8k/19:16k/10:32k/8:64k/4
fadvise_hint=0
rw=randrw:2
direct=1
random_distribution=zipf:1.2
time_based=1
runtime=60
ramp_time=1
ioengine=libaio
iodepth=128
iodepth_batch_submit=128
iodepth_batch_complete_min=1
iodepth_batch_complete_max=128
numjobs=1
group_reporting

[job1]
filename=/dev/rnbd0


We observe the following error,

[Fri Mar 25 19:08:03 2022] rtrs_client L353: <blya>: Failed
IB_WR_LOCAL_INV: WR flushed
[Fri Mar 25 19:08:03 2022] rtrs_client L333: <blya>: Failed
IB_WR_REG_MR: WR flushed
[Fri Mar 25 19:08:03 2022] rtrs_client L333: <blya>: Failed
IB_WR_REG_MR: WR flushed
[Fri Mar 25 19:08:34 2022] rtrs_client L353: <blya>: Failed
IB_WR_LOCAL_INV: WR flushed
[Fri Mar 25 19:08:34 2022] rtrs_client L353: <blya>: Failed
IB_WR_LOCAL_INV: WR flushed
[Fri Mar 25 19:08:34 2022] rtrs_client L448: <blya>: IO request
failed: error=-103 path=ip:192.168.123.77@ip:192.168.123.206
[mlx4_1:1] notify=0
[Fri Mar 25 19:08:34 2022] rtrs_client L353: <blya>: Failed
IB_WR_LOCAL_INV: WR flushed
[Fri Mar 25 19:08:34 2022] rtrs_client L448: <blya>: IO request
failed: error=-103 path=ip:192.168.123.77@ip:192.168.123.206
[mlx4_1:1] notify=0

This is only happening for writes. If I change the above fio to rand
read only, there is no error.

I digged into the reason why this error is happening.

During the processing of an rxe packet, while doing lookup_mr, it
discovers that the state of the mr in not RXE_MR_STATE_VALID; and is
RXE_MR_STATE_FREE.

The code path of the error is
rxe_requester -> finish_packet -> copy_data -> lookup_mr

The mr for which this lookup is happening is the wqe dma.


I tried bisecting the branch to try to find the rouge commit, but it
lands up in the below commit.

$ git show e04360a2ea01bf42aa639b65aad81f502e896c7f
commit e04360a2ea01bf42aa639b65aad81f502e896c7f (refs/bisect/bad)
Merge: 514798d36572 3d8287544223
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Thu Jul 1 14:54:03 2021 -0700

Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma

So I found out all the commits that went into this merge commit. The
starting and the end commits of that merge commit are as follows,
591f762b2750
3d8287544223

So I checked out the last commit, (below), but that somehow doesn't
have the error.

commit 3d8287544223a3d2f37981c1f9ffd94d0b5e9ffc (HEAD)
Author: Leon Romanovsky <leonro@xxxxxxxxxx>
Date:   Tue Jun 29 09:49:33 2021 +0300

    RDMA/core: Always release restrack object

(At this point rxe is actually broken, so I have to backport 3 commits
for even rnbd mapping to work).

The 3 backported commits are as follows,


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux