lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 223/717] RDMA/core: Track device memory MRs
    Date
    From: Leon Romanovsky <leonro@mellanox.com>

    [ Upstream commit b47a98efa97889c5b16d17e77eed3dc4500674eb ]

    Device memory (DM) are registered as MR during initialization flow, these
    MRs were not tracked by resource tracker and had res->valid set as a
    false. Update the code to manage them too.

    Before this change:
    $ ibv_rc_pingpong -j &
    $ rdma res show mr <-- shows nothing

    After this change:
    $ ibv_rc_pingpong -j &
    $ rdma res show mr
    dev ibp0s9 mrn 0 mrlen 4096 pdn 3 pid 734 comm ibv_rc_pingpong

    Fixes: be934cca9e98 ("IB/uverbs: Add device memory registration ioctl support")
    Link: https://lore.kernel.org/r/20201117070148.1974114-2-leon@kernel.org
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/infiniband/core/uverbs_std_types_mr.c | 4 ++++
    1 file changed, 4 insertions(+)

    diff --git a/drivers/infiniband/core/uverbs_std_types_mr.c b/drivers/infiniband/core/uverbs_std_types_mr.c
    index 9b22bb553e8b3..dc58564417292 100644
    --- a/drivers/infiniband/core/uverbs_std_types_mr.c
    +++ b/drivers/infiniband/core/uverbs_std_types_mr.c
    @@ -33,6 +33,7 @@
    #include "rdma_core.h"
    #include "uverbs.h"
    #include <rdma/uverbs_std_types.h>
    +#include "restrack.h"

    static int uverbs_free_mr(struct ib_uobject *uobject,
    enum rdma_remove_reason why,
    @@ -134,6 +135,9 @@ static int UVERBS_HANDLER(UVERBS_METHOD_DM_MR_REG)(
    atomic_inc(&pd->usecnt);
    atomic_inc(&dm->usecnt);

    + rdma_restrack_new(&mr->res, RDMA_RESTRACK_MR);
    + rdma_restrack_set_name(&mr->res, NULL);
    + rdma_restrack_add(&mr->res);
    uobj->object = mr;

    uverbs_finalize_uobj_create(attrs, UVERBS_ATTR_REG_DM_MR_HANDLE);
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-12-28 15:11    [W:2.231 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site