[netperf-dev] netperf2 commit notice r202 - trunk/src
raj at netperf.org
raj at netperf.org
Fri Feb 1 11:36:19 PST 2008
Author: raj
Date: 2008-02-01 11:36:18 -0800 (Fri, 01 Feb 2008)
New Revision: 202
Modified:
trunk/src/netcpu_kstat.c
trunk/src/netcpu_kstat10.c
trunk/src/netcpu_looper.c
trunk/src/netcpu_procstat.c
trunk/src/netcpu_pstat.c
trunk/src/netcpu_pstatnew.c
trunk/src/netlib.c
trunk/src/netlib.h
trunk/src/nettest_bsd.h
trunk/src/nettest_omni.c
Log:
add id and util of peak CPU on each system
Modified: trunk/src/netcpu_kstat.c
===================================================================
--- trunk/src/netcpu_kstat.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netcpu_kstat.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -390,15 +390,13 @@
}
lib_local_per_cpu_util[i] = (lib_local_maxrate - actual_rate) /
lib_local_maxrate * 100;
+ lib_local_per_cpu_util[i] *= correction_factor;
lib_local_cpu_util += lib_local_per_cpu_util[i];
}
/* we want the average across all n processors */
lib_local_cpu_util /= (float)lib_num_loc_cpus;
- lib_local_cpu_util *= correction_factor;
return lib_local_cpu_util;
-
-
}
void
Modified: trunk/src/netcpu_kstat10.c
===================================================================
--- trunk/src/netcpu_kstat10.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netcpu_kstat10.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -528,21 +528,20 @@
/* and finally, what is our CPU utilization? */
lib_local_per_cpu_util[i] = 100.0 - (((float)fraction_idle /
(float)CALC_ACCURACY) * 100.0);
+ lib_local_per_cpu_util[i] *= correction_factor;
if (debug) {
fprintf(where,
- "lib_local_per_cpu_util[%d] %g\n",
+ "lib_local_per_cpu_util[%d] %g cf %f\n",
i,
- lib_local_per_cpu_util[i]);
+ lib_local_per_cpu_util[i],
+ correction_factor);
}
lib_local_cpu_util += lib_local_per_cpu_util[i];
}
/* we want the average across all n processors */
lib_local_cpu_util /= (float)lib_num_loc_cpus;
-
- lib_local_cpu_util *= correction_factor;
- return lib_local_cpu_util;
-
+ return lib_local_cpu_util;
}
void
Modified: trunk/src/netcpu_looper.c
===================================================================
--- trunk/src/netcpu_looper.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netcpu_looper.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -632,16 +632,15 @@
}
lib_local_per_cpu_util[i] = (lib_local_maxrate - actual_rate) /
lib_local_maxrate * 100;
+ lib_local_per_cpu_util[i] *= correction_factor;
lib_local_cpu_util += lib_local_per_cpu_util[i];
}
/* we want the average across all n processors */
lib_local_cpu_util /= (float)lib_num_loc_cpus;
- lib_local_cpu_util *= correction_factor;
return lib_local_cpu_util;
-
-
}
+
void
cpu_start_internal(void)
{
Modified: trunk/src/netcpu_procstat.c
===================================================================
--- trunk/src/netcpu_procstat.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netcpu_procstat.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -233,21 +233,22 @@
MAXLONG)/ lib_elapsed;
lib_local_per_cpu_util[i] = (lib_local_maxrate - actual_rate) /
lib_local_maxrate * 100;
+ lib_local_per_cpu_util[i] *= correction_factor;
if (debug) {
fprintf(where,
- "calc_cpu_util: actual_rate on processor %d is %f start %llx end %llx util %f\n",
+ "calc_cpu_util: actual_rate on processor %d is %f start %llx end %llx util %f cf %f\n",
i,
actual_rate,
lib_start_count[i],
lib_end_count[i],
- lib_local_per_cpu_util[i]);
+ lib_local_per_cpu_util[i],
+ correction_factor);
}
lib_local_cpu_util += lib_local_per_cpu_util[i];
}
/* we want the average across all n processors */
lib_local_cpu_util /= (float)lib_num_loc_cpus;
- lib_local_cpu_util *= correction_factor;
return lib_local_cpu_util;
}
Modified: trunk/src/netcpu_pstat.c
===================================================================
--- trunk/src/netcpu_pstat.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netcpu_pstat.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -264,14 +264,16 @@
actual_rate = (float) diff / lib_elapsed;
lib_local_per_cpu_util[i] = (lib_local_maxrate - actual_rate) /
lib_local_maxrate * 100;
+ lib_local_per_cpu_util[i] *= correction_factor;
lib_local_cpu_util += lib_local_per_cpu_util[i];
if (debug) {
fprintf(where,
- "calc_cpu_util: actual_rate on cpu %d is %g max_rate %g cpu %6.2f\n",
+ "calc_cpu_util: actual_rate on cpu %d is %g max_rate %g cpu %6.2f cf %f\n",
i,
actual_rate,
lib_local_maxrate,
- lib_local_per_cpu_util[i]);
+ lib_local_per_cpu_util[i],
+ correction_factor);
}
}
@@ -283,13 +285,6 @@
"calc_cpu_util: average across CPUs is %g\n",lib_local_cpu_util);
}
- lib_local_cpu_util *= correction_factor;
-
- if (debug) {
- fprintf(where,
- "calc_cpu_util: returning %g\n",lib_local_cpu_util);
- }
-
return lib_local_cpu_util;
}
Modified: trunk/src/netcpu_pstatnew.c
===================================================================
--- trunk/src/netcpu_pstatnew.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netcpu_pstatnew.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -364,19 +364,19 @@
lib_local_per_cpu_util[i] = 100.0 - (((float)fraction_idle /
(float)CALC_ACCURACY) * 100.0);
#endif
+ lib_local_per_cpu_util[i] *= correction_factor;
if (debug) {
fprintf(where,
- "lib_local_per_cpu_util[%d] %g\n",
+ "lib_local_per_cpu_util[%d] %g cf %f\n",
i,
- lib_local_per_cpu_util[i]);
+ lib_local_per_cpu_util[i],
+ correction_factor);
}
lib_local_cpu_util += lib_local_per_cpu_util[i];
}
/* we want the average across all n processors */
lib_local_cpu_util /= (float)lib_num_loc_cpus;
- lib_local_cpu_util *= correction_factor;
-
if (debug) {
fprintf(where,
"calc_cpu_util: returning %g\n",lib_local_cpu_util);
Modified: trunk/src/netlib.c
===================================================================
--- trunk/src/netlib.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netlib.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -197,6 +197,13 @@
lib_num_loc_cpus, /* the number of cpus in the system */
lib_num_rem_cpus; /* how many we think are in the remote */
+int
+ lib_local_peak_cpu_id, /* the CPU number of the most utilized CPU */
+ lib_remote_peak_cpu_id;
+double
+ lib_local_peak_cpu_util, /* its utilization */
+ lib_remote_peak_cpu_util;
+
#define PAGES_PER_CHILD 2
int lib_use_idle;
@@ -1111,9 +1118,14 @@
response_array = (int *)(&netperf_response);
for (i = 0; i < MAXCPUS; i++) {
- lib_local_per_cpu_util[i] = 0.0;
+ lib_local_per_cpu_util[i] = -1.0;
}
+ lib_local_peak_cpu_id = -1;
+ lib_local_peak_cpu_util = -1.0;
+ lib_remote_peak_cpu_id = -1;
+ lib_remote_peak_cpu_util = -1.0;
+
/* on those systems where we know that CPU numbers may not start at
zero and be contiguous, we provide a way to map from a
contiguous, starting from 0 CPU id space to the actual CPU ids.
@@ -3169,7 +3181,19 @@
float
calc_cpu_util(float elapsed_time)
{
- return(calc_cpu_util_internal(elapsed_time));
+ float temp_util;
+ int i;
+ temp_util = calc_cpu_util_internal(elapsed_time);
+
+ /* now, what was the most utilized CPU and its util? */
+ for (i = 0; i < MAXCPUS; i++) {
+ if (lib_local_per_cpu_util[i] > lib_local_peak_cpu_util) {
+ lib_local_peak_cpu_util = lib_local_per_cpu_util[i];
+ lib_local_peak_cpu_id = i; /* probably need to check the map */
+ }
+ }
+
+ return temp_util;
}
float
Modified: trunk/src/netlib.h
===================================================================
--- trunk/src/netlib.h 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/netlib.h 2008-02-01 19:36:18 UTC (rev 202)
@@ -441,6 +441,10 @@
extern float lib_local_cpu_util;
extern float lib_elapsed;
extern float lib_local_maxrate;
+extern double lib_local_peak_cpu_util;
+extern int lib_local_peak_cpu_id;
+extern double lib_remote_peak_cpu_util;
+extern int lib_remote_peak_cpu_id;
extern char libfmt;
Modified: trunk/src/nettest_bsd.h
===================================================================
--- trunk/src/nettest_bsd.h 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/nettest_bsd.h 2008-02-01 19:36:18 UTC (rev 202)
@@ -102,6 +102,9 @@
float serv_dem;
uint32_t cpu_method; /* how was CPU util measured? */
uint32_t num_cpus; /* number of CPUs in remote */
+
+ int32_t peak_cpu_id; /* ID of the most utilized CPU */
+ float peak_cpu_util; /* its individual utilization */
};
#endif /* WANT_OMNI */
Modified: trunk/src/nettest_omni.c
===================================================================
--- trunk/src/nettest_omni.c 2008-02-01 15:51:45 UTC (rev 201)
+++ trunk/src/nettest_omni.c 2008-02-01 19:36:18 UTC (rev 202)
@@ -392,11 +392,15 @@
LOCAL_SD,
LOCAL_CPU_METHOD,
LOCAL_CPU_COUNT,
+ LOCAL_CPU_PEAK_UTIL,
+ LOCAL_CPU_PEAK_ID,
REMOTE_CPU_UTIL,
REMOTE_CPU_BIND,
REMOTE_SD,
REMOTE_CPU_METHOD,
REMOTE_CPU_COUNT,
+ REMOTE_CPU_PEAK_UTIL,
+ REMOTE_CPU_PEAK_ID,
SD_UNITS,
LOCAL_NODELAY,
LOCAL_CORK,
@@ -671,6 +675,10 @@
return "LOCAL_CPU_METHOD";
case LOCAL_CPU_COUNT:
return "LOCAL_CPU_COUNT";
+ case LOCAL_CPU_PEAK_UTIL:
+ return "LOCAL_CPU_PEAK_UTIL";
+ case LOCAL_CPU_PEAK_ID:
+ return "LOCAL_CPU_PEAK_ID";
case LOCAL_NODELAY:
return "LOCAL_NODELAY";
case LOCAL_CORK:
@@ -721,6 +729,10 @@
return "REMOTE_CPU_METHOD";
case REMOTE_CPU_COUNT:
return "REMOTE_CPU_COUNT";
+ case REMOTE_CPU_PEAK_UTIL:
+ return "REMOTE_CPU_PEAK_UTIL";
+ case REMOTE_CPU_PEAK_ID:
+ return "REMOTE_CPU_PEAK_ID";
case REMOTE_NODELAY:
return "REMOTE_NODELAY";
case REMOTE_CORK:
@@ -1011,6 +1023,10 @@
output_csv_list[i++] = REMOTE_CPU_BIND;
output_csv_list[i++] = LOCAL_CPU_COUNT;
output_csv_list[i++] = REMOTE_CPU_COUNT;
+ output_csv_list[i++] = LOCAL_CPU_PEAK_UTIL;
+ output_csv_list[i++] = LOCAL_CPU_PEAK_ID;
+ output_csv_list[i++] = REMOTE_CPU_PEAK_UTIL;
+ output_csv_list[i++] = REMOTE_CPU_PEAK_ID;
output_csv_list[i++] = CONFIDENCE_LEVEL;
output_csv_list[i++] = CONFIDENCE_INTERVAL;
output_csv_list[i++] = THROUGHPUT_CONFID;
@@ -1654,6 +1670,30 @@
netperf_output_source[LOCAL_CPU_UTIL].tot_line_len =
NETPERF_LINE_TOT(LOCAL_CPU_UTIL);
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].output_name = LOCAL_CPU_PEAK_UTIL;
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].line[0] = "Local";
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].line[1] = "Peak";
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].line[2] = "Per CPU";
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].line[3] = "Util %";
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].format = "%.2f";
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].display_value = &lib_local_peak_cpu_util;
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].max_line_len =
+ NETPERF_LINE_MAX(LOCAL_CPU_PEAK_UTIL);
+ netperf_output_source[LOCAL_CPU_PEAK_UTIL].tot_line_len =
+ NETPERF_LINE_TOT(LOCAL_CPU_PEAK_UTIL);
+
+ netperf_output_source[LOCAL_CPU_PEAK_ID].output_name = LOCAL_CPU_PEAK_ID;
+ netperf_output_source[LOCAL_CPU_PEAK_ID].line[0] = "Local";
+ netperf_output_source[LOCAL_CPU_PEAK_ID].line[1] = "Peak";
+ netperf_output_source[LOCAL_CPU_PEAK_ID].line[2] = "Per CPU";
+ netperf_output_source[LOCAL_CPU_PEAK_ID].line[3] = "ID";
+ netperf_output_source[LOCAL_CPU_PEAK_ID].format = "%d";
+ netperf_output_source[LOCAL_CPU_PEAK_ID].display_value = &lib_local_peak_cpu_id;
+ netperf_output_source[LOCAL_CPU_PEAK_ID].max_line_len =
+ NETPERF_LINE_MAX(LOCAL_CPU_PEAK_ID);
+ netperf_output_source[LOCAL_CPU_PEAK_ID].tot_line_len =
+ NETPERF_LINE_TOT(LOCAL_CPU_PEAK_ID);
+
netperf_output_source[LOCAL_CPU_BIND].output_name = LOCAL_CPU_BIND;
netperf_output_source[LOCAL_CPU_BIND].line[0] = "Local";
netperf_output_source[LOCAL_CPU_BIND].line[1] = "CPU";
@@ -1964,6 +2004,30 @@
netperf_output_source[REMOTE_CPU_UTIL].tot_line_len =
NETPERF_LINE_TOT(REMOTE_CPU_UTIL);
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].output_name = REMOTE_CPU_PEAK_UTIL;
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].line[0] = "Remote";
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].line[1] = "Peak";
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].line[2] = "Per CPU";
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].line[3] = "Util %";
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].format = "%.2f";
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].display_value = &lib_remote_peak_cpu_util;
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].max_line_len =
+ NETPERF_LINE_MAX(REMOTE_CPU_PEAK_UTIL);
+ netperf_output_source[REMOTE_CPU_PEAK_UTIL].tot_line_len =
+ NETPERF_LINE_TOT(REMOTE_CPU_PEAK_UTIL);
+
+ netperf_output_source[REMOTE_CPU_PEAK_ID].output_name = REMOTE_CPU_PEAK_ID;
+ netperf_output_source[REMOTE_CPU_PEAK_ID].line[0] = "Remote";
+ netperf_output_source[REMOTE_CPU_PEAK_ID].line[1] = "Peak";
+ netperf_output_source[REMOTE_CPU_PEAK_ID].line[2] = "Per CPU";
+ netperf_output_source[REMOTE_CPU_PEAK_ID].line[3] = "ID";
+ netperf_output_source[REMOTE_CPU_PEAK_ID].format = "%d";
+ netperf_output_source[REMOTE_CPU_PEAK_ID].display_value = &lib_remote_peak_cpu_id;
+ netperf_output_source[REMOTE_CPU_PEAK_ID].max_line_len =
+ NETPERF_LINE_MAX(REMOTE_CPU_PEAK_ID);
+ netperf_output_source[REMOTE_CPU_PEAK_ID].tot_line_len =
+ NETPERF_LINE_TOT(REMOTE_CPU_PEAK_ID);
+
netperf_output_source[REMOTE_CPU_BIND].output_name = REMOTE_CPU_BIND;
netperf_output_source[REMOTE_CPU_BIND].line[0] = "Remote";
netperf_output_source[REMOTE_CPU_BIND].line[1] = "CPU";
@@ -3502,6 +3566,8 @@
connection may not be what we would get at the end of the
connection... */
lib_num_rem_cpus = omni_result->num_cpus;
+ lib_remote_peak_cpu_util = (double)omni_result->peak_cpu_util;
+ lib_remote_peak_cpu_id = omni_result->peak_cpu_id;
rsr_size_end = omni_result->recv_buf_size;
rss_size_end = omni_result->send_buf_size;
remote_bytes_sent = omni_result->bytes_sent;
@@ -3586,7 +3652,7 @@
if (local_cpu_usage) {
local_cpu_utilization = calc_cpu_util(elapsed_time);
-
+
/* we need to decide what to feed the service demand beast,
which will, ultimately, depend on what sort of test it is and
whether or not the user asked for something specific - as in
@@ -4304,6 +4370,8 @@
if (omni_request->measure_cpu) {
omni_results->cpu_util = calc_cpu_util(elapsed_time);
}
+ omni_results->peak_cpu_util = (float)lib_local_peak_cpu_util;
+ omni_results->peak_cpu_id = lib_local_peak_cpu_id;
if (debug) {
fprintf(where,
More information about the netperf-dev
mailing list