[netperf-dev] netperf2 commit notice r408 - trunk/src

raj at netperf.org raj at netperf.org
Tue Jun 28 17:28:28 PDT 2011


Author: raj
Date: 2011-06-28 17:28:28 -0700 (Tue, 28 Jun 2011)
New Revision: 408

Modified:
   trunk/src/nettest_bsd.h
   trunk/src/nettest_omni.c
Log:
preparing to enable avoidance of some expensice lookups if the results are not going to be displayed

Modified: trunk/src/nettest_bsd.h
===================================================================
--- trunk/src/nettest_bsd.h	2011-06-28 23:25:36 UTC (rev 407)
+++ trunk/src/nettest_bsd.h	2011-06-29 00:28:28 UTC (rev 408)
@@ -36,6 +36,10 @@
 #define OMNI_MEASURE_CPU 0x8
 #define OMNI_CHECKSUM_OFF 0x10
 #define OMNI_ROUTING_ALLOWED 0x20
+#define OMNI_WANT_IFNAME 0x40
+#define OMNI_WANT_IFSLOT 0x80
+#define OMNI_WANT_IFIDS  0x100
+#define OMNI_WANT_DRVINFO 0x200
 
 struct  omni_request_struct {
   int32_t    send_buf_size;         /* SO_SNDBUF */

Modified: trunk/src/nettest_omni.c
===================================================================
--- trunk/src/nettest_omni.c	2011-06-28 23:25:36 UTC (rev 407)
+++ trunk/src/nettest_omni.c	2011-06-29 00:28:28 UTC (rev 408)
@@ -676,6 +676,20 @@
   NETPERF_OUTPUT_MAX
 };
 
+/* flags for the output groups, lower 16 bits for remote, upper 16
+   bits for local */
+
+#define OMNI_WANT_REM_IFNAME  0X00000001
+#define OMNI_WANT_LOC_IFNAME  0X00010000
+#define OMNI_WANT_REM_IFSLOT  0X00000002
+#define OMNI_WANT_LOC_IFSLOT  0X00020000
+#define OMNI_WANT_REM_IFIDS   0X00000004
+#define OMNI_WANT_LOC_IFIDS   0X00040000
+#define OMNI_WANT_REM_DRVINFO 0X00000008
+#define OMNI_WANT_LOC_DRVINFO 0X00080000
+
+unsigned int desired_output_groups = 0;
+
 typedef struct netperf_output_elt {
   enum netperf_output_name output_name;  /* belt and suspenders */
   int max_line_len; /* length of the longest of the "lines" */
@@ -685,6 +699,7 @@
   char *format;        /* format to apply to value */
   void *display_value; /* where to find the value */
   int  output_default; /* is it included in the default output */
+  unsigned int output_group; /* used to avoid some lookups */
 } netperf_output_elt_t;
 
 netperf_output_elt_t netperf_output_source[NETPERF_OUTPUT_MAX];
@@ -1564,6 +1579,7 @@
     }
     else {
       output_list[line][j] = name;
+      desired_output_groups |= netperf_output_source[name].output_group;
       j++;
     }
 	      
@@ -1723,6 +1739,7 @@
     netperf_output_source[i].format = "";
     netperf_output_source[i].display_value = NULL;
     netperf_output_source[i].output_default = 1;
+    netperf_output_source[i].output_group = 0;
   }
 
   netperf_output_source[OUTPUT_NONE].output_name = OUTPUT_NONE;
@@ -2930,6 +2947,8 @@
     NETPERF_LINE_MAX(LOCAL_DRIVER_NAME);
   netperf_output_source[LOCAL_DRIVER_NAME].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_DRIVER_NAME);
+  netperf_output_source[LOCAL_DRIVER_NAME].output_group =
+    OMNI_WANT_LOC_DRVINFO;
 
   netperf_output_source[LOCAL_DRIVER_VERSION].output_name =
     LOCAL_DRIVER_VERSION;
@@ -2944,6 +2963,8 @@
     NETPERF_LINE_MAX(LOCAL_DRIVER_VERSION);
   netperf_output_source[LOCAL_DRIVER_VERSION].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_DRIVER_VERSION);
+  netperf_output_source[LOCAL_DRIVER_VERSION].output_group = 
+    OMNI_WANT_LOC_DRVINFO;
 
   netperf_output_source[LOCAL_DRIVER_FIRMWARE].output_name =
     LOCAL_DRIVER_FIRMWARE;
@@ -2958,6 +2979,8 @@
     NETPERF_LINE_MAX(LOCAL_DRIVER_FIRMWARE);
   netperf_output_source[LOCAL_DRIVER_FIRMWARE].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_DRIVER_FIRMWARE);
+  netperf_output_source[LOCAL_DRIVER_FIRMWARE].output_group =
+    OMNI_WANT_LOC_DRVINFO;
 
   netperf_output_source[LOCAL_DRIVER_BUS].output_name = LOCAL_DRIVER_BUS;
   netperf_output_source[LOCAL_DRIVER_BUS].line[0] = "Local";
@@ -2970,6 +2993,8 @@
     NETPERF_LINE_MAX(LOCAL_DRIVER_BUS);
   netperf_output_source[LOCAL_DRIVER_BUS].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_DRIVER_BUS);
+  netperf_output_source[LOCAL_DRIVER_BUS].output_group =
+    OMNI_WANT_LOC_DRVINFO;
 
   netperf_output_source[REMOTE_DRIVER_NAME].output_name = REMOTE_DRIVER_NAME;
   netperf_output_source[REMOTE_DRIVER_NAME].line[0] = "Remote";
@@ -2982,6 +3007,8 @@
     NETPERF_LINE_MAX(REMOTE_DRIVER_NAME);
   netperf_output_source[REMOTE_DRIVER_NAME].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_DRIVER_NAME);
+  netperf_output_source[REMOTE_DRIVER_NAME].output_group =
+    OMNI_WANT_REM_DRVINFO;
 
   netperf_output_source[REMOTE_DRIVER_VERSION].output_name =
     REMOTE_DRIVER_VERSION;
@@ -2996,6 +3023,8 @@
     NETPERF_LINE_MAX(REMOTE_DRIVER_VERSION);
   netperf_output_source[REMOTE_DRIVER_VERSION].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_DRIVER_VERSION);
+  netperf_output_source[REMOTE_DRIVER_VERSION].output_group =
+    OMNI_WANT_REM_DRVINFO;
 
   netperf_output_source[REMOTE_DRIVER_FIRMWARE].output_name =
     REMOTE_DRIVER_FIRMWARE;
@@ -3010,6 +3039,8 @@
     NETPERF_LINE_MAX(REMOTE_DRIVER_FIRMWARE);
   netperf_output_source[REMOTE_DRIVER_FIRMWARE].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_DRIVER_FIRMWARE);
+  netperf_output_source[REMOTE_DRIVER_FIRMWARE].output_group =
+    OMNI_WANT_REM_DRVINFO;
 
   netperf_output_source[REMOTE_DRIVER_BUS].output_name = REMOTE_DRIVER_BUS;
   netperf_output_source[REMOTE_DRIVER_BUS].line[0] = "Remote";
@@ -3022,6 +3053,8 @@
     NETPERF_LINE_MAX(REMOTE_DRIVER_BUS);
   netperf_output_source[REMOTE_DRIVER_BUS].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_DRIVER_BUS);
+  netperf_output_source[REMOTE_DRIVER_BUS].output_group =
+    OMNI_WANT_REM_DRVINFO;
 
   netperf_output_source[LOCAL_INTERFACE_SUBDEVICE].output_name =
     LOCAL_INTERFACE_SUBDEVICE;
@@ -3036,6 +3069,8 @@
     NETPERF_LINE_MAX(LOCAL_INTERFACE_SUBDEVICE);
   netperf_output_source[LOCAL_INTERFACE_SUBDEVICE].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_INTERFACE_SUBDEVICE);
+  netperf_output_source[LOCAL_INTERFACE_SUBDEVICE].output_group =
+    OMNI_WANT_LOC_IFIDS;
 
   netperf_output_source[LOCAL_INTERFACE_DEVICE].output_name =
     LOCAL_INTERFACE_DEVICE;
@@ -3050,6 +3085,8 @@
     NETPERF_LINE_MAX(LOCAL_INTERFACE_DEVICE);
   netperf_output_source[LOCAL_INTERFACE_DEVICE].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_INTERFACE_DEVICE);
+  netperf_output_source[LOCAL_INTERFACE_DEVICE].output_group =
+    OMNI_WANT_LOC_IFIDS;
 
   netperf_output_source[LOCAL_INTERFACE_SUBVENDOR].output_name =
     LOCAL_INTERFACE_SUBVENDOR;
@@ -3064,6 +3101,8 @@
     NETPERF_LINE_MAX(LOCAL_INTERFACE_SUBVENDOR);
   netperf_output_source[LOCAL_INTERFACE_SUBVENDOR].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_INTERFACE_SUBVENDOR);
+  netperf_output_source[LOCAL_INTERFACE_SUBVENDOR].output_group =
+    OMNI_WANT_LOC_IFIDS;
 
   netperf_output_source[LOCAL_INTERFACE_VENDOR].output_name =
     LOCAL_INTERFACE_VENDOR;
@@ -3078,6 +3117,8 @@
     NETPERF_LINE_MAX(LOCAL_INTERFACE_VENDOR);
   netperf_output_source[LOCAL_INTERFACE_VENDOR].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_INTERFACE_VENDOR);
+  netperf_output_source[LOCAL_INTERFACE_VENDOR].output_group =
+    OMNI_WANT_LOC_IFIDS;
 
   netperf_output_source[REMOTE_INTERFACE_SUBDEVICE].output_name =
     REMOTE_INTERFACE_SUBDEVICE;
@@ -3092,6 +3133,8 @@
     NETPERF_LINE_MAX(REMOTE_INTERFACE_SUBDEVICE);
   netperf_output_source[REMOTE_INTERFACE_SUBDEVICE].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_INTERFACE_SUBDEVICE);
+  netperf_output_source[REMOTE_INTERFACE_SUBDEVICE].output_group =
+    OMNI_WANT_REM_IFIDS;
 
   netperf_output_source[REMOTE_INTERFACE_DEVICE].output_name =
     REMOTE_INTERFACE_DEVICE;
@@ -3106,6 +3149,8 @@
     NETPERF_LINE_MAX(REMOTE_INTERFACE_DEVICE);
   netperf_output_source[REMOTE_INTERFACE_DEVICE].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_INTERFACE_DEVICE);
+  netperf_output_source[REMOTE_INTERFACE_DEVICE].output_group =
+    OMNI_WANT_REM_IFIDS;
 
   netperf_output_source[REMOTE_INTERFACE_SUBVENDOR].output_name =
     REMOTE_INTERFACE_SUBVENDOR;
@@ -3120,6 +3165,8 @@
     NETPERF_LINE_MAX(REMOTE_INTERFACE_SUBVENDOR);
   netperf_output_source[REMOTE_INTERFACE_SUBVENDOR].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_INTERFACE_SUBVENDOR);
+  netperf_output_source[REMOTE_INTERFACE_SUBVENDOR].output_group =
+    OMNI_WANT_REM_IFIDS;
 
   netperf_output_source[REMOTE_INTERFACE_VENDOR].output_name =
     REMOTE_INTERFACE_VENDOR;
@@ -3134,6 +3181,8 @@
     NETPERF_LINE_MAX(REMOTE_INTERFACE_VENDOR);
   netperf_output_source[REMOTE_INTERFACE_VENDOR].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_INTERFACE_VENDOR);
+  netperf_output_source[REMOTE_INTERFACE_VENDOR].output_group =
+    OMNI_WANT_REM_IFIDS;
 
   netperf_output_source[LOCAL_INTERFACE_NAME].output_name =
     LOCAL_INTERFACE_NAME;
@@ -3148,6 +3197,8 @@
     NETPERF_LINE_MAX(LOCAL_INTERFACE_NAME);
   netperf_output_source[LOCAL_INTERFACE_NAME].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_INTERFACE_NAME);
+  netperf_output_source[LOCAL_INTERFACE_NAME].output_group =
+    OMNI_WANT_LOC_IFNAME;
 
   netperf_output_source[REMOTE_INTERFACE_NAME].output_name =
     REMOTE_INTERFACE_NAME;
@@ -3162,6 +3213,8 @@
     NETPERF_LINE_MAX(REMOTE_INTERFACE_NAME);
   netperf_output_source[REMOTE_INTERFACE_NAME].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_INTERFACE_NAME);
+  netperf_output_source[REMOTE_INTERFACE_NAME].output_group =
+    OMNI_WANT_REM_IFNAME;
 
   netperf_output_source[LOCAL_INTERFACE_SLOT].output_name =
     LOCAL_INTERFACE_SLOT;
@@ -3176,6 +3229,8 @@
     NETPERF_LINE_MAX(LOCAL_INTERFACE_SLOT);
   netperf_output_source[LOCAL_INTERFACE_SLOT].tot_line_len = 
     NETPERF_LINE_TOT(LOCAL_INTERFACE_SLOT);
+  netperf_output_source[LOCAL_INTERFACE_SLOT].output_group =
+    OMNI_WANT_LOC_IFSLOT;
 
   netperf_output_source[REMOTE_INTERFACE_SLOT].output_name =
     REMOTE_INTERFACE_SLOT;
@@ -3190,6 +3245,8 @@
     NETPERF_LINE_MAX(REMOTE_INTERFACE_SLOT);
   netperf_output_source[REMOTE_INTERFACE_SLOT].tot_line_len = 
     NETPERF_LINE_TOT(REMOTE_INTERFACE_SLOT);
+  netperf_output_source[REMOTE_INTERFACE_SLOT].output_group =
+    OMNI_WANT_REM_IFSLOT;
 
   netperf_output_source[REMOTE_MACHINE].output_name = REMOTE_MACHINE;
   netperf_output_source[REMOTE_MACHINE].line[0] = "Remote";
@@ -3668,7 +3725,7 @@
     NETPERF_LINE_TOT(OUTPUT_END);
 
 }
-/* lots of boring, repetitive code */
+
 void 
 print_omni_init() {
 
@@ -3686,9 +3743,6 @@
       output_list[j][i] = OUTPUT_END;
 
 
-  /* the default for csv is the kitchen-sink.  ultimately it will be
-     possible to override by providing one's own list in a file */
-
   if (output_selection_spec) {
       parse_output_selection(output_selection_spec);
   }
@@ -6500,18 +6554,6 @@
   
   send_response_n(OMNI_RESULTS_CONF_CUTOFF);
 
-  /* when we implement this, it will look a little strange, but we do
-     it to avoid certain overheads when running aggregates and using
-     confidence intervals.  we will post a recv_request() call to get
-     the next message or EOF on the control connection.  either the
-     netperf will close the control connection, which will tell us we
-     are done, or the netperf will send us another "DO_OMNI" message,
-     which by definition should be identical to the first DO_OMNI
-     message we received.
-
-     in this way we can avoid overheads like allocating the buffer
-     rings and the listen socket and the like */
-  
 }
 
 



More information about the netperf-dev mailing list