From: Rasmus Villemoes <linux@rasmusvillemoes.dk>
To: Petr Mladek <pmladek@suse.com>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: Marco Elver <elver@google.com>,
linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com,
linux-mm@kvack.org, Steven Rostedt <rostedt@goodmis.org>,
Sergey Senozhatsky <senozhatsky@chromium.org>,
Alexander Potapenko <glider@google.com>,
Dmitry Vyukov <dvyukov@google.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH v2 2/3] lib/vsprintf: Split out sprintf() and friends
Date: Mon, 7 Aug 2023 21:31:38 +0200 [thread overview]
Message-ID: <fdd7eb5d-2b76-d326-f059-5cdf652b5848@rasmusvillemoes.dk> (raw)
In-Reply-To: <ZNEHt564a8RCLWon@alley>
On 07/08/2023 17.03, Petr Mladek wrote:
> I agree that kernel.h is not the right place. But are there any
> numbers how much separate sprintf.h might safe?
>
> Maybe, we should not reinvent the wheel and get inspired by
> userspace.
>
> sprintf() and friends are basic functions which most people know
> from userspace. And it is pretty handy that the kernel variants
> are are mostly compatible as well.
>
> IMHO, it might be handful when they are also included similar way
> as in userspace. From my POV printk.h is like stdio.h. And we already
> have include/linux/stdarg.h where the v*print*() function might
> fit nicely.
>
> How does this sound, please?
No, please. Let's have a separate header for the functions defined in
vsprintf.c. We really need to trim our headers down to something more
manageable, and stop including everything from everywhere just because
$this little macro needs $that little inline function.
I did https://wildmoose.dk/header-bloat/ many moons ago, I'm sure it
looks even worse today. I also did some sparse-hackery to let it tell me
which macros/functions/types were declared/defined in a given .h file,
and then if some .c file included that .h file but didn't use any of
those, the #include could go away.
Sure, individually, moving the sprintf family out of kernel.h won't save
much (and, of course, nothing at all initially when we're forced to add
an include of that new header from kernel.h). But this technical debt
has crept in over many years, it's not going away in one or two
releases. And use of the sprintf family is very easy to grep for, so
it's a good low-hanging fruit where we should be able to make everybody
who needs one of them include the proper header, and then drop the
include from kernel.h.
Rasmus
next prev parent reply other threads:[~2023-08-07 19:31 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-05 17:50 [PATCH v2 0/3] lib/vsprintf: Rework header inclusions Andy Shevchenko
2023-08-05 17:50 ` [PATCH v2 1/3] lib/vsprintf: Sort headers alphabetically Andy Shevchenko
2023-08-07 14:31 ` Petr Mladek
2023-08-07 14:53 ` Sergey Senozhatsky
2023-08-07 15:00 ` Andy Shevchenko
2023-08-07 14:58 ` Andy Shevchenko
2023-08-07 19:47 ` Rasmus Villemoes
2023-08-14 15:33 ` Petr Mladek
2023-08-05 17:50 ` [PATCH v2 2/3] lib/vsprintf: Split out sprintf() and friends Andy Shevchenko
2023-08-05 18:43 ` Andrew Morton
2023-08-05 21:31 ` Andy Shevchenko
2023-08-08 12:55 ` Andy Shevchenko
2023-08-07 15:03 ` Petr Mladek
2023-08-07 15:09 ` Andy Shevchenko
2023-08-07 15:11 ` Andy Shevchenko
2023-08-07 15:13 ` Andy Shevchenko
2023-08-08 6:41 ` Petr Mladek
2023-08-08 12:47 ` Andy Shevchenko
2023-08-10 8:15 ` Petr Mladek
2023-08-10 9:09 ` Rasmus Villemoes
2023-08-10 13:17 ` Andy Shevchenko
2023-08-10 14:17 ` Rasmus Villemoes
2023-08-11 19:28 ` Steven Rostedt
2023-08-14 11:16 ` Andy Shevchenko
2023-08-14 15:16 ` Petr Mladek
2023-08-15 9:58 ` David Laight
2023-08-09 8:48 ` David Laight
2023-08-10 13:13 ` Andy Shevchenko
2023-08-14 8:12 ` David Laight
2023-08-14 12:28 ` 'Andy Shevchenko'
2023-08-08 2:24 ` Steven Rostedt
2023-08-08 12:49 ` Andy Shevchenko
2023-08-07 19:31 ` Rasmus Villemoes [this message]
2023-08-08 11:17 ` David Laight
2023-08-05 17:50 ` [PATCH v2 3/3] lib/vsprintf: Declare no_hash_pointers in sprintf.h Andy Shevchenko
2023-08-07 6:00 ` Marco Elver
2023-08-07 15:06 ` Petr Mladek
2023-08-07 15:27 ` Andy Shevchenko
2023-08-14 15:38 ` [PATCH v2 0/3] lib/vsprintf: Rework header inclusions Petr Mladek
2023-08-14 16:11 ` 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=fdd7eb5d-2b76-d326-f059-5cdf652b5848@rasmusvillemoes.dk \
--to=linux@rasmusvillemoes.dk \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=kasan-dev@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=senozhatsky@chromium.org \
/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