From: wujianguo <wujianguo106@gmail.com>
To: akpm@linux-foundation.org, tony.luck@intel.com
Cc: Michal Hocko <mhocko@suse.cz>,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, liuj97@gmail.com, jiang.liu@huawei.com,
wency@cn.fujitsu.com, yinghai@kernel.org, qiuxishi@huawei.com,
guohanjun@huawei.com, wujianguo@huawei.com,
minchan.kim@gmail.com, mgorman@suse.de,
Christoph Lameter <cl@linux.com>,
kay.sievers@vrfy.org
Subject: [PATCH v2] mm/ia64: fix a memory block size bug
Date: Fri, 24 Aug 2012 03:10:08 +0000 [thread overview]
Message-ID: <5036F090.4040209@gmail.com> (raw)
From: Jianguo Wu <wujianguo@huawei.com>
I found following definition in include/linux/memory.h, in my IA64
platform, SECTION_SIZE_BITS is equal to 32, and MIN_MEMORY_BLOCK_SIZE will be 0.
#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
Because MIN_MEMORY_BLOCK_SIZE is int type and length of 32bits,
so MIN_MEMORY_BLOCK_SIZE(1 << 32) will will equal to 0.
Actually when SECTION_SIZE_BITS >= 31, MIN_MEMORY_BLOCK_SIZE will be wrong.
This will cause wrong system memory infomation in sysfs.
I think it should be:
#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS)
And "echo offline > memory0/state" will cause following call trace:
kernel BUG at mm/memory_hotplug.c:885!
sh[6455]: bugcheck! 0 [1]
Pid: 6455, CPU 0, comm: sh
psr : 0000101008526030 ifs : 8000000000000fa4 ip : [<a0000001008c40f0>] Not tainted (3.6.0-rc1)
ip is at offline_pages+0x210/0xee0
unat: 0000000000000000 pfs : 0000000000000fa4 rsc : 0000000000000003
rnat: a0000001008f2d50 bsps: 0000000000000000 pr : 65519a96659a9565
ldrs: 0000000000000000 ccv : 0000010b9263f310 fpsr: 0009804c0270033f
csd : 0000000000000000 ssd : 0000000000000000
b0 : a0000001008c40f0 b6 : a000000100473980 b7 : a0000001000106d0
f6 : 000000000000000000000 f7 : 1003e0000000085c9354c
f8 : 1003e0044b82fa09b5a53 f9 : 1003e000000d65cd62abf
f10 : 1003efd02efdec682803d f11 : 1003e0000000000000042
r1 : a00000010152c2e0 r2 : 0000000000006ada r3 : 000000000000fffe
r8 : 0000000000000026 r9 : a00000010121cc18 r10 : a0000001013309f0
r11 : 65519a96659a19e9 r12 : e00000070a91fdf0 r13 : e00000070a910000
r14 : 0000000000006ada r15 : 0000000000004000 r16 : 000000006ad8356c
r17 : a0000001019a525e r18 : 0000000000007fff r19 : 0000000000000000
r20 : 0000000000006ad6 r21 : 0000000000006ad6 r22 : a00000010133bec8
r23 : 0000000000006ad4 r24 : 0000000000000002 r25 : 8200000000260038
r26 : 00000000000004f9 r27 : 00000000000004f8 r28 : 000000000001cf98
r29 : 0000000000000038 r30 : a0000001019a5ae0 r31 : 000000000001cf60
Call Trace:
[<a0000001000163e0>] show_stack+0x80/0xa0
spà0000070a91f9b0 bspà0000070a9115e0
[<a000000100016a40>] show_regs+0x640/0x920
spà0000070a91fb80 bspà0000070a911588
[<a000000100040590>] die+0x190/0x2c0
spà0000070a91fb90 bspà0000070a911548
[<a000000100040710>] die_if_kernel+0x50/0x80
spà0000070a91fb90 bspà0000070a911518
[<a0000001008f8030>] ia64_bad_break+0x3d0/0x6e0
spà0000070a91fb90 bspà0000070a9114f0
[<a00000010000c0c0>] ia64_native_leave_kernel+0x0/0x270
spà0000070a91fc20 bspà0000070a9114f0
[<a0000001008c40f0>] offline_pages+0x210/0xee0
spà0000070a91fdf0 bspà0000070a9113c8
[<a00000010022d580>] alloc_pages_current+0x180/0x2a0
spà0000070a91fe20 bspà0000070a9113a
This patch will fix the bug.
Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
---
include/linux/memory.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/memory.h b/include/linux/memory.h
index 1ac7f6e..ff9a9f8 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -19,7 +19,7 @@
#include <linux/compiler.h>
#include <linux/mutex.h>
-#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
+#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS)
struct memory_block {
unsigned long start_section_nr;
--
1.7.6.1
WARNING: multiple messages have this Message-ID (diff)
From: wujianguo <wujianguo106@gmail.com>
To: akpm@linux-foundation.org, tony.luck@intel.com
Cc: Michal Hocko <mhocko@suse.cz>,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, liuj97@gmail.com, jiang.liu@huawei.com,
wency@cn.fujitsu.com, yinghai@kernel.org, qiuxishi@huawei.com,
guohanjun@huawei.com, wujianguo@huawei.com,
minchan.kim@gmail.com, mgorman@suse.de,
Christoph Lameter <cl@linux.com>,
kay.sievers@vrfy.org
Subject: [PATCH v2] mm/ia64: fix a memory block size bug
Date: Fri, 24 Aug 2012 11:10:08 +0800 [thread overview]
Message-ID: <5036F090.4040209@gmail.com> (raw)
From: Jianguo Wu <wujianguo@huawei.com>
I found following definition in include/linux/memory.h, in my IA64
platform, SECTION_SIZE_BITS is equal to 32, and MIN_MEMORY_BLOCK_SIZE will be 0.
#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
Because MIN_MEMORY_BLOCK_SIZE is int type and length of 32bits,
so MIN_MEMORY_BLOCK_SIZE(1 << 32) will will equal to 0.
Actually when SECTION_SIZE_BITS >= 31, MIN_MEMORY_BLOCK_SIZE will be wrong.
This will cause wrong system memory infomation in sysfs.
I think it should be:
#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS)
And "echo offline > memory0/state" will cause following call trace:
kernel BUG at mm/memory_hotplug.c:885!
sh[6455]: bugcheck! 0 [1]
Pid: 6455, CPU 0, comm: sh
psr : 0000101008526030 ifs : 8000000000000fa4 ip : [<a0000001008c40f0>] Not tainted (3.6.0-rc1)
ip is at offline_pages+0x210/0xee0
unat: 0000000000000000 pfs : 0000000000000fa4 rsc : 0000000000000003
rnat: a0000001008f2d50 bsps: 0000000000000000 pr : 65519a96659a9565
ldrs: 0000000000000000 ccv : 0000010b9263f310 fpsr: 0009804c0270033f
csd : 0000000000000000 ssd : 0000000000000000
b0 : a0000001008c40f0 b6 : a000000100473980 b7 : a0000001000106d0
f6 : 000000000000000000000 f7 : 1003e0000000085c9354c
f8 : 1003e0044b82fa09b5a53 f9 : 1003e000000d65cd62abf
f10 : 1003efd02efdec682803d f11 : 1003e0000000000000042
r1 : a00000010152c2e0 r2 : 0000000000006ada r3 : 000000000000fffe
r8 : 0000000000000026 r9 : a00000010121cc18 r10 : a0000001013309f0
r11 : 65519a96659a19e9 r12 : e00000070a91fdf0 r13 : e00000070a910000
r14 : 0000000000006ada r15 : 0000000000004000 r16 : 000000006ad8356c
r17 : a0000001019a525e r18 : 0000000000007fff r19 : 0000000000000000
r20 : 0000000000006ad6 r21 : 0000000000006ad6 r22 : a00000010133bec8
r23 : 0000000000006ad4 r24 : 0000000000000002 r25 : 8200000000260038
r26 : 00000000000004f9 r27 : 00000000000004f8 r28 : 000000000001cf98
r29 : 0000000000000038 r30 : a0000001019a5ae0 r31 : 000000000001cf60
Call Trace:
[<a0000001000163e0>] show_stack+0x80/0xa0
sp=e00000070a91f9b0 bsp=e00000070a9115e0
[<a000000100016a40>] show_regs+0x640/0x920
sp=e00000070a91fb80 bsp=e00000070a911588
[<a000000100040590>] die+0x190/0x2c0
sp=e00000070a91fb90 bsp=e00000070a911548
[<a000000100040710>] die_if_kernel+0x50/0x80
sp=e00000070a91fb90 bsp=e00000070a911518
[<a0000001008f8030>] ia64_bad_break+0x3d0/0x6e0
sp=e00000070a91fb90 bsp=e00000070a9114f0
[<a00000010000c0c0>] ia64_native_leave_kernel+0x0/0x270
sp=e00000070a91fc20 bsp=e00000070a9114f0
[<a0000001008c40f0>] offline_pages+0x210/0xee0
sp=e00000070a91fdf0 bsp=e00000070a9113c8
[<a00000010022d580>] alloc_pages_current+0x180/0x2a0
sp=e00000070a91fe20 bsp=e00000070a9113a
This patch will fix the bug.
Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
---
include/linux/memory.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/memory.h b/include/linux/memory.h
index 1ac7f6e..ff9a9f8 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -19,7 +19,7 @@
#include <linux/compiler.h>
#include <linux/mutex.h>
-#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
+#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS)
struct memory_block {
unsigned long start_section_nr;
--
1.7.6.1
--
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: wujianguo <wujianguo106@gmail.com>
To: akpm@linux-foundation.org, tony.luck@intel.com
Cc: Michal Hocko <mhocko@suse.cz>,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mm@kvack.org, liuj97@gmail.com, jiang.liu@huawei.com,
wency@cn.fujitsu.com, yinghai@kernel.org, qiuxishi@huawei.com,
guohanjun@huawei.com, wujianguo@huawei.com,
minchan.kim@gmail.com, mgorman@suse.de,
Christoph Lameter <cl@linux.com>,
kay.sievers@vrfy.org
Subject: [PATCH v2] mm/ia64: fix a memory block size bug
Date: Fri, 24 Aug 2012 11:10:08 +0800 [thread overview]
Message-ID: <5036F090.4040209@gmail.com> (raw)
From: Jianguo Wu <wujianguo@huawei.com>
I found following definition in include/linux/memory.h, in my IA64
platform, SECTION_SIZE_BITS is equal to 32, and MIN_MEMORY_BLOCK_SIZE will be 0.
#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
Because MIN_MEMORY_BLOCK_SIZE is int type and length of 32bits,
so MIN_MEMORY_BLOCK_SIZE(1 << 32) will will equal to 0.
Actually when SECTION_SIZE_BITS >= 31, MIN_MEMORY_BLOCK_SIZE will be wrong.
This will cause wrong system memory infomation in sysfs.
I think it should be:
#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS)
And "echo offline > memory0/state" will cause following call trace:
kernel BUG at mm/memory_hotplug.c:885!
sh[6455]: bugcheck! 0 [1]
Pid: 6455, CPU 0, comm: sh
psr : 0000101008526030 ifs : 8000000000000fa4 ip : [<a0000001008c40f0>] Not tainted (3.6.0-rc1)
ip is at offline_pages+0x210/0xee0
unat: 0000000000000000 pfs : 0000000000000fa4 rsc : 0000000000000003
rnat: a0000001008f2d50 bsps: 0000000000000000 pr : 65519a96659a9565
ldrs: 0000000000000000 ccv : 0000010b9263f310 fpsr: 0009804c0270033f
csd : 0000000000000000 ssd : 0000000000000000
b0 : a0000001008c40f0 b6 : a000000100473980 b7 : a0000001000106d0
f6 : 000000000000000000000 f7 : 1003e0000000085c9354c
f8 : 1003e0044b82fa09b5a53 f9 : 1003e000000d65cd62abf
f10 : 1003efd02efdec682803d f11 : 1003e0000000000000042
r1 : a00000010152c2e0 r2 : 0000000000006ada r3 : 000000000000fffe
r8 : 0000000000000026 r9 : a00000010121cc18 r10 : a0000001013309f0
r11 : 65519a96659a19e9 r12 : e00000070a91fdf0 r13 : e00000070a910000
r14 : 0000000000006ada r15 : 0000000000004000 r16 : 000000006ad8356c
r17 : a0000001019a525e r18 : 0000000000007fff r19 : 0000000000000000
r20 : 0000000000006ad6 r21 : 0000000000006ad6 r22 : a00000010133bec8
r23 : 0000000000006ad4 r24 : 0000000000000002 r25 : 8200000000260038
r26 : 00000000000004f9 r27 : 00000000000004f8 r28 : 000000000001cf98
r29 : 0000000000000038 r30 : a0000001019a5ae0 r31 : 000000000001cf60
Call Trace:
[<a0000001000163e0>] show_stack+0x80/0xa0
sp=e00000070a91f9b0 bsp=e00000070a9115e0
[<a000000100016a40>] show_regs+0x640/0x920
sp=e00000070a91fb80 bsp=e00000070a911588
[<a000000100040590>] die+0x190/0x2c0
sp=e00000070a91fb90 bsp=e00000070a911548
[<a000000100040710>] die_if_kernel+0x50/0x80
sp=e00000070a91fb90 bsp=e00000070a911518
[<a0000001008f8030>] ia64_bad_break+0x3d0/0x6e0
sp=e00000070a91fb90 bsp=e00000070a9114f0
[<a00000010000c0c0>] ia64_native_leave_kernel+0x0/0x270
sp=e00000070a91fc20 bsp=e00000070a9114f0
[<a0000001008c40f0>] offline_pages+0x210/0xee0
sp=e00000070a91fdf0 bsp=e00000070a9113c8
[<a00000010022d580>] alloc_pages_current+0x180/0x2a0
sp=e00000070a91fe20 bsp=e00000070a9113a
This patch will fix the bug.
Signed-off-by: Jianguo Wu <wujianguo@huawei.com>
Signed-off-by: Jiang Liu <jiang.liu@huawei.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
---
include/linux/memory.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/memory.h b/include/linux/memory.h
index 1ac7f6e..ff9a9f8 100644
--- a/include/linux/memory.h
+++ b/include/linux/memory.h
@@ -19,7 +19,7 @@
#include <linux/compiler.h>
#include <linux/mutex.h>
-#define MIN_MEMORY_BLOCK_SIZE (1 << SECTION_SIZE_BITS)
+#define MIN_MEMORY_BLOCK_SIZE (1UL << SECTION_SIZE_BITS)
struct memory_block {
unsigned long start_section_nr;
--
1.7.6.1
next reply other threads:[~2012-08-24 3:10 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-24 3:10 wujianguo [this message]
2012-08-24 3:10 ` [PATCH v2] mm/ia64: fix a memory block size bug wujianguo
2012-08-24 3:10 ` wujianguo
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=5036F090.4040209@gmail.com \
--to=wujianguo106@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=cl@linux.com \
--cc=guohanjun@huawei.com \
--cc=jiang.liu@huawei.com \
--cc=kay.sievers@vrfy.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=liuj97@gmail.com \
--cc=mgorman@suse.de \
--cc=mhocko@suse.cz \
--cc=minchan.kim@gmail.com \
--cc=qiuxishi@huawei.com \
--cc=tony.luck@intel.com \
--cc=wency@cn.fujitsu.com \
--cc=wujianguo@huawei.com \
--cc=yinghai@kernel.org \
/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.