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 <[email protected]>
Signed-off-by: Huang Shijie <[email protected]>
---
The old patch: https://lkml.org/lkml/2023/11/26/342
---
kernel/crash_core.c | 3 +++
1 file changed, 3 insertions(+)
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);
--
2.40.1
On Mon, 26 Feb 2024 10:04:33 +0800 Huang Shijie <[email protected]> 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?