[lttng-dev] [RFC PATCH 1/1] check if set_schedaffinity works in configure.ac
Pranith Kumar
bobby.prani at gmail.com
Sun Jun 8 16:15:50 EDT 2014
On some systems set_schedaffinity exists but return "-1" when called. Tests fail in such cases ("test_urcu_hash")
Check if we can call set_schedaffinity and define accordingly
Signed-off-by: Pranith Kumar <bobby.prani at gmail.com>
---
configure.ac | 37 +++++++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index 008336c..3074bbc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -269,7 +269,7 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
])
# First check if the function is available at all.
-AC_CHECK_FUNCS([sched_setaffinity],[
+AC_CHECK_FUNC([sched_setaffinity],[
# Okay, we have it. Check if also have cpu_set_t. If we don't,
# then we have the first version using unsigned long, and no
# CPU_ZERO, etc. macros. If we do have cpu_set_t, we may have the
@@ -295,12 +295,45 @@ AC_CHECK_FUNCS([sched_setaffinity],[
[sched_set_affinity_args=2])
AC_DEFINE_UNQUOTED(SCHED_SETAFFINITY_ARGS,
$sched_set_affinity_args,
- [Defined to sched_setaffinity's number of arguments.])
+ [Defined to number of arguments taken by sched_setaffinity.])
AC_MSG_RESULT([$sched_set_affinity_args])
],[
# No cpu_set_t, always 3 args.
AC_DEFINE(SCHED_SETAFFINITY_ARGS, 3)
])
+ AS_IF([test "x$sched_set_affinity_args" = "x3"], [
+ # test if sched_setaffinity works
+ AC_MSG_CHECKING([if sched_setaffinity works])
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <sched.h>
+ int main()
+ {
+ cpu_set_t foo;
+ return sched_setaffinity(0, sizeof (foo), &foo);
+ }
+ ]])
+ ],
+ [sched_set_affinity_works=1],
+ [sched_set_affinity_works=0])
+ AC_DEFINE_UNQUOTED(HAVE_SCHED_SETAFFINITY,
+ $sched_set_affinity_works)
+ ],[
+ # test if sched_setaffinity works
+ AC_MSG_CHECKING([if sched_setaffinity works])
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <sched.h>
+ int main()
+ {
+ cpu_set_t foo;
+ return sched_setaffinity(0, &foo);
+ }
+ ]])
+ ],
+ [sched_set_affinity_works=1],
+ [sched_set_affinity_works=0])
+ AC_DEFINE_UNQUOTED(HAVE_SCHED_SETAFFINITY,
+ $sched_set_affinity_works)
+ ])
])
CFLAGS=$saved_CFLAGS
--
1.9.1
More information about the lttng-dev
mailing list