aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-generic
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@linaro.org>2017-04-28 15:09:51 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2017-06-16 16:51:10 +0300
commit73954b9142d1ddc2dde7c0f9b6596e2d8bac3caf (patch)
tree8d3c654023b353ab4a4d4aefa57d035a60d0f95c /platform/linux-generic
parent89a00a2ed43a99e0d2d78a5baeff1292e41ecd34 (diff)
linux-gen: system: implement system info print
Print API, impl name, CPU model/freq, cache line size and CPU count by default. Print CPU flags in case of x86. Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org> Reviewed-and-tested-by: Bill Fischofer <bill.fischofer@linaro.org> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform/linux-generic')
-rw-r--r--platform/linux-generic/arch/arm/odp_sysinfo_parse.c4
-rw-r--r--platform/linux-generic/arch/default/odp_sysinfo_parse.c4
-rw-r--r--platform/linux-generic/arch/mips64/odp_sysinfo_parse.c4
-rw-r--r--platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c4
-rw-r--r--platform/linux-generic/arch/x86/odp_sysinfo_parse.c6
-rw-r--r--platform/linux-generic/include/odp_internal.h1
-rw-r--r--platform/linux-generic/odp_system_info.c30
7 files changed, 53 insertions, 0 deletions
diff --git a/platform/linux-generic/arch/arm/odp_sysinfo_parse.c b/platform/linux-generic/arch/arm/odp_sysinfo_parse.c
index 53e2aaeaf..8ae2022ac 100644
--- a/platform/linux-generic/arch/arm/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/arm/odp_sysinfo_parse.c
@@ -25,3 +25,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED)
{
return 0;
}
+
+void sys_info_print_arch(void)
+{
+}
diff --git a/platform/linux-generic/arch/default/odp_sysinfo_parse.c b/platform/linux-generic/arch/default/odp_sysinfo_parse.c
index 53e2aaeaf..8ae2022ac 100644
--- a/platform/linux-generic/arch/default/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/default/odp_sysinfo_parse.c
@@ -25,3 +25,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED)
{
return 0;
}
+
+void sys_info_print_arch(void)
+{
+}
diff --git a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c
index 407264b7f..d6f75f283 100644
--- a/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/mips64/odp_sysinfo_parse.c
@@ -62,3 +62,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED)
{
return 0;
}
+
+void sys_info_print_arch(void)
+{
+}
diff --git a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c
index 3b88d55b6..bd4b9b429 100644
--- a/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/powerpc/odp_sysinfo_parse.c
@@ -61,3 +61,7 @@ uint64_t odp_cpu_hz_current(int id ODP_UNUSED)
{
return 0;
}
+
+void sys_info_print_arch(void)
+{
+}
diff --git a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c
index 96127ec67..d77165a41 100644
--- a/platform/linux-generic/arch/x86/odp_sysinfo_parse.c
+++ b/platform/linux-generic/arch/x86/odp_sysinfo_parse.c
@@ -5,6 +5,7 @@
*/
#include <odp_internal.h>
+#include <arch/x86/cpu_flags.h>
#include <string.h>
int cpuinfo_parser(FILE *file, system_info_t *sysinfo)
@@ -73,3 +74,8 @@ uint64_t odp_cpu_hz_current(int id)
return 0;
}
+
+void sys_info_print_arch(void)
+{
+ cpu_flags_print_all();
+}
diff --git a/platform/linux-generic/include/odp_internal.h b/platform/linux-generic/include/odp_internal.h
index e1267cff7..8bae028d9 100644
--- a/platform/linux-generic/include/odp_internal.h
+++ b/platform/linux-generic/include/odp_internal.h
@@ -128,6 +128,7 @@ int _odp_ishm_term_local(void);
int cpuinfo_parser(FILE *file, system_info_t *sysinfo);
uint64_t odp_cpu_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 18c61dbe7..40ffca078 100644
--- a/platform/linux-generic/odp_system_info.c
+++ b/platform/linux-generic/odp_system_info.c
@@ -14,6 +14,7 @@
#include <odp_posix_extensions.h>
#include <odp/api/system_info.h>
+#include <odp/api/version.h>
#include <odp_internal.h>
#include <odp_debug_internal.h>
#include <odp/api/align.h>
@@ -405,3 +406,32 @@ int odp_cpu_count(void)
{
return odp_global_data.system_info.cpu_count;
}
+
+void odp_sys_info_print(void)
+{
+ int len;
+ int max_len = 512;
+ char str[max_len];
+
+ len = snprintf(str, max_len, "\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());
+
+ str[len] = '\0';
+ ODP_PRINT("%s", str);
+
+ sys_info_print_arch();
+}