X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Fautoconf%2Flustre-libcfs.m4;h=826fc1a3eccaaeb5da804c651416376bed7837df;hp=c7199f59a800eb4243f76fe35540b32775c80fed;hb=24d9e6ec44651abea0c4985a6b91d850b0257301;hpb=70d70c4f541c84adc88c372d670cd3a7fa8bc91f diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index c7199f5..826fc1a 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -85,6 +85,22 @@ stacktrace_ops_warning, [ ]) # LIBCFS_STACKTRACE_WARNING # +# LIBCFS_REINIT_COMPLETION +# +AC_DEFUN([LIBCFS_REINIT_COMPLETION], [ +LB_CHECK_COMPILE([if 'reinit_completion' exists], +reinit_completion, [ + #include +],[ + struct completion x; + reinit_completion(&x); +],[ + AC_DEFINE(HAVE_REINIT_COMPLETION, 1, + [reinit_completion is exist]) +]) +]) # LIBCFS_REINIT_COMPLETION + +# # LC_SHRINKER_WANT_SHRINK_PTR # # RHEL6/2.6.32 want to have pointer to shrinker self pointer in handler function @@ -435,6 +451,41 @@ ktime_to_timespec64, [ ]) # LIBCFS_KTIME_TO_TIMESPEC64 # +# Kernel version 3.17 introduced timespec64_sub +# +AC_DEFUN([LIBCFS_TIMESPEC64_SUB],[ +LB_CHECK_COMPILE([does function 'timespec64_sub' exist], +timespec64_sub, [ + #include +],[ + struct timespec64 later,earlier,diff; + + diff = timespec64_sub(later, earlier); +],[ + AC_DEFINE(HAVE_TIMESPEC64_SUB, 1, + ['timespec64_sub' is available]) +]) +]) # LIBCFS_TIMESPEC64_SUB + +# +# Kernel version 3.17 introduced timespec64_to_ktime +# +AC_DEFUN([LIBCFS_TIMESPEC64_TO_KTIME],[ +LB_CHECK_COMPILE([does function 'timespec64_to_ktime' exist], +timespec64_to_ktime, [ + #include +],[ + struct timespec64 ts; + ktime_t now; + + now = timespec64_to_ktime(ts); +],[ + AC_DEFINE(HAVE_TIMESPEC64_TO_KTIME, 1, + ['timespec64_to_ktime' is available]) +]) +]) # LIBCFS_TIMESPEC64_TO_KTIME + +# # Kernel version 3.19 introduced ktime_get_seconds # AC_DEFUN([LIBCFS_KTIME_GET_SECONDS],[ @@ -452,6 +503,27 @@ ktime_get_seconds, [ ]) # LIBCFS_KTIME_GET_SECONDS # +# Kernel version 3.19 commit 5aaba36318e5995e8c95d077a46d9a4d00fcc1cd +# This patch creates a new helper function cpumap_print_to_pagebuf in +# cpumask.h using newly added bitmap_print_to_pagebuf and consolidates +# most of those sysfs functions using the new helper function. +# +AC_DEFUN([LIBCFS_HAVE_CPUMASK_PRINT_TO_PAGEBUF],[ +LB_CHECK_COMPILE([does function 'cpumap_print_to_pagebuf' exist], +cpumap_print_to_pagebuf, [ + #include +],[ + int n; + char *buf = NULL; + const struct cpumask *mask = NULL; + n = cpumap_print_to_pagebuf(true, buf, mask); +],[ + AC_DEFINE(HAVE_CPUMASK_PRINT_TO_PAGEBUF, 1, + [cpumap_print_to_pagebuf is available]) +]) +]) # LIBCFS_HAVE_CPUMASK_PRINT_TO_PAGEBUF + +# # Kernel version 4.2 changed topology_thread_cpumask # to topology_sibling_cpumask # @@ -555,6 +627,39 @@ stacktrace_ops, [ ]) # LIBCFS_STACKTRACE_OPS # +# Kernel version 4.9 commit 768ae309a96103ed02eb1e111e838c87854d8b51 +# mm: replace get_user_pages() write/force parameters with gup_flags +# +AC_DEFUN([LIBCFS_GET_USER_PAGES_GUP_FLAGS], [ +LB_CHECK_COMPILE([if 'get_user_pages()' takes gup_flags in arguments], +get_user_pages_gup_flags, [ + #include +],[ + int rc; + rc = get_user_pages(0, 0, FOLL_WRITE, NULL, NULL); +],[ + AC_DEFINE(HAVE_GET_USER_PAGES_GUP_FLAGS, 1, + [get_user_pages takes gup_flags in arguments]) +]) +]) # LIBCFS_GET_USER_PAGES_GUP_FLAGS + +# +# Kernel version 4.10 commit 7b737965b33188bd3dbb44e938535c4006d97fbb +# libcfs: Convert to hotplug state machine +# +AC_DEFUN([LIBCFS_HOTPLUG_STATE_MACHINE], [ +LB_CHECK_COMPILE([if libcfs supports CPU hotplug state machine], +cpu_hotplug_state_machine, [ + #include +],[ + cpuhp_remove_state(CPUHP_LUSTRE_CFS_DEAD); +],[ + AC_DEFINE(HAVE_HOTPLUG_STATE_MACHINE, 1, + [hotplug state machine is supported]) +]) +]) # LIBCFS_HOTPLUG_STATE_MACHINE + +# # LIBCFS_PROG_LINUX # # LibCFS linux kernel checks @@ -577,6 +682,7 @@ LIBCFS_DUMP_TRACE_ADDRESS LC_SHRINK_CONTROL # 3.0 LIBCFS_STACKTRACE_WARNING +LIBCFS_REINIT_COMPLETION # 3.5 LIBCFS_PROCESS_NAMESPACE LIBCFS_I_UID_READ @@ -600,8 +706,11 @@ LIBCFS_KTIME_GET_REAL_TS64 LIBCFS_KTIME_GET_REAL_SECONDS LIBCFS_KTIME_GET_REAL_NS LIBCFS_KTIME_TO_TIMESPEC64 +LIBCFS_TIMESPEC64_SUB +LIBCFS_TIMESPEC64_TO_KTIME # 3.19 LIBCFS_KTIME_GET_SECONDS +LIBCFS_HAVE_CPUMASK_PRINT_TO_PAGEBUF # 4.2 LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK LIBCFS_FPU_API @@ -612,6 +721,10 @@ LIBCFS_STACKTRACE_OPS_ADDRESS_RETURN_INT LIBCFS_GET_USER_PAGES_6ARG # 4.8 LIBCFS_STACKTRACE_OPS +# 4.9 +LIBCFS_GET_USER_PAGES_GUP_FLAGS +# 4.10 +LIBCFS_HOTPLUG_STATE_MACHINE ]) # LIBCFS_PROG_LINUX #