Kexec Archive on lore.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP
       [not found] <20260928-section_has_mem_map-v1-1-4129f6ba2838@kernel.org>
@ 2026-09-28 10:23 ` Dave Young
  2026-09-28 11:42   ` David Hildenbrand (Arm)
  0 siblings, 1 reply; 5+ messages in thread
From: Dave Young @ 2026-09-28 10:23 UTC (permalink / raw)
  To: David Hildenbrand (Arm), Andrew Morton, Baoquan He, David Carlier
  Cc: linux-kernel, linux-mm, kexec

On 9/28/26 4:48 PM, David Hildenbrand (Arm) wrote:
> The crash tool currently hardcodes SECTION_HAS_MEM_MAP, and makedumpfile
> needs similar information (although still relying on
> SECTION_MARKED_PRESENT, it should switch to SECTION_HAS_MEM_MAP).
> 
> Let's just export the value instead, so tools that work on vmcoreinfo
> will not have to guess.
> 
> Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
> ---
> Result of the discussion in reply to "[PATCH v2 00/13] mm/sparse: remove
> SECTION_MARKED_PRESENT and further cleanups" [1]
> 
> This patch can go in independently. It would be preferable if both
> go into the same kernel release ;)
> 
> [1] https://lore.kernel.org/r/20260921-b4-sparsemem_cleanups-v2-0-54d81d65e125@kernel.org 
> ---
>  kernel/vmcore_info.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/vmcore_info.c b/kernel/vmcore_info.c
> index 5a417f8a922a..7833a36064a8 100644
> --- a/kernel/vmcore_info.c
> +++ b/kernel/vmcore_info.c
> @@ -182,6 +182,7 @@ static int __init crash_save_vmcoreinfo_init(void)
>  	VMCOREINFO_STRUCT_SIZE(mem_section);
>  	VMCOREINFO_OFFSET(mem_section, section_mem_map);
>  	VMCOREINFO_NUMBER(SECTION_SIZE_BITS);
> +	VMCOREINFO_NUMBER(SECTION_HAS_MEM_MAP);
>  	VMCOREINFO_NUMBER(MAX_PHYSMEM_BITS);
>  #endif
>  	VMCOREINFO_STRUCT_SIZE(page);

Current crash code looks below:
#define SECTION_MARKED_PRESENT          (1UL<<0)
#define SECTION_HAS_MEM_MAP             (1UL<<1)
#define SECTION_IS_ONLINE               (1UL<<2)
#define SECTION_IS_EARLY                (1UL<<3)
#define SECTION_TAINT_ZONE_DEVICE       (1UL<<4)
#define SECTION_MAP_LAST_BIT            (1UL<<5)
#define SECTION_MAP_MASK                (~(SECTION_MAP_LAST_BIT-1))


And it does not match the kernel for below chunk with ifdef
#ifdef CONFIG_ZONE_DEVICE
        SECTION_TAINT_ZONE_DEVICE_BIT,
#endif
#ifdef CONFIG_SPARSEMEM_VMEMMAP_PREINIT
        SECTION_IS_VMEMMAP_PREINIT_BIT,
#endif

The last bit could be wrong in crash.  So all numbers should be exported in vmcoreinfo.

Thoughts?


ThanksDave


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP
  2026-09-28 10:23 ` [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP Dave Young
@ 2026-09-28 11:42   ` David Hildenbrand (Arm)
  2026-09-29  0:25     ` Dave Young
  0 siblings, 1 reply; 5+ messages in thread
From: David Hildenbrand (Arm) @ 2026-09-28 11:42 UTC (permalink / raw)
  To: Dave Young, Andrew Morton, Baoquan He, David Carlier
  Cc: linux-kernel, linux-mm, kexec

On 9/28/26 12:23, Dave Young wrote:
> On 9/28/26 4:48 PM, David Hildenbrand (Arm) wrote:
>> The crash tool currently hardcodes SECTION_HAS_MEM_MAP, and makedumpfile
>> needs similar information (although still relying on
>> SECTION_MARKED_PRESENT, it should switch to SECTION_HAS_MEM_MAP).
>>
>> Let's just export the value instead, so tools that work on vmcoreinfo
>> will not have to guess.
>>
>> Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
>> ---
>> Result of the discussion in reply to "[PATCH v2 00/13] mm/sparse: remove
>> SECTION_MARKED_PRESENT and further cleanups" [1]
>>
>> This patch can go in independently. It would be preferable if both
>> go into the same kernel release ;)
>>
>> [1] https://lore.kernel.org/r/20260921-b4-sparsemem_cleanups-v2-0-54d81d65e125@kernel.org 
>> ---
>>  kernel/vmcore_info.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/kernel/vmcore_info.c b/kernel/vmcore_info.c
>> index 5a417f8a922a..7833a36064a8 100644
>> --- a/kernel/vmcore_info.c
>> +++ b/kernel/vmcore_info.c
>> @@ -182,6 +182,7 @@ static int __init crash_save_vmcoreinfo_init(void)
>>  	VMCOREINFO_STRUCT_SIZE(mem_section);
>>  	VMCOREINFO_OFFSET(mem_section, section_mem_map);
>>  	VMCOREINFO_NUMBER(SECTION_SIZE_BITS);
>> +	VMCOREINFO_NUMBER(SECTION_HAS_MEM_MAP);
>>  	VMCOREINFO_NUMBER(MAX_PHYSMEM_BITS);
>>  #endif
>>  	VMCOREINFO_STRUCT_SIZE(page);
> 
> Current crash code looks below:
> #define SECTION_MARKED_PRESENT          (1UL<<0)
> #define SECTION_HAS_MEM_MAP             (1UL<<1)
> #define SECTION_IS_ONLINE               (1UL<<2)
> #define SECTION_IS_EARLY                (1UL<<3)
> #define SECTION_TAINT_ZONE_DEVICE       (1UL<<4)
> #define SECTION_MAP_LAST_BIT            (1UL<<5)
> #define SECTION_MAP_MASK                (~(SECTION_MAP_LAST_BIT-1))
> 
> 
> And it does not match the kernel for below chunk with ifdef
> #ifdef CONFIG_ZONE_DEVICE
>         SECTION_TAINT_ZONE_DEVICE_BIT,
> #endif
> #ifdef CONFIG_SPARSEMEM_VMEMMAP_PREINIT
>         SECTION_IS_VMEMMAP_PREINIT_BIT,
> #endif
> 
> The last bit could be wrong in crash.  So all numbers should be exported in vmcoreinfo.
> 
> Thoughts?

You know the crash code best, so likely ... it's time one of the crash people
takes over this patch?

-- 
Cheers,

David


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP
  2026-09-28 11:42   ` David Hildenbrand (Arm)
@ 2026-09-29  0:25     ` Dave Young
  2026-09-29  2:02       ` HAGIO KAZUHITO(萩尾 一仁)
  0 siblings, 1 reply; 5+ messages in thread
From: Dave Young @ 2026-09-29  0:25 UTC (permalink / raw)
  To: David Hildenbrand (Arm), Andrew Morton, Baoquan He, David Carlier,
	Tao Liu
  Cc: linux-kernel, linux-mm, kexec

On 9/28/26 7:42 PM, David Hildenbrand (Arm) wrote:
> On 9/28/26 12:23, Dave Young wrote:
>> On 9/28/26 4:48 PM, David Hildenbrand (Arm) wrote:
>>> The crash tool currently hardcodes SECTION_HAS_MEM_MAP, and makedumpfile
>>> needs similar information (although still relying on
>>> SECTION_MARKED_PRESENT, it should switch to SECTION_HAS_MEM_MAP).
>>>
>>> Let's just export the value instead, so tools that work on vmcoreinfo
>>> will not have to guess.
>>>
>>> Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
>>> ---
>>> Result of the discussion in reply to "[PATCH v2 00/13] mm/sparse: remove
>>> SECTION_MARKED_PRESENT and further cleanups" [1]
>>>
>>> This patch can go in independently. It would be preferable if both
>>> go into the same kernel release ;)
>>>
>>> [1] https://lore.kernel.org/r/20260921-b4-sparsemem_cleanups-v2-0-54d81d65e125@kernel.org 
>>> ---
>>>  kernel/vmcore_info.c | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/kernel/vmcore_info.c b/kernel/vmcore_info.c
>>> index 5a417f8a922a..7833a36064a8 100644
>>> --- a/kernel/vmcore_info.c
>>> +++ b/kernel/vmcore_info.c
>>> @@ -182,6 +182,7 @@ static int __init crash_save_vmcoreinfo_init(void)
>>>  	VMCOREINFO_STRUCT_SIZE(mem_section);
>>>  	VMCOREINFO_OFFSET(mem_section, section_mem_map);
>>>  	VMCOREINFO_NUMBER(SECTION_SIZE_BITS);
>>> +	VMCOREINFO_NUMBER(SECTION_HAS_MEM_MAP);
>>>  	VMCOREINFO_NUMBER(MAX_PHYSMEM_BITS);
>>>  #endif
>>>  	VMCOREINFO_STRUCT_SIZE(page);
>>
>> Current crash code looks below:
>> #define SECTION_MARKED_PRESENT          (1UL<<0)
>> #define SECTION_HAS_MEM_MAP             (1UL<<1)
>> #define SECTION_IS_ONLINE               (1UL<<2)
>> #define SECTION_IS_EARLY                (1UL<<3)
>> #define SECTION_TAINT_ZONE_DEVICE       (1UL<<4)
>> #define SECTION_MAP_LAST_BIT            (1UL<<5)
>> #define SECTION_MAP_MASK                (~(SECTION_MAP_LAST_BIT-1))
>>
>>
>> And it does not match the kernel for below chunk with ifdef
>> #ifdef CONFIG_ZONE_DEVICE
>>         SECTION_TAINT_ZONE_DEVICE_BIT,
>> #endif
>> #ifdef CONFIG_SPARSEMEM_VMEMMAP_PREINIT
>>         SECTION_IS_VMEMMAP_PREINIT_BIT,
>> #endif
>>
>> The last bit could be wrong in crash.  So all numbers should be exported in vmcoreinfo.
>>
>> Thoughts?
> 
> You know the crash code best, so likely ... it's time one of the crash people
> takes over this patch?

Rethinking about it I'm hesitating to add many more to vmcoreinfo although it is reasonable,  about the #ifdef things, there are other places other than mm, crash can not depend on the /proc/config.gz which is not reliable in the old kernel memory, maybe it will be helpful to export another elf note for old kernel's kconfig.  So I'd like to support to use your patch for the time being as the first bit is always needed and leave the remaining concerns a follow up item.

Thanks
Dave


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP
  2026-09-29  0:25     ` Dave Young
@ 2026-09-29  2:02       ` HAGIO KAZUHITO(萩尾 一仁)
  2026-09-29  6:16         ` David Hildenbrand (Arm)
  0 siblings, 1 reply; 5+ messages in thread
From: HAGIO KAZUHITO(萩尾 一仁) @ 2026-09-29  2:02 UTC (permalink / raw)
  To: Dave Young, David Hildenbrand (Arm), Andrew Morton, Baoquan He,
	David Carlier, Tao Liu
  Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	kexec@lists.infradead.org



On 2026/09/29 9:25, Dave Young wrote:
> On 9/28/26 7:42 PM, David Hildenbrand (Arm) wrote:
>> On 9/28/26 12:23, Dave Young wrote:
>>> On 9/28/26 4:48 PM, David Hildenbrand (Arm) wrote:
>>>> The crash tool currently hardcodes SECTION_HAS_MEM_MAP, and makedumpfile
>>>> needs similar information (although still relying on
>>>> SECTION_MARKED_PRESENT, it should switch to SECTION_HAS_MEM_MAP).
>>>>
>>>> Let's just export the value instead, so tools that work on vmcoreinfo
>>>> will not have to guess.
>>>>
>>>> Signed-off-by: David Hildenbrand (Arm) <david@kernel.org>
>>>> ---
>>>> Result of the discussion in reply to "[PATCH v2 00/13] mm/sparse: remove
>>>> SECTION_MARKED_PRESENT and further cleanups" [1]
>>>>
>>>> This patch can go in independently. It would be preferable if both
>>>> go into the same kernel release ;)
>>>>
>>>> [1] https://lore.kernel.org/r/20260921-b4-sparsemem_cleanups-v2-0-54d81d65e125@kernel.org
>>>> ---
>>>>   kernel/vmcore_info.c | 1 +
>>>>   1 file changed, 1 insertion(+)
>>>>
>>>> diff --git a/kernel/vmcore_info.c b/kernel/vmcore_info.c
>>>> index 5a417f8a922a..7833a36064a8 100644
>>>> --- a/kernel/vmcore_info.c
>>>> +++ b/kernel/vmcore_info.c
>>>> @@ -182,6 +182,7 @@ static int __init crash_save_vmcoreinfo_init(void)
>>>>   	VMCOREINFO_STRUCT_SIZE(mem_section);
>>>>   	VMCOREINFO_OFFSET(mem_section, section_mem_map);
>>>>   	VMCOREINFO_NUMBER(SECTION_SIZE_BITS);
>>>> +	VMCOREINFO_NUMBER(SECTION_HAS_MEM_MAP);
>>>>   	VMCOREINFO_NUMBER(MAX_PHYSMEM_BITS);
>>>>   #endif
>>>>   	VMCOREINFO_STRUCT_SIZE(page);
>>>
>>> Current crash code looks below:
>>> #define SECTION_MARKED_PRESENT          (1UL<<0)
>>> #define SECTION_HAS_MEM_MAP             (1UL<<1)
>>> #define SECTION_IS_ONLINE               (1UL<<2)
>>> #define SECTION_IS_EARLY                (1UL<<3)
>>> #define SECTION_TAINT_ZONE_DEVICE       (1UL<<4)
>>> #define SECTION_MAP_LAST_BIT            (1UL<<5)
>>> #define SECTION_MAP_MASK                (~(SECTION_MAP_LAST_BIT-1))
>>>
>>>
>>> And it does not match the kernel for below chunk with ifdef
>>> #ifdef CONFIG_ZONE_DEVICE
>>>          SECTION_TAINT_ZONE_DEVICE_BIT,
>>> #endif
>>> #ifdef CONFIG_SPARSEMEM_VMEMMAP_PREINIT
>>>          SECTION_IS_VMEMMAP_PREINIT_BIT,
>>> #endif
>>>
>>> The last bit could be wrong in crash.  So all numbers should be exported in vmcoreinfo.
>>>
>>> Thoughts?
>>
>> You know the crash code best, so likely ... it's time one of the crash people
>> takes over this patch?
> 
> Rethinking about it I'm hesitating to add many more to vmcoreinfo although it is reasonable,  about the #ifdef things, there are other places other than mm, crash can not depend on the /proc/config.gz which is not reliable in the old kernel memory, maybe it will be helpful to export another elf note for old kernel's kconfig.  So I'd like to support to use your patch for the time being as the first bit is always needed and leave the remaining concerns a follow up item.

I agree, from makedumpfile's view point.

(to be exact, makedumpfile needs this but maybe crash can read enum values from vmlinux.)

Thanks,
Kazu

> 
> Thanks
> Dave

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP
  2026-09-29  2:02       ` HAGIO KAZUHITO(萩尾 一仁)
@ 2026-09-29  6:16         ` David Hildenbrand (Arm)
  0 siblings, 0 replies; 5+ messages in thread
From: David Hildenbrand (Arm) @ 2026-09-29  6:16 UTC (permalink / raw)
  To: HAGIO KAZUHITO(萩尾 一仁), Dave Young,
	Andrew Morton, Baoquan He, David Carlier, Tao Liu
  Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	kexec@lists.infradead.org

On 9/29/26 04:02, HAGIO KAZUHITO(萩尾 一仁) wrote:
> 
> 
> On 2026/09/29 9:25, Dave Young wrote:
>> On 9/28/26 7:42 PM, David Hildenbrand (Arm) wrote:
>>>
>>> You know the crash code best, so likely ... it's time one of the crash people
>>> takes over this patch?
>>
>> Rethinking about it I'm hesitating to add many more to vmcoreinfo although it is reasonable,  about the #ifdef things, there are other places other than mm, crash can not depend on the /proc/config.gz which is not reliable in the old kernel memory, maybe it will be helpful to export another elf note for old kernel's kconfig.  So I'd like to support to use your patch for the time being as the first bit is always needed and leave the remaining concerns a follow up item.
> 
> I agree, from makedumpfile's view point.
> 
> (to be exact, makedumpfile needs this but maybe crash can read enum values from vmlinux.)

That's a good point, maybe that indeed works for crash.

-- 
Cheers,

David


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-09-29  6:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20260928-section_has_mem_map-v1-1-4129f6ba2838@kernel.org>
2026-09-28 10:23 ` [PATCH] vmcoreinfo: export SECTION_HAS_MEM_MAP Dave Young
2026-09-28 11:42   ` David Hildenbrand (Arm)
2026-09-29  0:25     ` Dave Young
2026-09-29  2:02       ` HAGIO KAZUHITO(萩尾 一仁)
2026-09-29  6:16         ` David Hildenbrand (Arm)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox