On Wed, Apr 20, 2022 at 12:28 PM Haris Iqbal <haris.iqbal@xxxxxxxxx> wrote: > > 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, > > From db4657afd10e45855ac1d8437fcc9a86bd3d741d Mon Sep 17 00:00:00 2001 > From: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxxxxxxxxxxxxx> > Date: Thu, 29 Jul 2021 14:26:22 -0400 > Subject: [PATCH 1/3] RDMA/cma: Revert INIT-INIT patch > > From e2a05339fa1188b6b37540f4611893ac4c534fa2 Mon Sep 17 00:00:00 2001 > From: Bob Pearson <rpearsonhpe@xxxxxxxxx> > Date: Thu, 29 Jul 2021 17:00:38 -0500 > Subject: [PATCH 2/3] RDMA/rxe: Use the correct size of wqe when processing SRQ > > From ef4b96a5773d7f6568363b3d0c3c3f371fb690bd Mon Sep 17 00:00:00 2001 > From: Bob Pearson <rpearsonhpe@xxxxxxxxx> > Date: Thu, 29 Jul 2021 17:00:39 -0500 > Subject: [PATCH 3/3] RDMA/rxe: Restore setting tot_len in the IPv4 header > > > Any thoughts as to why this error could be happening? Ping. > > (PS, I tried the other newer branches, 5.15, 5.16 and 5.17, there are > some other issues with them). > > Regards > -Haris