320f0c6022
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
24 lines
491 B
Plaintext
24 lines
491 B
Plaintext
dnl #
|
|
dnl # Linux 4.19 API
|
|
dnl #
|
|
AC_DEFUN([ZFS_AC_KERNEL_SRC_FADVISE], [
|
|
ZFS_LINUX_TEST_SRC([file_fadvise], [
|
|
#include <linux/fs.h>
|
|
|
|
static const struct file_operations
|
|
fops __attribute__ ((unused)) = {
|
|
.fadvise = NULL,
|
|
};
|
|
],[])
|
|
])
|
|
|
|
AC_DEFUN([ZFS_AC_KERNEL_FADVISE], [
|
|
AC_MSG_CHECKING([whether fops->fadvise() exists])
|
|
ZFS_LINUX_TEST_RESULT([file_fadvise], [
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_FILE_FADVISE, 1, [fops->fadvise() exists])
|
|
],[
|
|
AC_MSG_RESULT(no)
|
|
])
|
|
])
|