mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kees Cook <kees@kernel.org>
To: Petr Mladek <pmladek@suse.com>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	David Gow <david@davidgow.net>,
	Brendan Higgins <brendan.higgins@linux.dev>,
	David Laight <david.laight.linux@gmail.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Rasmus Villemoes <linux@rasmusvillemoes.dk>,
	Sergey Senozhatsky <senozhatsky@chromium.org>,
	Jonathan Corbet <corbet@lwn.net>,
	John Ogness <john.ogness@linutronix.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 0/3] hexdump: Allow skipping identical lines
Date: Wed, 14 Oct 2026 21:38:37 -0700	[thread overview]
Message-ID: <202610142135.0326EA9C@keescook> (raw)
In-Reply-To: <as-iBP1781DVuZ7p@pathway.suse.cz>

On Wed, Oct 14, 2026 at 05:38:44PM +0200, Petr Mladek wrote:
> On Tue 2026-10-13 22:22:58, Andy Shevchenko wrote:
> > +Cc: KUnit maintainers + Kees
> > 
> > On Wed, Mar 19, 2025 at 05:08:09PM +0100, Miquel Raynal wrote:
> > > While working on NAND issues, I used print_hex_dump() a lot to compare
> > > data. But I am mostly working on embedded systems where the kernel
> > > messages go through a serial console. Sometimes network support is an
> > > option, sometimes not. Anyway, I often print buffers both in kernel
> > > space and user space to compare them, and they may be full of 0's or
> > > 1's, which means lines are repeated a lot in the output and this is slow
> > > *and* hard to compare.
> > > 
> > > I initially hacked into lib/hexdump.c for my own purpose and just
> > > discarded all the other users, but it felt like this might be a useful
> > > feature for others and decided to make it a public patch.
> > > 
> > > * First patch creates a helper named print_hex() with a prototype
> > >   containing a flags parameter, instead of an entry for the prefix type
> > >   and another entry for the ascii boolean. print_hex_dump() now
> > >   falls back to print_hex().
> > > * Second patch adds a new flag to possibly skip the identical lines.
> > > * Third patch is optional, and adds the offset at which the dump
> > >   finishes in case the last line to be printed would be skipped.
> > > 
> > > The Cc-list, as provided by get_maintainers.pl, was returning 330
> > > e-mail addresses which felt to much, so I ran the script only on the
> > > second patch (the printk/includes/debug/Doc changes). It gave this
> > > Cc-list which sounds more reasonable. Hopefully this is a smart move,
> > > otherwise let me know what you think would be best.
> > 
> > Sorry for the so late response. First of all, a bit of a background
> > development on my side. At some point a few months ago I asked John
> > Ogness to give me a private dive to the printk() guts. He explained
> > to me a lot about ow printk() circular buffer works and that the
> > implementation is nowadays done in the terms of circular buffer library
> > and printk() front-end. This gives a potential to get a clean solution
> > for the testing how printk() actually behaves.
> 
> I am curious what printk() features you would like to test.
> 
> > The main issue with the
> > real printk() is that the buffer it's using is defined globally and
> > for clean test cases the printk() can't be used. We discussed the way
> > of high-jacking that by linking an object file of printk() implementation
> > to the KUnit test, but it seems quite a tricky if ever achievable exercise.
> > 
> > Meanwhile Kees Cook seems found a nice workaround for the similar use case
> > in his recent patch series [1]. The idea is to register custom console and
> > provide a custom .write() method which is the heart of the solution. On
> > the writer side user prints something which has unique prefix, while the
> > console callback recognises that pattern and checks the rest of the line.
> 
> I ask because the solution used by Kees seems to be quite complicated
> and unreliable for the given purpose. In particular, printk() does
> only the best effort to flush messages on legacy consoles. And NBCON
> consoles drivers are even offloaded to a kthread by default as
> pointed out by John in the other mail.
> 
> It seems that Kees just want to check some particular printk() calls
> and what messages they print. It might be easier and more reliable
> to redirect printk() to an alternative implementation via a hook
> in vprintk() in kernel/printk/printk_safe.c.

Yeah, I was just trying to "prove" that seq_buf_do_printk() actually
put something onto the console (and to match up what was written and how
truncation behaved). :P I'm open to adjusting this however it should be...


-- 
Kees Cook

  reply	other threads:[~2026-10-15  4:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-03-19 16:08 Miquel Raynal
2025-03-19 16:08 ` [PATCH v3 1/3] hexdump: Simplify print_hex_dump() Miquel Raynal
2025-03-19 16:37   ` Andy Shevchenko
2025-03-19 17:53     ` Miquel Raynal
2025-03-19 16:08 ` [PATCH v3 2/3] hexdump: Allow skipping identical lines Miquel Raynal
2025-03-19 16:41   ` Andy Shevchenko
2025-03-19 18:08     ` Miquel Raynal
2025-03-19 16:08 ` [PATCH v3 3/3] hexdump: Print the prefix after the last line to show the dump is over Miquel Raynal
2025-03-19 16:44   ` Andy Shevchenko
2026-10-13 20:22 ` [PATCH v3 0/3] hexdump: Allow skipping identical lines Andy Shevchenko
2026-10-14  9:22   ` John Ogness
2026-10-14 15:38   ` Petr Mladek
2026-10-15  4:38     ` Kees Cook [this message]
2026-10-15  8:43       ` Miquel Raynal
2026-10-15 13:16         ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202610142135.0326EA9C@keescook \
    --to=kees@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=brendan.higgins@linux.dev \
    --cc=corbet@lwn.net \
    --cc=david.laight.linux@gmail.com \
    --cc=david@davidgow.net \
    --cc=john.ogness@linutronix.de \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@rasmusvillemoes.dk \
    --cc=miquel.raynal@bootlin.com \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=senozhatsky@chromium.org \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®