14 Oct, 2011

1 commit

  • Allow the user to indicate the QP type separately from the port space
    when allocating an rdma_cm_id. With RDMA_PS_IB, there is no longer a
    1:1 relationship between the QP type and port space, so we need to
    switch on the QP type to select between UD and connected QPs.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     

10 May, 2011

1 commit

  • Lustre requires that clients bind to a privileged port number before
    connecting to a remote server. On larger clusters (typically more
    than about 1000 nodes), the number of privileged ports is exhausted,
    resulting in lustre being unusable.

    To handle this, we add support for reusable addresses to the rdma_cm.
    This mimics the behavior of the socket option SO_REUSEADDR. A user
    may set an rdma_cm_id to reuse an address before calling
    rdma_bind_addr() (explicitly or implicitly). If set, other
    rdma_cm_id's may be bound to the same address, provided that they all
    have reuse enabled, and there are no active listens.

    If rdma_listen() is called on an rdma_cm_id that has reuse enabled, it
    will only succeed if there are no other id's bound to that same
    address. The reuse option is exported to user space. The behavior of
    the kernel reuse implementation was verified against that given by
    sockets.

    This patch is derived from a path by Ira Weiny

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Hefty, Sean
     

17 Nov, 2009

1 commit

  • Export rdma_set_ib_paths to user space to allow applications to
    manually set the IB path used for connections. This allows
    alternative ways for a user space application or library to obtain
    path record information, including retrieving path information
    from cached data, avoiding direct interaction with the IB SA.
    The IB SA is a single, centralized entity that can limit scaling
    on large clusters running MPI applications.

    Future changes to the rdma cm can expand on this framework to
    support the full range of features allowed by the IB CM, such as
    separate forward and reverse paths and APM.

    Signed-off-by: Sean Hefty
    Reviewed-By: Jason Gunthorpe
    Signed-off-by: Roland Dreier

    Sean Hefty
     

26 Jan, 2008

1 commit

  • This is based on user feedback from Doug Ledford at RedHat:

    Events that occur on an rdma_cm_id are reported to userspace through an
    event channel. Connection request events are reported on the event
    channel associated with the listen. When the connection is accepted, a
    new rdma_cm_id is created and automatically uses the listen event
    channel. This is suboptimal where the user only wants listen events on
    that channel.

    Additionally, it may be desirable to have events related to connection
    establishment use a different event channel than those related to
    already established connections.

    Allow the user to migrate an rdma_cm_id between event channels. All
    pending events associated with the rdma_cm_id are moved to the new event
    channel.

    Signed-off-by: Sean Hefty
    Signed-off-by: Roland Dreier

    Sean Hefty
     

10 Oct, 2007

1 commit


17 Feb, 2007

1 commit

  • Extend rdma_cm to support multicast communication. Multicast support
    is added to the existing RDMA_PS_UDP port space, as well as a new
    RDMA_PS_IPOIB port space. The latter port space allows joining the
    multicast groups used by IPoIB, which enables offloading IPoIB traffic
    to a separate QP. The port space determines the signature used in the
    MGID when joining the group. The newly added RDMA_PS_IPOIB also
    allows for unicast operations, similar to RDMA_PS_UDP.

    Supporting the RDMA_PS_IPOIB requires changing how UD QPs are initialized,
    since we can no longer assume that the qkey is constant. This requires
    saving the Q_Key to use when attaching to a device, so that it is
    available when creating the QP. The Q_Key information is exported to
    the user through the existing rdma_init_qp_attr() interface.

    Multicast support is also exported to userspace through the rdma_ucm.

    Signed-off-by: Roland Dreier

    Sean Hefty
     

13 Dec, 2006

1 commit