projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: old gcc warning
[lttng-ust.git]
/
libringbuffer
/
getcpu.h
diff --git
a/libringbuffer/getcpu.h
b/libringbuffer/getcpu.h
index 190eae6c3d39bf131815e57b05c079c772ff103f..fbddb7989336b71235ba238eff9ae860c41a3d6e 100644
(file)
--- a/
libringbuffer/getcpu.h
+++ b/
libringbuffer/getcpu.h
@@
-20,6
+20,12
@@
*/
#include <urcu/compiler.h>
*/
#include <urcu/compiler.h>
+#include <urcu/system.h>
+#include <urcu/arch.h>
+
+void lttng_ust_getcpu_init(void);
+
+extern int (*lttng_get_cpu)(void);
#ifdef LTTNG_UST_DEBUG_VALGRIND
#ifdef LTTNG_UST_DEBUG_VALGRIND
@@
-29,7
+35,7
@@
* migration, so it is only statistically accurate.
*/
static inline
* migration, so it is only statistically accurate.
*/
static inline
-int lttng_ust_get_cpu(void)
+int lttng_ust_get_cpu
_internal
(void)
{
return 0;
}
{
return 0;
}
@@
-51,7
+57,7
@@
int lttng_ust_get_cpu(void)
* If getcpu is not implemented in the kernel, use cpu 0 as fallback.
*/
static inline
* If getcpu is not implemented in the kernel, use cpu 0 as fallback.
*/
static inline
-int lttng_ust_get_cpu(void)
+int lttng_ust_get_cpu
_internal
(void)
{
int cpu, ret;
{
int cpu, ret;
@@
-67,7
+73,7
@@
int lttng_ust_get_cpu(void)
* If getcpu is not implemented in the kernel, use cpu 0 as fallback.
*/
static inline
* If getcpu is not implemented in the kernel, use cpu 0 as fallback.
*/
static inline
-int lttng_ust_get_cpu(void)
+int lttng_ust_get_cpu
_internal
(void)
{
int cpu;
{
int cpu;
@@
-85,7
+91,7
@@
int lttng_ust_get_cpu(void)
* number 0, with the assocated performance degradation on SMP.
*/
static inline
* number 0, with the assocated performance degradation on SMP.
*/
static inline
-int lttng_ust_get_cpu(void)
+int lttng_ust_get_cpu
_internal
(void)
{
return 0;
}
{
return 0;
}
@@
-96,4
+102,16
@@
int lttng_ust_get_cpu(void)
#endif
#endif
+static inline
+int lttng_ust_get_cpu(void)
+{
+ int (*getcpu)(void) = CMM_LOAD_SHARED(lttng_get_cpu);
+
+ if (caa_likely(!getcpu)) {
+ return lttng_ust_get_cpu_internal();
+ } else {
+ return getcpu();
+ }
+}
+
#endif /* _LTTNG_GETCPU_H */
#endif /* _LTTNG_GETCPU_H */
This page took
0.024582 seconds
and
4
git commands to generate.