6
[PATCH 0/4] Printbufs & shrinker OOM reporting
source link: https://lwn.net/ml/linux-kernel/[email protected]/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
[PATCH 0/4] Printbufs & shrinker OOM reporting
Thread information [Search the linux-kernel archive]
From: | Kent Overstreet <kent.overstreet-AT-gmail.com> | |
To: | linux-kernel-AT-vger.kernel.org, linux-mm-AT-kvack.org, linux-fsdevel-AT-vger.kernel.org | |
Subject: | [PATCH 0/4] Printbufs & shrinker OOM reporting | |
Date: | Thu, 21 Apr 2022 19:48:24 -0400 | |
Message-ID: | <[email protected]> | |
Cc: | Kent Overstreet <kent.overstreet-AT-gmail.com>, roman.gushchin-AT-linux.dev, hannes-AT-cmpxchg.org |
Debugging OOMs has been one of my sources of frustration, so this patch series is an attempt to do something about it. The first patch in the series is something I've been slowly evolving in bcachefs for years: simple heap allocated strings meant for appending to and building up structured log/error messages. They make it easy and straightforward to write pretty-printers for everything, which in turn makes good logging and error messages something that just happens naturally. We want it here because that means the reporting I'm adding to shrinkers can be used by both OOM reporting, and for the sysfs (or is it debugfs now) interface that Roman is adding. This patch series also: - adds OOM reporting on shrinkers, reporting on top 10 shrinkers (in sorted order!) - changes slab reporting to be always-on, also reporting top 10 slabs in sorted order - starts centralizing OOM reporting in mm/show_mem.c The last patch in the series is only a demonstration of how to implement the shrinker .to_text() method, since bcachefs isn't upstream yet. Kent Overstreet (4): lib/printbuf: New data structure for heap-allocated strings mm: Add a .to_text() method for shrinkers mm: Centralize & improve oom reporting in show_mem.c bcachefs: shrinker.to_text() methods fs/bcachefs/btree_cache.c | 18 ++- fs/bcachefs/btree_key_cache.c | 18 ++- include/linux/printbuf.h | 140 ++++++++++++++++++ include/linux/shrinker.h | 5 + lib/Makefile | 4 +- lib/printbuf.c | 271 ++++++++++++++++++++++++++++++++++ mm/Makefile | 2 +- mm/oom_kill.c | 23 --- {lib => mm}/show_mem.c | 14 ++ mm/slab.h | 6 +- mm/slab_common.c | 53 ++++++- mm/vmscan.c | 75 ++++++++++ 12 files changed, 587 insertions(+), 42 deletions(-) create mode 100644 include/linux/printbuf.h create mode 100644 lib/printbuf.c rename {lib => mm}/show_mem.c (78%) -- 2.35.2
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK