mbox series

[for-next,v2,0/9] ICRC cleanup

Message ID 20210707040040.15434-1-rpearsonhpe@gmail.com (mailing list archive)
Headers show
Series ICRC cleanup | expand

Message

Bob Pearson July 7, 2021, 4 a.m. UTC
This series of patches is a cleanup of the ICRC code in the rxe driver.
The end result is to collect all the ICRC focused code into rxe_icrc.c
with three APIs that are used by the rest of the driver. One to initialize
the crypto engine used to compute crc32, and one each to generate and
check the ICRC in a packet.

Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
---
v2:
  Split up the 5 patches in the first version into 9 patches which are
  each focused on a single change.
  Fixed sparse warnings in the first version.

Bob Pearson (9):
  RDMA/rxe: Move ICRC checking to a subroutine
  RDMA/rxe: Move rxe_xmit_packet to a subroutine
  RDMA/rxe: Fixup rxe_send and rxe_loopback
  RDMA/rxe: Move ICRC generation to a subroutine
  RDMA/rxe: Move rxe_crc32 to a subroutine
  RDMA/rxe: Fixup rxe_icrc_hdr
  RDMA/rxe: Move crc32 init code to rxe_icrc.c
  RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
  RDMA/rxe: Fix types in rxe_icrc.c

 drivers/infiniband/sw/rxe/rxe.h       |  22 -----
 drivers/infiniband/sw/rxe/rxe_comp.c  |   4 +-
 drivers/infiniband/sw/rxe/rxe_icrc.c  | 124 +++++++++++++++++++++++++-
 drivers/infiniband/sw/rxe/rxe_loc.h   |  61 +++----------
 drivers/infiniband/sw/rxe/rxe_mr.c    |  22 +----
 drivers/infiniband/sw/rxe/rxe_net.c   |  59 ++++++++++--
 drivers/infiniband/sw/rxe/rxe_recv.c  |  23 +----
 drivers/infiniband/sw/rxe/rxe_req.c   |  13 +--
 drivers/infiniband/sw/rxe/rxe_resp.c  |  33 ++-----
 drivers/infiniband/sw/rxe/rxe_verbs.c |  11 +--
 10 files changed, 202 insertions(+), 170 deletions(-)

Comments

Zhu Yanjun July 8, 2021, 7:36 a.m. UTC | #1
On Wed, Jul 7, 2021 at 12:01 PM Bob Pearson <rpearsonhpe@gmail.com> wrote:
>
> This series of patches is a cleanup of the ICRC code in the rxe driver.
> The end result is to collect all the ICRC focused code into rxe_icrc.c
> with three APIs that are used by the rest of the driver. One to initialize
> the crypto engine used to compute crc32, and one each to generate and
> check the ICRC in a packet.
>
> Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> ---
> v2:
>   Split up the 5 patches in the first version into 9 patches which are
>   each focused on a single change.
>   Fixed sparse warnings in the first version.
>
> Bob Pearson (9):
>   RDMA/rxe: Move ICRC checking to a subroutine
>   RDMA/rxe: Move rxe_xmit_packet to a subroutine
>   RDMA/rxe: Fixup rxe_send and rxe_loopback
>   RDMA/rxe: Move ICRC generation to a subroutine
>   RDMA/rxe: Move rxe_crc32 to a subroutine
>   RDMA/rxe: Fixup rxe_icrc_hdr
>   RDMA/rxe: Move crc32 init code to rxe_icrc.c
>   RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
>   RDMA/rxe: Fix types in rxe_icrc.c

Thanks. It seems that these patches can pass rdma-core tests.
I will delve into these patches soon.

Zhu Yanjun

>
>  drivers/infiniband/sw/rxe/rxe.h       |  22 -----
>  drivers/infiniband/sw/rxe/rxe_comp.c  |   4 +-
>  drivers/infiniband/sw/rxe/rxe_icrc.c  | 124 +++++++++++++++++++++++++-
>  drivers/infiniband/sw/rxe/rxe_loc.h   |  61 +++----------
>  drivers/infiniband/sw/rxe/rxe_mr.c    |  22 +----
>  drivers/infiniband/sw/rxe/rxe_net.c   |  59 ++++++++++--
>  drivers/infiniband/sw/rxe/rxe_recv.c  |  23 +----
>  drivers/infiniband/sw/rxe/rxe_req.c   |  13 +--
>  drivers/infiniband/sw/rxe/rxe_resp.c  |  33 ++-----
>  drivers/infiniband/sw/rxe/rxe_verbs.c |  11 +--
>  10 files changed, 202 insertions(+), 170 deletions(-)
>
> --
> 2.30.2
>
Jason Gunthorpe July 16, 2021, 5:38 p.m. UTC | #2
On Tue, Jul 06, 2021 at 11:00:32PM -0500, Bob Pearson wrote:
> This series of patches is a cleanup of the ICRC code in the rxe driver.
> The end result is to collect all the ICRC focused code into rxe_icrc.c
> with three APIs that are used by the rest of the driver. One to initialize
> the crypto engine used to compute crc32, and one each to generate and
> check the ICRC in a packet.
> 
> Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> ---
> v2:
>   Split up the 5 patches in the first version into 9 patches which are
>   each focused on a single change.
>   Fixed sparse warnings in the first version.
> 
> Bob Pearson (9):
>   RDMA/rxe: Move ICRC checking to a subroutine
>   RDMA/rxe: Move rxe_xmit_packet to a subroutine
>   RDMA/rxe: Fixup rxe_send and rxe_loopback
>   RDMA/rxe: Move ICRC generation to a subroutine
>   RDMA/rxe: Move rxe_crc32 to a subroutine
>   RDMA/rxe: Fixup rxe_icrc_hdr
>   RDMA/rxe: Move crc32 init code to rxe_icrc.c
>   RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
>   RDMA/rxe: Fix types in rxe_icrc.c

Applied to for-next, thanks

Jason
Zhu Yanjun July 19, 2021, 8:42 a.m. UTC | #3
On Sat, Jul 17, 2021 at 1:38 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
>
> On Tue, Jul 06, 2021 at 11:00:32PM -0500, Bob Pearson wrote:
> > This series of patches is a cleanup of the ICRC code in the rxe driver.
> > The end result is to collect all the ICRC focused code into rxe_icrc.c
> > with three APIs that are used by the rest of the driver. One to initialize
> > the crypto engine used to compute crc32, and one each to generate and
> > check the ICRC in a packet.
> >
> > Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> > ---
> > v2:
> >   Split up the 5 patches in the first version into 9 patches which are
> >   each focused on a single change.
> >   Fixed sparse warnings in the first version.
> >
> > Bob Pearson (9):
> >   RDMA/rxe: Move ICRC checking to a subroutine
> >   RDMA/rxe: Move rxe_xmit_packet to a subroutine
> >   RDMA/rxe: Fixup rxe_send and rxe_loopback
> >   RDMA/rxe: Move ICRC generation to a subroutine
> >   RDMA/rxe: Move rxe_crc32 to a subroutine
> >   RDMA/rxe: Fixup rxe_icrc_hdr
> >   RDMA/rxe: Move crc32 init code to rxe_icrc.c
> >   RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
> >   RDMA/rxe: Fix types in rxe_icrc.c
>
> Applied to for-next, thanks

Hi, Jason && Bob

I confronted a problem.
One hosts with this patch series, A
other hosts, without this patch series, B

I run rping between A <-------> B.

I confronted the following errors, and rping can not succeed.
"
...
[ 1848.251273] rdma_rxe: bad ICRC from 172.16.1.61
[ 1971.750691] rdma_rxe: bad ICRC from 172.16.1.61
...
"
It seems that this patch series breaks the Backward compatibility of RXE.

Not sure if it is a problem. Please comment.

Thanks a lot.
Zhu Yanjun

>
> Jason
Olga Kornievskaia July 19, 2021, 3:53 p.m. UTC | #4
On Mon, Jul 19, 2021 at 5:16 AM Zhu Yanjun <zyjzyj2000@gmail.com> wrote:
>
> On Sat, Jul 17, 2021 at 1:38 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
> >
> > On Tue, Jul 06, 2021 at 11:00:32PM -0500, Bob Pearson wrote:
> > > This series of patches is a cleanup of the ICRC code in the rxe driver.
> > > The end result is to collect all the ICRC focused code into rxe_icrc.c
> > > with three APIs that are used by the rest of the driver. One to initialize
> > > the crypto engine used to compute crc32, and one each to generate and
> > > check the ICRC in a packet.
> > >
> > > Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> > > ---
> > > v2:
> > >   Split up the 5 patches in the first version into 9 patches which are
> > >   each focused on a single change.
> > >   Fixed sparse warnings in the first version.
> > >
> > > Bob Pearson (9):
> > >   RDMA/rxe: Move ICRC checking to a subroutine
> > >   RDMA/rxe: Move rxe_xmit_packet to a subroutine
> > >   RDMA/rxe: Fixup rxe_send and rxe_loopback
> > >   RDMA/rxe: Move ICRC generation to a subroutine
> > >   RDMA/rxe: Move rxe_crc32 to a subroutine
> > >   RDMA/rxe: Fixup rxe_icrc_hdr
> > >   RDMA/rxe: Move crc32 init code to rxe_icrc.c
> > >   RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
> > >   RDMA/rxe: Fix types in rxe_icrc.c
> >
> > Applied to for-next, thanks
>
> Hi, Jason && Bob
>
> I confronted a problem.
> One hosts with this patch series, A
> other hosts, without this patch series, B
>
> I run rping between A <-------> B.
>
> I confronted the following errors, and rping can not succeed.
> "
> ...
> [ 1848.251273] rdma_rxe: bad ICRC from 172.16.1.61
> [ 1971.750691] rdma_rxe: bad ICRC from 172.16.1.61
> ...
> "
> It seems that this patch series breaks the Backward compatibility of RXE.
>
> Not sure if it is a problem. Please comment.
>
> Thanks a lot.
> Zhu Yanjun

I would like to second this post. I was about to submit a new post
asking about why rxe isn't working and if it's known. I'm trying to
figure out when/what patch broke things. From the stand point of
NFSoRDMA, it stopped working and I have discovered that simple rping
doesn't work as well. The last known working release was 5.11.



>
> >
> > Jason
Jason Gunthorpe July 19, 2021, 5:10 p.m. UTC | #5
On Mon, Jul 19, 2021 at 11:53:20AM -0400, Olga Kornievskaia wrote:
> On Mon, Jul 19, 2021 at 5:16 AM Zhu Yanjun <zyjzyj2000@gmail.com> wrote:
> >
> > On Sat, Jul 17, 2021 at 1:38 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
> > >
> > > On Tue, Jul 06, 2021 at 11:00:32PM -0500, Bob Pearson wrote:
> > > > This series of patches is a cleanup of the ICRC code in the rxe driver.
> > > > The end result is to collect all the ICRC focused code into rxe_icrc.c
> > > > with three APIs that are used by the rest of the driver. One to initialize
> > > > the crypto engine used to compute crc32, and one each to generate and
> > > > check the ICRC in a packet.
> > > >
> > > > Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
> > > > v2:
> > > >   Split up the 5 patches in the first version into 9 patches which are
> > > >   each focused on a single change.
> > > >   Fixed sparse warnings in the first version.
> > > >
> > > > Bob Pearson (9):
> > > >   RDMA/rxe: Move ICRC checking to a subroutine
> > > >   RDMA/rxe: Move rxe_xmit_packet to a subroutine
> > > >   RDMA/rxe: Fixup rxe_send and rxe_loopback
> > > >   RDMA/rxe: Move ICRC generation to a subroutine
> > > >   RDMA/rxe: Move rxe_crc32 to a subroutine
> > > >   RDMA/rxe: Fixup rxe_icrc_hdr
> > > >   RDMA/rxe: Move crc32 init code to rxe_icrc.c
> > > >   RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
> > > >   RDMA/rxe: Fix types in rxe_icrc.c
> > >
> > > Applied to for-next, thanks
> >
> > Hi, Jason && Bob
> >
> > I confronted a problem.
> > One hosts with this patch series, A
> > other hosts, without this patch series, B
> >
> > I run rping between A <-------> B.
> >
> > I confronted the following errors, and rping can not succeed.
> > "
> > ...
> > [ 1848.251273] rdma_rxe: bad ICRC from 172.16.1.61
> > [ 1971.750691] rdma_rxe: bad ICRC from 172.16.1.61
> > ...
> > "
> > It seems that this patch series breaks the Backward compatibility of RXE.
> >
> > Not sure if it is a problem. Please comment.
> >
> > Thanks a lot.
> > Zhu Yanjun
> 
> I would like to second this post. I was about to submit a new post
> asking about why rxe isn't working and if it's known. I'm trying to
> figure out when/what patch broke things. From the stand point of
> NFSoRDMA, it stopped working and I have discovered that simple rping
> doesn't work as well. The last known working release was 5.11.

This isn't included in v5.13 or v5.14, so it can't be this series

You should send Bob and Zhu your non-working report

Jason
Bob Pearson July 19, 2021, 9:26 p.m. UTC | #6
On 7/19/21 12:10 PM, Jason Gunthorpe wrote:
> On Mon, Jul 19, 2021 at 11:53:20AM -0400, Olga Kornievskaia wrote:
>> On Mon, Jul 19, 2021 at 5:16 AM Zhu Yanjun <zyjzyj2000@gmail.com> wrote:
>>>
>>> On Sat, Jul 17, 2021 at 1:38 AM Jason Gunthorpe <jgg@nvidia.com> wrote:
>>>>
>>>> On Tue, Jul 06, 2021 at 11:00:32PM -0500, Bob Pearson wrote:
>>>>> This series of patches is a cleanup of the ICRC code in the rxe driver.
>>>>> The end result is to collect all the ICRC focused code into rxe_icrc.c
>>>>> with three APIs that are used by the rest of the driver. One to initialize
>>>>> the crypto engine used to compute crc32, and one each to generate and
>>>>> check the ICRC in a packet.
>>>>>
>>>>> Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
>>>>> v2:
>>>>>   Split up the 5 patches in the first version into 9 patches which are
>>>>>   each focused on a single change.
>>>>>   Fixed sparse warnings in the first version.
>>>>>
>>>>> Bob Pearson (9):
>>>>>   RDMA/rxe: Move ICRC checking to a subroutine
>>>>>   RDMA/rxe: Move rxe_xmit_packet to a subroutine
>>>>>   RDMA/rxe: Fixup rxe_send and rxe_loopback
>>>>>   RDMA/rxe: Move ICRC generation to a subroutine
>>>>>   RDMA/rxe: Move rxe_crc32 to a subroutine
>>>>>   RDMA/rxe: Fixup rxe_icrc_hdr
>>>>>   RDMA/rxe: Move crc32 init code to rxe_icrc.c
>>>>>   RDMA/rxe: Add kernel-doc comments to rxe_icrc.c
>>>>>   RDMA/rxe: Fix types in rxe_icrc.c
>>>>
>>>> Applied to for-next, thanks
>>>
>>> Hi, Jason && Bob
>>>
>>> I confronted a problem.
>>> One hosts with this patch series, A
>>> other hosts, without this patch series, B
>>>
>>> I run rping between A <-------> B.
>>>
>>> I confronted the following errors, and rping can not succeed.
>>> "
>>> ...
>>> [ 1848.251273] rdma_rxe: bad ICRC from 172.16.1.61
>>> [ 1971.750691] rdma_rxe: bad ICRC from 172.16.1.61
>>> ...
>>> "
>>> It seems that this patch series breaks the Backward compatibility of RXE.
>>>
>>> Not sure if it is a problem. Please comment.
>>>
>>> Thanks a lot.
>>> Zhu Yanjun
>>
>> I would like to second this post. I was about to submit a new post
>> asking about why rxe isn't working and if it's known. I'm trying to
>> figure out when/what patch broke things. From the stand point of
>> NFSoRDMA, it stopped working and I have discovered that simple rping
>> doesn't work as well. The last known working release was 5.11.
> 
> This isn't included in v5.13 or v5.14, so it can't be this series
> 
> You should send Bob and Zhu your non-working report
> 
> Jason
> 
I'm working on finding what went wrong for Zhu. SHould have something in the next couple of hours.

Bob