• Dragos Tatulea's avatar
    vdpa/mlx5: Introduce reference counting to mrs · a06bd11b
    Dragos Tatulea authored
    Deleting the old mr during mr update (.set_map) and then modifying the
    vqs with the new mr is not a good flow for firmware. The firmware
    expects that mkeys are deleted after there are no more vqs referencing
    them.
    
    Introduce reference counting for mrs to fix this. It is the only way to
    make sure that mkeys are not in use by vqs.
    
    An mr reference is taken when the mr is associated to the mr asid table
    and when the mr is linked to the vq on create/modify. The reference is
    released when the mkey is unlinked from the vq (trough modify/destroy)
    and from the mr asid table.
    
    To make things consistent, get rid of mlx5_vdpa_destroy_mr and use
    get/put semantics everywhere.
    Reviewed-by: default avatarGal Pressman <gal@nvidia.com>
    Acked-by: default avatarEugenio Pérez <eperezma@redhat.com>
    Acked-by: default avatarJason Wang <jasowang@redhat.com>
    Signed-off-by: default avatarDragos Tatulea <dtatulea@nvidia.com>
    Message-Id: <20231225151203.152687-8-dtatulea@nvidia.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    a06bd11b
mlx5_vdpa.h 4.22 KB