All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Joel Granados <j.granados@samsung.com>
Cc: Kees Cook <keescook@chromium.org>,
	Iurii Zaikin <yzaikin@google.com>,
	willy@infradead.org, josh@joshtriplett.org,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	netdev@vger.kernel.org
Subject: Re: [PATCH 00/14] sysctl: Add a size argument to register functions in sysctl
Date: Wed, 26 Jul 2023 11:15:40 -0700	[thread overview]
Message-ID: <ZMFizKFkVxUFtSqa@bombadil.infradead.org> (raw)
In-Reply-To: <20230726140635.2059334-1-j.granados@samsung.com>

On Wed, Jul 26, 2023 at 04:06:20PM +0200, Joel Granados wrote:
> What?
> These commits set things up so we can start removing the sentinel elements.

Yes but the why must explained right away.

> Why?
> This is part of the push to trim down kernel/sysctl.c by moving the large array
> that was causing merge conflicts. 

Let me elaborate on that:

While the move moving over time of array elements out of kernel/sysctl.c
to their own place helps merge conflicts this patch set does not help
with that in and of itself, what it does is help make sure the move of
sysctls to their own files does not bloat the kernel more, and in fact
helps reduce the overall build time size of the kernel and run time
memory consumed by the kernel by about ~64 bytes per array.

Without this patch set each time we moved a set of sysctls out of
kernel/sysctl.c to its own subsystem we'd have to add a new sentinel
element (an empty sysctl entry), and while that helps clean up
kernel/sysctl.c to avoid merge conflicts, it also bloats the kernel
by about 64 bytes on average each time.

We can do better. We can make those moves *not* have a size penalty, and
all around also reduce the build / run time of the kernel.

*This* is the why, that if we don't do this the cleanup of
kernel/sysctl.c ends up slowly bloating the kernel. Willy had
suggested we instead remove the sentinel so that each move does not
incur a size penalty, but also that in turn reduces the size of the
kernel at build time / run time by a ballpark about ~64 bytes per
array.

Then the following is more details about estimates of overall size
savings, it's not miscellaneous information at all, it's very relevant
information to this patch set.

> Misc:
> A consequence of eventually removing all the sentinels (64 bytes per sentinel)
> is the bytes we save. Here I include numbers for when all sentinels are removed
> to contextualize this chunk
>   * bloat-o-meter:
>     The "yesall" configuration results save 9158 bytes (you can see the output here
>     https://lore.kernel.org/all/20230621091000.424843-1-j.granados@samsung.com/.
>     The "tiny" configuration + CONFIG_SYSCTL save 1215 bytes (you can see the
>     output here [2])
>   * memory usage:
>     As we no longer need the sentinel element within proc_sysctl.c, we save some
>     bytes in main memory as well. In my testing kernel I measured a difference of
>     6720 bytes. I include the way to measure this in [1]

  Luis

  parent reply	other threads:[~2023-07-26 18:15 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20230726140648eucas1p29a92c80fb28550e2087cd0ae190d29bd@eucas1p2.samsung.com>
2023-07-26 14:06 ` [PATCH 00/14] sysctl: Add a size argument to register functions in sysctl Joel Granados
     [not found]   ` <CGME20230726140650eucas1p1f5b2aa9dd8f90989c881f0a2e682b9eb@eucas1p1.samsung.com>
2023-07-26 14:06     ` [PATCH 01/14] sysctl: Prefer ctl_table_header in proc_sysctl Joel Granados
     [not found]   ` <CGME20230726140652eucas1p2a2ac2dd74986bd9ace8380d6f51024ff@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 02/14] sysctl: Use ctl_table_header in list_for_each_table_entry Joel Granados
     [not found]   ` <CGME20230726140653eucas1p2e234b7cd0af5dc506bd27399b84292a6@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 03/14] sysctl: Add ctl_table_size to ctl_table_header Joel Granados
2023-07-28 10:48       ` Simon Horman
2023-07-31 12:10         ` Joel Granados
     [not found]   ` <CGME20230726140655eucas1p1c71c8de9edc8441b5262c936731b91a2@eucas1p1.samsung.com>
2023-07-26 14:06     ` [PATCH 04/14] sysctl: Add size argument to init_header Joel Granados
     [not found]   ` <CGME20230726140656eucas1p26cd9da21663d25b51dda75258aaa3b55@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 05/14] sysctl: Add a size arg to __register_sysctl_table Joel Granados
2023-07-28 10:51       ` Simon Horman
2023-07-28 16:08         ` Joel Granados
     [not found]   ` <CGME20230726140659eucas1p2c3cd9f57dd13c71ddeb78d2480587e72@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 06/14] sysctl: Add size to register_sysctl Joel Granados
2023-07-26 17:58       ` Luis Chamberlain
2023-07-27 12:22         ` Joel Granados
2023-07-27 12:22           ` Joel Granados
2023-07-27 15:42           ` Luis Chamberlain
2023-07-27 15:42             ` Luis Chamberlain
2023-07-28  7:41             ` Joel Granados
2023-07-28  7:41               ` Joel Granados
     [not found]   ` <CGME20230726140700eucas1p1e6b16e884362ebec50f6712b3f11a533@eucas1p1.samsung.com>
2023-07-26 14:06     ` [PATCH 07/14] sysctl: Add size arg to __register_sysctl_init Joel Granados
2023-07-28 10:56       ` Simon Horman
2023-07-28 16:11         ` Joel Granados
     [not found]   ` <CGME20230726140702eucas1p20c75fc21d675ea267dd2ad4ebd6e60b4@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 08/14] sysctl: Add size to register_net_sysctl function Joel Granados
     [not found]   ` <CGME20230726140703eucas1p2786577bcc67d5ae434671dac11870c60@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 09/14] ax.25: Update to register_net_sysctl_sz Joel Granados
2023-07-26 18:00       ` Luis Chamberlain
2023-07-27 12:31         ` Joel Granados
2023-07-27 12:31           ` Joel Granados
2023-07-27 15:44           ` Luis Chamberlain
2023-07-28  7:35             ` Joel Granados
2023-07-28  7:35               ` Joel Granados
2023-07-28 18:16               ` Luis Chamberlain
2023-07-31  7:09                 ` Joel Granados
2023-07-31  7:09                   ` Joel Granados
2023-07-27 15:38         ` Joel Granados
2023-07-27 15:38           ` Joel Granados
2023-07-27 15:50           ` Luis Chamberlain
     [not found]   ` <CGME20230726140706eucas1p1b11e5f0bd17f0de19af9608cbd8d17f3@eucas1p1.samsung.com>
2023-07-26 14:06     ` [PATCH 10/14] netfilter: " Joel Granados
2023-07-26 14:06       ` [Bridge] " Joel Granados
2023-07-26 18:01       ` Luis Chamberlain
2023-07-26 18:01         ` [Bridge] " Luis Chamberlain
     [not found]   ` <CGME20230726140709eucas1p2033d64aec69a1962fd7e64c57ad60adc@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 11/14] networking: " Joel Granados
2023-07-26 18:05       ` Luis Chamberlain
2023-07-27  0:33         ` David Ahern
2023-07-27 12:33         ` Joel Granados
2023-07-28  7:08         ` Joel Granados
     [not found]   ` <CGME20230726140711eucas1p25a947afeef5593e21578f778355db192@eucas1p2.samsung.com>
2023-07-26 14:06     ` [PATCH 12/14] vrf: " Joel Granados
     [not found]   ` <CGME20230726140712eucas1p1bc7b2d150482936d974ceba9c51d7bc4@eucas1p1.samsung.com>
2023-07-26 14:06     ` [PATCH 13/14] sysctl: SIZE_MAX->ARRAY_SIZE in register_net_sysctl Joel Granados
     [not found]   ` <CGME20230726140714eucas1p186bad44daf14c4c8c93f9aaf52deade5@eucas1p1.samsung.com>
2023-07-26 14:06     ` [PATCH 14/14] sysctl: Use size as stopping criteria for list macro Joel Granados
2023-07-26 18:15   ` Luis Chamberlain [this message]
2023-07-27 11:43     ` [PATCH 00/14] sysctl: Add a size argument to register functions in sysctl Joel Granados
2023-07-27 15:39       ` Luis Chamberlain
2023-07-28  7:04         ` Joel Granados

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=ZMFizKFkVxUFtSqa@bombadil.infradead.org \
    --to=mcgrof@kernel.org \
    --cc=j.granados@samsung.com \
    --cc=josh@joshtriplett.org \
    --cc=keescook@chromium.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=willy@infradead.org \
    --cc=yzaikin@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.