freebsd-dev/config/kernel-generic_fadvise.m4
Finix1979 320f0c6022
Add Linux posix_fadvise support
The purpose of this PR is to accepts fadvise ioctl from userland
to do read-ahead by demand.

It could dramatically improve sequential read performance especially
when primarycache is set to metadata or zfs_prefetch_disable is 1.

If the file is mmaped, generic_fadvise is also called for page cache
read-ahead besides dmu_prefetch.

Only POSIX_FADV_WILLNEED and POSIX_FADV_SEQUENTIAL are supported in
this PR currently.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Finix Yan <yancw@info2soft.com>
Closes #13694
2022-09-08 10:29:41 -07:00

28 lines
787 B
Plaintext

dnl #
dnl # 5.3 API change
dnl # The generic_fadvise() function is present since 4.19 kernel
dnl # but it was not exported until Linux 5.3.
dnl #
AC_DEFUN([ZFS_AC_KERNEL_SRC_GENERIC_FADVISE], [
ZFS_LINUX_TEST_SRC([generic_fadvise], [
#include <linux/fs.h>
], [
struct file *fp __attribute__ ((unused)) = NULL;
loff_t offset __attribute__ ((unused)) = 0;
loff_t len __attribute__ ((unused)) = 0;
int advise __attribute__ ((unused)) = 0;
generic_fadvise(fp, offset, len, advise);
])
])
AC_DEFUN([ZFS_AC_KERNEL_GENERIC_FADVISE], [
AC_MSG_CHECKING([whether generic_fadvise() is available])
ZFS_LINUX_TEST_RESULT_SYMBOL([generic_fadvise],
[generic_fadvise], [mm/fadvise.c], [
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_GENERIC_FADVISE, 1, [yes])
],[
AC_MSG_RESULT(no)
])
])