Whamcloud - gitweb
LU-9859 libcfs: move tgt_descs to standard Linux bitmaps.
[fs/lustre-release.git] / libcfs / autoconf / lustre-libcfs.m4
index 4346553..b42c9a7 100644 (file)
@@ -763,6 +763,23 @@ EXTRA_KCFLAGS="$tmp_flags"
 ]) # LIBCFS_REFCOUNT_T
 
 #
+# Kernel version 4.12 commit 499118e966f1d2150bd66647c8932343c4e9a0b8
+# introduce memalloc_noreclaim_{save,restore}
+#
+AC_DEFUN([LIBCFS_MEMALLOC_NORECLAIM], [
+LB_CHECK_COMPILE([if memalloc_noreclaim_{save,restore} exist],
+memalloc_noreclaim, [
+       #include <linux/sched/mm.h>
+],[
+       int flag = memalloc_noreclaim_save();
+       memalloc_noreclaim_restore(flag);
+],[
+       AC_DEFINE(HAVE_MEMALLOC_RECLAIM, 1,
+               [memalloc_noreclaim_{save,restore}() is supported])
+])
+]) # LIBCFS_MEMALLOC_NORECLAIM
+
+#
 # LIBCFS_SCHED_HEADERS
 #
 # 4.11 has broken up sched.h into more headers.
@@ -1068,6 +1085,24 @@ wait_var_event, [
 ]) # LIBCFS_WAIT_VAR_EVENT
 
 #
+# LIBCFS_BITMAP_ALLOC
+#
+# Kernel version 4.17 commit c42b65e363ce97a828f81b59033c3558f8fa7f70
+# added bitmap memory allocation handling.
+#
+AC_DEFUN([LIBCFS_BITMAP_ALLOC], [
+LB_CHECK_COMPILE([if Linux bitmap memory management exist],
+bitmap_alloc, [
+       #include <linux/bitmap.h>
+],[
+       unsigned long *map = bitmap_alloc(1, GFP_KERNEL);
+],[
+       AC_DEFINE(HAVE_BITMAP_ALLOC, 1,
+               [Linux bitmap can be allocated])
+])
+]) # LIBCFS_BITMAP_ALLOC
+
+#
 # LIBCFS_CLEAR_AND_WAKE_UP_BIT
 #
 # Kernel version 4.17-rc2 commit 8236b0ae31c837d2b3a2565c5f8d77f637e824cc
@@ -1242,6 +1277,8 @@ Lustre requires that CONFIG_CRYPTO_CRC32 is enabled in your kernel.
 ])])
 ]) # LIBCFS_CONFIG_CRYPTO_CRC32
 
+AC_DEFUN([LIBCFS_PROG_LINUX_SRC], [] )
+AC_DEFUN([LIBCFS_PROG_LINUX_RESULTS], [])
 
 #
 # LIBCFS_PROG_LINUX
@@ -1318,6 +1355,7 @@ LIBCFS_RHT_BUCKET_VAR
 # 4.12
 LIBCFS_HAVE_PROCESSOR_HEADER
 LIBCFS_HAVE_WAIT_BIT_HEADER
+LIBCFS_MEMALLOC_NORECLAIM
 LIBCFS_WAIT_QUEUE_TASK_LIST_RENAME
 LIBCFS_CPUS_READ_LOCK
 LIBCFS_UUID_T
@@ -1333,6 +1371,7 @@ LIBCFS_TIMER_SETUP
 # 4.16
 LIBCFS_WAIT_VAR_EVENT
 # 4.17
+LIBCFS_BITMAP_ALLOC
 LIBCFS_CLEAR_AND_WAKE_UP_BIT
 # 4.19
 LIBCFS_XARRAY_SUPPORT