[PATCH makedumpfile v2 0/9] Improvements to makedumpfile extensions, plus userspace stack tracing extension
HAGIO KAZUHITO(萩尾 一仁)
k-hagio-ab at nec.com
Thu Aug 27 17:55:37 PDT 2026
On 2026/08/25 8:07, Tao Liu wrote:
> Hi Stephen,
>
> I have tested the patchset upon my filtering extension, working good!
> And I agree with your current PG_INCLUDE_HEAD design, let's go with
> this.
>
> Reviewed-by: Tao Liu <ltao at redhat.com>
Hi Stephen, Tao,
thank you for the v2 patch set and reviewing.
I understood that your current extensions don't need that flexibility,
so I agree to stop a premature enhancement at this time.
The patch set looks good to me and tested ok, I've applied Patch 1 to 7
with Tao's Reviewed-by tag and a few of comment style tweaks.
Thanks,
Kazu
>
> Thanks,
> Tao Liu
>
> On Fri, Aug 21, 2026 at 11:31 AM Stephen Brennan
> <stephen.s.brennan at oracle.com> wrote:
>>
>> Hello all,
>>
>> This is v2 of my series of improvements for makedumpfile extensions.
>> v1 can be found here: https://lore.kernel.org/kexec/20260714004550.3698175-1-stephen.s.brennan@oracle.com/
>>
>> There have only been a few changes from v1:
>> - Updated extension/sample.c to use the new API in patch 3.
>> - Reordered and reworded the extension retained pages statistic per Tao's
>> suggestion, so that it is more clear.
>> - Included a more complete commit message in patch 7.
>> - In patch 1, removed the "nr_pages = 1" when extensions return PG_EXCLUDE.
>> - Significantly reworded patch 1's commit message to explain the different cases
>> and the alternative approach.
>>
>> Notable improvements in the "userstack.c" extension are:
>> - Leverage "detect_cycle.h" API to apply Brent's algorithm for cycle detection
>> in linked list iteration, to avoid infinite loops while iterating tasks &
>> threads on corrupt vmcores.
>> - Set a limit to the number of retained anon_vma entries, to avoid hitting OOM
>> issues in case of a huge vmcore or a bug in the extension.
>>
>> As discussed on v1, the final two patches containing the extensions are not to
>> be merged. I will publish them in a Github repository as soon as I can get it
>> arranged with my employer. They are more for demonstration of the API and
>> continued sharing until the repository is available.
>>
>> The major discussion on v1 was on patch 4, dealing with how extensions are
>> called, between:
>>
>> (a) Extensions are called for all base pages, and their decisions may conflict
>> with the head page decision.
>> (b) Extensions are not called for tail pages, and the head page decision is used
>> instead.
>>
>> As I explained in my last reply, I believe that (b) is still the best way. It is
>> less complex than (a). It is also more efficient, because makedumpfile today
>> skips processing many excluded tail pages, which adds up for large systems with
>> many huge pages. We do not have any extension which requires any policy more
>> complex than PG_INCLUDE_HEAD.
>>
>> - elfheader requires PG_INCLUDE_HEAD
>> - userstack only uses PG_INCLUDE. I could imagine potentially wanting to include
>> just the sub-pages of compound pages that are actually used by the stack. But
>> it hasn't been necessary so far.
>> - amdgpu buffers may be compound pages but if they are, then the entire page
>> would be excluded.
>>
>> I do have an implementation of (a) as I showed in the thread. If I'm wrong here,
>> I can always fall back to that.
>>
>> Thank you,
>> 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/list.h | 106 ++++++++++++
>> extensions/sample.c | 2 +-
>> extensions/userstack.c | 351 ++++++++++++++++++++++++++++++++++++++++
>> extensions/vma_mtree.c | 140 ++++++++++++++++
>> extensions/vma_mtree.h | 7 +
>> extensions/vma_rbtree.c | 56 +++++++
>> extensions/vma_rbtree.h | 12 ++
>> makedumpfile.c | 189 +++++++++-------------
>> makedumpfile.h | 78 ++++++++-
>> 13 files changed, 931 insertions(+), 131 deletions(-)
>> create mode 100644 extensions/elfheader.c
>> create mode 100644 extensions/list.h
>> 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.52.0
>>
More information about the kexec
mailing list