Skip to content

Commit a7929f3

Browse files
author
Ryan Moeller
authored
Update FreeBSD tunables
Remove some obsolete legacy compat, rename some misnamed, and add some missing tunables for FreeBSD. Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ryan Moeller <[email protected]> Closes #10203
1 parent af99094 commit a7929f3

File tree

6 files changed

+71
-43
lines changed

6 files changed

+71
-43
lines changed

include/os/linux/kernel/linux/mod_compat.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ enum scope_prefix_types {
5454
zfs_dbuf,
5555
zfs_dbuf_cache,
5656
zfs_deadman,
57+
zfs_dedup,
5758
zfs_l2arc,
5859
zfs_livelist,
5960
zfs_livelist_condense,
@@ -67,13 +68,13 @@ enum scope_prefix_types {
6768
zfs_send,
6869
zfs_spa,
6970
zfs_trim,
71+
zfs_txg,
7072
zfs_vdev,
7173
zfs_vdev_cache,
7274
zfs_vdev_mirror,
7375
zfs_zevent,
7476
zfs_zio,
75-
zfs_zil,
76-
spa
77+
zfs_zil
7778
};
7879

7980
/*

module/os/freebsd/zfs/arc_os.c

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,53 @@ uint_t zfs_arc_free_target = 0;
6060
int64_t last_free_memory;
6161
free_memory_reason_t last_free_reason;
6262

63+
static void
64+
arc_free_target_init(void *unused __unused)
65+
{
66+
zfs_arc_free_target = vm_cnt.v_free_target;
67+
}
68+
SYSINIT(arc_free_target_init, SI_SUB_KTHREAD_PAGE, SI_ORDER_ANY,
69+
arc_free_target_init, NULL);
70+
71+
/*
72+
* We don't have a tunable for arc_free_target due to the dependency on
73+
* pagedaemon initialisation.
74+
*/
75+
static int
76+
sysctl_vfs_zfs_arc_free_target(SYSCTL_HANDLER_ARGS)
77+
{
78+
uint_t val;
79+
int err;
80+
81+
val = zfs_arc_free_target;
82+
err = sysctl_handle_int(oidp, &val, 0, req);
83+
if (err != 0 || req->newptr == NULL)
84+
return (err);
85+
86+
if (val < minfree)
87+
return (EINVAL);
88+
if (val > vm_cnt.v_page_count)
89+
return (EINVAL);
90+
91+
zfs_arc_free_target = val;
92+
93+
return (0);
94+
}
95+
SYSCTL_DECL(_vfs_zfs);
96+
/* BEGIN CSTYLED */
97+
SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_free_target,
98+
CTLTYPE_UINT | CTLFLAG_MPSAFE | CTLFLAG_RW, 0, sizeof (uint_t),
99+
sysctl_vfs_zfs_arc_free_target, "IU",
100+
"Desired number of free pages below which ARC triggers reclaim");
101+
/* END CSTYLED */
102+
63103
int64_t
64104
arc_available_memory(void)
65105
{
66106
int64_t lowest = INT64_MAX;
67107
int64_t n __unused;
68108
free_memory_reason_t r = FMR_UNKNOWN;
69109

70-
#ifdef _KERNEL
71110
/*
72111
* Cooperate with pagedaemon when it's time for it to scan
73112
* and reclaim some pages.
@@ -115,12 +154,6 @@ arc_available_memory(void)
115154
}
116155
}
117156

118-
#else /* _KERNEL */
119-
/* Every 100 calls, free a small amount */
120-
if (spa_get_random(100) == 0)
121-
lowest = -1024;
122-
#endif /* _KERNEL */
123-
124157
last_free_memory = lowest;
125158
last_free_reason = r;
126159
DTRACE_PROBE2(arc__available_memory, int64_t, lowest, int, r);

module/os/freebsd/zfs/sysctl_os.c

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -94,32 +94,35 @@ __FBSDID("$FreeBSD$");
9494

9595
/* BEGIN CSTYLED */
9696
SYSCTL_DECL(_vfs_zfs);
97-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zevent, CTLFLAG_RW, 0, "ZFS events");
98-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zio, CTLFLAG_RW, 0, "ZFS ZIO");
99-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zil, CTLFLAG_RW, 0, "ZFS ZIL");
100-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, vdev, CTLFLAG_RW, 0, "ZFS VDEV");
101-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, trim, CTLFLAG_RW, 0, "ZFS TRIM");
102-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, spa, CTLFLAG_RW, 0, "space allocation");
103-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, reconstruct, CTLFLAG_RW, 0, "reconstruct");
104-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, prefetch, CTLFLAG_RW, 0, "ZFS ZFETCH");
105-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, multihost, CTLFLAG_RW, 0, "multihost protection");
106-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, mg, CTLFLAG_RW, 0, "metaslab group");
107-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, metaslab, CTLFLAG_RW, 0, "ZFS metaslab");
108-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, lua, CTLFLAG_RW, 0, "lua");
109-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, l2arc, CTLFLAG_RW, 0, "l2arc");
97+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, arc, CTLFLAG_RW, 0, "ZFS adaptive replacement cache");
98+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, condense, CTLFLAG_RW, 0, "ZFS condense");
11099
SYSCTL_NODE(_vfs_zfs, OID_AUTO, dbuf, CTLFLAG_RW, 0, "ZFS disk buf cache");
111100
SYSCTL_NODE(_vfs_zfs, OID_AUTO, dbuf_cache, CTLFLAG_RW, 0, "ZFS disk buf cache");
112101
SYSCTL_NODE(_vfs_zfs, OID_AUTO, deadman, CTLFLAG_RW, 0, "ZFS deadman");
113-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, condense, CTLFLAG_RW, 0, "ZFS condense");
114-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, arc, CTLFLAG_RW, 0, "ZFS Adaptive Replacement Cache");
102+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, dedup, CTLFLAG_RW, 0, "ZFS dedup");
103+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, l2arc, CTLFLAG_RW, 0, "ZFS l2arc");
104+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, livelist, CTLFLAG_RW, 0, "ZFS livelist");
105+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, lua, CTLFLAG_RW, 0, "ZFS lua");
106+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, metaslab, CTLFLAG_RW, 0, "ZFS metaslab");
107+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, mg, CTLFLAG_RW, 0, "ZFS metaslab group");
108+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, multihost, CTLFLAG_RW, 0, "ZFS multihost protection");
109+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, prefetch, CTLFLAG_RW, 0, "ZFS prefetch");
110+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, reconstruct, CTLFLAG_RW, 0, "ZFS reconstruct");
111+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, recv, CTLFLAG_RW, 0, "ZFS receive");
112+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, send, CTLFLAG_RW, 0, "ZFS send");
113+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, spa, CTLFLAG_RW, 0, "ZFS space allocation");
114+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, trim, CTLFLAG_RW, 0, "ZFS TRIM");
115+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, txg, CTLFLAG_RW, 0, "ZFS transaction group");
116+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, vdev, CTLFLAG_RW, 0, "ZFS VDEV");
117+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zevent, CTLFLAG_RW, 0, "ZFS event");
118+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zil, CTLFLAG_RW, 0, "ZFS ZIL");
119+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zio, CTLFLAG_RW, 0, "ZFS ZIO");
115120

116-
SYSCTL_NODE(_vfs_zfs_vdev, OID_AUTO, mirror, CTLFLAG_RD, 0,
117-
"ZFS VDEV Mirror");
121+
SYSCTL_NODE(_vfs_zfs_livelist, OID_AUTO, condense, CTLFLAG_RW, 0,
122+
"ZFS livelist condense");
118123
SYSCTL_NODE(_vfs_zfs_vdev, OID_AUTO, cache, CTLFLAG_RW, 0, "ZFS VDEV Cache");
119-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, livelist, CTLFLAG_RW, 0, "livelist state");
120-
SYSCTL_NODE(_vfs_zfs_livelist, OID_AUTO, condense, CTLFLAG_RW, 0, "condense knobs");
121-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, recv, CTLFLAG_RW, 0, "receive knobs");
122-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, send, CTLFLAG_RW, 0, "send knobs");
124+
SYSCTL_NODE(_vfs_zfs_vdev, OID_AUTO, mirror, CTLFLAG_RD, 0,
125+
"ZFS VDEV mirror");
123126

124127
SYSCTL_DECL(_vfs_zfs_version);
125128
SYSCTL_CONST_STRING(_vfs_zfs_version, OID_AUTO, module, CTLFLAG_RD,
@@ -267,7 +270,7 @@ SYSCTL_PROC(_vfs_zfs, OID_AUTO, arc_no_grow_shift, CTLTYPE_U32 | CTLFLAG_RWTUN,
267270
/* dmu.c */
268271

269272
/* dmu_zfetch.c */
270-
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zfetch, CTLFLAG_RW, 0, "ZFS ZFETCH");
273+
SYSCTL_NODE(_vfs_zfs, OID_AUTO, zfetch, CTLFLAG_RW, 0, "ZFS ZFETCH (LEGACY)");
271274

272275
/* max bytes to prefetch per stream (default 8MB) */
273276
extern uint32_t zfetch_max_distance;
@@ -295,15 +298,6 @@ SYSCTL_INT(_vfs_zfs, OID_AUTO, default_ibs, CTLFLAG_RWTUN,
295298

296299
/* metaslab.c */
297300

298-
/*
299-
* Enable/disable lba weighting (i.e. outer tracks are given preference).
300-
*/
301-
extern boolean_t metaslab_lba_weighting_enabled;
302-
SYSCTL_INT(_vfs_zfs_metaslab, OID_AUTO, lba_weighting, CTLFLAG_RWTUN,
303-
&metaslab_lba_weighting_enabled, 0,
304-
"Enable LBA weighting (i.e. outer tracks are given preference)");
305-
306-
307301
/*
308302
* In pools where the log space map feature is not enabled we touch
309303
* multiple metaslabs (and their respective space maps) with each

module/zfs/ddt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1188,6 +1188,6 @@ ddt_walk(spa_t *spa, ddt_bookmark_t *ddb, ddt_entry_t *dde)
11881188
}
11891189

11901190
/* BEGIN CSTYLED */
1191-
ZFS_MODULE_PARAM(zfs, zfs_, dedup_prefetch, INT, ZMOD_RW,
1191+
ZFS_MODULE_PARAM(zfs_dedup, zfs_dedup_, prefetch, INT, ZMOD_RW,
11921192
"Enable prefetching dedup-ed blks");
11931193
/* END CSTYLED */

module/zfs/txg.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1054,6 +1054,6 @@ EXPORT_SYMBOL(txg_stalled);
10541054
EXPORT_SYMBOL(txg_sync_waiting);
10551055

10561056
/* BEGIN CSTYLED */
1057-
ZFS_MODULE_PARAM(zfs, zfs_, txg_timeout, INT, ZMOD_RW,
1057+
ZFS_MODULE_PARAM(zfs_txg, zfs_txg_, timeout, INT, ZMOD_RW,
10581058
"Max seconds worth of delta per txg");
10591059
/* END CSTYLED */

tests/zfs-tests/include/tunables.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ TRIM_EXTENT_BYTES_MIN trim.extent_bytes_min zfs_trim_extent_bytes_min
7171
TRIM_METASLAB_SKIP trim.metaslab_skip zfs_trim_metaslab_skip
7272
TRIM_TXG_BATCH trim.txg_batch zfs_trim_txg_batch
7373
TXG_HISTORY UNSUPPORTED zfs_txg_history
74-
TXG_TIMEOUT txg_timeout zfs_txg_timeout
74+
TXG_TIMEOUT txg.timeout zfs_txg_timeout
7575
UNLINK_SUSPEND_PROGRESS UNSUPPORTED zfs_unlink_suspend_progress
7676
VDEV_MIN_MS_COUNT vdev.min_ms_count zfs_vdev_min_ms_count
7777
VDEV_VALIDATE_SKIP vdev.validate_skip vdev_validate_skip

0 commit comments

Comments
 (0)