From: Jiang Liu <liuj97@gmail.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: David Rientjes <rientjes@google.com>,
sworddragon2@aol.com, Jiang Liu <jiang.liu@huawei.com>,
bugzilla-daemon@bugzilla.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2] mm: let /proc/meminfo report physical memory installed as "MemTotal"
Date: Fri, 22 Feb 2013 01:26:02 +0800 [thread overview]
Message-ID: <512658AA.5060806@gmail.com> (raw)
In-Reply-To: <20130220144917.7d289ef0.akpm@linux-foundation.org>
On 02/21/2013 06:49 AM, Andrew Morton wrote:
> On Thu, 21 Feb 2013 01:27:25 +0800
> Jiang Liu <liuj97@gmail.com> wrote:
>
>> As reported by https://bugzilla.kernel.org/show_bug.cgi?id=53501,
>> "MemTotal" from /proc/meminfo means memory pages managed by the buddy
>> system (managed_pages), but "MemTotal" from /sys/.../node/nodex/meminfo
>> means phsical pages present (present_pages) within the NUMA node.
>> There's a difference between managed_pages and present_pages due to
>> bootmem allocator and reserved pages.
>>
>> So change /proc/meminfo to report physical memory installed as
>> "MemTotal", which is
>> MemTotal = sum(pgdat->present_pages)
>
> Documentation/filesystems/proc.txt says
>
> MemTotal: Total usable ram (i.e. physical ram minus a few reserved
> bits and the kernel binary code)
>
> And arguably, that is more useful than "total physical memory".
>
> Presumably the per-node MemTotals are including kernel memory and
> reserved memory. Maybe they should be fixed instead (sounds hard).
Hi Andrew,
It's really hard, but I think it deserve it because have reduced
about 460 lines of code when fixing this bug. So how about following
patchset?
The first 27 patches introduces some help functions to simplify
free_initmem() and free_initrd_mem() for most arches.
The 28th patch increases zone->managed_pages when freeing reserved
pages.
The 29th patch change /sys/.../nodex/meminfo to report "available
pages within the node" as MemTatoal.
Regards!
Gerry
Jiang Liu (29):
mm: introduce free_reserved_mem/page() to reduce duplicated code
mm/alpha: use common help functions to free reserved pages
mm/ARM: use common help functions to free reserved pages
mm/avr32: use common help functions to free reserved pages
mm/blackfin: use common help functions to free reserved pages
mm/c6x: use common help functions to free reserved pages
mm/cris: use common help functions to free reserved pages
mm/FRV: use common help functions to free reserved pages
mm/h8300: use common help functions to free reserved pages
mm/IA64: use common help functions to free reserved pages
mm/m32r: use common help functions to free reserved pages
mm/m68k: use common help functions to free reserved pages
mm/microblaze: use common help functions to free reserved pages
mm/MIPS: use common help functions to free reserved pages
mm/mn10300: use common help functions to free reserved pages
mm/openrisc: use common help functions to free reserved pages
mm/parisc: use common help functions to free reserved pages
mm/ppc: use common help functions to free reserved pages
mm/s390: use common help functions to free reserved pages
mm/score: use common help functions to free reserved pages
mm/SH: use common help functions to free reserved pages
mm/SPARC: use common help functions to free reserved pages
mm/um: use common help functions to free reserved pages
mm/unicore32: use common help functions to free reserved pages
mm/x86: use common help functions to free reserved pages
mm/xtensa: use common help functions to free reserved pages
mm,kexec: use common help functions to free reserved pages
mm: increase zone->managed_pages when freeing reserved pages
mm: report available pages as "MemTotal" for each NUMA node
arch/alpha/kernel/sys_nautilus.c | 5 ++-
arch/alpha/mm/init.c | 21 ++----------
arch/arm/mm/init.c | 43 ++++++++++--------------
arch/arm64/mm/init.c | 26 ++-------------
arch/avr32/mm/init.c | 24 ++------------
arch/blackfin/mm/init.c | 20 ++----------
arch/c6x/mm/init.c | 30 ++---------------
arch/cris/mm/init.c | 12 +------
arch/frv/mm/init.c | 26 ++-------------
arch/h8300/mm/init.c | 28 ++--------------
arch/ia64/mm/init.c | 23 +++----------
arch/m32r/mm/init.c | 21 ++----------
arch/m68k/mm/init.c | 24 ++------------
arch/microblaze/include/asm/setup.h | 1 -
arch/microblaze/mm/init.c | 28 ++--------------
arch/mips/mm/init.c | 13 ++------
arch/mn10300/mm/init.c | 23 ++-----------
arch/openrisc/mm/init.c | 23 ++-----------
arch/parisc/mm/init.c | 23 ++-----------
arch/powerpc/kernel/crash_dump.c | 5 +--
arch/powerpc/kernel/fadump.c | 5 +--
arch/powerpc/kernel/kvm.c | 7 +---
arch/powerpc/mm/mem.c | 29 ++---------------
arch/powerpc/platforms/512x/mpc512x_shared.c | 5 +--
arch/s390/mm/init.c | 23 ++-----------
arch/score/mm/init.c | 25 ++------------
arch/sh/mm/init.c | 22 ++-----------
arch/sparc/kernel/leon_smp.c | 15 ++-------
arch/sparc/mm/init_32.c | 40 ++++-------------------
arch/sparc/mm/init_64.c | 20 ++----------
arch/tile/mm/init.c | 1 +
arch/um/kernel/mem.c | 10 +-----
arch/unicore32/mm/init.c | 26 ++-------------
arch/x86/mm/init.c | 5 +--
arch/xtensa/mm/init.c | 21 ++----------
include/linux/mm.h | 45 ++++++++++++++++++++++++++
kernel/kexec.c | 8 ++---
mm/page_alloc.c | 8 ++++-
38 files changed, 139 insertions(+), 595 deletions(-)
>
> Or maybe we just leave everything as-is and document it carefully.
>
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2013-02-21 17:26 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bug-53501-27@https.bugzilla.kernel.org/>
2013-02-13 0:51 ` [Bug 53501] New: Duplicated MemTotal with different values Andrew Morton
2013-02-13 1:45 ` David Rientjes
2013-02-13 3:59 ` Andrew Morton
2013-02-14 3:19 ` David Rientjes
2013-02-14 4:01 ` Jiang Liu
2013-02-15 0:26 ` David Rientjes
2013-02-20 5:21 ` Simon Jeons
2013-02-20 7:09 ` David Rientjes
2013-03-02 2:21 ` Simon Jeons
2013-03-04 11:18 ` David Rientjes
2013-03-04 23:39 ` Simon Jeons
2013-03-05 21:53 ` David Rientjes
2013-02-16 16:27 ` [PATCH 1/2] vm: add 'MemManaged' field to /proc/meminfo and /sys/.../nodex/meminfo Jiang Liu
2013-02-19 21:29 ` David Rientjes
2013-02-20 17:27 ` [PATCH v2] mm: let /proc/meminfo report physical memory installed as "MemTotal" Jiang Liu
2013-02-20 22:49 ` Andrew Morton
2013-02-21 17:26 ` Jiang Liu [this message]
2013-02-21 21:31 ` Andrew Morton
2013-02-22 19:22 ` Jiang Liu
2013-02-16 16:27 ` [PATCH 2/2] mm: protect si_meminfo() and si_meminfo_node() from memory hotplug operations Jiang Liu
2013-02-19 21:32 ` David Rientjes
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=512658AA.5060806@gmail.com \
--to=liuj97@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=bugzilla-daemon@bugzilla.kernel.org \
--cc=jiang.liu@huawei.com \
--cc=linux-mm@kvack.org \
--cc=rientjes@google.com \
--cc=sworddragon2@aol.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).