Author: neel
Date: Sun Apr 28 01:02:59 2013
New Revision: 250009
URL: http://svnweb.freebsd.org/changeset/base/250009

Log:
  Get rid of the 'vsc_rxpend' state - it doesn't serve any purpose because we
  drop any frames that arrive while the device is starved for receive buffers.
  
  This makes the receive path to only execute in context of the receive thread
  and allows for further simplification.
  
  Reviewed by:  grehan

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        Sun Apr 28 00:57:47 2013        
(r250008)
+++ head/usr.sbin/bhyve/pci_virtio_net.c        Sun Apr 28 01:02:59 2013        
(r250009)
@@ -140,7 +140,6 @@ struct pci_vtnet_softc {
        int             vsc_isr;
        int             vsc_tapfd;
        int             vsc_rx_ready;
-       int             vsc_rxpend;
        int             tx_in_progress;
        int             resetting;
 
@@ -323,14 +322,6 @@ pci_vtnet_tap_rx(struct pci_vtnet_softc 
 
        if (ndescs == 0) {
                /*
-                * Need to wait for host notification to read
-                */
-               if (sc->vsc_rxpend == 0) {
-                       WPRINTF(("vtnet: no rx descriptors !\n"));
-                       sc->vsc_rxpend = 1;
-               }
-
-               /*
                 * Drop the packet and try later
                 */
                (void) read(sc->vsc_tapfd, dummybuf, sizeof(dummybuf));
@@ -417,17 +408,6 @@ pci_vtnet_ping_rxq(struct pci_vtnet_soft
        if (sc->vsc_rx_ready == 0) {
                sc->vsc_rx_ready = 1;
        }
-
-       /*
-        * If the rx queue was empty, attempt to receive a
-        * packet that was previously blocked due to no rx bufs
-        * available
-        */
-       if (sc->vsc_rxpend) {
-               WPRINTF(("vtnet: rx resumed\n\r"));
-               sc->vsc_rxpend = 0;
-               pci_vtnet_tap_rx(sc);
-       }
 }
 
 static void
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to