From: Xishi Qiu <qiuxishi@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Tang Chen <tangchen@cn.fujitsu.com>,
zhong jiang <zhongjiang@huawei.com>,
Minchan Kim <minchan@kernel.org>, Mel Gorman <mgorman@suse.de>
Cc: Linux MM <linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>
Subject: [RFC] mm: direct mapping count in /proc/meminfo is error
Date: Fri, 20 Nov 2015 16:17:12 +0800 [thread overview]
Message-ID: <564ED708.5090405@huawei.com> (raw)
I find the direct mapping count in /proc/meminfo is error.
The value should be equal to the size of init_memory_mapping which
showed in boot log.
I add some print to show direct_pages_count[] immediately after
init_memory_mapping(). The reason is that we double counting.
Here is the log(kernel v4.4):
...
[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] // called from "init_memory_mapping(0, ISA_END_ADDRESS);"
[ 0.000000] [mem 0x00000000-0x000fffff] page 4k
[ 0.000000] BRK [0x01ebf000, 0x01ebffff] PGTABLE
[ 0.000000] BRK [0x01ec0000, 0x01ec0fff] PGTABLE
[ 0.000000] BRK [0x01ec1000, 0x01ec1fff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0xc3fe00000-0xc3fffffff] // called from "memory_map_top_down(ISA_END_ADDRESS, end);"
[ 0.000000] [mem 0xc3fe00000-0xc3fffffff] page 1G // increase count of PG_LEVEL_1G in c00000000(48G)-c3fffffff(49G) one time
[ 0.000000] init_memory_mapping: [mem 0xc20000000-0xc3fdfffff]
[ 0.000000] [mem 0xc20000000-0xc3fdfffff] page 1G // increase count of PG_LEVEL_1G in c00000000(48G)-c3fffffff(49G) two time
[ 0.000000] init_memory_mapping: [mem 0x00100000-0xbf78ffff]
[ 0.000000] [mem 0x00100000-0x001fffff] page 4k
[ 0.000000] [mem 0x00200000-0x3fffffff] page 2M
[ 0.000000] [mem 0x40000000-0x7fffffff] page 1G
[ 0.000000] [mem 0x80000000-0xbf5fffff] page 2M
[ 0.000000] [mem 0xbf600000-0xbf78ffff] page 4k
[ 0.000000] init_memory_mapping: [mem 0x100000000-0xc1fffffff]
[ 0.000000] [mem 0x100000000-0xc1fffffff] page 1G // increase count of PG_LEVEL_1G in c00000000(48G)-c3fffffff(49G) three time
...
[ 0.000000] DirectMap4k: 3648 kB
[ 0.000000] DirectMap2M: 2084864 kB
[ 0.000000] DirectMap1G: 50331648 kB
euler-linux:~ # cat /proc/meminfo | grep DirectMap
DirectMap4k: 91712 kB
DirectMap2M: 4093952 kB
DirectMap1G: 48234496 kB
total DirectMap is 48234496 + 4093952 + 91712 = 52420160kb
50331648 + 2084864 + 3648 = 52420160kb
total init_memory_mapping is 50323008kb
52420160kb - 50323008kb = 2097152kb = 2G
However I haven't find a better way to fix it, any ideas?
Thanks,
Xishi Qiu
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Xishi Qiu <qiuxishi@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Tang Chen <tangchen@cn.fujitsu.com>,
zhong jiang <zhongjiang@huawei.com>,
Minchan Kim <minchan@kernel.org>, Mel Gorman <mgorman@suse.de>
Cc: Linux MM <linux-mm@kvack.org>, LKML <linux-kernel@vger.kernel.org>
Subject: [RFC] mm: direct mapping count in /proc/meminfo is error
Date: Fri, 20 Nov 2015 16:17:12 +0800 [thread overview]
Message-ID: <564ED708.5090405@huawei.com> (raw)
I find the direct mapping count in /proc/meminfo is error.
The value should be equal to the size of init_memory_mapping which
showed in boot log.
I add some print to show direct_pages_count[] immediately after
init_memory_mapping(). The reason is that we double counting.
Here is the log(kernel v4.4):
...
[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] // called from "init_memory_mapping(0, ISA_END_ADDRESS);"
[ 0.000000] [mem 0x00000000-0x000fffff] page 4k
[ 0.000000] BRK [0x01ebf000, 0x01ebffff] PGTABLE
[ 0.000000] BRK [0x01ec0000, 0x01ec0fff] PGTABLE
[ 0.000000] BRK [0x01ec1000, 0x01ec1fff] PGTABLE
[ 0.000000] init_memory_mapping: [mem 0xc3fe00000-0xc3fffffff] // called from "memory_map_top_down(ISA_END_ADDRESS, end);"
[ 0.000000] [mem 0xc3fe00000-0xc3fffffff] page 1G // increase count of PG_LEVEL_1G in c00000000(48G)-c3fffffff(49G) one time
[ 0.000000] init_memory_mapping: [mem 0xc20000000-0xc3fdfffff]
[ 0.000000] [mem 0xc20000000-0xc3fdfffff] page 1G // increase count of PG_LEVEL_1G in c00000000(48G)-c3fffffff(49G) two time
[ 0.000000] init_memory_mapping: [mem 0x00100000-0xbf78ffff]
[ 0.000000] [mem 0x00100000-0x001fffff] page 4k
[ 0.000000] [mem 0x00200000-0x3fffffff] page 2M
[ 0.000000] [mem 0x40000000-0x7fffffff] page 1G
[ 0.000000] [mem 0x80000000-0xbf5fffff] page 2M
[ 0.000000] [mem 0xbf600000-0xbf78ffff] page 4k
[ 0.000000] init_memory_mapping: [mem 0x100000000-0xc1fffffff]
[ 0.000000] [mem 0x100000000-0xc1fffffff] page 1G // increase count of PG_LEVEL_1G in c00000000(48G)-c3fffffff(49G) three time
...
[ 0.000000] DirectMap4k: 3648 kB
[ 0.000000] DirectMap2M: 2084864 kB
[ 0.000000] DirectMap1G: 50331648 kB
euler-linux:~ # cat /proc/meminfo | grep DirectMap
DirectMap4k: 91712 kB
DirectMap2M: 4093952 kB
DirectMap1G: 48234496 kB
total DirectMap is 48234496 + 4093952 + 91712 = 52420160kb
50331648 + 2084864 + 3648 = 52420160kb
total init_memory_mapping is 50323008kb
52420160kb - 50323008kb = 2097152kb = 2G
However I haven't find a better way to fix it, any ideas?
Thanks,
Xishi Qiu
next reply other threads:[~2015-11-20 8:19 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-20 8:17 Xishi Qiu [this message]
2015-11-20 8:17 ` [RFC] mm: direct mapping count in /proc/meminfo is error Xishi Qiu
2015-11-20 8:43 ` Tang Chen
2015-11-20 8:43 ` Tang Chen
2015-11-20 9:46 ` Xishi Qiu
2015-11-20 9:46 ` Xishi Qiu
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=564ED708.5090405@huawei.com \
--to=qiuxishi@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=minchan@kernel.org \
--cc=tangchen@cn.fujitsu.com \
--cc=zhongjiang@huawei.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.