• Raed Salem's avatar
    IB/core: Introduce counters object and its create/destroy · fa9b1802
    Raed Salem authored
    A verbs application may need to get statistics and info on various aspects
    of a verb object (e.g. Flow, QP, ...), in general case the application
    will state which object's counters its interested in (we refer to this
    action as attach), bind this new counters object to the appropriate verb
    object and on later stage read their values using the counters object.
    
    This series introduces a general API for counters object that may
    accumulate any ib object counters type, bound and read on demand.
    
    Counters instance is allocated on an IB context and belongs to that
    context.  Upon successful creation the counters can be bound to a verbs
    object so that hardware counter instances can be created and read.
    
    Downstream patches in this series will introduce the attach, bind and the
    read functionality.
    
    Counters instance can be de-allocated, upon successful destruction the
    related hardware resources are released.
    
    Prior to destroy call the user must first make sure that the counters is
    not being used by any IB object, e.g. not attached to any of its counted
    type otherwise an EBUSY error is invoked.
    Reviewed-by: default avatarYishai Hadas <yishaih@mellanox.com>
    Signed-off-by: default avatarRaed Salem <raeds@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    fa9b1802
ib_verbs.h 113 KB