X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Fautoconf%2Flustre-libcfs.m4;h=bbb1249a8b75eb284c9385adbe44ab9361b2c686;hp=0803c70034918f067a35f9593d40864c80845eec;hb=2b045f3bc1729d43a8d9613d5609b838ad79ccc7;hpb=ac40000d4bde21f807a68cb2add326ea5d77385c diff --git a/libcfs/autoconf/lustre-libcfs.m4 b/libcfs/autoconf/lustre-libcfs.m4 index 0803c70..bbb1249 100644 --- a/libcfs/autoconf/lustre-libcfs.m4 +++ b/libcfs/autoconf/lustre-libcfs.m4 @@ -85,22 +85,6 @@ 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 @@ -581,27 +565,6 @@ 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.0 commit 41fbf3b39d5eca01527338b4d0ee15ee1ae1023c # introduced the helper function ktime_ms_delta. # @@ -712,6 +675,22 @@ LB_CHECK_EXPORT([kset_find_obj], [lib/kobject.c], ]) # LIBCFS_EXPORT_KSET_FIND_OBJ # +# Kernel version 4.6+ commit ef703f49a6c5b909a85149bb6625c4ed0d697186 +# fixed the brokenness of hash_64(). The fix removed GOLDEN_RATIO_PRIME_64 +# since it was a poor prime value. +# +AC_DEFUN([LIBCFS_BROKEN_HASH_64], [ +LB_CHECK_COMPILE([kernel has fixed hash_64()], +broken_hash_64, [ + #include +],[ + int tmp = GOLDEN_RATIO_PRIME_64; +],[ + AC_DEFINE(HAVE_BROKEN_HASH_64, 1, [kernel hash_64() is broken]) +]) +]) # LIBCFS_BROKEN_HASH_64 + +# # LIBCFS_STACKTRACE_OPS_ADDRESS_RETURN_INT # # linux 4.6 kernel changed stacktrace_ops address to return an int @@ -749,6 +728,18 @@ get_user_pages_6arg, [ ]) # LIBCFS_GET_USER_PAGES_6ARG # +# LIBCFS_STRINGHASH +# +# 4.6 kernel created stringhash.h which moved stuff out of dcache.h +# commit f4bcbe792b8f434e32487cff9d9e30ab45a3ce02 +# +AC_DEFUN([LIBCFS_STRINGHASH], [ +LB_CHECK_LINUX_HEADER([linux/stringhash.h], [ + AC_DEFINE(HAVE_STRINGHASH, 1, + [stringhash.h is present])]) +]) # LIBCFS_STRINGHASH + +# # LIBCFS_STACKTRACE_OPS # # Kernel version 4.8 commit c8fe4609827aedc9c4b45de80e7cdc8ccfa8541b @@ -814,6 +805,25 @@ LB_CHECK_LINUX_HEADER([linux/sched/signal.h], [ ]) # LIBCFS_SCHED_HEADERS # +# Kernel version 4.11 commit f9fe1c12d126f9887441fa5bb165046f30ddd4b5 +# introduced rhashtable_lookup_get_insert_fast +# +AC_DEFUN([LIBCFS_RHASHTABLE_LOOKUP_GET_INSERT_FAST], [ +LB_CHECK_COMPILE([if 'rhashtable_lookup_get_insert_fast' exist], +rhashtable_lookup_get_insert_fast, [ + #include +],[ + const struct rhashtable_params params = { 0 }; + void *ret; + + ret = rhashtable_lookup_get_insert_fast(NULL, NULL, params); +],[ + AC_DEFINE(HAVE_RHASHTABLE_LOOKUP_GET_INSERT_FAST, 1, + [rhashtable_lookup_get_insert_fast() is available]) +]) +]) # LIBCFS_RHASHTABLE_LOOKUP_GET_INSERT_FAST + +# # LIBCFS_WAIT_QUEUE_ENTRY # # Kernel version 4.13 ac6424b981bce1c4bc55675c6ce11bfe1bbfa64f @@ -920,7 +930,6 @@ LIBCFS_DUMP_TRACE_ADDRESS LC_SHRINK_CONTROL # 3.0 LIBCFS_STACKTRACE_WARNING -LIBCFS_REINIT_COMPLETION # 3.5 LIBCFS_PROCESS_NAMESPACE LIBCFS_I_UID_READ @@ -950,7 +959,6 @@ LIBCFS_TIMESPEC64_SUB LIBCFS_TIMESPEC64_TO_KTIME # 3.19 LIBCFS_KTIME_GET_SECONDS -LIBCFS_HAVE_CPUMASK_PRINT_TO_PAGEBUF # 4.0 LIBCFS_KTIME_MS_DELTA # 4.1 @@ -964,8 +972,10 @@ LIBCFS_KSTRTOBOOL_FROM_USER LIBCFS_CRYPTO_HASH_HELPERS LIBCFS_EXPORT_KSET_FIND_OBJ # 4.6 +LIBCFS_BROKEN_HASH_64 LIBCFS_STACKTRACE_OPS_ADDRESS_RETURN_INT LIBCFS_GET_USER_PAGES_6ARG +LIBCFS_STRINGHASH # 4.8 LIBCFS_STACKTRACE_OPS # 4.9 @@ -973,6 +983,7 @@ LIBCFS_GET_USER_PAGES_GUP_FLAGS # 4.10 LIBCFS_HOTPLUG_STATE_MACHINE # 4.11 +LIBCFS_RHASHTABLE_LOOKUP_GET_INSERT_FAST LIBCFS_SCHED_HEADERS # 4.13 LIBCFS_WAIT_QUEUE_ENTRY