]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Enable zpool events tunables and tests on FreeBSD
authorRyan Moeller <ryan@iXsystems.com>
Tue, 18 Feb 2020 19:22:56 +0000 (14:22 -0500)
committerGitHub <noreply@github.com>
Tue, 18 Feb 2020 19:22:56 +0000 (11:22 -0800)
We have have made the necessary changes in our module code to expose
zevents through both devd and the zpool events ioctl. Now the tunables
can be exposed and zpool events tests can be enabled on both platforms.

A few minor tweaks to the tests were needed to accommodate the way wc
formats output on FreeBSD.

zed remains to be ported.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
Closes #10008

include/os/linux/kernel/linux/mod_compat.h
module/zfs/fm.c
tests/runfiles/common.run
tests/runfiles/linux.run
tests/zfs-tests/include/tunables.cfg
tests/zfs-tests/tests/functional/cli_root/zpool_events/zpool_events_clear.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_events/zpool_events_errors.ksh
tests/zfs-tests/tests/functional/cli_root/zpool_events/zpool_events_follow.ksh

index 572093218b57e52f06b229b5981d7e8df7494986..a0f618d14c1a98adef8403673f6ff43e1b15cd0d 100644 (file)
@@ -70,6 +70,7 @@ enum scope_prefix_types {
        zfs_vdev,
        zfs_vdev_cache,
        zfs_vdev_mirror,
+       zfs_zevent,
        zfs_zio,
        zfs_zil,
        spa
index e3c3a1700f625ac5aeea61bdfefbc11c840d0b0f..c00e08b8d02a62f61312a2fd11dcd9da578cbdf3 100644 (file)
@@ -1607,9 +1607,7 @@ fm_erpt_dropped_increment(void)
 {
        atomic_inc_64(&ratelimit_dropped);
 }
-#endif
 
-#ifdef _KERNEL
 void
 fm_init(void)
 {
@@ -1664,14 +1662,13 @@ fm_fini(void)
                fm_ksp = NULL;
        }
 }
+#endif /* _KERNEL */
 
-module_param(zfs_zevent_len_max, int, 0644);
-MODULE_PARM_DESC(zfs_zevent_len_max, "Max event queue length");
-
-module_param(zfs_zevent_cols, int, 0644);
-MODULE_PARM_DESC(zfs_zevent_cols, "Max event column width");
+ZFS_MODULE_PARAM(zfs_zevent, zfs_zevent_, len_max, INT, ZMOD_RW,
+       "Max event queue length");
 
-module_param(zfs_zevent_console, int, 0644);
-MODULE_PARM_DESC(zfs_zevent_console, "Log events to the console");
+ZFS_MODULE_PARAM(zfs_zevent, zfs_zevent_, cols, INT, ZMOD_RW,
+       "Max event column width");
 
-#endif /* _KERNEL */
+ZFS_MODULE_PARAM(zfs_zevent, zfs_zevent_, console, INT, ZMOD_RW,
+       "Log events to the console");
index 3c71458ebcd7335dd7b1ed7e584a7a7b2f6f884b..cbd8ef93ef6bd188042c06cdef1eee05d94d98dd 100644 (file)
@@ -333,6 +333,11 @@ tags = ['functional', 'cli_root', 'zpool_destroy']
 tests = ['zpool_detach_001_neg']
 tags = ['functional', 'cli_root', 'zpool_detach']
 
+[tests/functional/cli_root/zpool_events]
+tests = ['zpool_events_clear', 'zpool_events_cliargs', 'zpool_events_follow',
+    'zpool_events_poolname', 'zpool_events_errors']
+tags = ['functional', 'cli_root', 'zpool_events']
+
 [tests/functional/cli_root/zpool_export]
 tests = ['zpool_export_001_pos', 'zpool_export_002_pos',
     'zpool_export_003_neg', 'zpool_export_004_pos']
index 7378f1aee28eff8a4cc6456a5172c893405df274..6d6fc03224c27d38f76850961f761596202c54b6 100644 (file)
@@ -59,11 +59,6 @@ tags = ['functional', 'cli_root', 'zfs_sysfs']
 tests = ['add_nested_replacing_spare']
 tags = ['functional', 'cli_root', 'zpool_add']
 
-[tests/functional/cli_root/zpool_events:Linux]
-tests = ['zpool_events_clear', 'zpool_events_cliargs', 'zpool_events_follow',
-    'zpool_events_poolname', 'zpool_events_errors']
-tags = ['functional', 'cli_root', 'zpool_events']
-
 [tests/functional/cli_root/zpool_expand:Linux]
 tests = ['zpool_expand_001_pos', 'zpool_expand_002_pos',
     'zpool_expand_003_neg', 'zpool_expand_004_pos', 'zpool_expand_005_pos']
index 2a4ea9bdcabbf2befa33eec5ad5bf98c7b137e95..01176c78112b143d2ca7ac1a46a99f8085b1156f 100644 (file)
@@ -73,7 +73,7 @@ VDEV_VALIDATE_SKIP            vdev.validate_skip              vdev_validate_skip
 VOL_INHIBIT_DEV                        UNSUPPORTED                     zvol_inhibit_dev
 VOL_MODE                       vol.mode                        zvol_volmode
 VOL_RECURSIVE                  vol.recursive                   UNSUPPORTED
-ZEVENT_LEN_MAX                 UNSUPPORTED                     zfs_zevent_len_max
+ZEVENT_LEN_MAX                 zevent.len_max                  zfs_zevent_len_max
 ZIO_SLOW_IO_MS                 zio.slow_io_ms                  zio_slow_io_ms
 %%%%
 while read name FreeBSD Linux; do
index 67038a4743d82ba66358dbb152495e841cf178bd..054d39be3fe908fd81cf3a679fea2eb4d2efd64e 100755 (executable)
@@ -43,14 +43,14 @@ for i in `seq 1 $EVENTS_NUM`; do
 done
 # wait a bit to allow the kernel module to process new events
 zpool_events_settle
-EVENTS_NUM="$(zpool events -H | wc -l)"
+EVENTS_NUM=$(zpool events -H | wc -l | xargs)
 
 # 3. Verify 'zpool events -c' successfully clear new events
-CLEAR_OUTPUT="$(zpool events -c)"
+CLEAR_OUTPUT=$(zpool events -c)
 if [[ "$CLEAR_OUTPUT" != "cleared $EVENTS_NUM events" ]]; then
        log_fail "Failed to clear $EVENTS_NUM events: $CLEAR_OUTPUT"
 fi
-EVENTS_NUM="$(zpool events -H | wc -l)"
+EVENTS_NUM=$(zpool events -H | wc -l)
 if [[ $EVENTS_NUM -ne 0 ]];  then
        log_fail "Unexpected events number: $EVENTS_NUM != 0"
 fi
index ba940210eb6482ce87f38b18fd4f5beab55fef24..4645e245c973894781491c384f643013e0098108 100755 (executable)
@@ -129,11 +129,11 @@ function do_test
                fi
        fi
 
-       if [ "$val" == "0" ] || [ "$events" == "" ] ; then
+       if [ -z "$val" -o $val -eq 0 -o -z "$events" -o $events -eq 0 ] ; then
                log_fail "Didn't see any errors or events ($val/$events)"
        fi
 
-       if [ "$val" != "$events" ] ; then
+       if [ $val -ne $events ] ; then
                log_fail "$val $POOLTYPE $str errors != $events events"
        else
                log_note "$val $POOLTYPE $str errors == $events events"
index a996e57c1497a84391c56f085f26173c89613d08..258de033b86c06f031d04b5141b5172699ea9576 100755 (executable)
@@ -56,8 +56,8 @@ done
 zpool_events_settle
 
 # 4. Verify 'zpool events -f' successfully recorded these new events
-EVENTS_LOG="$(cat $EVENTS_FILE | wc -l)"
-if [[ "$EVENTS_LOG" != "$EVENTS_NUM" ]]; then
+EVENTS_LOG=$(cat $EVENTS_FILE | wc -l)
+if [[ $EVENTS_LOG -ne $EVENTS_NUM ]]; then
        log_fail "Unexpected number of events: $EVENTS_LOG != $EVENTS_NUM"
 fi