Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Brennan <stephen.s.brennan@oracle.com>
To: yamazaki-msmt@nec.com, k-hagio-ab@nec.com, kexec@lists.infradead.org
Cc: ltao@redhat.com
Subject: Re: [PATCH makedumpfile 0/9] Improvements to makedumpfile extensions, plus userspace stack tracing extension
Date: Mon, 03 Aug 2026 08:55:45 -0700	[thread overview]
Message-ID: <8733wv42ri.fsf@oracle.com> (raw)
In-Reply-To: <20260714004550.3698175-1-stephen.s.brennan@oracle.com>

Hello all,

Just a gentle ping on this series.

Thanks,
Stephen

Stephen Brennan <stephen.s.brennan@oracle.com> writes:
> Hello all,
>
> Building on Tao Liu's excellent work for makedumpfile extensions, I'd like to
> share some incremental improvements to the extension system, as well as my own
> two extensions which enable userspace stack tracing. There are three topics
> related to the core makedumpfile extension system which are addressed here:
>
> 1. Tail pages handling. As patch 1 explains, extensions currently get called for
> tail pages, but their decisions are not respected. I believe the best approach
> is to only call extensions for the head page, but allow extensions to return a
> decision related to just a subset of the pages. To this end, patch 7 adds
> PG_INCLUDE_HEAD to include just the head page (leaving the rest up to the
> default policy), and patch 9 shows the elfheader extension which uses that
> functionality.
>
> 2. Counting pages included by extensions. This is done by patch 4. It alters the
> logic because it's really helpful to know whether a page would have been
> included by makedumpfile's dump-level filtering anyway, so we only count the
> additional pages.
>
> 3. Sharing makedumpfile's logic and knowledge about page metadata. Currently,
> extensions just get a "pcache" pointer, which means they must redo whatever
> logic makedumpfile has already done, in order to get information like
> compound_order. Patches 3, 5, and 6 factor out the page metadata into a new
> struct pginfo, which gets passed to extensions, and it also makes more of the
> helpers like "isSlab()" usable with this pointer.
>
> With those improvements, the final two patches (8 & 9) implement a pair of
> extensions that are useful for including a minimal amount of information which
> can be used to do stack traces of the userspace processes in a vmcore. The
> "userstack" extension includes the stack memory itself for each thread, and the
> "elfheader" extension includes the first page of mapped ELF files, so that ELF
> build IDs can be identified from the vmcore.
>
> My testing so far:
> - Live testing (/proc/kcore) x86_64 on Oracle UEK 8 (6.12.x based)
> - Refiltering on vmcores generated from UEK8, 7 (5.15.x based), 6 (5.4.x based)
> - Using the resulting filtered vmcores with drgn's contrib/pstack.py to generate
>   userspace stack traces.
>
> I still have significantly more testing to do and then share out:
> - Testing in kexec environment
> - Testing with upstream kernels, also verifying in a Fedora userspace
> - Sharing runtime and size comparisons with different workloads
>
> Despite the limited testing, I wanted to share these patches as they are,
> because I think the improvements for the core extensions framework are useful
> already, and don't require as much verification.
>
> For the extensions themselves, I would like to consider merging them as well, if
> there is interest. I think it would be useful for makedumpfile to contain shared
> extensions, including those for the GPU buffers which Tao Liu was working on, as
> well as the userspace stack tracing ones which I'm sharing.
>
> Thanks,
> Stephen
>
> Stephen Brennan (9):
>   Do not call extensions for tail pages
>   Honor CFLAGS in extension/Makefile
>   Share page information with extension callbacks
>   Introduce a stat for pages retained by extension
>   Move page checks into makedumpfile.h
>   Simplify arguments for page checks
>   Add PG_INCLUDE_HEAD extension return status
>   Add userstack extension
>   Add elfheader extension
>
>  extension.c             |  10 +-
>  extension.h             |  10 +-
>  extensions/Makefile     |   8 +-
>  extensions/elfheader.c  |  93 ++++++++++++
>  extensions/userstack.c  | 325 ++++++++++++++++++++++++++++++++++++++++
>  extensions/vma_mtree.c  | 140 +++++++++++++++++
>  extensions/vma_mtree.h  |   7 +
>  extensions/vma_rbtree.c |  56 +++++++
>  extensions/vma_rbtree.h |  12 ++
>  makedumpfile.c          | 188 +++++++++--------------
>  makedumpfile.h          |  78 +++++++++-
>  11 files changed, 798 insertions(+), 129 deletions(-)
>  create mode 100644 extensions/elfheader.c
>  create mode 100644 extensions/userstack.c
>  create mode 100644 extensions/vma_mtree.c
>  create mode 100644 extensions/vma_mtree.h
>  create mode 100644 extensions/vma_rbtree.c
>  create mode 100644 extensions/vma_rbtree.h
>
> -- 
> 2.47.3


  parent reply	other threads:[~2026-08-03 16:14 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-14  0:45 [PATCH makedumpfile 0/9] Improvements to makedumpfile extensions, plus userspace stack tracing extension Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 1/9] Do not call extensions for tail pages Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 2/9] Honor CFLAGS in extension/Makefile Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 3/9] Share page information with extension callbacks Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 4/9] Introduce a stat for pages retained by extension Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 5/9] Move page checks into makedumpfile.h Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 6/9] Simplify arguments for page checks Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 7/9] Add PG_INCLUDE_HEAD extension return status Stephen Brennan
2026-08-07 16:24   ` Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 8/9] Add userstack extension Stephen Brennan
2026-07-14  0:45 ` [PATCH makedumpfile 9/9] Add elfheader extension Stephen Brennan
2026-08-03 15:55 ` Stephen Brennan [this message]
2026-08-04  4:43   ` [PATCH makedumpfile 0/9] Improvements to makedumpfile extensions, plus userspace stack tracing extension Tao Liu
2026-08-07  1:52 ` HAGIO KAZUHITO(萩尾 一仁)
2026-08-07  7:57   ` Tao Liu
2026-08-07 21:24     ` Stephen Brennan
2026-08-08  4:44       ` HAGIO KAZUHITO(萩尾 一仁)
2026-08-11  6:11         ` Tao Liu

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=8733wv42ri.fsf@oracle.com \
    --to=stephen.s.brennan@oracle.com \
    --cc=k-hagio-ab@nec.com \
    --cc=kexec@lists.infradead.org \
    --cc=ltao@redhat.com \
    --cc=yamazaki-msmt@nec.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox