On Wed, Dec 20, 2023 at 2:10 AM Dragos Tatulea <dtatulea@xxxxxxxxxx> wrote: > > 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: Gal Pressman <gal@xxxxxxxxxx> > Acked-by: Eugenio Pérez <eperezma@xxxxxxxxxx> > Signed-off-by: Dragos Tatulea <dtatulea@xxxxxxxxxx> > --- Acked-by: Jason Wang <jasowang@xxxxxxxxxx> Thanks