]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
printk: ringbuffer: Explain why the KUnit test ignores failed writes
authorPetr Mladek <pmladek@suse.com>
Wed, 2 Jul 2025 09:51:55 +0000 (11:51 +0200)
committerPetr Mladek <pmladek@suse.com>
Thu, 10 Jul 2025 15:11:57 +0000 (17:11 +0200)
commit254e8fb5e67643a19a8dd6e142262ec83b30c3c7
treecab54922be8992be38078df31e1c400a6916b8b2
parent5ea2bcdfbf46fc3aac239ea371a9561053cc977a
printk: ringbuffer: Explain why the KUnit test ignores failed writes

The KUnit test ignores prb_reserve() failures on purpose. It tries
to push the ringbuffer beyond limits.

Note that it is a know problem that writes might fail in this situation.
printk() tries to prevent this problem by:

  + allocating big enough data buffer, see log_buf_add_cpu().

  + allocating enough descriptors by using small enough average
    record, see PRB_AVGBITS.

  + storing the record with disabled interrupts, see vprintk_store().

Also the amount of printk() messages is always somehow bound in
practice. And they are serialized when they are printed from
many CPUs on purpose, for example, when printing backtraces.

Reviewed-by: John Ogness <john.ogness@linutronix.de>
Reviewed-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
Link: https://patch.msgid.link/20250702095157.110916-2-pmladek@suse.com
Signed-off-by: Petr Mladek <pmladek@suse.com>
kernel/printk/printk_ringbuffer_kunit_test.c