[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 27/40] vdpa: add asid to all dma_batch call sites
From: |
Si-Wei Liu |
Subject: |
[PATCH 27/40] vdpa: add asid to all dma_batch call sites |
Date: |
Thu, 7 Dec 2023 09:39:40 -0800 |
Will allow other callers to specifcy asid when calling the
dma_batch API.
Signed-off-by: Si-Wei Liu <si-wei.liu@oracle.com>
---
hw/virtio/vhost-vdpa.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/hw/virtio/vhost-vdpa.c b/hw/virtio/vhost-vdpa.c
index e0137f0..d3f5721 100644
--- a/hw/virtio/vhost-vdpa.c
+++ b/hw/virtio/vhost-vdpa.c
@@ -187,14 +187,14 @@ static bool vhost_vdpa_map_batch_begin(VhostVDPAShared
*s, uint32_t asid)
return true;
}
-static int vhost_vdpa_dma_batch_begin_once(VhostVDPAShared *s)
+static int vhost_vdpa_dma_batch_begin_once(VhostVDPAShared *s, uint32_t asid)
{
if (!(s->backend_cap & (0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH)) ||
s->iotlb_batch_begin_sent) {
return 0;
}
- if (vhost_vdpa_map_batch_begin(s, 0)) {
+ if (vhost_vdpa_map_batch_begin(s, asid)) {
s->iotlb_batch_begin_sent = true;
}
@@ -227,7 +227,7 @@ static bool vhost_vdpa_dma_batch_end(VhostVDPAShared *s,
uint32_t asid)
return true;
}
-static int vhost_vdpa_dma_batch_end_once(VhostVDPAShared *s)
+static int vhost_vdpa_dma_batch_end_once(VhostVDPAShared *s, uint32_t asid)
{
if (!(s->backend_cap & (0x1ULL << VHOST_BACKEND_F_IOTLB_BATCH))) {
return 0;
@@ -237,7 +237,7 @@ static int vhost_vdpa_dma_batch_end_once(VhostVDPAShared *s)
return 0;
}
- if (vhost_vdpa_dma_batch_end(s, 0)) {
+ if (vhost_vdpa_dma_batch_end(s, asid)) {
s->iotlb_batch_begin_sent = false;
}
@@ -248,7 +248,7 @@ static void vhost_vdpa_listener_commit(MemoryListener
*listener)
{
VhostVDPAShared *s = container_of(listener, VhostVDPAShared, listener);
- vhost_vdpa_dma_batch_end_once(s);
+ vhost_vdpa_dma_batch_end_once(s, VHOST_VDPA_GUEST_PA_ASID);
}
static void vhost_vdpa_iommu_map_notify(IOMMUNotifier *n, IOMMUTLBEntry *iotlb)
@@ -423,7 +423,7 @@ static void vhost_vdpa_listener_region_add(MemoryListener
*listener,
iova = mem_region.iova;
}
- vhost_vdpa_dma_batch_begin_once(s);
+ vhost_vdpa_dma_batch_begin_once(s, VHOST_VDPA_GUEST_PA_ASID);
ret = vhost_vdpa_dma_map(s, VHOST_VDPA_GUEST_PA_ASID, iova,
int128_get64(llsize), vaddr, section->readonly);
if (ret) {
@@ -505,7 +505,7 @@ static void vhost_vdpa_listener_region_del(MemoryListener
*listener,
iova = result->iova;
vhost_iova_tree_remove(s->iova_tree, *result);
}
- vhost_vdpa_dma_batch_begin_once(s);
+ vhost_vdpa_dma_batch_begin_once(s, VHOST_VDPA_GUEST_PA_ASID);
/*
* The unmap ioctl doesn't accept a full 64-bit. need to check it
*/
@@ -1383,10 +1383,10 @@ static void *vhost_vdpa_load_map(void *opaque)
msg->iotlb.size);
break;
case VHOST_IOTLB_BATCH_BEGIN:
- vhost_vdpa_dma_batch_begin_once(shared);
+ vhost_vdpa_dma_batch_begin_once(shared, msg->asid);
break;
case VHOST_IOTLB_BATCH_END:
- vhost_vdpa_dma_batch_end_once(shared);
+ vhost_vdpa_dma_batch_end_once(shared, msg->asid);
break;
default:
error_report("Invalid IOTLB msg type %d", msg->iotlb.type);
--
1.8.3.1
- [PATCH 08/40] vdpa: add back vhost_vdpa_net_first_nc_vdpa, (continued)
- [PATCH 08/40] vdpa: add back vhost_vdpa_net_first_nc_vdpa, Si-Wei Liu, 2023/12/07
- [PATCH 22/40] vdpa: factor out vhost_vdpa_map_batch_begin, Si-Wei Liu, 2023/12/07
- [PATCH 25/40] vdpa: add asid to dma_batch_once API, Si-Wei Liu, 2023/12/07
- [PATCH 19/40] vdpa: should avoid map flushing with persistent iotlb, Si-Wei Liu, 2023/12/07
- [PATCH 21/40] vdpa: vhost_vdpa_dma_batch_end_once rename, Si-Wei Liu, 2023/12/07
- [PATCH 16/40] vdpa: indicate SVQ switching via flag, Si-Wei Liu, 2023/12/07
- [PATCH 24/40] vdpa: factor out vhost_vdpa_dma_batch_end, Si-Wei Liu, 2023/12/07
- [PATCH 26/40] vdpa: return int for dma_batch_once API, Si-Wei Liu, 2023/12/07
- [PATCH 27/40] vdpa: add asid to all dma_batch call sites,
Si-Wei Liu <=
- [PATCH 20/40] vdpa: avoid mapping flush across reset, Si-Wei Liu, 2023/12/07
- [PATCH 23/40] vdpa: vhost_vdpa_dma_batch_begin_once rename, Si-Wei Liu, 2023/12/07
- [PATCH 28/40] vdpa: support iotlb_batch_asid, Si-Wei Liu, 2023/12/07
- [PATCH 30/40] vdpa: batch map/unmap op per svq pair basis, Si-Wei Liu, 2023/12/07
- [PATCH 29/40] vdpa: expose API vhost_vdpa_dma_batch_once, Si-Wei Liu, 2023/12/07
- [PATCH 31/40] vdpa: batch map and unmap around cvq svq start/stop, Si-Wei Liu, 2023/12/07
- [PATCH 32/40] vdpa: factor out vhost_vdpa_net_get_nc_vdpa, Si-Wei Liu, 2023/12/07
- [PATCH 34/40] vdpa: fix network breakage after cancelling migration, Si-Wei Liu, 2023/12/07