In message: [PATCH 0/3] clear_warn_once: add timed interval resetting
on 16/12/2020 Paul Gortmaker wrote:

> Bruce, Yocto kernel folks,
> 
> Here is an extension to a lesser known feature - making it easier to use
> in the case of pre-canned kernels and rootfs as we'd typically find in
> tmp/deploy/images from Yocto.
> 
> Have you've ever looked at a WARN_ONCE() or a printk_once() and wondered
> "How would I know if that really just happened as a fluke, or happens
> every 3am when cron runs, but I just only hear about it once?"
> 
> Well, the answer was added around v4.15 - in the form of a little known
> /sys/kernel/debug/clear_warn_once feature that lets you reset state to
> "freshly booted" for all the "once" type instances, in order to see if
> they happen again.
> 
> The problem is, that you need debugfs enabled/mounted, and you need to be
> able to ssh onto the target to reset.  Or you have to re-spin your rootfs
> to contain an rc.local to periodically reset for a rootfs that doesn't
> support interactive logins (as is fairly common for Yocto targets).
> 
> Here, we add an in-kernel timer based reset, and provide access to arming
> it with a kernel boot arg, so that it doesn't require kernel rebuilds, or
> rootfs image alterations.  In addition, the boot arg doesn't depend on
> debugfs, which is likely disabled to reduce the size and attack surface
> of embedded deployments.
> 
> I should note that this was sent to the printk maintainer recently, but
> he declined to merge it.  I won't try and summarize the reasons given
> here - but if people are at all interested in using this, I strongly
> suggest you go read the 0/3 thread and decide for yourself from the
> discussion on how many of the possible concerns floated are valid and
> worthy of consideration for your use case, or just in general.
> 
> https://lore.kernel.org/r/[email protected]/
> 
> That said, I think it is still useful for the kinds of deployments we see
> in Yocto, and indeed the request for something like this came from users
> of Yocto, hence why I'm offering it for inclusion in the Yocto kernels
> regardless.
> 
> There are two minor changes in the code here vs. that original posting.
> 
> 1) Make the user facing timer value minute based, instead of seconds.
> 
> 2) Make the boot arg use the same name as used in /sys/kernel/debug for
> consistency and ease of use.
> 
> I've tested on standard/base + defconfig on v5.4.82 in linux-yocto, and
> the rolling v5.10 baseline of linux-yocto-dev.  As it turns out, the git
> am of the v5.10 patches is hands free on the the v5.4 baseline, so there
> is no need to send two versions, and it also speaks to a minimal carrying
> cost going forward.

Thanks Paul,

I've pulled this into 5.10 and also put it in master of the kernel-cache
as a feature, so it will be carried along with any new versions that
I generate.

I held on 5.4 to let things soak a bit, but will revisit it in a couple
of weeks.

Bruce

> 
> Paul.
> 
> ---
> 
> Paul Gortmaker (3):
>   clear_warn_once: expand debugfs to include read support
>   clear_warn_once: bind a timer to written reset value
>   clear_warn_once: add a clear_warn_once= boot parameter
> 
>  .../admin-guide/clearing-warn-once.rst        |  9 +++
>  .../admin-guide/kernel-parameters.txt         |  8 ++
>  kernel/panic.c                                | 78 +++++++++++++++++--
>  3 files changed, 90 insertions(+), 5 deletions(-)
> 
> -- 
> 2.17.1
> 
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#9329): 
https://lists.yoctoproject.org/g/linux-yocto/message/9329
Mute This Topic: https://lists.yoctoproject.org/mt/79006228/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to