Browse Source

vhost_net: zerocopy: adding and signalling immediately when fully copied

When a packet were fully copied in zerocopy, we don't wait for the DMA done to
mark the done flag, so after the packet were passed to lower device, we need to
add used and signal guest immediately.

Signed-off-by: Jason Wang <jasowang@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Jason Wang 13 years ago
parent
commit
c8fb217af5
1 changed files with 2 additions and 0 deletions
  1. 2 0
      drivers/vhost/net.c

+ 2 - 0
drivers/vhost/net.c

@@ -266,6 +266,8 @@ static void handle_tx(struct vhost_net *net)
 				 " len %d != %zd\n", err, len);
 				 " len %d != %zd\n", err, len);
 		if (!zcopy)
 		if (!zcopy)
 			vhost_add_used_and_signal(&net->dev, vq, head, 0);
 			vhost_add_used_and_signal(&net->dev, vq, head, 0);
+		else
+			vhost_zerocopy_signal_used(vq);
 		total_len += len;
 		total_len += len;
 		if (unlikely(total_len >= VHOST_NET_WEIGHT)) {
 		if (unlikely(total_len >= VHOST_NET_WEIGHT)) {
 			vhost_poll_queue(&vq->poll);
 			vhost_poll_queue(&vq->poll);