mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
Implement memory and CPU hotplug
ZFS currently doesn't react to hotplugging cpu or memory into the system in any way. This patch changes that by adding logic to the ARC that allows the system to take advantage of new memory that is added for caching purposes. It also adds logic to the taskq infrastructure to support dynamically expanding the number of threads allocated to a taskq. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Co-authored-by: Matthew Ahrens <matthew.ahrens@delphix.com> Co-authored-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Paul Dagnelie <pcd@delphix.com> Closes #11212
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
dnl #
|
||||
dnl # 4.6 API change
|
||||
dnl # Added CPU hotplug APIs
|
||||
dnl #
|
||||
AC_DEFUN([ZFS_AC_KERNEL_SRC_CPU_HOTPLUG], [
|
||||
ZFS_LINUX_TEST_SRC([cpu_hotplug], [
|
||||
#include <linux/cpuhotplug.h>
|
||||
],[
|
||||
enum cpuhp_state state = CPUHP_ONLINE;
|
||||
int (*fp)(unsigned int, struct hlist_node *) = NULL;
|
||||
cpuhp_state_add_instance_nocalls(0, (struct hlist_node *)NULL);
|
||||
cpuhp_state_remove_instance_nocalls(0, (struct hlist_node *)NULL);
|
||||
cpuhp_setup_state_multi(state, "", fp, fp);
|
||||
cpuhp_remove_multi_state(0);
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([ZFS_AC_KERNEL_CPU_HOTPLUG], [
|
||||
AC_MSG_CHECKING([whether CPU hotplug APIs exist])
|
||||
ZFS_LINUX_TEST_RESULT([cpu_hotplug], [
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_CPU_HOTPLUG, 1, [yes])
|
||||
],[
|
||||
AC_MSG_RESULT(no)
|
||||
])
|
||||
])
|
||||
@@ -124,6 +124,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_SRC], [
|
||||
ZFS_AC_KERNEL_SRC_TOTALHIGH_PAGES
|
||||
ZFS_AC_KERNEL_SRC_KSTRTOUL
|
||||
ZFS_AC_KERNEL_SRC_PERCPU
|
||||
ZFS_AC_KERNEL_SRC_CPU_HOTPLUG
|
||||
|
||||
AC_MSG_CHECKING([for available kernel interfaces])
|
||||
ZFS_LINUX_TEST_COMPILE_ALL([kabi])
|
||||
@@ -221,6 +222,7 @@ AC_DEFUN([ZFS_AC_KERNEL_TEST_RESULT], [
|
||||
ZFS_AC_KERNEL_TOTALHIGH_PAGES
|
||||
ZFS_AC_KERNEL_KSTRTOUL
|
||||
ZFS_AC_KERNEL_PERCPU
|
||||
ZFS_AC_KERNEL_CPU_HOTPLUG
|
||||
])
|
||||
|
||||
dnl #
|
||||
|
||||
Reference in New Issue
Block a user