From: Vlastimil Babka <vbabka@suse.cz>
To: Arnd Bergmann <arnd@arndb.de>, Christoph Lameter <cl@linux.com>,
David Rientjes <rientjes@google.com>,
Joonsoo Kim <iamjoonsoo.kim@lge.com>,
Pekka Enberg <penberg@kernel.org>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>,
Roman Gushchin <roman.gushchin@linux.dev>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Matthew Wilcox <willy@infradead.org>,
patches@lists.linux.dev, linux-mm@kvack.org,
linux-kernel@vger.kernel.org,
Aaro Koskinen <aaro.koskinen@iki.fi>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Conor Dooley <conor@kernel.org>,
Damien Le Moal <damien.lemoal@opensource.wdc.com>,
Geert Uytterhoeven <geert@linux-m68k.org>,
Janusz Krzysztofik <jmkrzyszt@gmail.com>,
Jonas Bonn <jonas@southpole.se>,
Josh Triplett <josh@joshtriplett.org>,
Kees Cook <keescook@chromium.org>,
linux-arm-kernel@lists.infradead.org,
Linux-OMAP <linux-omap@vger.kernel.org>,
linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org,
openrisc@lists.librecores.org, Rich Felker <dalias@libc.org>,
Russell King <linux@armlinux.org.uk>,
Stafford Horne <shorne@gmail.com>,
Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>,
Tony Lindgren <tony@atomide.com>,
Yoshinori Sato <ysato@users.sourceforge.jp>
Subject: Re: [PATCH 00/12] Introduce CONFIG_SLUB_TINY and deprecate SLOB
Date: Tue, 22 Nov 2022 17:59:16 +0100 [thread overview]
Message-ID: <ab663f18-429a-7d86-f128-6db73fc07b8a@suse.cz> (raw)
In-Reply-To: <bc2f3ca9-e49a-4ca1-8b63-cbc7773d23d5@app.fastmail.com>
On 11/22/22 17:33, Arnd Bergmann wrote:
> On Mon, Nov 21, 2022, at 18:11, Vlastimil Babka wrote:
>>
>> this continues the discussion from [1]. Reasons to remove SLOB are
>> outlined there and no-one has objected so far. The last patch of this
>> series therefore deprecates CONFIG_SLOB and updates all the defconfigs
>> using CONFIG_SLOB=y in the tree.
>>
>> There is a k210 board with 8MB RAM where switching to SLUB caused issues
>> [2] and the lkp bot wasn't also happy about code bloat [3]. To address
>> both, this series introduces CONFIG_SLUB_TINY to perform some rather
>> low-hanging fruit modifications to SLUB to reduce its memory overhead.
>> This seems to have been successful at least in the k210 case [4]. I
>> consider this as an acceptable tradeoff for getting rid of SLOB.
>
> I agree that this is a great success for replacing SLOB on the
> smallest machines that have 32MB or less and have to run a
> a highly customized kernel, and this is probably enough to
> have a drop-in replacement without making any currently working
> system worse.
>
> On the other hand, I have the feeling that we may want something
> a bit less aggressive than this for machines that are slightly
> less constrained, in particular when a single kernel needs to
> scale from 64MB to 512MB, which can happen e.g. on OpenWRT.
> I have seen a number of reports over the years that suggest
> that new kernels handle fragmentation and low memory worse than
> old ones, and it would be great to improve that again.
I see. That would need to study such reports and see if the problem there is
actually SLUB, or the page allocator or something else entirely.
> I can imagine those machines wanting to use sysfs in general
> but not for the slab caches, so having a separate knob to
> configure out the sysfs stuff could be useful without having
> to go all the way to SLUB_TINY.
Right, but AFAIK that wouldn't save much except some text size and kobjects,
so probably negligible for >32MB?
> For the options that trade off performance against lower
> fragmentation (MIN/MAX_PARTIAL, KMALLOC_RECLAIM, percpu
> slabs), I wonder if it's possible to have a boot time
> default based on the amount of RAM per CPU to have a better
> tuned system on most cases, rather than having to go
> to one extreme or the other at compile time.
Possible for some of these things, but for others that brings us back to the
question what are the actual observed issues. If it's low memory in absolute
number of pages, these can help, but if it's fragmentation (and the kind if
RAM sizes should have page grouping by mobility enabled), ditching e.g. the
KMALLOC_RECLAIM could make it worse. Unfortunately some of these tradeoffs
can be rather unpredictable.
Thanks,
Vlastimil
> Arnd
>
> https://openwrt.org/toh/views/toh_standard_all?datasrt=target&dataflt%5B0%5D=availability_%3DAvailable%202021
next prev parent reply other threads:[~2022-11-22 16:59 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-21 17:11 Vlastimil Babka
2022-11-21 17:11 ` [PATCH 01/12] mm, slab: ignore hardened usercopy parameters when disabled Vlastimil Babka
2022-11-21 21:35 ` Kees Cook
2022-11-23 14:23 ` Vlastimil Babka
2022-11-24 11:16 ` Hyeonggon Yoo
2022-11-24 11:26 ` Vlastimil Babka
2022-11-24 12:33 ` Hyeonggon Yoo
2022-11-21 17:11 ` [PATCH 02/12] mm, slub: add CONFIG_SLUB_TINY Vlastimil Babka
2022-11-24 1:08 ` Roman Gushchin
2022-11-24 11:33 ` Hyeonggon Yoo
2022-11-25 7:55 ` Vlastimil Babka
2022-11-21 17:11 ` [PATCH 03/12] mm, slub: disable SYSFS support with CONFIG_SLUB_TINY Vlastimil Babka
2022-11-24 1:12 ` Roman Gushchin
2022-11-24 9:00 ` Vlastimil Babka
2022-11-21 17:11 ` [PATCH 04/12] mm, slub: retain no free slabs on partial list " Vlastimil Babka
2022-11-24 1:12 ` Roman Gushchin
2022-11-24 11:38 ` Hyeonggon Yoo
2022-11-21 17:11 ` [PATCH 05/12] mm, slub: lower the default slub_max_order " Vlastimil Babka
2022-11-24 1:16 ` Roman Gushchin
2022-11-24 11:40 ` Hyeonggon Yoo
2022-11-21 17:11 ` [PATCH 06/12] mm, slub: don't create kmalloc-rcl caches " Vlastimil Babka
2022-11-23 13:53 ` Vlastimil Babka
2022-11-24 12:06 ` Hyeonggon Yoo
2022-11-24 12:12 ` Vlastimil Babka
2022-11-24 12:55 ` Hyeonggon Yoo
2022-11-24 13:23 ` Hyeonggon Yoo
2022-11-24 14:25 ` Hyeonggon Yoo
2022-11-21 17:11 ` [PATCH 07/12] mm, slab: ignore SLAB_RECLAIM_ACCOUNT " Vlastimil Babka
2022-11-24 1:20 ` Roman Gushchin
2022-11-24 9:09 ` Vlastimil Babka
2022-11-24 9:21 ` Christoph Lameter
2022-11-27 23:11 ` Vlastimil Babka
2022-11-21 17:11 ` [PATCH 08/12] mm, slub: refactor free debug processing Vlastimil Babka
2022-11-27 10:18 ` Hyeonggon Yoo
2022-11-21 17:11 ` [PATCH 09/12] mm, slub: split out allocations from pre/post hooks Vlastimil Babka
2022-11-27 10:54 ` Hyeonggon Yoo
2022-11-27 23:01 ` Vlastimil Babka
2022-11-28 13:06 ` Hyeonggon Yoo
2022-11-21 17:12 ` [PATCH 10/12] mm, slub: remove percpu slabs with CONFIG_SLUB_TINY Vlastimil Babka
2022-11-27 11:05 ` Hyeonggon Yoo
2022-12-12 10:54 ` Vlastimil Babka
2022-12-12 13:11 ` Dennis Zhou
2022-12-13 3:04 ` Baoquan He
2022-12-13 14:02 ` Hyeonggon Yoo
2022-12-18 10:16 ` Hyeonggon Yoo
2022-11-21 17:12 ` [PATCH 11/12] mm, slub: don't aggressively inline " Vlastimil Babka
2022-11-28 13:19 ` Hyeonggon Yoo
2022-11-21 17:12 ` [PATCH 12/12] mm, slob: rename CONFIG_SLOB to CONFIG_SLOB_DEPRECATED Vlastimil Babka
2022-11-21 18:41 ` Aaro Koskinen
2022-11-21 19:42 ` Vlastimil Babka
2022-11-22 6:47 ` Damien Le Moal
2022-11-22 16:08 ` Arnd Bergmann
2022-11-24 1:21 ` Roman Gushchin
2022-12-02 17:59 ` Palmer Dabbelt
2022-12-05 12:25 ` Damien Le Moal
2022-12-13 13:41 ` Hyeonggon Yoo
2022-11-22 16:33 ` [PATCH 00/12] Introduce CONFIG_SLUB_TINY and deprecate SLOB Arnd Bergmann
2022-11-22 16:59 ` Vlastimil Babka [this message]
2022-11-22 17:15 ` Arnd Bergmann
2022-11-24 20:30 ` Mike Rapoport
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=ab663f18-429a-7d86-f128-6db73fc07b8a@suse.cz \
--to=vbabka@suse.cz \
--cc=42.hyeyoo@gmail.com \
--cc=aaro.koskinen@iki.fi \
--cc=akpm@linux-foundation.org \
--cc=arnd@arndb.de \
--cc=christophe.leroy@csgroup.eu \
--cc=cl@linux.com \
--cc=conor@kernel.org \
--cc=dalias@libc.org \
--cc=damien.lemoal@opensource.wdc.com \
--cc=geert@linux-m68k.org \
--cc=iamjoonsoo.kim@lge.com \
--cc=jmkrzyszt@gmail.com \
--cc=jonas@southpole.se \
--cc=josh@joshtriplett.org \
--cc=keescook@chromium.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-sh@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=openrisc@lists.librecores.org \
--cc=patches@lists.linux.dev \
--cc=penberg@kernel.org \
--cc=rientjes@google.com \
--cc=roman.gushchin@linux.dev \
--cc=shorne@gmail.com \
--cc=stefan.kristiansson@saunalahti.fi \
--cc=tony@atomide.com \
--cc=torvalds@linux-foundation.org \
--cc=willy@infradead.org \
--cc=ysato@users.sourceforge.jp \
/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®