[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aHFlAB6paP2CU9Im@casper.infradead.org>
Date: Fri, 11 Jul 2025 20:24:48 +0100
From: Matthew Wilcox <willy@...radead.org>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: David Laight <david.laight.linux@...il.com>,
Martin Uecker <ma.uecker@...il.com>,
Alejandro Colomar <alx@...nel.org>, linux-mm@...ck.org,
linux-hardening@...r.kernel.org, Kees Cook <kees@...nel.org>,
Christopher Bazley <chris.bazley.wg14@...il.com>,
shadow <~hallyn/shadow@...ts.sr.ht>, linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>,
kasan-dev@...glegroups.com, Dmitry Vyukov <dvyukov@...gle.com>,
Alexander Potapenko <glider@...gle.com>,
Marco Elver <elver@...gle.com>, Christoph Lameter <cl@...ux.com>,
David Rientjes <rientjes@...gle.com>,
Vlastimil Babka <vbabka@...e.cz>,
Roman Gushchin <roman.gushchin@...ux.dev>,
Harry Yoo <harry.yoo@...cle.com>,
Andrew Clayton <andrew@...ital-domain.net>,
Rasmus Villemoes <linux@...musvillemoes.dk>,
Michal Hocko <mhocko@...e.com>, Al Viro <viro@...iv.linux.org.uk>,
Sam James <sam@...too.org>, Andrew Pinski <pinskia@...il.com>
Subject: Re: [RFC v5 6/7] sprintf: Add [v]sprintf_array()
On Fri, Jul 11, 2025 at 10:58:56AM -0700, Linus Torvalds wrote:
> That kind of "string buffer" obviously isn't useful for things like
> the printf family, but we do have others. Like "struct seq_buf", which
> already has "seq_buf_printf()" helpers.
>
> That's the one you probably should use for most kernel "print to
> buffer", but it has very few users despite not being complicated to
> use:
>
> struct seq_buf s;
> seq_buf_init(&s, buf, szie);
>
> and you're off to the races, and can do things like
>
> seq_buf_printf(&s, ....);
>
> without ever having to worry about overflows etc.
I actually wanted to go one step further with this (that's why I took
readpos out of seq_buf in d0ed46b60396). If you look at the guts of
vsprintf.c, it'd be much improved by using seq_buf internally instead
of passing around buf and end.
Once we've done that, maybe we can strip these annoying %pXYZ out
of vsprintf.c and use seq_buf routines like it's a StringBuilder (or
whatever other language/library convention you prefer).
Anyway, I ran out of time to work on it, but I still think it's
worthwhile. And then there'd be a lot more commonality between regular
printing and trace printing, which would be nice.
Powered by blists - more mailing lists