Re: [RFC][PATCH] panic: lib: Add TAINT for FAULT_INJECTION
From: Andrew Morton
Date: Thu Apr 10 2025 - 16:54:21 EST
On Thu, 10 Apr 2025 14:43:59 -0400 Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> From: Steven Rostedt <rostedt@xxxxxxxxxxx>
>
> There's been several times where syzbot reports a bug that was caused by a
> fault injection, but it doesn't report this fact in its email reports.
> The bug report could happen in code that wasn't involved with the fault
> injection due to the code that faulted not cleaning up things properly,
> leading to an unstable kernel, which in turn can trigger issues elsewhere
> that doesn't have a bug (much like a proprietary module could do).
>
> It would be very useful if the syzbot report notified the developer that
> the test had injected faults into the kernel.
>
> Introduce a new taint flag 'V' that gets set when a fault injection takes
> place. (Note, there's not many taint flags left, so 'V' looked as good as
> any other value).
>
> This will let the syzbot see that the kernel had a fault injection during
> the test and can report that it happened when sending out its emails.
>
> It may also be useful for other bug reports.
Seems sane. Does any userspace tooling need an update for this?
> --- a/lib/fault-inject.c
> +++ b/lib/fault-inject.c
> @@ -176,6 +176,9 @@ bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags)
> if (atomic_read(&attr->times) != -1)
> atomic_dec_not_zero(&attr->times);
>
> + pr_notice_once("Tainting kernel with TAINT_FAULT_INJECTION\n");
> + add_taint(TAINT_FAULT_INJECTION, LOCKDEP_STILL_OK);
if (pr_notice_once("Tainting kernel with TAINT_FAULT_INJECTION\n"))
add_taint(TAINT_FAULT_INJECTION, LOCKDEP_STILL_OK);
perhaps?
> return true;
> }
>
> --
> 2.47.2