* [PATCH v3] xfs: allow setting full range of panic tags
@ 2023-02-07 6:22 Donald Douwsma
2023-02-09 2:40 ` Darrick J. Wong
2023-02-10 0:02 ` Dave Chinner
0 siblings, 2 replies; 3+ messages in thread
From: Donald Douwsma @ 2023-02-07 6:22 UTC (permalink / raw)
To: linux-xfs; +Cc: Donald Douwsma
xfs will not allow combining other panic masks with
XFS_PTAG_VERIFIER_ERROR.
# sysctl fs.xfs.panic_mask=511
sysctl: setting key "fs.xfs.panic_mask": Invalid argument
fs.xfs.panic_mask = 511
Update to the maximum value that can be set to allow the full range of
masks. Do this using a mask of possible values to prevent this happening
again as suggested by Darrick.
Fixes: d519da41e2b7 ("xfs: Introduce XFS_PTAG_VERIFIER_ERROR panic mask")
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
---
Documentation/admin-guide/xfs.rst | 2 +-
fs/xfs/xfs_error.h | 12 +++++++++++-
fs/xfs/xfs_globals.c | 3 ++-
3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/Documentation/admin-guide/xfs.rst b/Documentation/admin-guide/xfs.rst
index 8de008c0c5ad..e2561416391c 100644
--- a/Documentation/admin-guide/xfs.rst
+++ b/Documentation/admin-guide/xfs.rst
@@ -296,7 +296,7 @@ The following sysctls are available for the XFS filesystem:
XFS_ERRLEVEL_LOW: 1
XFS_ERRLEVEL_HIGH: 5
- fs.xfs.panic_mask (Min: 0 Default: 0 Max: 256)
+ fs.xfs.panic_mask (Min: 0 Default: 0 Max: 511)
Causes certain error conditions to call BUG(). Value is a bitmask;
OR together the tags which represent errors which should cause panics:
diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h
index dbe6c37dc697..0b9c5ba8a598 100644
--- a/fs/xfs/xfs_error.h
+++ b/fs/xfs/xfs_error.h
@@ -75,7 +75,7 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
/*
* XFS panic tags -- allow a call to xfs_alert_tag() be turned into
- * a panic by setting xfs_panic_mask in a sysctl.
+ * a panic by setting fs.xfs.panic_mask in a sysctl.
*/
#define XFS_NO_PTAG 0u
#define XFS_PTAG_IFLUSH (1u << 0)
@@ -88,6 +88,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
#define XFS_PTAG_FSBLOCK_ZERO (1u << 7)
#define XFS_PTAG_VERIFIER_ERROR (1u << 8)
+#define XFS_PTAG_MASK (XFS_PTAG_IFLUSH | \
+ XFS_PTAG_LOGRES | \
+ XFS_PTAG_AILDELETE | \
+ XFS_PTAG_ERROR_REPORT | \
+ XFS_PTAG_SHUTDOWN_CORRUPT | \
+ XFS_PTAG_SHUTDOWN_IOERROR | \
+ XFS_PTAG_SHUTDOWN_LOGERROR | \
+ XFS_PTAG_FSBLOCK_ZERO | \
+ XFS_PTAG_VERIFIER_ERROR)
+
#define XFS_PTAG_STRINGS \
{ XFS_NO_PTAG, "none" }, \
{ XFS_PTAG_IFLUSH, "iflush" }, \
diff --git a/fs/xfs/xfs_globals.c b/fs/xfs/xfs_globals.c
index 4d0a98f920ca..9edc1f2bc939 100644
--- a/fs/xfs/xfs_globals.c
+++ b/fs/xfs/xfs_globals.c
@@ -4,6 +4,7 @@
* All Rights Reserved.
*/
#include "xfs.h"
+#include "xfs_error.h"
/*
* Tunable XFS parameters. xfs_params is required even when CONFIG_SYSCTL=n,
@@ -15,7 +16,7 @@ xfs_param_t xfs_params = {
/* MIN DFLT MAX */
.sgid_inherit = { 0, 0, 1 },
.symlink_mode = { 0, 0, 1 },
- .panic_mask = { 0, 0, 256 },
+ .panic_mask = { 0, 0, XFS_PTAG_MASK},
.error_level = { 0, 3, 11 },
.syncd_timer = { 1*100, 30*100, 7200*100},
.stats_clear = { 0, 0, 1 },
--
2.31.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3] xfs: allow setting full range of panic tags
2023-02-07 6:22 [PATCH v3] xfs: allow setting full range of panic tags Donald Douwsma
@ 2023-02-09 2:40 ` Darrick J. Wong
2023-02-10 0:02 ` Dave Chinner
1 sibling, 0 replies; 3+ messages in thread
From: Darrick J. Wong @ 2023-02-09 2:40 UTC (permalink / raw)
To: Donald Douwsma; +Cc: linux-xfs
On Tue, Feb 07, 2023 at 05:22:09PM +1100, Donald Douwsma wrote:
> xfs will not allow combining other panic masks with
> XFS_PTAG_VERIFIER_ERROR.
>
> # sysctl fs.xfs.panic_mask=511
> sysctl: setting key "fs.xfs.panic_mask": Invalid argument
> fs.xfs.panic_mask = 511
>
> Update to the maximum value that can be set to allow the full range of
> masks. Do this using a mask of possible values to prevent this happening
> again as suggested by Darrick.
>
> Fixes: d519da41e2b7 ("xfs: Introduce XFS_PTAG_VERIFIER_ERROR panic mask")
> Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
Looks good to me, thanks!
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
--D
> ---
> Documentation/admin-guide/xfs.rst | 2 +-
> fs/xfs/xfs_error.h | 12 +++++++++++-
> fs/xfs/xfs_globals.c | 3 ++-
> 3 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/admin-guide/xfs.rst b/Documentation/admin-guide/xfs.rst
> index 8de008c0c5ad..e2561416391c 100644
> --- a/Documentation/admin-guide/xfs.rst
> +++ b/Documentation/admin-guide/xfs.rst
> @@ -296,7 +296,7 @@ The following sysctls are available for the XFS filesystem:
> XFS_ERRLEVEL_LOW: 1
> XFS_ERRLEVEL_HIGH: 5
>
> - fs.xfs.panic_mask (Min: 0 Default: 0 Max: 256)
> + fs.xfs.panic_mask (Min: 0 Default: 0 Max: 511)
> Causes certain error conditions to call BUG(). Value is a bitmask;
> OR together the tags which represent errors which should cause panics:
>
> diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h
> index dbe6c37dc697..0b9c5ba8a598 100644
> --- a/fs/xfs/xfs_error.h
> +++ b/fs/xfs/xfs_error.h
> @@ -75,7 +75,7 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
>
> /*
> * XFS panic tags -- allow a call to xfs_alert_tag() be turned into
> - * a panic by setting xfs_panic_mask in a sysctl.
> + * a panic by setting fs.xfs.panic_mask in a sysctl.
> */
> #define XFS_NO_PTAG 0u
> #define XFS_PTAG_IFLUSH (1u << 0)
> @@ -88,6 +88,16 @@ extern int xfs_errortag_clearall(struct xfs_mount *mp);
> #define XFS_PTAG_FSBLOCK_ZERO (1u << 7)
> #define XFS_PTAG_VERIFIER_ERROR (1u << 8)
>
> +#define XFS_PTAG_MASK (XFS_PTAG_IFLUSH | \
> + XFS_PTAG_LOGRES | \
> + XFS_PTAG_AILDELETE | \
> + XFS_PTAG_ERROR_REPORT | \
> + XFS_PTAG_SHUTDOWN_CORRUPT | \
> + XFS_PTAG_SHUTDOWN_IOERROR | \
> + XFS_PTAG_SHUTDOWN_LOGERROR | \
> + XFS_PTAG_FSBLOCK_ZERO | \
> + XFS_PTAG_VERIFIER_ERROR)
> +
> #define XFS_PTAG_STRINGS \
> { XFS_NO_PTAG, "none" }, \
> { XFS_PTAG_IFLUSH, "iflush" }, \
> diff --git a/fs/xfs/xfs_globals.c b/fs/xfs/xfs_globals.c
> index 4d0a98f920ca..9edc1f2bc939 100644
> --- a/fs/xfs/xfs_globals.c
> +++ b/fs/xfs/xfs_globals.c
> @@ -4,6 +4,7 @@
> * All Rights Reserved.
> */
> #include "xfs.h"
> +#include "xfs_error.h"
>
> /*
> * Tunable XFS parameters. xfs_params is required even when CONFIG_SYSCTL=n,
> @@ -15,7 +16,7 @@ xfs_param_t xfs_params = {
> /* MIN DFLT MAX */
> .sgid_inherit = { 0, 0, 1 },
> .symlink_mode = { 0, 0, 1 },
> - .panic_mask = { 0, 0, 256 },
> + .panic_mask = { 0, 0, XFS_PTAG_MASK},
> .error_level = { 0, 3, 11 },
> .syncd_timer = { 1*100, 30*100, 7200*100},
> .stats_clear = { 0, 0, 1 },
> --
> 2.31.1
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v3] xfs: allow setting full range of panic tags
2023-02-07 6:22 [PATCH v3] xfs: allow setting full range of panic tags Donald Douwsma
2023-02-09 2:40 ` Darrick J. Wong
@ 2023-02-10 0:02 ` Dave Chinner
1 sibling, 0 replies; 3+ messages in thread
From: Dave Chinner @ 2023-02-10 0:02 UTC (permalink / raw)
To: Donald Douwsma; +Cc: linux-xfs
On Tue, Feb 07, 2023 at 05:22:09PM +1100, Donald Douwsma wrote:
> xfs will not allow combining other panic masks with
> XFS_PTAG_VERIFIER_ERROR.
>
> # sysctl fs.xfs.panic_mask=511
> sysctl: setting key "fs.xfs.panic_mask": Invalid argument
> fs.xfs.panic_mask = 511
>
> Update to the maximum value that can be set to allow the full range of
> masks. Do this using a mask of possible values to prevent this happening
> again as suggested by Darrick.
>
> Fixes: d519da41e2b7 ("xfs: Introduce XFS_PTAG_VERIFIER_ERROR panic mask")
> Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
LGTM.
Reviewed-by: Dave Chinner <dchinner@redhat.com>
--
Dave Chinner
david@fromorbit.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-02-10 0:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-07 6:22 [PATCH v3] xfs: allow setting full range of panic tags Donald Douwsma
2023-02-09 2:40 ` Darrick J. Wong
2023-02-10 0:02 ` Dave Chinner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.