This patch adds support for VDUSE_UPDATE_IOTLB event
handling, which consists in invaliding IOTLB entries for
the range specified in the request.
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
---
lib/vhost/vduse.c | 7 +++++++
1 file changed, 7 insertions(+)
@@ -179,6 +179,13 @@ vduse_events_handler(int fd, void *arg, int *remove __rte_unused)
dev->status = req.s.status;
resp.result = VDUSE_REQ_RESULT_OK;
break;
+ case VDUSE_UPDATE_IOTLB:
+ VHOST_LOG_CONFIG(dev->ifname, INFO, "\tIOVA range: %" PRIx64 " - %" PRIx64 "\n",
+ (uint64_t)req.iova.start, (uint64_t)req.iova.last);
+ vhost_user_iotlb_cache_remove(dev, req.iova.start,
+ req.iova.last - req.iova.start + 1);
+ resp.result = VDUSE_REQ_RESULT_OK;
+ break;
default:
resp.result = VDUSE_REQ_RESULT_FAILED;
break;