Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Switch VNET to use adaptive yielding by default, to reduce busy-waiting in the bridge...
Peter Dinda [Thu, 10 Oct 2013 20:27:12 +0000 (15:27 -0500)]
linux_module/palacios-vnet-brg.c
palacios/src/vnet/vnet_core.c

index 1dfe8a8..829c069 100644 (file)
@@ -32,7 +32,7 @@
 
 #define VNET_SERVER_PORT 9000
 
-#define VNET_ADAPTIVE_BRIDGE  0      // set this to one to have bridge go to sleep if there nothing to do...
+#define VNET_ADAPTIVE_BRIDGE  1      // set this to one to have bridge go to sleep if there nothing to do...
 #define VNET_NOPROGRESS_LIMIT 1000   // ... after this many iterations
 #define VNET_YIELD_TIME_USEC  1000   // ... and go to sleep for this long
 
@@ -479,7 +479,7 @@ static int _udp_server(void * arg) {
            } else {
                // Likely not making progress, do potentially slow
                // yield - we won't come back for until VNET_YIELD_TIME_USEC has passed
-               palacios_yield_cpu_timed(VNET_YIELD_TIME_USEC);
+               palacios_sleep_cpu(VNET_YIELD_TIME_USEC);
            }
 
            continue;
index 7d9942d..70ba382 100644 (file)
@@ -33,7 +33,7 @@
 
 #define VNET_NUM_TX_KICK_THREADS 1
 
-#define VNET_ADAPTIVE_TX_KICK 0         // set to 1 to try to sleep when there is nothing to do
+#define VNET_ADAPTIVE_TX_KICK 1         // set to 1 to try to sleep when there is nothing to do
 #define VNET_NOPROGRESS_LIMIT 1000      //   ... after this many tries
 #define VNET_YIELD_USEC       1000      //   ... and go to sleep for this long