[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