aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@linaro.org>2018-05-24 16:54:46 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2018-05-28 18:08:02 +0300
commitf4f4dcee96e534c0badc28258ad09ef50b35ec76 (patch)
treee675eac2558f12b6b6dd2fba914030c6ea4849ae /include
parentd6e4b3df266ee1c847763ba50fa802d9e9e62b5e (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.h3
-rw-r--r--include/odp/arch/x86_32-linux/odp/api/abi/cpu.h9
-rw-r--r--include/odp/arch/x86_64-linux/odp/api/abi/cpu.h5
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