diff options
author | Petri Savolainen <petri.savolainen@linaro.org> | 2018-05-24 16:54:46 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-05-28 18:08:02 +0300 |
commit | f4f4dcee96e534c0badc28258ad09ef50b35ec76 (patch) | |
tree | e675eac2558f12b6b6dd2fba914030c6ea4849ae /include | |
parent | d6e4b3df266ee1c847763ba50fa802d9e9e62b5e (diff) |
linux-gen: cpu: inline cpu cycle functions on x86
Moved cpu cycle and pause functions into
arch/x86/odp_arch_cpu_inlines.h.
Uncommented pause function in spec file and removed it
from ABI file. It's safer for ABI compat mode to not have
code included into ABI spec files.
Other architectures use the default odp_arch_cpu_inlines.h,
which does not change the current implementation.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/odp/api/spec/cpu.h | 3 | ||||
-rw-r--r-- | include/odp/arch/x86_32-linux/odp/api/abi/cpu.h | 9 | ||||
-rw-r--r-- | include/odp/arch/x86_64-linux/odp/api/abi/cpu.h | 5 |
3 files changed, 1 insertions, 16 deletions
diff --git a/include/odp/api/spec/cpu.h b/include/odp/api/spec/cpu.h index d107f2838..f6a7e656b 100644 --- a/include/odp/api/spec/cpu.h +++ b/include/odp/api/spec/cpu.h @@ -161,14 +161,13 @@ uint64_t odp_cpu_cycles_max(void); uint64_t odp_cpu_cycles_resolution(void); /** - * @def odp_cpu_pause * Pause CPU execution for a short while * * This call is intended for tight loops which poll a shared resource. A short * pause within the loop may save energy and improve system performance as * CPU polling frequency is reduced. */ -/* void odp_cpu_pause(void); */ +void odp_cpu_pause(void); /** * @} diff --git a/include/odp/arch/x86_32-linux/odp/api/abi/cpu.h b/include/odp/arch/x86_32-linux/odp/api/abi/cpu.h index 523fa99e5..d7485c090 100644 --- a/include/odp/arch/x86_32-linux/odp/api/abi/cpu.h +++ b/include/odp/arch/x86_32-linux/odp/api/abi/cpu.h @@ -13,15 +13,6 @@ extern "C" { #define ODP_CACHE_LINE_SIZE 64 -static inline void odp_cpu_pause(void) -{ -#ifdef __SSE2__ - __asm__ __volatile__ ("pause"); -#else - __asm__ __volatile__ ("rep; nop"); -#endif -} - #ifdef __cplusplus } #endif diff --git a/include/odp/arch/x86_64-linux/odp/api/abi/cpu.h b/include/odp/arch/x86_64-linux/odp/api/abi/cpu.h index d4fcf8927..69b82eb05 100644 --- a/include/odp/arch/x86_64-linux/odp/api/abi/cpu.h +++ b/include/odp/arch/x86_64-linux/odp/api/abi/cpu.h @@ -13,11 +13,6 @@ extern "C" { #define ODP_CACHE_LINE_SIZE 64 -static inline void odp_cpu_pause(void) -{ - __asm__ __volatile__ ("pause"); -} - #ifdef __cplusplus } #endif |