aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorнаб <[email protected]>2021-05-10 20:00:15 +0200
committerBrian Behlendorf <[email protected]>2021-05-27 22:09:19 -0700
commit1cb517aebd5d4d5243689359632b8d6299057fd4 (patch)
tree0aed5ba1c2c61a1ccfc3b647575be240407a7c42
parentcb2e3360380ad465c2e5685941ae125b5cff463a (diff)
module/zfs: remove zfs_zevent_console and zfs_zevent_cols
zfs_zevent_console committed multiple printk()s per line without properly continuing them ‒ a single event could easily be fragmented across over thirty lines, making it useless for direct application zfs_zevent_cols exists purely to wrap the output from zfs_zevent_console The niche this was supposed to fill can be better served by something akin to the all-syslog ZEDLET Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Ahelenia Ziemiańska <[email protected]> Closes #7082 Closes #11996
-rw-r--r--include/os/freebsd/spl/sys/Makefile.am1
-rw-r--r--include/os/freebsd/spl/sys/console.h35
-rw-r--r--include/os/linux/spl/sys/Makefile.am1
-rw-r--r--include/os/linux/spl/sys/console.h30
-rw-r--r--include/sys/fm/util.h1
-rw-r--r--man/man5/zfs-module-parameters.522
-rw-r--r--module/zfs/fm.c313
7 files changed, 0 insertions, 403 deletions
diff --git a/include/os/freebsd/spl/sys/Makefile.am b/include/os/freebsd/spl/sys/Makefile.am
index 6bee47830..4bb9beffc 100644
--- a/include/os/freebsd/spl/sys/Makefile.am
+++ b/include/os/freebsd/spl/sys/Makefile.am
@@ -8,7 +8,6 @@ KERNEL_H = \
ccompile.h \
cmn_err.h \
condvar.h \
- console.h \
cred.h \
ctype.h \
debug.h \
diff --git a/include/os/freebsd/spl/sys/console.h b/include/os/freebsd/spl/sys/console.h
deleted file mode 100644
index a0bf8175e..000000000
--- a/include/os/freebsd/spl/sys/console.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2020 iXsystems, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- */
-
-#ifndef _SPL_CONSOLE_H
-#define _SPL_CONSOLE_H
-
-#define console_vprintf vprintf
-#define console_printf printf
-
-#endif /* _SPL_CONSOLE_H */
diff --git a/include/os/linux/spl/sys/Makefile.am b/include/os/linux/spl/sys/Makefile.am
index 0fd4cd37a..a5b0d78e8 100644
--- a/include/os/linux/spl/sys/Makefile.am
+++ b/include/os/linux/spl/sys/Makefile.am
@@ -6,7 +6,6 @@ KERNEL_H = \
callo.h \
cmn_err.h \
condvar.h \
- console.h \
cred.h \
ctype.h \
debug.h \
diff --git a/include/os/linux/spl/sys/console.h b/include/os/linux/spl/sys/console.h
deleted file mode 100644
index 6af395cc2..000000000
--- a/include/os/linux/spl/sys/console.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
- * Copyright (C) 2007 The Regents of the University of California.
- * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
- * Written by Brian Behlendorf <[email protected]>.
- * UCRL-CODE-235197
- *
- * This file is part of the SPL, Solaris Porting Layer.
- *
- * The SPL is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * The SPL is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with the SPL. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef _SPL_CONSOLE_H
-#define _SPL_CONSOLE_H
-
-#define console_vprintf vprintk
-#define console_printf printk
-
-#endif /* _SPL_CONSOLE_H */
diff --git a/include/sys/fm/util.h b/include/sys/fm/util.h
index ea8c61a8b..56ba8798b 100644
--- a/include/sys/fm/util.h
+++ b/include/sys/fm/util.h
@@ -92,7 +92,6 @@ typedef struct zfs_zevent {
extern void fm_init(void);
extern void fm_fini(void);
-extern void fm_nvprint(nvlist_t *);
extern void zfs_zevent_post_cb(nvlist_t *nvl, nvlist_t *detector);
extern int zfs_zevent_post(nvlist_t *, nvlist_t *, zevent_cb_t *);
extern void zfs_zevent_drain_all(int *);
diff --git a/man/man5/zfs-module-parameters.5 b/man/man5/zfs-module-parameters.5
index f5ff35eb6..e41d6fd89 100644
--- a/man/man5/zfs-module-parameters.5
+++ b/man/man5/zfs-module-parameters.5
@@ -3850,28 +3850,6 @@ set.
.sp
.ne 2
.na
-\fBzfs_zevent_cols\fR (int)
-.ad
-.RS 12n
-When zevents are logged to the console use this as the word wrap width.
-.sp
-Default value: \fB80\fR.
-.RE
-
-.sp
-.ne 2
-.na
-\fBzfs_zevent_console\fR (int)
-.ad
-.RS 12n
-Log events to the console
-.sp
-Use \fB1\fR for yes and \fB0\fR for no (default).
-.RE
-
-.sp
-.ne 2
-.na
\fBzfs_zevent_len_max\fR (int)
.ad
.RS 12n
diff --git a/module/zfs/fm.c b/module/zfs/fm.c
index 72162afd5..dff7d8ece 100644
--- a/module/zfs/fm.c
+++ b/module/zfs/fm.c
@@ -66,12 +66,9 @@
#ifdef _KERNEL
#include <sys/atomic.h>
#include <sys/condvar.h>
-#include <sys/console.h>
#include <sys/zfs_ioctl.h>
int zfs_zevent_len_max = 512;
-int zfs_zevent_cols = 80;
-int zfs_zevent_console = 0;
static int zevent_len_cur = 0;
static int zevent_waiters = 0;
@@ -118,307 +115,6 @@ kstat_t *fm_ksp;
#ifdef _KERNEL
-/*
- * Formatting utility function for fm_nvprintr. We attempt to wrap chunks of
- * output so they aren't split across console lines, and return the end column.
- */
-/*PRINTFLIKE4*/
-static int
-fm_printf(int depth, int c, int cols, const char *format, ...)
-{
- va_list ap;
- int width;
- char c1;
-
- va_start(ap, format);
- width = vsnprintf(&c1, sizeof (c1), format, ap);
- va_end(ap);
-
- if (c + width >= cols) {
- console_printf("\n");
- c = 0;
- if (format[0] != ' ' && depth > 0) {
- console_printf(" ");
- c++;
- }
- }
-
- va_start(ap, format);
- console_vprintf(format, ap);
- va_end(ap);
-
- return ((c + width) % cols);
-}
-
-/*
- * Recursively print an nvlist in the specified column width and return the
- * column we end up in. This function is called recursively by fm_nvprint(),
- * below. We generically format the entire nvpair using hexadecimal
- * integers and strings, and elide any integer arrays. Arrays are basically
- * used for cache dumps right now, so we suppress them so as not to overwhelm
- * the amount of console output we produce at panic time. This can be further
- * enhanced as FMA technology grows based upon the needs of consumers. All
- * FMA telemetry is logged using the dump device transport, so the console
- * output serves only as a fallback in case this procedure is unsuccessful.
- */
-static int
-fm_nvprintr(nvlist_t *nvl, int d, int c, int cols)
-{
- nvpair_t *nvp;
-
- for (nvp = nvlist_next_nvpair(nvl, NULL);
- nvp != NULL; nvp = nvlist_next_nvpair(nvl, nvp)) {
-
- data_type_t type = nvpair_type(nvp);
- const char *name = nvpair_name(nvp);
-
- boolean_t b;
- uint8_t i8;
- uint16_t i16;
- uint32_t i32;
- uint64_t i64;
- char *str;
- nvlist_t *cnv;
-
- if (strcmp(name, FM_CLASS) == 0)
- continue; /* already printed by caller */
-
- c = fm_printf(d, c, cols, " %s=", name);
-
- switch (type) {
- case DATA_TYPE_BOOLEAN:
- c = fm_printf(d + 1, c, cols, " 1");
- break;
-
- case DATA_TYPE_BOOLEAN_VALUE:
- (void) nvpair_value_boolean_value(nvp, &b);
- c = fm_printf(d + 1, c, cols, b ? "1" : "0");
- break;
-
- case DATA_TYPE_BYTE:
- (void) nvpair_value_byte(nvp, &i8);
- c = fm_printf(d + 1, c, cols, "0x%x", i8);
- break;
-
- case DATA_TYPE_INT8:
- (void) nvpair_value_int8(nvp, (void *)&i8);
- c = fm_printf(d + 1, c, cols, "0x%x", i8);
- break;
-
- case DATA_TYPE_UINT8:
- (void) nvpair_value_uint8(nvp, &i8);
- c = fm_printf(d + 1, c, cols, "0x%x", i8);
- break;
-
- case DATA_TYPE_INT16:
- (void) nvpair_value_int16(nvp, (void *)&i16);
- c = fm_printf(d + 1, c, cols, "0x%x", i16);
- break;
-
- case DATA_TYPE_UINT16:
- (void) nvpair_value_uint16(nvp, &i16);
- c = fm_printf(d + 1, c, cols, "0x%x", i16);
- break;
-
- case DATA_TYPE_INT32:
- (void) nvpair_value_int32(nvp, (void *)&i32);
- c = fm_printf(d + 1, c, cols, "0x%x", i32);
- break;
-
- case DATA_TYPE_UINT32:
- (void) nvpair_value_uint32(nvp, &i32);
- c = fm_printf(d + 1, c, cols, "0x%x", i32);
- break;
-
- case DATA_TYPE_INT64:
- (void) nvpair_value_int64(nvp, (void *)&i64);
- c = fm_printf(d + 1, c, cols, "0x%llx",
- (u_longlong_t)i64);
- break;
-
- case DATA_TYPE_UINT64:
- (void) nvpair_value_uint64(nvp, &i64);
- c = fm_printf(d + 1, c, cols, "0x%llx",
- (u_longlong_t)i64);
- break;
-
- case DATA_TYPE_HRTIME:
- (void) nvpair_value_hrtime(nvp, (void *)&i64);
- c = fm_printf(d + 1, c, cols, "0x%llx",
- (u_longlong_t)i64);
- break;
-
- case DATA_TYPE_STRING:
- (void) nvpair_value_string(nvp, &str);
- c = fm_printf(d + 1, c, cols, "\"%s\"",
- str ? str : "<NULL>");
- break;
-
- case DATA_TYPE_NVLIST:
- c = fm_printf(d + 1, c, cols, "[");
- (void) nvpair_value_nvlist(nvp, &cnv);
- c = fm_nvprintr(cnv, d + 1, c, cols);
- c = fm_printf(d + 1, c, cols, " ]");
- break;
-
- case DATA_TYPE_NVLIST_ARRAY: {
- nvlist_t **val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[");
- (void) nvpair_value_nvlist_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++) {
- c = fm_nvprintr(val[i], d + 1, c, cols);
- }
- c = fm_printf(d + 1, c, cols, " ]");
- }
- break;
-
- case DATA_TYPE_INT8_ARRAY: {
- int8_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_int8_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_UINT8_ARRAY: {
- uint8_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_uint8_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_INT16_ARRAY: {
- int16_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_int16_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_UINT16_ARRAY: {
- uint16_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_uint16_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_INT32_ARRAY: {
- int32_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_int32_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_UINT32_ARRAY: {
- uint32_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_uint32_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_INT64_ARRAY: {
- int64_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_int64_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_UINT64_ARRAY: {
- uint64_t *val;
- uint_t i, nelem;
-
- c = fm_printf(d + 1, c, cols, "[ ");
- (void) nvpair_value_uint64_array(nvp, &val, &nelem);
- for (i = 0; i < nelem; i++)
- c = fm_printf(d + 1, c, cols, "0x%llx ",
- (u_longlong_t)val[i]);
-
- c = fm_printf(d + 1, c, cols, "]");
- break;
- }
-
- case DATA_TYPE_STRING_ARRAY:
- case DATA_TYPE_BOOLEAN_ARRAY:
- case DATA_TYPE_BYTE_ARRAY:
- c = fm_printf(d + 1, c, cols, "[...]");
- break;
-
- case DATA_TYPE_UNKNOWN:
- case DATA_TYPE_DONTCARE:
- c = fm_printf(d + 1, c, cols, "<unknown>");
- break;
- }
- }
-
- return (c);
-}
-
-void
-fm_nvprint(nvlist_t *nvl)
-{
- char *class;
- int c = 0;
-
- console_printf("\n");
-
- if (nvlist_lookup_string(nvl, FM_CLASS, &class) == 0)
- c = fm_printf(0, c, zfs_zevent_cols, "%s", class);
-
- if (fm_nvprintr(nvl, 0, c, zfs_zevent_cols) != 0)
- console_printf("\n");
-
- console_printf("\n");
-}
-
static zevent_t *
zfs_zevent_alloc(void)
{
@@ -542,9 +238,6 @@ zfs_zevent_post(nvlist_t *nvl, nvlist_t *detector, zevent_cb_t *cb)
goto out;
}
- if (zfs_zevent_console)
- fm_nvprint(nvl);
-
ev = zfs_zevent_alloc();
if (ev == NULL) {
atomic_inc_64(&erpt_kstat_data.erpt_dropped.value.ui64);
@@ -1673,9 +1366,3 @@ fm_fini(void)
ZFS_MODULE_PARAM(zfs_zevent, zfs_zevent_, len_max, INT, ZMOD_RW,
"Max event queue length");
-
-ZFS_MODULE_PARAM(zfs_zevent, zfs_zevent_, cols, INT, ZMOD_RW,
- "Max event column width");
-
-ZFS_MODULE_PARAM(zfs_zevent, zfs_zevent_, console, INT, ZMOD_RW,
- "Log events to the console");