On 4/11/22 13:00, David Marchand wrote:
This change simply annotates existing paths of the code leading to
manipulations of the IOTLB r/w locks.

clang does not support conditionally held locks, so always take iotlb
locks regardless of VIRTIO_F_IOMMU_PLATFORM feature.

vdpa and vhost_crypto code are annotated though they end up not taking
a IOTLB lock and have been marked with a FIXME.

Signed-off-by: David Marchand <david.march...@redhat.com>
---
  lib/vhost/iotlb.h        |  8 +++++++
  lib/vhost/vdpa.c         |  1 +
  lib/vhost/vhost.c        | 11 +++++----
  lib/vhost/vhost.h        | 22 +++++++++++++-----
  lib/vhost/vhost_crypto.c |  7 ++++++
  lib/vhost/virtio_net.c   | 49 ++++++++++++++++++++++++++++++----------
  6 files changed, 75 insertions(+), 23 deletions(-)



I agree with the change. I don't expect performance impact of taking the
lock unconditionally, because there won't be cache line sharing since it
is per-vq lock and the locking cost will be offset by removing the
feature check.

Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>

Thanks,
Maxime

Reply via email to