[RESEND] crash_core: export vmemmap when CONFIG_SPARSEMEM_VMEMMAP is enabled

Message ID 20240226020433.3353-1-shijie@os.amperecomputing.com
State New
Headers
Series [RESEND] crash_core: export vmemmap when CONFIG_SPARSEMEM_VMEMMAP is enabled |

Commit Message

Huang Shijie Feb. 26, 2024, 2:04 a.m. UTC
  In memory_model.h, if CONFIG_SPARSEMEM_VMEMMAP is configed,
kernel will use vmemmap to do the __pfn_to_page/page_to_pfn,
and kernel will not use the "classic sparse" to do the
__pfn_to_page/page_to_pfn.

So export the vmemmap when CONFIG_SPARSEMEM_VMEMMAP is configed.
This makes the user applications (crash, etc) get faster
pfn_to_page/page_to_pfn operations too.

Acked-by: Baoquan He <bhe@redhat.com>
Signed-off-by: Huang Shijie <shijie@os.amperecomputing.com>
---
The old patch: https://lkml.org/lkml/2023/11/26/342
---
 kernel/crash_core.c | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Andrew Morton Feb. 26, 2024, 7:10 p.m. UTC | #1
On Mon, 26 Feb 2024 10:04:33 +0800 Huang Shijie <shijie@os.amperecomputing.com> wrote:

> In memory_model.h, if CONFIG_SPARSEMEM_VMEMMAP is configed,
> kernel will use vmemmap to do the __pfn_to_page/page_to_pfn,
> and kernel will not use the "classic sparse" to do the
> __pfn_to_page/page_to_pfn.
> 
> So export the vmemmap when CONFIG_SPARSEMEM_VMEMMAP is configed.
> This makes the user applications (crash, etc) get faster
> pfn_to_page/page_to_pfn operations too.

This is significantly out of sync with development trees.  Please take
a look at linux-next and redo the patch if still needed?
  

Patch

diff --git a/kernel/crash_core.c b/kernel/crash_core.c
index d48315667752..d665ddc66fec 100644
--- a/kernel/crash_core.c
+++ b/kernel/crash_core.c
@@ -744,6 +744,9 @@  static int __init crash_save_vmcoreinfo_init(void)
 	VMCOREINFO_SYMBOL(mem_map);
 	VMCOREINFO_SYMBOL(contig_page_data);
 #endif
+#ifdef CONFIG_SPARSEMEM_VMEMMAP
+	VMCOREINFO_SYMBOL_ARRAY(vmemmap);
+#endif
 #ifdef CONFIG_SPARSEMEM
 	VMCOREINFO_SYMBOL_ARRAY(mem_section);
 	VMCOREINFO_LENGTH(mem_section, NR_SECTION_ROOTS);