From 929e4380528803ba1e1c4464a53e1d49bbc7de26 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Fri, 12 Feb 2021 14:10:07 +0900 Subject: [PATCH] procfs: Use procfs_register_meminfo for "Kmem" --- fs/procfs/fs_procfsmeminfo.c | 23 ----------------------- mm/kmm_heap/kmm_initialize.c | 12 +++++++++++- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/fs/procfs/fs_procfsmeminfo.c b/fs/procfs/fs_procfsmeminfo.c index f89cc452ca..67d072401e 100644 --- a/fs/procfs/fs_procfsmeminfo.c +++ b/fs/procfs/fs_procfsmeminfo.c @@ -319,29 +319,6 @@ static ssize_t meminfo_read(FAR struct file *filep, FAR char *buffer, } } -#ifdef CONFIG_MM_KERNEL_HEAP - if (totalsize < buflen) - { - struct mallinfo mem; - - buffer += copysize; - buflen -= copysize; - - /* Show kernel heap information */ - - mem = kmm_mallinfo(); - linesize = snprintf(procfile->line, MEMINFO_LINELEN, - "Kmem: %11lu%11lu%11lu%11lu\n", - (unsigned long)mem.arena, - (unsigned long)mem.uordblks, - (unsigned long)mem.fordblks, - (unsigned long)mem.mxordblk); - copysize = procfs_memcpy(procfile->line, linesize, buffer, buflen, - &offset); - totalsize += copysize; - } -#endif - #ifdef CONFIG_MM_PGALLOC if (totalsize < buflen) { diff --git a/mm/kmm_heap/kmm_initialize.c b/mm/kmm_heap/kmm_initialize.c index 1e1daeff06..7ff5f66e7c 100644 --- a/mm/kmm_heap/kmm_initialize.c +++ b/mm/kmm_heap/kmm_initialize.c @@ -24,6 +24,7 @@ #include +#include #include #ifdef CONFIG_MM_KERNEL_HEAP @@ -58,7 +59,16 @@ struct mm_heap_s g_kmmheap; void kmm_initialize(FAR void *heap_start, size_t heap_size) { - return mm_initialize(&g_kmmheap, heap_start, heap_size); + mm_initialize(&g_kmmheap, heap_start, heap_size); + +#if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_MEMINFO) + static struct procfs_meminfo_entry_s g_kmm_procfs; + + g_kmm_procfs.name = "Kmem"; + g_kmm_procfs.mallinfo = (void *)mm_mallinfo; + g_kmm_procfs.user_data = &g_kmmheap; + procfs_register_meminfo(&g_kmm_procfs); +#endif } #endif /* CONFIG_MM_KERNEL_HEAP */