This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via bbefeae66a2a6ac6c9386bb8a083022b7f323fc9 (commit) via a08dba6c24af81142efc6176eae2bdd561b478e3 (commit) via 1c02e217fac2ed2d015205ad36bd86c4924ce6cc (commit) from a3bc051085b95170101a3f81379e78c48e5a636c (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit bbefeae66a2a6ac6c9386bb8a083022b7f323fc9 Author: Ilias Apalodimas ilias.apalodimas@linaro.org Date: Fri Oct 6 19:38:39 2017 +0300
linux-gen: x86: fix on odp_cpu_arch_hz_current() declaration for x86
Signed-off-by: Ilias Apalodimas ilias.apalodimas@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c index f3fd8c14..be2dfb23 100644 --- a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c @@ -46,7 +46,7 @@ void sys_info_print_arch(void) cpu_flags_print_all(); }
-uint64_t odp_cpu_arch_hz_current(int id ODP_UNUSED) +uint64_t odp_cpu_arch_hz_current(int id) { char str[1024]; FILE *file;
commit a08dba6c24af81142efc6176eae2bdd561b478e3 Author: Ilias Apalodimas ilias.apalodimas@linaro.org Date: Thu Oct 5 04:21:39 2017 +0300
linux-gen: use /proc/cpuinfo if sysfs is not available to get cpu info
PR#171 broke some of the functionality we had on getting cpu speed. This patch reverts parts of that commit adding a fallback when /sys/devices/system/cpu/cpuX/cpufreq/ is not available.
Solves https://bugs.linaro.org/show_bug.cgi?id=3249
Signed-off-by: Ilias Apalodimas ilias.apalodimas@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/arch/default/odp_sysinfo_parse.c b/platform/linux-generic/arch/default/odp_sysinfo_parse.c index 1e2c729a..68d3d9ca 100644 --- a/platform/linux-generic/arch/default/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/default/odp_sysinfo_parse.c @@ -26,3 +26,8 @@ int cpuinfo_parser(FILE *file ODP_UNUSED, system_info_t *sysinfo) void sys_info_print_arch(void) { } + +uint64_t odp_cpu_arch_hz_current(int id ODP_UNUSED) +{ + return 0; +} diff --git a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c index 5ed7a398..313e58e8 100644 --- a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c @@ -63,3 +63,8 @@ int cpuinfo_parser(FILE *file, system_info_t *sysinfo) void sys_info_print_arch(void) { } + +uint64_t odp_cpu_arch_hz_current(int id ODP_UNUSED) +{ + return 0; +} diff --git a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c index 02a83e51..461edf9d 100644 --- a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c @@ -62,3 +62,8 @@ int cpuinfo_parser(FILE *file, system_info_t *sysinfo) void sys_info_print_arch(void) { } + +uint64_t odp_cpu_arch_hz_current(int id ODP_UNUSED) +{ + return 0; +} diff --git a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c index 55bbda8c..f3fd8c14 100644 --- a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c +++ b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c @@ -45,3 +45,39 @@ void sys_info_print_arch(void) { cpu_flags_print_all(); } + +uint64_t odp_cpu_arch_hz_current(int id ODP_UNUSED) +{ + char str[1024]; + FILE *file; + int cpu; + char *pos; + double mhz = 0.0; + + file = fopen("/proc/cpuinfo", "rt"); + + /* find the correct processor instance */ + while (fgets(str, sizeof(str), file) != NULL) { + pos = strstr(str, "processor"); + if (pos) { + if (sscanf(pos, "processor : %d", &cpu) == 1) + if (cpu == id) + break; + } + } + + /* extract the cpu current speed */ + while (fgets(str, sizeof(str), file) != NULL) { + pos = strstr(str, "cpu MHz"); + if (pos) { + if (sscanf(pos, "cpu MHz : %lf", &mhz) == 1) + break; + } + } + + fclose(file); + if (mhz) + return (uint64_t)(mhz * 1000000.0); + + return 0; +} diff --git a/platform/linux-generic/include/odp_internal.h b/platform/linux-generic/include/odp_internal.h index e0cc6dd4..fc69cd0c 100644 --- a/platform/linux-generic/include/odp_internal.h +++ b/platform/linux-generic/include/odp_internal.h @@ -133,6 +133,7 @@ int _odp_ishm_term_local(void); int cpuinfo_parser(FILE *file, system_info_t *sysinfo); uint64_t odp_cpufreq_id(const char *filename, int id); uint64_t odp_cpu_hz_current(int id); +uint64_t odp_cpu_arch_hz_current(int id); void sys_info_print_arch(void);
#ifdef __cplusplus diff --git a/platform/linux-generic/odp_system_info.c b/platform/linux-generic/odp_system_info.c index d310d779..1303d793 100644 --- a/platform/linux-generic/odp_system_info.c +++ b/platform/linux-generic/odp_system_info.c @@ -385,7 +385,12 @@ int odp_system_info_term(void) */ uint64_t odp_cpu_hz_current(int id) { - return odp_cpufreq_id("cpuinfo_cur_freq", id); + uint64_t cur_hz = odp_cpufreq_id("cpuinfo_cur_freq", id); + + if (!cur_hz) + cur_hz = odp_cpu_arch_hz_current(id); + + return cur_hz; }
uint64_t odp_cpu_hz(void)
commit 1c02e217fac2ed2d015205ad36bd86c4924ce6cc Author: Ilias Apalodimas ilias.apalodimas@linaro.org Date: Thu Oct 5 11:27:50 2017 +0300
example: use odp_sys_info_print
Use unified odp_sys_info_print() instead of copying the same code on every example.
Signed-off-by: Ilias Apalodimas ilias.apalodimas@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/example/classifier/odp_classifier.c b/example/classifier/odp_classifier.c index 691eb196..11b8580b 100644 --- a/example/classifier/odp_classifier.c +++ b/example/classifier/odp_classifier.c @@ -880,18 +880,7 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args) */ static void print_info(char *progname, appl_args_t *appl_args) { - printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %"PRIu64"\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_cpu_model_str(), - odp_cpu_hz_max(), odp_sys_cache_line_size(), - odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c index cc07cf1d..53b397b3 100644 --- a/example/generator/odp_generator.c +++ b/example/generator/odp_generator.c @@ -1480,17 +1480,7 @@ static void print_info(char *progname, appl_args_t *appl_args) { int i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %"PRIu64"\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/example/ipsec/odp_ipsec.c b/example/ipsec/odp_ipsec.c index 9ed3aa20..59c3fa81 100644 --- a/example/ipsec/odp_ipsec.c +++ b/example/ipsec/odp_ipsec.c @@ -1540,17 +1540,7 @@ static void print_info(char *progname, appl_args_t *appl_args) { int i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %"PRIu64"\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/example/l3fwd/odp_l3fwd.c b/example/l3fwd/odp_l3fwd.c index f579d36d..d7af4491 100644 --- a/example/l3fwd/odp_l3fwd.c +++ b/example/l3fwd/odp_l3fwd.c @@ -652,19 +652,7 @@ static void print_info(char *progname, app_args_t *args) { int i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "ODP impl name: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %" PRIu64 "\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_version_impl_name(), - odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/example/packet/odp_pktio.c b/example/packet/odp_pktio.c index ea842825..14466fd6 100644 --- a/example/packet/odp_pktio.c +++ b/example/packet/odp_pktio.c @@ -673,17 +673,7 @@ static void print_info(char *progname, appl_args_t *appl_args) { int i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %"PRIu64"\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/example/switch/odp_switch.c b/example/switch/odp_switch.c index 5bec6a04..be483099 100644 --- a/example/switch/odp_switch.c +++ b/example/switch/odp_switch.c @@ -847,19 +847,7 @@ static void print_info(char *progname, appl_args_t *appl_args) { unsigned i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "ODP impl name: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %" PRIu64 "\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_version_impl_name(), - odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/example/timer/odp_timer_test.c b/example/timer/odp_timer_test.c index 2196b8c1..731ae852 100644 --- a/example/timer/odp_timer_test.c +++ b/example/timer/odp_timer_test.c @@ -363,15 +363,7 @@ int main(int argc, char *argv[]) }
printf("\n"); - printf("ODP system info\n"); - printf("---------------\n"); - printf("ODP API version: %s\n", odp_version_api_str()); - printf("CPU model: %s\n", odp_cpu_model_str()); - printf("CPU freq (hz): %"PRIu64"\n", odp_cpu_hz_max()); - printf("Cache line size: %i\n", odp_sys_cache_line_size()); - printf("Max CPU count: %i\n", odp_cpu_count()); - - printf("\n"); + odp_sys_info_print();
/* Reserve memory for test_globals_t from shared mem */ shm = odp_shm_reserve("shm_test_globals", sizeof(test_globals_t), diff --git a/test/common_plat/performance/odp_bench_packet.c b/test/common_plat/performance/odp_bench_packet.c index 327b9b2c..622245ff 100644 --- a/test/common_plat/performance/odp_bench_packet.c +++ b/test/common_plat/performance/odp_bench_packet.c @@ -1372,19 +1372,7 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args) */ static void print_info(char *progname, appl_args_t *appl_args ODP_UNUSED) { - printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "ODP impl name: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %" PRIu64 "\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_version_impl_name(), - odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n", progname); diff --git a/test/common_plat/performance/odp_l2fwd.c b/test/common_plat/performance/odp_l2fwd.c index dd69cde4..8bd03d25 100644 --- a/test/common_plat/performance/odp_l2fwd.c +++ b/test/common_plat/performance/odp_l2fwd.c @@ -1336,19 +1336,7 @@ static void print_info(char *progname, appl_args_t *appl_args) { int i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "ODP impl name: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %" PRIu64 "\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_version_impl_name(), - odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/test/common_plat/performance/odp_pktio_ordered.c b/test/common_plat/performance/odp_pktio_ordered.c index e772411a..d7e43c4b 100644 --- a/test/common_plat/performance/odp_pktio_ordered.c +++ b/test/common_plat/performance/odp_pktio_ordered.c @@ -1034,19 +1034,7 @@ static void print_info(char *progname, appl_args_t *appl_args) { int i;
- printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "ODP impl name: %s\n" - "CPU model: %s\n" - "CPU freq (hz): %" PRIu64 "\n" - "Cache line size: %i\n" - "CPU count: %i\n" - "\n", - odp_version_api_str(), odp_version_impl_name(), - odp_cpu_model_str(), odp_cpu_hz_max(), - odp_sys_cache_line_size(), odp_cpu_count()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n" diff --git a/test/common_plat/performance/odp_scheduling.c b/test/common_plat/performance/odp_scheduling.c index 308ed410..03078a5b 100644 --- a/test/common_plat/performance/odp_scheduling.c +++ b/test/common_plat/performance/odp_scheduling.c @@ -831,17 +831,7 @@ int main(int argc, char *argv[]) }
printf("\n"); - printf("ODP system info\n"); - printf("---------------\n"); - printf("ODP API version: %s\n", odp_version_api_str()); - printf("ODP impl name: %s\n", odp_version_impl_name()); - printf("ODP impl details: %s\n", odp_version_impl_str()); - printf("CPU model: %s\n", odp_cpu_model_str()); - printf("CPU freq (hz): %" PRIu64 "\n", odp_cpu_hz_max()); - printf("Cache line size: %i\n", odp_sys_cache_line_size()); - printf("Max CPU count: %i\n", odp_cpu_count()); - - printf("\n"); + odp_sys_info_print();
/* Get default worker cpumask */ num_workers = odp_cpumask_default_worker(&cpumask, args.cpu_count); diff --git a/test/linux-generic/pktio_ipc/ipc_common.c b/test/linux-generic/pktio_ipc/ipc_common.c index e15d3913..b0fa12a1 100644 --- a/test/linux-generic/pktio_ipc/ipc_common.c +++ b/test/linux-generic/pktio_ipc/ipc_common.c @@ -139,13 +139,7 @@ void parse_args(int argc, char *argv[]) */ void print_info(char *progname) { - printf("\n" - "ODP system info\n" - "---------------\n" - "ODP API version: %s\n" - "CPU model: %s\n" - "\n", - odp_version_api_str(), odp_cpu_model_str()); + odp_sys_info_print();
printf("Running ODP appl: "%s"\n" "-----------------\n"
-----------------------------------------------------------------------
Summary of changes: example/classifier/odp_classifier.c | 13 +------- example/generator/odp_generator.c | 12 +------- example/ipsec/odp_ipsec.c | 12 +------- example/l3fwd/odp_l3fwd.c | 14 +-------- example/packet/odp_pktio.c | 12 +------- example/switch/odp_switch.c | 14 +-------- example/timer/odp_timer_test.c | 10 +----- .../linux-generic/arch/default/odp_sysinfo_parse.c | 5 +++ .../linux-generic/arch/mips64/odp_sysinfo_parse.c | 5 +++ .../linux-generic/arch/powerpc/odp_sysinfo_parse.c | 5 +++ .../linux-generic/arch/x86/odp_sysinfo_parse.c | 36 ++++++++++++++++++++++ platform/linux-generic/include/odp_internal.h | 1 + platform/linux-generic/odp_system_info.c | 7 ++++- test/common_plat/performance/odp_bench_packet.c | 14 +-------- test/common_plat/performance/odp_l2fwd.c | 14 +-------- test/common_plat/performance/odp_pktio_ordered.c | 14 +-------- test/common_plat/performance/odp_scheduling.c | 12 +------- test/linux-generic/pktio_ipc/ipc_common.c | 8 +---- 18 files changed, 70 insertions(+), 138 deletions(-)
hooks/post-receive