Bob Pearson
3ccffe8abf
RDMA/rxe: Move max_elem into rxe_type_info
...
Move the maximum number of elements from a parameter in rxe_pool_init to a
member of the rxe_type_info array.
Link: https://lore.kernel.org/r/20220304000808.225811-7-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:49:57 -03:00
Bob Pearson
b4a47f6836
RDMA/rxe: Replace obj by elem in declaration
...
Fix a harmless typo replacing obj by elem in the cleanup fields. This has
no effect but is confusing.
Link: https://lore.kernel.org/r/20220304000808.225811-6-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:49:57 -03:00
Bob Pearson
3c3e4d582b
RDMA/rxe: Delete _locked() APIs for pool objects
...
Since caller managed locks for indexed objects are no longer used these
APIs are deleted.
Link: https://lore.kernel.org/r/20220304000808.225811-5-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:49:57 -03:00
Bob Pearson
c9f4c69583
RDMA/rxe: Reverse the sense of RXE_POOL_NO_ALLOC
...
There is only one remaining object type that allocates its own memory,
that is mr. So the sense of RXE_POOL_NO_ALLOC is changed to
RXE_POOL_ALLOC. Add checks to rxe_alloc() and rxe_add_to_pool() to make
sure the correct call is used for the setting of this flag.
Link: https://lore.kernel.org/r/20220304000808.225811-4-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:49:56 -03:00
Bob Pearson
8a1a0be894
RDMA/rxe: Replace mr by rkey in responder resources
...
Currently rxe saves a copy of MR in responder resources for RDMA reads.
Since the responder resources are never freed just over written if more
are needed this MR may not have a reference freed until the QP is
destroyed. This patch uses the rkey instead of the MR and on subsequent
packets of a multipacket read reply message it looks up the MR from the
rkey for each packet. This makes it possible for a user to deregister an
MR or unbind a MW on the fly and get correct behaviour.
Link: https://lore.kernel.org/r/20220304000808.225811-3-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:49:56 -03:00
Bob Pearson
63221acb0c
RDMA/rxe: Fix ref error in rxe_av.c
...
The commit referenced below can take a reference to the AH which is never
dropped. This only happens in the UD request path. This patch optionally
passes that AH back to the caller so that it can hold the reference while
the AV is being accessed and then drop it. Code to do this is added to
rxe_req.c. The AV is also passed to rxe_prepare in rxe_net.c as an
optimization.
Fixes: e2fe06c908 ("RDMA/rxe: Lookup kernel AH from ah index in UD WQEs")
Link: https://lore.kernel.org/r/20220304000808.225811-2-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:49:56 -03:00
Yixing Liu
70f9252158
RDMA/hns: Use the reserved loopback QPs to free MR before destroying MPT
...
Before destroying MPT, the reserved loopback QPs send loopback IOs (one
write operation per SL). Completing these loopback IOs represents that
there isn't any outstanding request in MPT, then it's safe to destroy MPT.
Link: https://lore.kernel.org/r/20220310042835.38634-1-liangwenpeng@huawei.com
Signed-off-by: Yixing Liu <liuyixing1@huawei.com >
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 20:19:00 -03:00
Mustafa Ismail
51cad28724
RDMA/irdma: Add support for address handle re-use
...
Address handles (AH) are a limited HW resource and some user applications
may create large numbers of identical AH's. Avoid running out of AH's by
reusing existing identical ones.
Link: https://lore.kernel.org/r/20220228183650.290-1-shiraz.saleem@intel.com
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com >
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-15 16:22:55 -03:00
Julia Lawall
2c25e45267
RDMA/qib: Fix typos in comments
...
Various spelling mistakes in comments. Detected with the help of
Coccinelle.
Link: https://lore.kernel.org/r/20220314115354.144023-23-Julia.Lawall@inria.fr
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-14 20:56:02 -03:00
Yongzhi Liu
087f9c3f23
RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
...
In case the second xa_insert() fails, the obj_event is not released. Fix
the error unwind flow to free that memory to avoid a memory leak.
Fixes: 7597385371 ("IB/mlx5: Enable subscription for device events over DEVX")
Link: https://lore.kernel.org/r/1647018361-18266-1-git-send-email-lyz_cs@pku.edu.cn
Signed-off-by: Yongzhi Liu <lyz_cs@pku.edu.cn >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-14 20:41:10 -03:00
Leon Romanovsky
7922d3de4d
Revert "RDMA/core: Fix ib_qp_usecnt_dec() called when error"
...
This reverts commit 7c4a539ec3 . which causes
to the following error in mlx4.
Destroy of kernel CQ shouldn't fail
WARNING: CPU: 4 PID: 18064 at include/rdma/ib_verbs.h:3936 mlx4_ib_dealloc_xrcd+0x12e/0x1b0 [mlx4_ib]
Modules linked in: bonding ib_ipoib ip_gre ipip tunnel4 geneve rdma_ucm nf_tables ib_umad mlx4_en mlx4_ib ib_uverbs mlx4_core ip6_gre gre ip6_tunnel tunnel6 iptable_raw openvswitch nsh rpcrdma ib_iser libiscsi scsi_transport_iscsi rdma_cm iw_cm ib_cm ib_core xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink xt_addrtype iptable_nat nf_nat br_netfilter overlay fuse [last unloaded: mlx4_core]
CPU: 4 PID: 18064 Comm: ibv_xsrq_pingpo Not tainted 5.17.0-rc7_master_62c6ecb #1
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014
RIP: 0010:mlx4_ib_dealloc_xrcd+0x12e/0x1b0 [mlx4_ib]
Code: 1e 93 08 00 40 80 fd 01 0f 87 fa f1 04 00 83 e5 01 0f 85 2b ff ff ff 48 c7 c7 20 4f b6 a0 c6 05 fd 92 08 00 01 e8 47 c9 82 e2 <0f> 0b e9 11 ff ff ff 0f b6 2d eb 92 08 00 40 80 fd 01 0f 87 b1 f1
RSP: 0018:ffff8881a4957750 EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff8881ac4b6800 RCX: 0000000000000000
RDX: 0000000000000027 RSI: 0000000000000004 RDI: ffffed103492aedc
RBP: 0000000000000000 R08: 0000000000000001 R09: ffff8884d2e378eb
R10: ffffed109a5c6f1d R11: 0000000000000001 R12: ffff888132620000
R13: ffff8881a4957a90 R14: ffff8881aa2d4000 R15: ffff8881a4957ad0
FS: 00007f0401747740(0000) GS:ffff8884d2e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055f8ae036118 CR3: 000000012fe94005 CR4: 0000000000370ea0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
ib_dealloc_xrcd_user+0xce/0x120 [ib_core]
ib_uverbs_dealloc_xrcd+0xad/0x210 [ib_uverbs]
uverbs_free_xrcd+0xe8/0x190 [ib_uverbs]
destroy_hw_idr_uobject+0x7a/0x130 [ib_uverbs]
uverbs_destroy_uobject+0x164/0x730 [ib_uverbs]
uobj_destroy+0x72/0xf0 [ib_uverbs]
ib_uverbs_cmd_verbs+0x19fb/0x3110 [ib_uverbs]
ib_uverbs_ioctl+0x169/0x260 [ib_uverbs]
__x64_sys_ioctl+0x856/0x1550
do_syscall_64+0x3d/0x90
entry_SYSCALL_64_after_hwframe+0x44/0xae
Fixes: 7c4a539ec3 ("RDMA/core: Fix ib_qp_usecnt_dec() called when error")
Link: https://lore.kernel.org/r/74c11029adaf449b3b9228a77cc82f39e9e892c8.1646851220.git.leonro@nvidia.com
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-14 20:39:21 -03:00
Chengguang Xu
aaaf62e066
RDMA/rxe: Remove useless argument for update_state()
...
The argument 'payload' is not used in update_state(), so just remove it.
Link: https://lore.kernel.org/r/20220307145047.3235675-2-cgxu519@mykernel.net
Signed-off-by: Chengguang Xu <cgxu519@mykernel.net >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Acked-by: Zhu Yanjun <zyjzyj2000@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-14 20:36:01 -03:00
Chengguang Xu
7e8e611d6a
RDMA/rxe: Change variable and function argument to proper type
...
The type of wqe length is u32 so in order to avoid overflow and shadow
casting change variable and relevant function argument to proper type.
Link: https://lore.kernel.org/r/20220307145047.3235675-1-cgxu519@mykernel.net
Signed-off-by: Chengguang Xu <cgxu519@mykernel.net >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-14 20:36:01 -03:00
Dan Carpenter
6f6dbb819d
RDMA/irdma: Prevent some integer underflows
...
My static checker complains that:
drivers/infiniband/hw/irdma/ctrl.c:3605 irdma_sc_ceq_init()
warn: can subtract underflow 'info->dev->hmc_fpm_misc.max_ceqs'?
It appears that "info->dev->hmc_fpm_misc.max_ceqs" comes from the firmware
in irdma_sc_parse_fpm_query_buf() so, yes, there is a chance that it could
be zero. Even if we trust the firmware, it's easy enough to change the
condition just as a hardenning measure.
Fixes: 3f49d68425 ("RDMA/irdma: Implement HW Admin Queue OPs")
Link: https://lore.kernel.org/r/20220307125928.GE16710@kili
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com >
Acked-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-14 20:31:12 -03:00
Wenpeng Liang
73f7e05609
RDMA/hns: Refactor the alloc_cqc()
...
Abstract the alloc_cqc() into several parts and separate the process
unrelated to allocating CQC.
Link: https://lore.kernel.org/r/20220302064830.61706-10-liangwenpeng@huawei.com
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:32 -04:00
Chengchang Tang
b65afbd2a0
RDMA/hns: Refactor the alloc_srqc()
...
Abstract the alloc_srqc() into several parts and separate the alloc_srqn()
from the alloc_srqc().
Link: https://lore.kernel.org/r/20220302064830.61706-9-liangwenpeng@huawei.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com >
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:32 -04:00
Wenpeng Liang
904de76c42
RDMA/hns: Clean up the return value check of hns_roce_alloc_cmd_mailbox()
...
hns_roce_alloc_cmd_mailbox() never returns NULL, so the check should be
IS_ERR(). And the error code should be converted as the function's return
value.
Link: https://lore.kernel.org/r/20220302064830.61706-8-liangwenpeng@huawei.com
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:32 -04:00
Chengchang Tang
cf7f8f5c1c
RDMA/hns: Remove similar code that configures the hardware contexts
...
Remove duplicate code for creating and destroying hardware contexts via
mailbox.
Link: https://lore.kernel.org/r/20220302064830.61706-7-liangwenpeng@huawei.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com >
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:31 -04:00
Chengchang Tang
162e29feab
RDMA/hns: Refactor mailbox functions
...
The current mailbox functions have too many parameters, making the code
difficult to maintain. So construct a new structure mbox_msg to pass the
information needed by mailbox.
Link: https://lore.kernel.org/r/20220302064830.61706-6-liangwenpeng@huawei.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com >
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:31 -04:00
Wenpeng Liang
e50cda2b9f
RDMA/hns: Fix the wrong type of parameter "op" of the mailbox
...
The "op" field of the mailbox occupies 8 bits, so the parameter "op"
should be of type u8.
Link: https://lore.kernel.org/r/20220302064830.61706-5-liangwenpeng@huawei.com
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:31 -04:00
Wenpeng Liang
479dc93ba7
RDMA/hns: Remove redundant parameter "mailbox" in the mailbox
...
The parameter "out_param" of the mailbox is always null when the context is
destroyed. So remove the function parameter "mailbox".
Link: https://lore.kernel.org/r/20220302064830.61706-4-liangwenpeng@huawei.com
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:31 -04:00
Chengchang Tang
0018ed4bb0
RDMA/hns: Remove fixed parameter “timeout” in the mailbox
...
The value of the function parameter “timeout” is unique. Therefore,
it is unnecessary to specify the parameter “timeout” value each time.
So remove it.
Link: https://lore.kernel.org/r/20220302064830.61706-3-liangwenpeng@huawei.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com >
Signed-off-by: Haoyue Xu <xuhaoyue1@hisilicon.com >
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:30 -04:00
Chengchang Tang
5a32949d81
RDMA/hns: Remove the unused parameter "op_modifier" in mailbox
...
The parameter "op_modifier" is only used for HIP06. It is useless for HIP08
and later versions. After removing HIP06, this parameter is no longer used,
so remove it.
Link: https://lore.kernel.org/r/20220302064830.61706-2-liangwenpeng@huawei.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com >
Signed-off-by: Haoyue Xu <xuhaoyue1@hisilicon.com >
Signed-off-by: Wenpeng Liang <liangwenpeng@huawei.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:36:30 -04:00
Yajun Deng
7c4a539ec3
RDMA/core: Fix ib_qp_usecnt_dec() called when error
...
ib_destroy_qp() would called by ib_create_qp_user() if error, the former
contains ib_qp_usecnt_dec(), but ib_qp_usecnt_inc() was not called before.
So move ib_qp_usecnt_inc() into create_qp().
Fixes: d2b10794fc ("RDMA/core: Create clean QP creations interface for uverbs")
Link: https://lore.kernel.org/r/20220303024232.2847388-1-yajun.deng@linux.dev
Signed-off-by: Yajun Deng <yajun.deng@linux.dev >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:30:31 -04:00
Mike Marciniszyn
b135e324d7
IB/hfi1: Allow larger MTU without AIP
...
The AIP code signals the phys_mtu in the following query_port()
fragment:
props->phys_mtu = HFI1_CAP_IS_KSET(AIP) ? hfi1_max_mtu :
ib_mtu_enum_to_int(props->max_mtu);
Using the largest MTU possible should not depend on AIP.
Fix by unconditionally using the hfi1_max_mtu value.
Fixes: 6d72344cf6 ("IB/ipoib: Increase ipoib Datagram mode MTU's upper limit")
Link: https://lore.kernel.org/r/1644348309-174874-1-git-send-email-mike.marciniszyn@cornelisnetworks.com
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@cornelisnetworks.com >
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@cornelisnetworks.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-03-04 17:22:02 -04:00
Yajun Deng
a80501b891
RDMA/core: Remove unnecessary statements
...
The rdma_zalloc_drv_obj() in __ib_alloc_pd() would zero pd, it unnecessary
add NULL to the object in struct pd.
The uverbs_free_pd() already return busy if pd->usecnt is true, there is
no need to add a warning.
Link: https://lore.kernel.org/r/20220223074901.201506-1-yajun.deng@linux.dev
Signed-off-by: Yajun Deng <yajun.deng@linux.dev >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-28 13:57:24 -04:00
Mustafa Ismail
17850f2b0b
RDMA/irdma: Remove incorrect masking of PD
...
The PD id is masked with 0x7fff, while PD can be 18 bits for GEN2 HW.
Remove the masking as it should not be needed and can cause incorrect PD
id to be used.
Fixes: b48c24c2d7 ("RDMA/irdma: Implement device supported verb APIs")
Link: https://lore.kernel.org/r/20220225163211.127-4-shiraz.saleem@intel.com
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com >
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-28 12:07:40 -04:00
Mustafa Ismail
b200189626
RDMA/irdma: Fix Passthrough mode in VM
...
Using PCI_FUNC macro in a VM, when the device is in passthrough mode does
not provide the real function instance. This means that currently, devices
will not probe unless the instance in the VM matches the instance in the
host.
Fix this by getting the pf_id from the LAN during the probe.
Fixes: 8498a30e1b ("RDMA/irdma: Register auxiliary driver and implement private channel OPs")
Link: https://lore.kernel.org/r/20220225163211.127-3-shiraz.saleem@intel.com
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com >
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-28 12:07:40 -04:00
Mustafa Ismail
6702bc1474
RDMA/irdma: Fix netdev notifications for vlan's
...
Currently, events on vlan netdevs are being ignored. Fix this by finding
the real netdev and processing the notifications for vlan netdevs.
Fixes: 915cc7ac0f ("RDMA/irdma: Add miscellaneous utility definitions")
Link: https://lore.kernel.org/r/20220225163211.127-2-shiraz.saleem@intel.com
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com >
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-28 12:07:40 -04:00
Zhu Yanjun
ea7596c1e5
RDMA/irdma: Make irdma_create_mg_ctx return a void
...
The function irdma_create_mg_ctx always returns 0, so make it void and
delete the return value check.
Link: https://lore.kernel.org/r/20220224182832.3896686-1-yanjun.zhu@linux.dev
Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Acked-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-28 11:32:42 -04:00
Zhu Yanjun
884194ef26
RDMA/irdma: Move union irdma_sockaddr to header file
...
The union irdma_sockaddr is used frequently. So move it to the header
file.
Link: https://lore.kernel.org/r/20220223024252.3873736-4-yanjun.zhu@linux.dev
Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:38:56 -04:00
Zhu Yanjun
8627da62cc
RDMA/irdma: Remove the unnecessary variable saddr
...
Firstly the variable saddr was to check the type of a network. Now the
variable net_type is used to do the same work. So it is removed.
Link: https://lore.kernel.org/r/20220223024252.3873736-3-yanjun.zhu@linux.dev
Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:38:56 -04:00
Zhu Yanjun
80005c43d4
RDMA/irdma: Use net_type to check network type
...
The member variable net_type is to check the type of network.
Link: https://lore.kernel.org/r/20220223024252.3873736-2-yanjun.zhu@linux.dev
Signed-off-by: Zhu Yanjun <yanjun.zhu@linux.dev >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:38:56 -04:00
Bob Pearson
6090a0c4c7
RDMA/rxe: Cleanup rxe_mcast.c
...
Finish adding subroutine comment headers to subroutines in
rxe_mcast.c. Make minor api change cleanups.
Link: https://lore.kernel.org/r/20220223230706.50332-5-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:29:15 -04:00
Bob Pearson
a181c4c81a
RDMA/rxe: Collect cleanup mca code in a subroutine
...
Collect cleanup code for struct rxe_mca into a subroutine,
__rxe_cleanup_mca() called in rxe_detach_mcg() in rxe_mcast.c.
Link: https://lore.kernel.org/r/20220223230706.50332-4-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:29:15 -04:00
Bob Pearson
4a4f107347
RDMA/rxe: Collect mca init code in a subroutine
...
Collect initialization code for struct rxe_mca into a subroutine,
__rxe_init_mca(), to cleanup rxe_attach_mcg() in rxe_mcast.c. Check
limit on total number of attached qp's.
Link: https://lore.kernel.org/r/20220223230706.50332-3-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:29:15 -04:00
Bob Pearson
6a8a2e473b
RDMA/rxe: Warn if mcast memory is not freed
...
Print a warning if memory allocated by mcast
is not cleared when the rxe driver is unloaded.
Link: https://lore.kernel.org/r/20220223230706.50332-2-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 20:29:15 -04:00
Shiraz Saleem
2322d17abf
RDMA/irdma: Remove excess error variables
...
As irdma_status_code is replaced with an int, there is no need for two
variables to hold error codes.
Remove the excess variable in functions where this occurs. Also, remove
any redundant initializations which are no longer needed.
Link: https://lore.kernel.org/r/20220217151851.1518-4-shiraz.saleem@intel.com
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 15:24:19 -04:00
Shiraz Saleem
45225a93cc
RDMA/irdma: Propagate error codes
...
All functions now return linux error codes. Propagate the return from
these functions as opposed to converting them to generic values.
Link: https://lore.kernel.org/r/20220217151851.1518-3-shiraz.saleem@intel.com
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 15:24:18 -04:00
Shiraz Saleem
2c4b14ea95
RDMA/irdma: Remove enum irdma_status_code
...
Replace use of custom irdma_status_code with linux error codes.
Remove enum irdma_status_code and header in which its defined.
Link: https://lore.kernel.org/r/20220217151851.1518-2-shiraz.saleem@intel.com
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 15:24:18 -04:00
Bart Van Assche
4eaa29b45e
RDMA/ib_srp: Add more documentation
...
Make it more clear what the different ib_srp data structures represent.
Link: https://lore.kernel.org/r/20220215210511.28303-2-bvanassche@acm.org
Signed-off-by: Bart Van Assche <bvanassche@acm.org >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 15:13:23 -04:00
Aharon Landau
77528e2aed
RDMA/mlx5: Reorder calls to pcie_relaxed_ordering_enabled()
...
The mkc is the key for the mkey cache, hence, created in each attempt to
get a cache mkey, while pcie_relaxed_ordering_enabled() is called during
the setting of the mkc, but used only for cases where
IB_ACCESS_RELAXED_ORDERING is set.
pcie_relaxed_ordering_enabled() is an expensive call (26 us). Reorder the
code so the driver will call it only when it is needed.
Link: https://lore.kernel.org/r/684be1366cb1d4f05aa3e78986205e4bc410443a.1644947594.git.leonro@nvidia.com
Signed-off-by: Aharon Landau <aharonl@nvidia.com >
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 14:59:13 -04:00
Aharon Landau
9ee2516c43
RDMA/mlx5: Store ndescs instead of the translation table size
...
Currently, ent->xlt stores the translation table size. This data should
not be stored in the cache entry but be written directly to the mailbox.
Store ndescs instead, and deduce the translation table size from it
according to the access mode.
Link: https://lore.kernel.org/r/e9dbfaa1f279793a6bd28ee5a31cb4f0f0d70f05.1644947594.git.leonro@nvidia.com
Signed-off-by: Aharon Landau <aharonl@nvidia.com >
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 14:59:13 -04:00
Aharon Landau
56561ac6b2
RDMA/mlx5: Merge similar flows of allocating MR from the cache
...
When allocating a MR from the cache, the driver calls to get_cache_mr(),
and in case of failure, retries with create_cache_mr(). This is the flow
of mlx5_mr_cache_alloc(), so use it instead.
Link: https://lore.kernel.org/r/53c85fcd4de6ec9de0b8e6cbb1bf5d5fe19900c3.1644947594.git.leonro@nvidia.com
Signed-off-by: Aharon Landau <aharonl@nvidia.com >
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 14:59:13 -04:00
Aharon Landau
2f0e60d5e9
RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR
...
When an ODP MR cache entry is empty and trying to allocate it, increment
the ent->miss counter and call to queue_adjust_cache_locked() to verify
the entry is balanced.
Fixes: aad719dcf3 ("RDMA/mlx5: Allow MRs to be created in the cache synchronously")
Link: https://lore.kernel.org/r/09503e295276dcacc92cb1d8aef1ad0961c99dc1.1644947594.git.leonro@nvidia.com
Signed-off-by: Aharon Landau <aharonl@nvidia.com >
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 14:59:13 -04:00
Aharon Landau
185b982678
RDMA/mlx5: Remove redundant work in struct mlx5_cache_ent
...
delayed_cache_work_func() and the cache_work_func() are both wrappers of
__cache_work_func(). Instead of having a special not delayed work, use the
delayed work with delay = 0.
Link: https://lore.kernel.org/r/18b6ae205e75f087aa4a2a05c81ea8b66d8d88dc.1644947594.git.leonro@nvidia.com
Signed-off-by: Aharon Landau <aharonl@nvidia.com >
Signed-off-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-23 14:59:13 -04:00
Håkon Bugge
748663c8cc
IB/cma: Allow XRC INI QPs to set their local ACK timeout
...
XRC INI QPs should be able to adjust their local ACK timeout.
Fixes: 2c1619edef ("IB/cma: Define option to set ack timeout and pack tos_set")
Link: https://lore.kernel.org/r/1644421175-31943-1-git-send-email-haakon.bugge@oracle.com
Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com >
Suggested-by: Avneesh Pant <avneesh.pant@oracle.com >
Reviewed-by: Leon Romanovsky <leonro@nvidia.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-17 11:51:12 -04:00
Bob Pearson
3810c1a1cb
RDMA/rxe: Remove mcg from rxe pools
...
Finish removing mcg from rxe pools. Replace rxe pools ref counting by
kref's. Replace rxe_alloc by kzalloc.
Link: https://lore.kernel.org/r/20220208211644.123457-8-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-16 12:11:29 -04:00
Bob Pearson
d2ccf0411d
RDMA/rxe: Remove key'ed object support
...
Now that rxe_mcast.c has it's own red-black tree support there is no
longer any requirement for key'ed objects in rxe pools. This patch removes
the key APIs and related code.
Link: https://lore.kernel.org/r/20220208211644.123457-7-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-16 12:10:17 -04:00
Bob Pearson
8a0a5fe0c4
RDMA/rxe: Replace pool key by rxe->mcg_tree
...
Continuing to decouple mcg from rxe pools. Create red-black tree code in
rxe_mcast.c to hold mcg index. Replace pool key calls by calls to local
red-black routines.
Link: https://lore.kernel.org/r/20220208211644.123457-6-rpearsonhpe@gmail.com
Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com >
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com >
2022-02-16 12:06:35 -04:00