01 Feb, 2017

1 commit

  • commit b1a27eac7fefff33ccf6acc919fc0725bf9815fb upstream.

    Use CXGB3_... instead of CXBG3_...

    Fixes: a85fb3383340 ("IB/cxgb3: Move user vendor structures")
    Signed-off-by: Nicolas Iooss
    Reviewed-by: Leon Romanovsky
    Acked-by: Steve Wise
    Signed-off-by: Doug Ledford
    Signed-off-by: Greg Kroah-Hartman

    Nicolas Iooss
     

15 Oct, 2016

3 commits


08 Oct, 2016

10 commits

  • This patch moves mthca vendor's specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libmthca) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • This patch moves nes vendor's specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libmlx4) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • This patch moves ocrdma vendor's specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libmlx4) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    In addition, it changes types to be __uXX instead of uXX.

    Signed-off-by: Leon Romanovsky
    Acked-By: Devesh Sharma
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • This patch moves mlx4 vendor's specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libmlx4) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • This patch moves cxgb4 vendor's specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libcxgb4) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    Signed-off-by: Leon Romanovsky
    Reviewed-by: Steve Wise
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • This patch moves cxgb3 vendor's specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libcxgb3) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    Signed-off-by: Leon Romanovsky
    Reviewed-by: Steve Wise
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • This patch decouples and moves vendors specific structures to
    common UAPI folder which will be visible to all consumers.

    These structures are used by user-space library driver
    (libmlx5) and currently manually copied to that library.

    This move will allow cross-compile against these files and
    simplify introduction of vendor specific data.

    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Leon Romanovsky
     
  • Add the following fields to IPv6 flow filter specification:
    1. Traffic Class
    2. Flow Label
    3. Next Header
    4. Hop Limit

    Signed-off-by: Maor Gottlieb
    Reviewed-by: Sagi Grimberg
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Maor Gottlieb
     
  • Add the following fields to IPv4 flow filter specification:
    1. Type of Service
    2. Time to Live
    3. Flags
    4. Protocol

    Signed-off-by: Maor Gottlieb
    Reviewed-by: Sagi Grimberg
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Maor Gottlieb
     
  • Query RSS related attributes and return them to user-space via the
    extended query device uverbs command.

    It includes both direct ones (i.e. struct ib_uverbs_rss_caps) and
    max_wq_type_rq which may be used in both RSS and non RSS flows.

    Signed-off-by: Yishai Hadas
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Yishai Hadas
     

05 Aug, 2016

1 commit

  • Pull second round of rdma updates from Doug Ledford:
    "This can be split out into just two categories:

    - fixes to the RDMA R/W API in regards to SG list length limits
    (about 5 patches)

    - fixes/features for the Intel hfi1 driver (everything else)

    The hfi1 driver is still being brought to full feature support by
    Intel, and they have a lot of people working on it, so that amounts to
    almost the entirety of this pull request"

    * tag 'for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (84 commits)
    IB/hfi1: Add cache evict LRU list
    IB/hfi1: Fix memory leak during unexpected shutdown
    IB/hfi1: Remove unneeded mm argument in remove function
    IB/hfi1: Consistently call ops->remove outside spinlock
    IB/hfi1: Use evict mmu rb operation
    IB/hfi1: Add evict operation to the mmu rb handler
    IB/hfi1: Fix TID caching actions
    IB/hfi1: Make the cache handler own its rb tree root
    IB/hfi1: Make use of mm consistent
    IB/hfi1: Fix user SDMA racy user request claim
    IB/hfi1: Fix error condition that needs to clean up
    IB/hfi1: Release node on insert failure
    IB/hfi1: Validate SDMA user iovector count
    IB/hfi1: Validate SDMA user request index
    IB/hfi1: Use the same capability state for all shared contexts
    IB/hfi1: Prevent null pointer dereference
    IB/hfi1: Rename TID mmu_rb_* functions
    IB/hfi1: Remove unneeded empty check in hfi1_mmu_rb_unregister()
    IB/hfi1: Restructure hfi1_file_open
    IB/hfi1: Make iovec loop index easy to understand
    ...

    Linus Torvalds
     

04 Aug, 2016

3 commits

  • Doug Ledford
     
  • Soft RoCE (RXE) - The software RoCE driver

    ib_rxe implements the RDMA transport and registers to the RDMA core
    device as a kernel verbs provider. It also implements the packet IO
    layer. On the other hand ib_rxe registers to the Linux netdev stack
    as a udp encapsulating protocol, in that case RDMA, for sending and
    receiving packets over any Ethernet device. This yields a RDMA
    transport over the UDP/Ethernet network layer forming a RoCEv2
    compatible device.

    The configuration procedure of the Soft RoCE drivers requires
    binding to any existing Ethernet network device. This is done with
    /sys interface.

    A userspace Soft RoCE library (librxe) provides user applications
    the ability to run with Soft RoCE devices. The use of rxe verbs ins
    user space requires the inclusion of librxe as a device specifics
    plug-in to libibverbs. librxe is packaged separately.

    Architecture:

    +-----------------------------------------------------------+
    | Application |
    +-----------------------------------------------------------+
    +-----------------------------------+
    | libibverbs |
    User +-----------------------------------+
    +----------------+ +----------------+
    | librxe | | HW RoCE lib |
    +----------------+ +----------------+
    +---------------------------------------------------------------+
    +--------------+ +------------+
    | Sockets | | RDMA ULP |
    +--------------+ +------------+
    +--------------+ +---------------------+
    | TCP/IP | | ib_core |
    +--------------+ +---------------------+
    +------------+ +----------------+
    Kernel | ib_rxe | | HW RoCE driver |
    +------------+ +----------------+
    +------------------------------------+
    | NIC driver |
    +------------------------------------+

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    +-----------------------------------------------------------+
    | Application |
    +-----------------------------------------------------------+
    +-----------------------------------+
    | libibverbs |
    User +-----------------------------------+
    +----------------+ +----------------+
    | librxe | | HW RoCE lib |
    +----------------+ +----------------+
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    +--------------+ +------------+
    | Sockets | | RDMA ULP |
    +--------------+ +------------+
    +--------------+ +---------------------+
    | TCP/IP | | ib_core |
    +--------------+ +---------------------+
    +------------+ +----------------+
    Kernel | ib_rxe | | HW RoCE driver |
    +------------+ +----------------+
    +------------------------------------+
    | NIC driver |
    +------------------------------------+
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Soft RoCE resources:

    [1[ https://github.com/SoftRoCE/librxe-dev librxe - source code in
    Github
    [2] https://github.com/SoftRoCE/rxe-dev/wiki/rxe-dev:-Home - Soft RoCE
    Wiki page
    [3] https://github.com/SoftRoCE/librxe-dev - Soft RoCE userspace library

    Signed-off-by: Kamal Heib
    Signed-off-by: Amir Vadai
    Signed-off-by: Moni Shoua
    Reviewed-by: Haggai Eran
    Signed-off-by: Doug Ledford

    Moni Shoua
     
  • Added UCMA and CMA support for multicast join flags. Flags are
    passed using UCMA CM join command previously reserved fields.
    Currently supporting two join flags indicating two different
    multicast JoinStates:

    1. Full Member:
    The initiator creates the Multicast group(MCG) if it wasn't
    previously created, can send Multicast messages to the group
    and receive messages from the MCG.

    2. Send Only Full Member:
    The initiator creates the Multicast group(MCG) if it wasn't
    previously created, can send Multicast messages to the group
    but doesn't receive any messages from the MCG.

    IB: Send Only Full Member requires a query of ClassPortInfo
    to determine if SM/SA supports this option. If SM/SA
    doesn't support Send-Only there will be no join request
    sent and an error will be returned.

    ETH: When Send Only Full Member is requested no IGMP join
    will be sent.

    Signed-off-by: Alex Vesker
    Reviewed by: Hal Rosenstock
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Alex Vesker
     

03 Aug, 2016

1 commit

  • The driver pads non-double word multiple message sizes but it doesn't
    account for this padding when the packet length is calculated. Also, the
    data length is miscalculated for message sizes less than 4 bytes due to
    the bit representation in LRH. And there's a check for non-double word
    multiple message sizes that prevents these messages from being sent.
    This patch fixes length miscalculations and enables the functionality to
    send non-double word multiple message sizes.

    Reviewed-by: Harish Chegondi
    Signed-off-by: Sebastian Sanchez
    Signed-off-by: Ira Weiny
    Signed-off-by: Doug Ledford

    Ira Weiny
     

23 Jun, 2016

4 commits

  • Add IPv6 flow specification support.

    Signed-off-by: Maor Gottlieb
    Signed-off-by: Leon Romanovsky
    Signed-off-by: Doug Ledford

    Maor Gottlieb
     
  • User applications that want to spread incoming traffic between several WQs
    should create a QP which contains an indirection table.

    When such a QP is created other receive side parameters are not valid
    and should not be given. Its send side is optional and assumed active
    based on max_send_wr capability value.

    Extend create QP to work accordingly.

    Signed-off-by: Yishai Hadas
    Signed-off-by: Matan Barak
    Reviewed-by: Sagi Grimberg
    Signed-off-by: Doug Ledford

    Yishai Hadas
     
  • User applications that want to spread traffic on several WQs, need to
    create an indirection table, by using already created WQs.

    Adding uverbs API in order to create and destroy this table.

    Signed-off-by: Yishai Hadas
    Signed-off-by: Matan Barak
    Reviewed-by: Sagi Grimberg
    Signed-off-by: Doug Ledford

    Yishai Hadas
     
  • User space applications which use RSS functionality need to create
    a work queue object (WQ). The lifetime of such an object is:
    * Create a WQ
    * Modify the WQ from reset to init state.
    * Use the WQ (by downstream patches).
    * Destroy the WQ.

    These commands are added to the uverbs API.

    Signed-off-by: Yishai Hadas
    Signed-off-by: Matan Barak
    Reviewed-by: Sagi Grimberg
    Signed-off-by: Doug Ledford

    Yishai Hadas
     

27 May, 2016

1 commit


26 May, 2016

5 commits

  • Remove the write() handler for user space commands now that ioctl
    handling is available. User apps will need to change to use ioctl from
    this point forward.

    Reviewed-by: Mitko Haralanov
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • IOCTL is more suited to what user space commands need to do than the
    write() interface. Add IOCTL definitions for all existing write commands
    and the handling for those. The write() interface will be removed in a
    follow on patch.

    Reviewed-by: Mitko Haralanov
    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • The HFI1_CMD_SDMA_STATUS_UPD command was never implemented it has no
    reason to live in the driver. Remove it.

    Reviewed-by: Christoph Hellwig
    Reviewed-by: Mitko Haralanov
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • Remove EPROM handling from the cdev which is used for user application
    data traffic.

    Reviewed-by: Dean Luick
    Reviewed-by: Mike Marciniszyn
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     
  • hfi1 current exports a cdev that can be used to target all of the hfi's
    in the system. However there is a problem with this approach in
    that the devices could be on different subnets. This is a problem that
    user space can figure out and explicitly tell the driver on which device
    to create a context.

    Remove the multi-purpose cdev leaving a dedicated cdev for each port.
    Also remove the striping capability that is dependent upon the user
    choosing the multi-purpose cdev. It is now up to user space to determine
    how to stripe contexts.

    Reviewed-by: Dean Luick
    Reviewed-by: Mitko Haralanov
    Reviewed-by: Mike Marciniszyn
    Reviewed-by: Ira Weiny
    Signed-off-by: Dennis Dalessandro
    Signed-off-by: Doug Ledford

    Dennis Dalessandro
     

25 May, 2016

1 commit

  • This commits adds a new RDMA local service operation:
    - IP to GID resolution.

    The client request would include the ifindex of the outgoing interface
    and would place in an attribute (LS_NLA_TYPE_IPV4 or LS_NLA_TYPE_IPV6)
    the destnation IP.

    The local service would answer with a message that has the attribute:
    - LS_NLA_TYPE_DGID - The destination GID.

    Signed-off-by: Mark Bloch
    Signed-off-by: Doug Ledford

    Mark Bloch
     

14 May, 2016

1 commit

  • Since all the uverbs device_cap_flags are occupied, we need a place to
    expose more device capabilities.

    This patch adds a new 64 bit device_cap_flags_ex to expose new
    device capabilities.

    The lower 32 bits will be identical to the original device_cap_flags,
    The upper 32 bits will be new capabilities.

    Signed-off-by: Majd Dibbiny
    Signed-off-by: Matan Barak
    Signed-off-by: Doug Ledford

    Majd Dibbiny
     

22 Mar, 2016

1 commit


17 Mar, 2016

1 commit

  • moved port mapper related code from drivers into common code

    Signed-off-by: Mustafa Ismail
    Signed-off-by: Tatyana E. Nikolova
    Signed-off-by: Faisal Latif
    Reviewed-by: Steve Wise
    Tested-by: Steve Wise
    Signed-off-by: Doug Ledford

    Faisal Latif
     

01 Mar, 2016

4 commits

  • Add entry for port mapper services.

    Changes since v2:
    moved this patch before being used

    Changes since v1:
    moved I40IW as last element

    Signed-off-by: Faisal Latif
    Signed-off-by: Doug Ledford

    Faisal Latif
     
  • This commit "flips the switch" on the TID caching feature
    implemented in this patch series.

    As well as enabling the new feature by tying the new function
    with the PSM API, it also cleans up the old unneeded code,
    data structure members, and variables.

    Due to difference in operation and information, the tracing
    functions related to expected receives had to be changed. This
    patch include these changes.

    The tracing function changes could not be split into a separate
    commit without including both tracing variants at the same time.
    This would have caused other complications and ugliness.

    Signed-off-by: Mitko Haralanov
    Reviewed-by: Ira Weiny
    Signed-off-by: Doug Ledford

    Mitko Haralanov
     
  • TID caching will use a new event to signal userland that cache
    invalidation has occurred and needs a matching command code that
    will be used to read the invalidated TIDs.

    Add the event bit and the new command to the exported header file.

    The command is also added to the switch() statement in file_ops.c
    for completeness and in preparation for its usage later.

    Signed-off-by: Mitko Haralanov
    Reviewed-by: Ira Weiny
    Signed-off-by: Doug Ledford

    Mitko Haralanov
     
  • The HFI1_CAP_TID_UNMAP comment was incorrectly implying the
    opposite of what capability actually did. Correct this error.

    Reviewed-by: Ira Weiny
    Signed-off-by: Mitko Haralanov
    Signed-off-by: Doug Ledford

    Mitko Haralanov
     

22 Dec, 2015

1 commit

  • Add a new EPROM partition, adjusting partition placement.

    Add EPROM range commands as a supserset of the partition
    commands. Remove old partition commands.

    Enhance EPROM erase, creating a range function and using the
    largest erase (sub) commands when possible.

    Reviewed-by: Dennis Dalessandro
    Signed-off-by: Dean Luick
    Signed-off-by: Jubin John
    Signed-off-by: Greg Kroah-Hartman

    Dean Luick
     

16 Nov, 2015

1 commit


08 Nov, 2015

1 commit

  • Pull rdma updates from Doug Ledford:
    "This is my initial round of 4.4 merge window patches. There are a few
    other things I wish to get in for 4.4 that aren't in this pull, as
    this represents what has gone through merge/build/run testing and not
    what is the last few items for which testing is not yet complete.

    - "Checksum offload support in user space" enablement
    - Misc cxgb4 fixes, add T6 support
    - Misc usnic fixes
    - 32 bit build warning fixes
    - Misc ocrdma fixes
    - Multicast loopback prevention extension
    - Extend the GID cache to store and return attributes of GIDs
    - Misc iSER updates
    - iSER clustering update
    - Network NameSpace support for rdma CM
    - Work Request cleanup series
    - New Memory Registration API"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (76 commits)
    IB/core, cma: Make __attribute_const__ declarations sparse-friendly
    IB/core: Remove old fast registration API
    IB/ipath: Remove fast registration from the code
    IB/hfi1: Remove fast registration from the code
    RDMA/nes: Remove old FRWR API
    IB/qib: Remove old FRWR API
    iw_cxgb4: Remove old FRWR API
    RDMA/cxgb3: Remove old FRWR API
    RDMA/ocrdma: Remove old FRWR API
    IB/mlx4: Remove old FRWR API support
    IB/mlx5: Remove old FRWR API support
    IB/srp: Dont allocate a page vector when using fast_reg
    IB/srp: Remove srp_finish_mapping
    IB/srp: Convert to new registration API
    IB/srp: Split srp_map_sg
    RDS/IW: Convert to new memory registration API
    svcrdma: Port to new memory registration API
    xprtrdma: Port to new memory registration API
    iser-target: Port to new memory registration API
    IB/iser: Port to new fast registration API
    ...

    Linus Torvalds