• Guy Levi's avatar
    IB/mlx4: Add support for WQ related verbs · 400b1ebc
    Guy Levi authored
    Support create/modify/destroy WQ related verbs.
    
    The base IB object to enable RSS functionality is a WQ (i.e. ib_wq).
    This patch implements the related WQ verbs as of create, modify and
    destroy.
    
    In downstream patches the WQ will be used as part of an indirection
    table (i.e. ib_rwq_ind_table) to enable RSS QP creation.
    
    Notes:
    ConnectX-3 hardware requires consecutive WQNs list as receive descriptor
    queues for the RSS QP. Hence, the driver manages consecutive ranges lists
    per context which the user must respect.
    Destroying the WQ does not return its WQN back to its range for
    reusing. However, destroying all WQs from the same range releases the
    range and in turn releases its WQNs for reusing.
    
    Since the WQ object is not a natural object in the hardware, the driver
    implements the WQ by the hardware QP.
    
    As such, the WQ inherits its port from its RSS QP parent upon its
    RST->INIT transition and by that time its state is applied to the
    hardware.
    Signed-off-by: default avatarGuy Levi <guyle@mellanox.com>
    Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    400b1ebc
main.c 91.8 KB