From d6701b6c8ccf35c66d357fe02494d0f60ee62f4e Mon Sep 17 00:00:00 2001 From: Enji Cooper Date: Wed, 24 Jun 2020 18:51:01 +0000 Subject: [PATCH] Add `kern.features.witness` Adding `kern.features.witness` helps expose whether or not the kernel has `options WITNESS` enabled, so the `feature_present(3)` API can be used to query whether or not witness(9) is built into the kernel. This support is helpful with userspace applications (generally speaking, tests), as it can be queried to determine whether or not tests related to WITNESS should be run. MFC after: 1 week Reviewed by: cem, darrick.freebsd_gmail.com Differential Revision: https://reviews.freebsd.org/D25302 Sponsored by: DellEMC Isilon --- sys/kern/subr_witness.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/subr_witness.c b/sys/kern/subr_witness.c index 8fe03e9fb432..9ed7c7f3b998 100644 --- a/sys/kern/subr_witness.c +++ b/sys/kern/subr_witness.c @@ -361,6 +361,8 @@ static int witness_output(const char *fmt, ...) __printflike(1, 2); static int witness_voutput(const char *fmt, va_list ap) __printflike(1, 0); static void witness_setflag(struct lock_object *lock, int flag, int set); +FEATURE(witness, "kernel has witness(9) support"); + static SYSCTL_NODE(_debug, OID_AUTO, witness, CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, "Witness Locking");