17 Oct, 2020

1 commit

  • RXE was wrongly using an internal kernel enum as part of its uAPI, split
    this out into a dedicated uAPI enum just for RXE. It only uses the IPv4
    and IPv6 values.

    This was exposed by changing the internal kernel enum definition which
    broke RXE.

    Fixes: 1c15b4f2a42f ("RDMA/core: Modify enum ib_gid_type and enum rdma_network_type")
    Signed-off-by: Jason Gunthorpe

    Jason Gunthorpe
     

02 Oct, 2020

3 commits

  • Expose the query GID table and entry API to user space by adding two new
    methods and method handlers to the device object.

    This API provides a faster way to query a GID table using single call and
    will be used in libibverbs to improve current approach that requires
    multiple calls to open, close and read multiple sysfs files for a single
    GID table entry.

    Link: https://lore.kernel.org/r/20200923165015.2491894-5-leon@kernel.org
    Signed-off-by: Avihai Horon
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Avihai Horon
     
  • Introduce rdma_query_gid_table which enables querying all the GID tables
    of a given device and copying the attributes of all valid GID entries to a
    provided buffer.

    This API provides a faster way to query a GID table using single call and
    will be used in libibverbs to improve current approach that requires
    multiple calls to open, close and read multiple sysfs files for a single
    GID table entry.

    Link: https://lore.kernel.org/r/20200923165015.2491894-4-leon@kernel.org
    Signed-off-by: Avihai Horon
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Avihai Horon
     
  • Extend advice MR to support non faulting mode, this can improve
    performance by increasing the populated page tables in the device.

    Link: https://lore.kernel.org/r/20200930163828.1336747-4-leon@kernel.org
    Signed-off-by: Yishai Hadas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Yishai Hadas
     

25 Sep, 2020

1 commit

  • The new version of RoCEE supports using CQE in size of 32B or 64B. The
    performance of bus can be improved by using larger size of CQE.

    Link: https://lore.kernel.org/r/1600245806-56321-3-git-send-email-liweihang@huawei.com
    Signed-off-by: Wenpeng Liang
    Signed-off-by: Weihang Li
    Signed-off-by: Jason Gunthorpe

    Wenpeng Liang
     

11 Sep, 2020

1 commit

  • Add work completion opcodes to a new ib_uverbs_wc_opcode enum in
    ib_user_verbs.h. This plays the same role as ib_uverbs_wr_opcode
    documenting the opcodes in the user space API.

    Assigned the IB_WC_XXX opcodes in ib_verbs.h to the IB_UVERBS_WC_XXX
    where they are defined. This follows the same pattern as the IB_WR_XXX
    opcodes. This fixes an incorrect value for LSO that had crept in but
    is not currently being used.

    Added a missing IB_WR_BIND_MW opcode in ib_verbs.h.

    Link: https://lore.kernel.org/r/20200903224039.437391-2-rpearson@hpe.com
    Signed-off-by: Bob Pearson
    Reviewed-by: Jason Gunthorpe
    Signed-off-by: Jason Gunthorpe

    Bob Pearson
     

27 Aug, 2020

1 commit

  • Fixed several minor checkpatch warnings in existing rxe source.

    Link: https://lore.kernel.org/r/20200820224638.3212-3-rpearson@hpe.com
    Signed-off-by: Bob Pearson
    Signed-off-by: Jason Gunthorpe

    Bob Pearson
     

19 Aug, 2020

1 commit

  • This patch introduces the ability to configure SRD QPs with the RNR retry
    parameter when issuing a modify QP command.

    In addition, a capability bit was added to report support to the userspace
    library.

    Link: https://lore.kernel.org/r/20200731060420.17053-5-galpress@amazon.com
    Reviewed-by: Firas JahJah
    Reviewed-by: Yossi Leybovich
    Signed-off-by: Gal Pressman
    Signed-off-by: Jason Gunthorpe

    Gal Pressman
     

29 Jul, 2020

3 commits

  • Introduce a mechanism that performs an handshake between the userspace
    provider and kernel driver which verifies that the user supports all
    required features in order to operate correctly.

    The handshake verifies the needed functionality by comparing the reported
    device caps and the provider caps. If the device reports a non-zero
    capability the appropriate comp mask is required from the userspace
    provider in order to allocate the context.

    Link: https://lore.kernel.org/r/20200722140312.3651-4-galpress@amazon.com
    Reviewed-by: Shadi Ammouri
    Reviewed-by: Yossi Leybovich
    Signed-off-by: Gal Pressman
    Signed-off-by: Jason Gunthorpe

    Gal Pressman
     
  • The device reports the minimum SQ size required for creation.

    This patch queries the min SQ size and reports it back to the userspace
    library.

    Link: https://lore.kernel.org/r/20200722140312.3651-3-galpress@amazon.com
    Reviewed-by: Firas JahJah
    Reviewed-by: Shadi Ammouri
    Signed-off-by: Gal Pressman
    Signed-off-by: Jason Gunthorpe

    Gal Pressman
     
  • The device reports the maximum number of bytes to be written before
    ringing the doorbell (zero means unlimited).

    This patch queries the max batch size and reports it back to the userspace
    library.

    Link: https://lore.kernel.org/r/20200722140312.3651-2-galpress@amazon.com
    Reviewed-by: Daniel Kranzdorf
    Reviewed-by: Firas JahJah
    Signed-off-by: Gal Pressman
    Signed-off-by: Jason Gunthorpe

    Gal Pressman
     

25 Jul, 2020

1 commit

  • Nnothing uses the enum name, so this is harmless.

    Fixes: 322694412400 ("IB/mlx5: Introduce driver create and destroy flow methods")
    Link: https://lore.kernel.org/r/20200724084112.GC31930@amd
    Signed-off-by: Pavel Machek (CIP)
    Signed-off-by: Jason Gunthorpe

    Pavel Machek
     

21 Jul, 2020

1 commit


17 Jul, 2020

2 commits

  • User space should receive the maximum edpm size from kernel driver,
    similar to other edpm/ldpm related limits. Add an additional parameter to
    the alloc_ucontext_resp structure for the edpm maximum size.

    In addition, pass an indication from user-space to kernel
    (and not just kernel to user) that the DPM sizes are supported.

    This is for supporting backward-forward compatibility between driver and
    lib for everything related to DPM transaction and limit sizes.

    This should have been part of commit mentioned in Fixes tag.

    Link: https://lore.kernel.org/r/20200707063100.3811-3-michal.kalderon@marvell.com
    Fixes: 93a3d05f9d68 ("RDMA/qedr: Add kernel capability flags for dpm enabled mode")
    Signed-off-by: Ariel Elior
    Signed-off-by: Michal Kalderon
    Signed-off-by: Jason Gunthorpe

    Michal Kalderon
     
  • In older FW versions the completion flag was treated as the ack flag in
    edpm messages. commit ff937b916eb6 ("qed: Add EDPM mode type for user-fw
    compatibility") exposed the FW option of setting which mode the QP is in
    by adding a flag to the qedr qed API.

    This patch adds the qedr libqedr interface so that the libqedr can set
    the flag appropriately and qedr can pass it down to FW. Flag is added for
    backward compatibility with libqedr.

    For older libs, this flag didn't exist and therefore set to zero.

    Fixes: ac1b36e55a51 ("qedr: Add support for user context verbs")
    Link: https://lore.kernel.org/r/20200707063100.3811-2-michal.kalderon@marvell.com
    Signed-off-by: Yuval Bason
    Signed-off-by: Michal Kalderon
    Signed-off-by: Jason Gunthorpe

    Michal Kalderon
     

11 Jul, 2020

1 commit

  • With the "PID" category QPs have same PID will be bound to same counter;
    If this category is not set then QPs have different PIDs will be bound
    to same counter.

    This is implemented for 2 reasons:
    1. The counter is a limited resource, while there may be dozens of
    applications, each of which creates several types of QPs, which means
    it may doesn't have enough counter.
    2. The system administrator needs all QPs created by all applications
    with same type bound to one counter.

    The counter name and PID is only make sense when "PID" category are
    configured.

    This category can also be used in combine with others, e.g. QP type.

    Link: https://lore.kernel.org/r/20200702082933.424537-2-leon@kernel.org
    Signed-off-by: Mark Zhang
    Reviewed-by: Maor Gottlieb
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Mark Zhang
     

07 Jul, 2020

4 commits

  • Expose UAPI to query MR, this will let user space application that
    didn't allocate the MR but has access to by owning the matching command
    FD to retrieve its information.

    Link: https://lore.kernel.org/r/20200630093916.332097-8-leon@kernel.org
    Signed-off-by: Yishai Hadas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Yishai Hadas
     
  • Introduce UAPI to query PD attributes, this can be used to retrieve PD
    attributes by having the PD handle of the created one and owning the
    command FD for the ucontxet.

    Link: https://lore.kernel.org/r/20200630093916.332097-7-leon@kernel.org
    Signed-off-by: Yishai Hadas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Yishai Hadas
     
  • Implement the query ucontext functionality by returning the original
    ucontext data as part of an extra mlx5 attribute that holds the driver
    UAPI response.

    Link: https://lore.kernel.org/r/20200630093916.332097-6-leon@kernel.org
    Signed-off-by: Yishai Hadas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Yishai Hadas
     
  • Expose UAPI to query ucontext, this will let user space application that
    didn't allocate the ucontext but has access to by owning the matching
    command FD to retrieve the ucontext information.

    Link: https://lore.kernel.org/r/20200630093916.332097-4-leon@kernel.org
    Signed-off-by: Yishai Hadas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Yishai Hadas
     

24 Jun, 2020

1 commit

  • Add support to get resource dump in raw format. It enable drivers to
    return the entire device specific QP/CQ/MR context without a need from the
    driver to set each field separately.

    The raw query returns only the device specific data, general data is still
    returned by using the existing queries.

    Example:

    $ rdma res show mr dev mlx5_1 mrn 2 -r -j
    [{"ifindex":7,"ifname":"mlx5_1",
    "data":[0,4,255,254,0,0,0,0,0,0,0,0,16,28,0,216,...]}]

    Link: https://lore.kernel.org/r/20200623113043.1228482-9-leon@kernel.org
    Signed-off-by: Maor Gottlieb
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Maor Gottlieb
     

06 Jun, 2020

1 commit

  • Pull rdma updates from Jason Gunthorpe:
    "A more active cycle than most of the recent past, with a few large,
    long discussed works this time.

    The RNBD block driver has been posted for nearly two years now, and
    flowing through RDMA due to it also introducing a new ULP.

    The removal of FMR has been a recurring discussion theme for a long
    time.

    And the usual smattering of features and bug fixes.

    Summary:

    - Various small driver bugs fixes in rxe, mlx5, hfi1, and efa

    - Continuing driver cleanups in bnxt_re, hns

    - Big cleanup of mlx5 QP creation flows

    - More consistent use of src port and flow label when LAG is used and
    a mlx5 implementation

    - Additional set of cleanups for IB CM

    - 'RNBD' network block driver and target. This is a network block
    RDMA device specific to ionos's cloud environment. It brings strong
    multipath and resiliency capabilities.

    - Accelerated IPoIB for HFI1

    - QP/WQ/SRQ ioctl migration for uverbs, and support for multiple
    async fds

    - Support for exchanging the new IBTA defiend ECE data during RDMA CM
    exchanges

    - Removal of the very old and insecure FMR interface from all ULPs
    and drivers. FRWR should be preferred for at least a decade now"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (247 commits)
    RDMA/cm: Spurious WARNING triggered in cm_destroy_id()
    RDMA/mlx5: Return ECE DC support
    RDMA/mlx5: Don't rely on FW to set zeros in ECE response
    RDMA/mlx5: Return an error if copy_to_user fails
    IB/hfi1: Use free_netdev() in hfi1_netdev_free()
    RDMA/hns: Uninitialized variable in modify_qp_init_to_rtr()
    RDMA/core: Move and rename trace_cm_id_create()
    IB/hfi1: Fix hfi1_netdev_rx_init() error handling
    RDMA: Remove 'max_map_per_fmr'
    RDMA: Remove 'max_fmr'
    RDMA/core: Remove FMR device ops
    RDMA/rdmavt: Remove FMR memory registration
    RDMA/mthca: Remove FMR support for memory registration
    RDMA/mlx4: Remove FMR support for memory registration
    RDMA/i40iw: Remove FMR leftovers
    RDMA/bnxt_re: Remove FMR leftovers
    RDMA/mlx5: Remove FMR leftovers
    RDMA/core: Remove FMR pool API
    RDMA/rds: Remove FMR support for memory registration
    RDMA/srp: Remove support for FMR memory registration
    ...

    Linus Torvalds
     

28 May, 2020

8 commits

  • After users sets the ECE option, FW will return the agreed/supported bits
    through an output structures of modify QP stages for regular QPs or
    through create QP for the DCT.

    Link: https://lore.kernel.org/r/20200526115440.205922-9-leon@kernel.org
    Reviewed-by: Mark Zhang
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • The most common way to set ECE option will be during modify QP command in
    INIT2RTR, RTR2RTS and RTS2RTS stages, so update mlx5 to support it.

    The new bit in the comp_mask is needed to mark that kernel supports ECE
    and can receive data instead of "reserved" field in the struct
    mlx5_ib_modify_qp.

    Link: https://lore.kernel.org/r/20200526115440.205922-8-leon@kernel.org
    Reviewed-by: Mark Zhang
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • Allow users to ask creation of QPs with specific ECE options. Such early
    set even before RDMA-CM connection is established is useful if user knows
    exactly which option he needs.

    Link: https://lore.kernel.org/r/20200526115440.205922-4-leon@kernel.org
    Reviewed-by: Mark Zhang
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • Supported ECE options are returned from FW in the create_qp phase and zero
    means that field is not valid. Such default value allows us to reuse
    reserved field without worries about comp_mask.

    Update create QP API to return ECE options.

    Link: https://lore.kernel.org/r/20200526115440.205922-3-leon@kernel.org
    Reviewed-by: Mark Zhang
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • IBTA declares "vendor option not supported" reject reason in REJ messages
    if passive side doesn't want to accept proposed ECE options.

    Due to the fact that ECE is managed by userspace, there is a need to let
    users to provide such rejected reason.

    Link: https://lore.kernel.org/r/20200526103304.196371-7-leon@kernel.org
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • The rdma_accept() is called by both passive and active sides of CMID
    connection to mark readiness to start data transfer. For passive side,
    this is called explicitly, for active side, it is called implicitly while
    receiving REP message.

    Provide ECE data to rdma_accept function needed for passive side to send
    that REP message.

    Link: https://lore.kernel.org/r/20200526103304.196371-6-leon@kernel.org
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • Passive side of CMID connection receives ECE request through REQ message
    and needs to respond with relevant REP message which will be forwarded to
    active side.

    The UCMA events interface is responsible for such communication with the
    user space (librdmacm). Extend it to provide ECE wire data.

    Link: https://lore.kernel.org/r/20200526103304.196371-4-leon@kernel.org
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     
  • Active side of CMID initiates connection through librdmacm's
    rdma_connect() and kernel's ucma_connect(). Extend UCMA interface to
    handle those new parameters.

    Link: https://lore.kernel.org/r/20200526103304.196371-3-leon@kernel.org
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     

22 May, 2020

5 commits


21 May, 2020

1 commit

  • The accelerated IP capability bit is added to allow users to control
    which feature is enabled and disabled.

    Link: https://lore.kernel.org/r/20200511160541.173205.96870.stgit@awfm-01.aw.intel.com
    Reviewed-by: Dennis Dalessandro
    Reviewed-by: Mike Marciniszyn
    Signed-off-by: Kaike Wan
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Jason Gunthorpe

    Kaike Wan
     

14 May, 2020

2 commits

  • When drop action is used the matching packet will stop processing in
    steering and will be dropped. This functionality will allow users to drop
    matching packets.

    Link: https://lore.kernel.org/r/20200504054227.271486-1-leon@kernel.org
    Signed-off-by: Daria Velikovsky
    Reviewed-by: Maor Gottlieb
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Daria Velikovsky
     
  • User can configure default miss rule in order to skip matching in the user
    domain and forward the packet to the kernel steering domain. When user
    requests a default miss rule, we add steering rule to forward the traffic
    to the next namespace.

    Link: https://lore.kernel.org/r/20200504053012.270689-5-leon@kernel.org
    Signed-off-by: Maor Gottlieb
    Reviewed-by: Mark Zhang
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Maor Gottlieb
     

13 May, 2020

1 commit

  • The librdmacm uses node_guid as identifier to correlate between IB devices
    and CMA devices. However FW resets cause to such "connection" to be lost
    and require from the user to restart its application.

    Extend UCMA to return IB device index, which is stable identifier.

    Link: https://lore.kernel.org/r/20200504132541.355710-1-leon@kernel.org
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Jason Gunthorpe

    Leon Romanovsky
     

21 Apr, 2020

1 commit

  • Several references got broken due to txt to ReST conversion.

    Several of them can be automatically fixed with:

    scripts/documentation-file-ref-check --fix

    Reviewed-by: Mathieu Poirier # hwtracing/coresight/Kconfig
    Reviewed-by: Paul E. McKenney # memory-barrier.txt
    Acked-by: Alex Shi # translations/zh_CN
    Acked-by: Federico Vaga # translations/it_IT
    Acked-by: Marc Zyngier # kvm/arm64
    Signed-off-by: Mauro Carvalho Chehab
    Link: https://lore.kernel.org/r/6f919ddb83a33b5f2a63b6b5f0575737bb2b36aa.1586881715.git.mchehab+huawei@kernel.org
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab