Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Apr 2015 10:29:42 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r281764 - head/usr.sbin/bhyve
Message-ID:  <201504201029.t3KATgM4050967@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Mon Apr 20 10:29:42 2015
New Revision: 281764
URL: https://svnweb.freebsd.org/changeset/base/281764

Log:
  Disable RX/TX queues notifications when not needed.
  
  This reduces CPU load and doubles iperf throughput, reaching 2-3Gbit/s.
  
  MFC after:	2 weeks
  Sponsored by:	iXsystems, Inc.

Modified:
  head/usr.sbin/bhyve/pci_virtio_net.c

Modified: head/usr.sbin/bhyve/pci_virtio_net.c
==============================================================================
--- head/usr.sbin/bhyve/pci_virtio_net.c	Mon Apr 20 09:07:12 2015	(r281763)
+++ head/usr.sbin/bhyve/pci_virtio_net.c	Mon Apr 20 10:29:42 2015	(r281764)
@@ -393,6 +393,7 @@ pci_vtnet_ping_rxq(void *vsc, struct vqu
 	 */
 	if (sc->vsc_rx_ready == 0) {
 		sc->vsc_rx_ready = 1;
+		vq->vq_used->vu_flags |= VRING_USED_F_NO_NOTIFY;
 	}
 }
 
@@ -438,6 +439,7 @@ pci_vtnet_ping_txq(void *vsc, struct vqu
 
 	/* Signal the tx thread for processing */
 	pthread_mutex_lock(&sc->tx_mtx);
+	vq->vq_used->vu_flags |= VRING_USED_F_NO_NOTIFY;
 	if (sc->tx_in_progress == 0)
 		pthread_cond_signal(&sc->tx_cond);
 	pthread_mutex_unlock(&sc->tx_mtx);
@@ -466,6 +468,7 @@ pci_vtnet_tx_thread(void *param)
 	for (;;) {
 		/* note - tx mutex is locked here */
 		do {
+			vq->vq_used->vu_flags &= ~VRING_USED_F_NO_NOTIFY;
 			if (sc->resetting)
 				have_work = 0;
 			else
@@ -478,6 +481,7 @@ pci_vtnet_tx_thread(void *param)
 				assert(error == 0);
 			}
 		} while (!have_work);
+		vq->vq_used->vu_flags |= VRING_USED_F_NO_NOTIFY;
 		sc->tx_in_progress = 1;
 		pthread_mutex_unlock(&sc->tx_mtx);
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201504201029.t3KATgM4050967>