Packets data are directly copied when doing batch enqueue, add missed
dirty page logging after memory copy.

Fixes: ad3df6dcc0fc ("vhost: add packed ring batch enqueue")

Signed-off-by: Marvin Liu <yong....@intel.com>
---
 lib/librte_vhost/virtio_net.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index eae7825f0..0c33af7b1 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -1107,6 +1107,10 @@ virtio_dev_rx_batch_packed(struct virtio_net *dev,
                           pkts[i]->pkt_len);
        }
 
+       vhost_for_each_try_unroll(i, 0, PACKED_BATCH_SIZE)
+               vhost_log_cache_write_iova(dev, vq, descs[avail_idx + i].addr,
+                                          lens[i]);
+
        vhost_for_each_try_unroll(i, 0, PACKED_BATCH_SIZE)
                ids[i] = descs[avail_idx + i].id;
 
-- 
2.17.1

Reply via email to