mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 11:19:32 +03:00
Add zfs_multihost_interval tunable handler for FreeBSD
This tunable required a handler to be implemented for ZFS_MODULE_PARAM_CALL. Add the handler so the tunable can be declared in common code. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ryan Moeller <ryan@iXsystems.com> Closes #10490
This commit is contained in:
parent
2451a55368
commit
9192f27c1d
@ -72,6 +72,9 @@
|
|||||||
#define param_set_deadman_ziotime_args(var) \
|
#define param_set_deadman_ziotime_args(var) \
|
||||||
CTLTYPE_ULONG, NULL, 0, param_set_deadman_ziotime, "LU"
|
CTLTYPE_ULONG, NULL, 0, param_set_deadman_ziotime, "LU"
|
||||||
|
|
||||||
|
#define param_set_multihost_interval_args(var) \
|
||||||
|
CTLTYPE_ULONG, &var, 0, param_set_multihost_interval, "LU"
|
||||||
|
|
||||||
#define param_set_slop_shift_args(var) \
|
#define param_set_slop_shift_args(var) \
|
||||||
CTLTYPE_INT, &var, 0, param_set_slop_shift, "I"
|
CTLTYPE_INT, &var, 0, param_set_slop_shift, "I"
|
||||||
|
|
||||||
|
@ -63,6 +63,7 @@ extern void mmp_update_uberblock(struct spa *spa, struct uberblock *ub);
|
|||||||
extern void mmp_signal_all_threads(void);
|
extern void mmp_signal_all_threads(void);
|
||||||
|
|
||||||
/* Global tuning */
|
/* Global tuning */
|
||||||
|
extern int param_set_multihost_interval(ZFS_MODULE_PARAM_ARGS);
|
||||||
extern ulong_t zfs_multihost_interval;
|
extern ulong_t zfs_multihost_interval;
|
||||||
extern uint_t zfs_multihost_fail_intervals;
|
extern uint_t zfs_multihost_fail_intervals;
|
||||||
extern uint_t zfs_multihost_import_intervals;
|
extern uint_t zfs_multihost_import_intervals;
|
||||||
|
@ -691,3 +691,18 @@ param_set_slop_shift(SYSCTL_HANDLER_ARGS)
|
|||||||
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
param_set_multihost_interval(SYSCTL_HANDLER_ARGS)
|
||||||
|
{
|
||||||
|
int err;
|
||||||
|
|
||||||
|
err = sysctl_handle_long(oidp, arg1, 0, req);
|
||||||
|
if (err != 0 || req->newptr == NULL)
|
||||||
|
return (err);
|
||||||
|
|
||||||
|
if (spa_mode_global != SPA_MODE_UNINIT)
|
||||||
|
mmp_signal_all_threads();
|
||||||
|
|
||||||
|
return (0);
|
||||||
|
}
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
#include <sys/zfs_context.h>
|
#include <sys/zfs_context.h>
|
||||||
#include <sys/mmp.h>
|
#include <sys/mmp.h>
|
||||||
|
|
||||||
static int
|
int
|
||||||
param_set_multihost_interval(const char *val, zfs_kernel_param_t *kp)
|
param_set_multihost_interval(const char *val, zfs_kernel_param_t *kp)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
@ -39,8 +39,3 @@ param_set_multihost_interval(const char *val, zfs_kernel_param_t *kp)
|
|||||||
|
|
||||||
return (ret);
|
return (ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
module_param_call(zfs_multihost_interval, param_set_multihost_interval,
|
|
||||||
param_get_ulong, &zfs_multihost_interval, 0644);
|
|
||||||
MODULE_PARM_DESC(zfs_multihost_interval,
|
|
||||||
"Milliseconds between mmp writes to each leaf");
|
|
||||||
|
@ -715,6 +715,12 @@ mmp_signal_all_threads(void)
|
|||||||
mutex_exit(&spa_namespace_lock);
|
mutex_exit(&spa_namespace_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* BEGIN CSTYLED */
|
||||||
|
ZFS_MODULE_PARAM_CALL(zfs_multihost, zfs_multihost_, interval,
|
||||||
|
param_set_multihost_interval, param_get_ulong, ZMOD_RW,
|
||||||
|
"Milliseconds between mmp writes to each leaf");
|
||||||
|
/* END CSTYLED */
|
||||||
|
|
||||||
ZFS_MODULE_PARAM(zfs_multihost, zfs_multihost_, fail_intervals, UINT, ZMOD_RW,
|
ZFS_MODULE_PARAM(zfs_multihost, zfs_multihost_, fail_intervals, UINT, ZMOD_RW,
|
||||||
"Max allowed period without a successful mmp write");
|
"Max allowed period without a successful mmp write");
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ METASLAB_FORCE_GANGING metaslab.force_ganging metaslab_force_ganging
|
|||||||
MULTIHOST_FAIL_INTERVALS multihost.fail_intervals zfs_multihost_fail_intervals
|
MULTIHOST_FAIL_INTERVALS multihost.fail_intervals zfs_multihost_fail_intervals
|
||||||
MULTIHOST_HISTORY UNSUPPORTED zfs_multihost_history
|
MULTIHOST_HISTORY UNSUPPORTED zfs_multihost_history
|
||||||
MULTIHOST_IMPORT_INTERVALS multihost.import_intervals zfs_multihost_import_intervals
|
MULTIHOST_IMPORT_INTERVALS multihost.import_intervals zfs_multihost_import_intervals
|
||||||
MULTIHOST_INTERVAL UNSUPPORTED zfs_multihost_interval
|
MULTIHOST_INTERVAL multihost.interval zfs_multihost_interval
|
||||||
OVERRIDE_ESTIMATE_RECORDSIZE send.override_estimate_recordsize zfs_override_estimate_recordsize
|
OVERRIDE_ESTIMATE_RECORDSIZE send.override_estimate_recordsize zfs_override_estimate_recordsize
|
||||||
REMOVAL_SUSPEND_PROGRESS removal_suspend_progress zfs_removal_suspend_progress
|
REMOVAL_SUSPEND_PROGRESS removal_suspend_progress zfs_removal_suspend_progress
|
||||||
REMOVE_MAX_SEGMENT remove_max_segment zfs_remove_max_segment
|
REMOVE_MAX_SEGMENT remove_max_segment zfs_remove_max_segment
|
||||||
|
Loading…
Reference in New Issue
Block a user