X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Fautoconf%2Flustre-libcfs.m4;h=dfd9c03d295b114cc300a19636364ccd556ebeef;hb=e2af7fb3c91dfb13d34d8e1b2f2df8c09621f768;hp=be9a858ee77ca6d58420db86db2710998ca7ade4;hpb=970d2e6445ac505b8b2fc1e773d667fa518de3ae;p=fs%2Flustre-release.git diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index be9a858..dfd9c03 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -101,7 +101,8 @@ AC_DEFUN([LIBCFS_KMEM_CACHE_DESTROY_INT], LB_LINUX_TRY_COMPILE([ #include ],[ - int i = kmem_cache_destroy(NULL); + int i __attribute__ ((unused)); + i = kmem_cache_destroy(NULL); ],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_KMEM_CACHE_DESTROY_INT, 1, @@ -111,6 +112,116 @@ LB_LINUX_TRY_COMPILE([ ]) ]) +# check cpumask_size (2.6.28) +AC_DEFUN([LIBCFS_CPUMASK_SIZE], +[AC_MSG_CHECKING([whether have cpumask_size()]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + int size = cpumask_size(); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_CPUMASK_SIZE, 1, [have cpumask_size()]) +],[ + AC_MSG_RESULT(NO) +]) +]) + +# check cpu topology functions +# +# topology_core_cpumask (2.6.29, not on all archs) +# topology_core_siblings (not on all archs) +# topology_thread_cpumask (2.6.29, not on all archs) +# topology_thread_siblings (not on all archs) +# cpumask_of_node/node_to_cpumask (not always exported) +AC_DEFUN([LIBCFS_CPU_TOPOLOGY], +[AC_MSG_CHECKING([whether have topology.h]) +LB_LINUX_TRY_COMPILE([ + #include +],[],[ + AC_DEFINE(HAVE_CPU_TOPOLOGY, 1, [have CPU topology]) + AC_MSG_RESULT(yes) + + AC_MSG_CHECKING([whether have topology_core_cpumask]) + LB_LINUX_TRY_COMPILE([ + #include + ],[ + cpumask_t *mask = topology_core_cpumask(0); + ],[ + AC_DEFINE(HAVE_TOPOLOGY_CORE_CPUMASK, 1, + [have topology_core_cpumask]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING([whether have topology_core_siblings]) + LB_LINUX_TRY_COMPILE([ + #include + ],[ + cpumask_t mask = topology_core_siblings(0); + ],[ + AC_DEFINE(HAVE_TOPOLOGY_CORE_SIBLINGS, 1, + [have topology_core_siblings]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING([whether have topology_thread_cpumask]) + LB_LINUX_TRY_COMPILE([ + #include + ],[ + cpumask_t *mask = topology_thread_cpumask(0); + ],[ + AC_DEFINE(HAVE_TOPOLOGY_THREAD_CPUMASK, 1, + [have topology_thread_cpumask]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING([whether have topology_thread_siblings]) + LB_LINUX_TRY_COMPILE([ + #include + ],[ + cpumask_t mask = topology_thread_siblings(0); + ],[ + AC_DEFINE(HAVE_TOPOLOGY_THREAD_SIBLINGS, 1, + [have topology_thread_siblings]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING([whether have cpumask_of_node]) + LB_LINUX_TRY_COMPILE([ + #include + ],[ + cpumask_t *mask = cpumask_of_node(0); + ],[ + AC_DEFINE(HAVE_CPUMASK_OF_NODE, 1, [have cpumask_of_node]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) + + AC_MSG_CHECKING([whether have node_to_cpumask]) + LB_LINUX_TRY_COMPILE([ + #include + ],[ + cpumask_t mask = node_to_cpumask(0); + ],[ + AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1, [have node_to_cpumask]) + AC_MSG_RESULT(yes) + ],[ + AC_MSG_RESULT(no) + ]) +],[ + AC_MSG_RESULT(NO) +]) +]) + # 2.6.20 API change INIT_WORK use 2 args and not # store data inside AC_DEFUN([LIBCFS_3ARGS_INIT_WORK], @@ -118,7 +229,7 @@ AC_DEFUN([LIBCFS_3ARGS_INIT_WORK], LB_LINUX_TRY_COMPILE([ #include ],[ - struct work_struct work; + struct work_struct work __attribute__ ((unused)); INIT_WORK(&work, NULL, NULL); ],[ @@ -137,7 +248,7 @@ AC_DEFUN([LIBCFS_2ARGS_REGISTER_SYSCTL], LB_LINUX_TRY_COMPILE([ #include ],[ - return register_sysctl_table(NULL,0); + register_sysctl_table(NULL,0); ],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_2ARGS_REGISTER_SYSCTL, 1, @@ -220,7 +331,8 @@ AC_DEFUN([LIBCFS_NETWORK_NAMESPACE], LB_LINUX_TRY_COMPILE([ #include ],[ - struct net *net = &init_net; + struct net *net __attribute__ ((unused)); + net = &init_net; ],[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_INIT_NET, 1, @@ -310,8 +422,8 @@ AC_DEFUN([LIBCFS_SEM_COUNT], LB_LINUX_TRY_COMPILE([ #include ],[ - struct semaphore s; - + struct semaphore s __attribute__ ((unused)); + atomic_read(&s.count); ],[ AC_MSG_RESULT(yes) @@ -413,7 +525,8 @@ AC_DEFUN([LIBCFS_HAVE_IS_COMPAT_TASK], LB_LINUX_TRY_COMPILE([ #include ],[ - int i = is_compat_task(); + int i __attribute__ ((unused)); + i = is_compat_task(); ],[ AC_MSG_RESULT([yes]) AC_DEFINE(HAVE_IS_COMPAT_TASK, 1, [is_compat_task() is available]) @@ -451,6 +564,27 @@ AC_DEFUN([LIBCFS_HAVE_OOM_H], ]) # +# check set_mems_allowed +# 2.6.31 adds function set_mems_allowed in cpuset.h +# +AC_DEFUN([LIBCFS_HAVE_SET_MEMS_ALLOWED], +[AC_MSG_CHECKING([whether have set_mems_allowed()]) +LB_LINUX_TRY_COMPILE([ + #include +],[ + nodemask_t mask; + + set_mems_allowed(mask); +],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_SET_MEMS_ALLOWED, 1, [have set_mems_allowed()]) +],[ + AC_MSG_RESULT(NO) +]) +]) + + +# # RHEL6/2.6.32 want to have pointer to shrinker self pointer in handler function # AC_DEFUN([LC_SHRINKER_WANT_SHRINK_PTR], @@ -575,7 +709,6 @@ AC_DEFUN([LIBCFS_PROG_LINUX], LIBCFS_CONFIG_PANIC_DUMPLOG LIBCFS_U64_LONG_LONG_LINUX - # 2.6.18 LIBCFS_TASKLIST_LOCK LIBCFS_HAVE_IS_COMPAT_TASK @@ -597,11 +730,16 @@ LIBCFS_FUNC_DUMP_TRACE LIBCFS_SEM_COUNT # 2.6.27 LIBCFS_CRED_WRAPPERS +# 2.6.28 +LIBCFS_CPUMASK_SIZE # 2.6.29 LIBCFS_STRUCT_CRED_IN_TASK +LIBCFS_CPU_TOPOLOGY # 2.6.30 LIBCFS_FUNC_UNSHARE_FS_STRUCT LIBCFS_SOCK_MAP_FD_2ARG +# 2.6.31 +LIBCFS_HAVE_SET_MEMS_ALLOWED # 2.6.32 LIBCFS_STACKTRACE_OPS_HAVE_WALK_STACK LC_SHRINKER_WANT_SHRINK_PTR