mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-17 18:11:00 +03:00
e9a7729008
Provide infrastructure to auto-configure to enum and API changes in the global page stats used for our free memory calculations. arc_free_memory has been broken since an API change in Linux v3.14: 2016-07-28 v4.8 599d0c95 mm, vmscan: move LRU lists to node 2016-07-28 v4.8 75ef7184 mm, vmstat: add infrastructure for per-node vmstats These commits moved some of global_page_state() into global_node_page_state(). The API change was particularly egregious as, instead of breaking the old code, it silently did the wrong thing and we continued using global_page_state() where we should have been using global_node_page_state(), thus indexing into the wrong array via NR_SLAB_RECLAIMABLE et al. There have been further API changes along the way: 2017-07-06 v4.13 385386cf mm: vmstat: move slab statistics from zone to node counters 2017-09-06 v4.14 c41f012a mm: rename global_page_state to global_zone_page_state ...and various (incomplete, as it turns out) attempts to accomodate these changes in ZoL: 2017-08-242209e409
Linux 4.8+ compatibility fix for vm stats 2017-09-16787acae0
Linux 3.14 compat: IO acct, global_page_state, etc 2017-09-19661907e6
Linux 4.14 compat: IO acct, global_page_state, etc The config infrastructure provided here resolves these issues going back to the original API change in v3.14 and is robust against further Linux changes in this area. Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Chris Dunlop <chris@onthe.net.au> Closes #7170
70 lines
2.1 KiB
Makefile
70 lines
2.1 KiB
Makefile
pkgdatadir = $(datadir)/@PACKAGE@
|
|
|
|
dist_pkgdata_SCRIPTS = \
|
|
$(top_srcdir)/scripts/zimport.sh \
|
|
$(top_srcdir)/scripts/zfs.sh \
|
|
$(top_srcdir)/scripts/zfs-tests.sh \
|
|
$(top_srcdir)/scripts/zloop.sh \
|
|
$(top_srcdir)/scripts/zfs-helpers.sh
|
|
|
|
EXTRA_DIST = \
|
|
common.sh.in \
|
|
commitcheck.sh \
|
|
dkms.mkconf \
|
|
dkms.postbuild \
|
|
enum-extract.pl \
|
|
kmodtool \
|
|
paxcheck.sh \
|
|
zfs2zol-patch.sed \
|
|
cstyle.pl
|
|
|
|
define EXTRA_ENVIRONMENT
|
|
|
|
# Only required for in-tree use
|
|
export INTREE="yes"
|
|
export GDB="/usr/bin/libtool --mode=execute gdb"
|
|
export LDMOD=/sbin/insmod
|
|
|
|
export CMD_DIR=@abs_top_builddir@/cmd
|
|
export UDEV_RULE_DIR=@abs_top_builddir@/udev/rules.d
|
|
export ZEDLET_ETC_DIR=$$CMD_DIR/zed/zed.d
|
|
export ZEDLET_LIBEXEC_DIR=$$CMD_DIR/zed/zed.d
|
|
export ZPOOL_SCRIPT_DIR=$$CMD_DIR/zpool/zpool.d
|
|
export ZPOOL_SCRIPTS_PATH=$$CMD_DIR/zpool/zpool.d
|
|
|
|
export INSTALL_UDEV_DIR=@udevdir@
|
|
export INSTALL_UDEV_RULE_DIR=@udevruledir@
|
|
export INSTALL_MOUNT_HELPER_DIR=@mounthelperdir@
|
|
export INSTALL_SYSCONF_DIR=@sysconfdir@
|
|
|
|
export KMOD_SPL=@SPL_OBJ@/module/spl/spl.ko
|
|
export KMOD_SPLAT=@SPL_OBJ@/module/splat/splat.ko
|
|
export KMOD_ZAVL=@abs_top_builddir@/module/avl/zavl.ko
|
|
export KMOD_ZNVPAIR=@abs_top_builddir@/module/nvpair/znvpair.ko
|
|
export KMOD_ZUNICODE=@abs_top_builddir@/module/unicode/zunicode.ko
|
|
export KMOD_ZCOMMON=@abs_top_builddir@/module/zcommon/zcommon.ko
|
|
export KMOD_ZLUA=@abs_top_builddir@/module/lua/zlua.ko
|
|
export KMOD_ICP=@abs_top_builddir@/module/icp/icp.ko
|
|
export KMOD_ZFS=@abs_top_builddir@/module/zfs/zfs.ko
|
|
endef
|
|
|
|
export EXTRA_ENVIRONMENT
|
|
|
|
all-local:
|
|
-$(SED) -e '\|^export BIN_DIR=|s|$$|@abs_top_builddir@/bin|' \
|
|
-e '\|^export SBIN_DIR=|s|$$|@abs_top_builddir@/bin|' \
|
|
-e '\|^export ZTS_DIR=|s|$$|@abs_top_srcdir@/tests|' \
|
|
-e '\|^export SCRIPT_DIR=|s|$$|@abs_top_srcdir@/scripts|' \
|
|
common.sh.in >common.sh
|
|
-echo "$$EXTRA_ENVIRONMENT" >>common.sh
|
|
|
|
clean-local:
|
|
-$(RM) common.sh
|
|
|
|
install-data-hook:
|
|
-$(SED) -e '\|^export BIN_DIR=|s|$$|@bindir@|' \
|
|
-e '\|^export SBIN_DIR=|s|$$|@sbindir@|' \
|
|
-e '\|^export ZTS_DIR=|s|$$|@datadir@/@PACKAGE@|' \
|
|
-e '\|^export SCRIPT_DIR=|s|$$|@datadir@/@PACKAGE@|' \
|
|
common.sh.in >$(DESTDIR)$(datadir)/@PACKAGE@/common.sh
|