From: Dave Hansen <haveblue@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: Andrew Morton <akpm@osdl.org>,
mkravetz@us.ibm.com, Arnd Bergmann <arnd@arndb.de>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
hch@infradead.org, linuxppc-dev@ozlabs.org, paulus@samba.org,
Keith Mannthey <kmannth@us.ibm.com>,
gone@us.ibm.com, cbe-oss-dev@ozlabs.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: [PATCH] Fix sparsemem on Cell (take 3)
Date: Fri, 05 Jan 2007 17:10:03 -0800 [thread overview]
Message-ID: <1168045803.8945.14.camel@localhost.localdomain> (raw)
In-Reply-To: <200612190959.47344.arnd@arndb.de>
I dropped this on the floor over Christmas. This has had a few smoke
tests on ppc64 and i386 and is ready for -mm. Against 2.6.20-rc2-mm1.
The following patch fixes an oops experienced on the Cell architecture
when init-time functions, early_*(), are called at runtime. It alters
the call paths to make sure that the callers explicitly say whether the
call is being made on behalf of a hotplug even, or happening at
boot-time.
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---
lxc-dave/arch/s390/mm/vmem.c | 3 ++-
lxc-dave/include/linux/mm.h | 7 ++++++-
lxc-dave/include/linux/mmzone.h | 3 ++-
lxc-dave/mm/memory_hotplug.c | 6 ++++--
lxc-dave/mm/page_alloc.c | 25 +++++++++++++++++--------
5 files changed, 31 insertions(+), 13 deletions(-)
diff -puN mm/page_alloc.c~sparsemem-enum1 mm/page_alloc.c
--- lxc/mm/page_alloc.c~sparsemem-enum1 2006-12-19 09:38:34.000000000 -0800
+++ lxc-dave/mm/page_alloc.c 2006-12-19 11:18:24.000000000 -0800
@@ -2062,17 +2062,24 @@ static inline unsigned long wait_table_b
* done. Non-atomic initialization, single-pass.
*/
void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone,
- unsigned long start_pfn)
+ unsigned long start_pfn, enum memmap_context context)
{
struct page *page;
unsigned long end_pfn = start_pfn + size;
unsigned long pfn;
for (pfn = start_pfn; pfn < end_pfn; pfn++) {
- if (!early_pfn_valid(pfn))
- continue;
- if (!early_pfn_in_nid(pfn, nid))
- continue;
+ /*
+ * There can be holes in boot-time mem_map[]s
+ * handed to this function. They do not
+ * exist on hotplugged memory.
+ */
+ if (context == MEMMAP_EARLY) {
+ if (!early_pfn_valid(pfn))
+ continue;
+ if (!early_pfn_in_nid(pfn, nid))
+ continue;
+ }
page = pfn_to_page(pfn);
set_page_links(page, zone, nid, pfn);
init_page_count(page);
@@ -2102,7 +2109,7 @@ void zone_init_free_lists(struct pglist_
#ifndef __HAVE_ARCH_MEMMAP_INIT
#define memmap_init(size, nid, zone, start_pfn) \
- memmap_init_zone((size), (nid), (zone), (start_pfn))
+ memmap_init_zone((size), (nid), (zone), (start_pfn), MEMMAP_EARLY)
#endif
static int __cpuinit zone_batchsize(struct zone *zone)
@@ -2348,7 +2355,8 @@ static __meminit void zone_pcp_init(stru
__meminit int init_currently_empty_zone(struct zone *zone,
unsigned long zone_start_pfn,
- unsigned long size)
+ unsigned long size,
+ enum memmap_context context)
{
struct pglist_data *pgdat = zone->zone_pgdat;
int ret;
@@ -2792,7 +2800,8 @@ static void __meminit free_area_init_cor
if (!size)
continue;
- ret = init_currently_empty_zone(zone, zone_start_pfn, size);
+ ret = init_currently_empty_zone(zone, zone_start_pfn,
+ size, MEMMAP_EARLY);
BUG_ON(ret);
zone_start_pfn += size;
}
diff -puN include/linux/mm.h~sparsemem-enum1 include/linux/mm.h
--- lxc/include/linux/mm.h~sparsemem-enum1 2006-12-19 09:38:45.000000000 -0800
+++ lxc-dave/include/linux/mm.h 2006-12-19 09:50:47.000000000 -0800
@@ -979,7 +979,12 @@ extern int early_pfn_to_nid(unsigned lon
#endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */
#endif /* CONFIG_ARCH_POPULATES_NODE_MAP */
extern void set_dma_reserve(unsigned long new_dma_reserve);
-extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long);
+enum memmap_context {
+ MEMMAP_EARLY,
+ MEMMAP_HOTPLUG,
+};
+extern void memmap_init_zone(unsigned long, int, unsigned long,
+ unsigned long, enum memmap_context);
extern void setup_per_zone_pages_min(void);
extern void mem_init(void);
extern void show_mem(void);
diff -puN mm/memory_hotplug.c~sparsemem-enum1 mm/memory_hotplug.c
--- lxc/mm/memory_hotplug.c~sparsemem-enum1 2006-12-19 09:39:19.000000000 -0800
+++ lxc-dave/mm/memory_hotplug.c 2006-12-19 09:50:24.000000000 -0800
@@ -67,11 +67,13 @@ static int __add_zone(struct zone *zone,
zone_type = zone - pgdat->node_zones;
if (!populated_zone(zone)) {
int ret = 0;
- ret = init_currently_empty_zone(zone, phys_start_pfn, nr_pages);
+ ret = init_currently_empty_zone(zone, phys_start_pfn,
+ nr_pages, MEMMAP_HOTPLUG);
if (ret < 0)
return ret;
}
- memmap_init_zone(nr_pages, nid, zone_type, phys_start_pfn);
+ memmap_init_zone(nr_pages, nid, zone_type,
+ phys_start_pfn, MEMMAP_HOTPLUG);
return 0;
}
diff -puN arch/s390/mm/vmem.c~sparsemem-enum1 arch/s390/mm/vmem.c
--- lxc/arch/s390/mm/vmem.c~sparsemem-enum1 2006-12-19 09:42:26.000000000 -0800
+++ lxc-dave/arch/s390/mm/vmem.c 2006-12-19 11:17:49.000000000 -0800
@@ -61,7 +61,8 @@ void memmap_init(unsigned long size, int
if (map_start < map_end)
memmap_init_zone((unsigned long)(map_end - map_start),
- nid, zone, page_to_pfn(map_start));
+ nid, zone, page_to_pfn(map_start),
+ context);
}
}
diff -puN include/linux/mmzone.h~sparsemem-enum1 include/linux/mmzone.h
--- lxc/include/linux/mmzone.h~sparsemem-enum1 2006-12-19 09:48:58.000000000 -0800
+++ lxc-dave/include/linux/mmzone.h 2006-12-19 09:53:42.000000000 -0800
@@ -474,7 +474,8 @@ int zone_watermark_ok(struct zone *z, in
int classzone_idx, int alloc_flags);
extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
- unsigned long size);
+ unsigned long size,
+ enum memmap_context context);
#ifdef CONFIG_HAVE_MEMORY_PRESENT
void memory_present(int nid, unsigned long start, unsigned long end);
_
-- Dave
WARNING: multiple messages have this Message-ID (diff)
From: Dave Hansen <haveblue@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: linuxppc-dev@ozlabs.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Andrew Morton <akpm@osdl.org>,
kmannth@us.ibm.com, linux-kernel@vger.kernel.org,
hch@infradead.org, linux-mm@kvack.org, paulus@samba.org,
mkravetz@us.ibm.com, gone@us.ibm.com, cbe-oss-dev@ozlabs.org,
Keith Mannthey <kmannth@us.ibm.com>,
John Rose <johnrose@austin.ibm.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH] Fix sparsemem on Cell (take 3)
Date: Fri, 05 Jan 2007 17:10:03 -0800 [thread overview]
Message-ID: <1168045803.8945.14.camel@localhost.localdomain> (raw)
In-Reply-To: <200612190959.47344.arnd@arndb.de>
I dropped this on the floor over Christmas. This has had a few smoke
tests on ppc64 and i386 and is ready for -mm. Against 2.6.20-rc2-mm1.
The following patch fixes an oops experienced on the Cell architecture
when init-time functions, early_*(), are called at runtime. It alters
the call paths to make sure that the callers explicitly say whether the
call is being made on behalf of a hotplug even, or happening at
boot-time.
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---
lxc-dave/arch/s390/mm/vmem.c | 3 ++-
lxc-dave/include/linux/mm.h | 7 ++++++-
lxc-dave/include/linux/mmzone.h | 3 ++-
lxc-dave/mm/memory_hotplug.c | 6 ++++--
lxc-dave/mm/page_alloc.c | 25 +++++++++++++++++--------
5 files changed, 31 insertions(+), 13 deletions(-)
diff -puN mm/page_alloc.c~sparsemem-enum1 mm/page_alloc.c
--- lxc/mm/page_alloc.c~sparsemem-enum1 2006-12-19 09:38:34.000000000 -0800
+++ lxc-dave/mm/page_alloc.c 2006-12-19 11:18:24.000000000 -0800
@@ -2062,17 +2062,24 @@ static inline unsigned long wait_table_b
* done. Non-atomic initialization, single-pass.
*/
void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone,
- unsigned long start_pfn)
+ unsigned long start_pfn, enum memmap_context context)
{
struct page *page;
unsigned long end_pfn = start_pfn + size;
unsigned long pfn;
for (pfn = start_pfn; pfn < end_pfn; pfn++) {
- if (!early_pfn_valid(pfn))
- continue;
- if (!early_pfn_in_nid(pfn, nid))
- continue;
+ /*
+ * There can be holes in boot-time mem_map[]s
+ * handed to this function. They do not
+ * exist on hotplugged memory.
+ */
+ if (context == MEMMAP_EARLY) {
+ if (!early_pfn_valid(pfn))
+ continue;
+ if (!early_pfn_in_nid(pfn, nid))
+ continue;
+ }
page = pfn_to_page(pfn);
set_page_links(page, zone, nid, pfn);
init_page_count(page);
@@ -2102,7 +2109,7 @@ void zone_init_free_lists(struct pglist_
#ifndef __HAVE_ARCH_MEMMAP_INIT
#define memmap_init(size, nid, zone, start_pfn) \
- memmap_init_zone((size), (nid), (zone), (start_pfn))
+ memmap_init_zone((size), (nid), (zone), (start_pfn), MEMMAP_EARLY)
#endif
static int __cpuinit zone_batchsize(struct zone *zone)
@@ -2348,7 +2355,8 @@ static __meminit void zone_pcp_init(stru
__meminit int init_currently_empty_zone(struct zone *zone,
unsigned long zone_start_pfn,
- unsigned long size)
+ unsigned long size,
+ enum memmap_context context)
{
struct pglist_data *pgdat = zone->zone_pgdat;
int ret;
@@ -2792,7 +2800,8 @@ static void __meminit free_area_init_cor
if (!size)
continue;
- ret = init_currently_empty_zone(zone, zone_start_pfn, size);
+ ret = init_currently_empty_zone(zone, zone_start_pfn,
+ size, MEMMAP_EARLY);
BUG_ON(ret);
zone_start_pfn += size;
}
diff -puN include/linux/mm.h~sparsemem-enum1 include/linux/mm.h
--- lxc/include/linux/mm.h~sparsemem-enum1 2006-12-19 09:38:45.000000000 -0800
+++ lxc-dave/include/linux/mm.h 2006-12-19 09:50:47.000000000 -0800
@@ -979,7 +979,12 @@ extern int early_pfn_to_nid(unsigned lon
#endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */
#endif /* CONFIG_ARCH_POPULATES_NODE_MAP */
extern void set_dma_reserve(unsigned long new_dma_reserve);
-extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long);
+enum memmap_context {
+ MEMMAP_EARLY,
+ MEMMAP_HOTPLUG,
+};
+extern void memmap_init_zone(unsigned long, int, unsigned long,
+ unsigned long, enum memmap_context);
extern void setup_per_zone_pages_min(void);
extern void mem_init(void);
extern void show_mem(void);
diff -puN mm/memory_hotplug.c~sparsemem-enum1 mm/memory_hotplug.c
--- lxc/mm/memory_hotplug.c~sparsemem-enum1 2006-12-19 09:39:19.000000000 -0800
+++ lxc-dave/mm/memory_hotplug.c 2006-12-19 09:50:24.000000000 -0800
@@ -67,11 +67,13 @@ static int __add_zone(struct zone *zone,
zone_type = zone - pgdat->node_zones;
if (!populated_zone(zone)) {
int ret = 0;
- ret = init_currently_empty_zone(zone, phys_start_pfn, nr_pages);
+ ret = init_currently_empty_zone(zone, phys_start_pfn,
+ nr_pages, MEMMAP_HOTPLUG);
if (ret < 0)
return ret;
}
- memmap_init_zone(nr_pages, nid, zone_type, phys_start_pfn);
+ memmap_init_zone(nr_pages, nid, zone_type,
+ phys_start_pfn, MEMMAP_HOTPLUG);
return 0;
}
diff -puN arch/s390/mm/vmem.c~sparsemem-enum1 arch/s390/mm/vmem.c
--- lxc/arch/s390/mm/vmem.c~sparsemem-enum1 2006-12-19 09:42:26.000000000 -0800
+++ lxc-dave/arch/s390/mm/vmem.c 2006-12-19 11:17:49.000000000 -0800
@@ -61,7 +61,8 @@ void memmap_init(unsigned long size, int
if (map_start < map_end)
memmap_init_zone((unsigned long)(map_end - map_start),
- nid, zone, page_to_pfn(map_start));
+ nid, zone, page_to_pfn(map_start),
+ context);
}
}
diff -puN include/linux/mmzone.h~sparsemem-enum1 include/linux/mmzone.h
--- lxc/include/linux/mmzone.h~sparsemem-enum1 2006-12-19 09:48:58.000000000 -0800
+++ lxc-dave/include/linux/mmzone.h 2006-12-19 09:53:42.000000000 -0800
@@ -474,7 +474,8 @@ int zone_watermark_ok(struct zone *z, in
int classzone_idx, int alloc_flags);
extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
- unsigned long size);
+ unsigned long size,
+ enum memmap_context context);
#ifdef CONFIG_HAVE_MEMORY_PRESENT
void memory_present(int nid, unsigned long start, unsigned long end);
_
-- Dave
WARNING: multiple messages have this Message-ID (diff)
From: Dave Hansen <haveblue@us.ibm.com>
To: Andrew Morton <akpm@osdl.org>
Cc: linuxppc-dev@ozlabs.org,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
kmannth@us.ibm.com, linux-kernel@vger.kernel.org,
hch@infradead.org, linux-mm@kvack.org, paulus@samba.org,
mkravetz@us.ibm.com, gone@us.ibm.com,
cbe-oss-dev@ozlabs.orgKeith Mannthey <kmannth@us.ibm.com>,
John Rose <johnrose@austin.ibm.com>,
Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH] Fix sparsemem on Cell (take 3)
Date: Fri, 05 Jan 2007 17:10:03 -0800 [thread overview]
Message-ID: <1168045803.8945.14.camel@localhost.localdomain> (raw)
In-Reply-To: <200612190959.47344.arnd@arndb.de>
I dropped this on the floor over Christmas. This has had a few smoke
tests on ppc64 and i386 and is ready for -mm. Against 2.6.20-rc2-mm1.
The following patch fixes an oops experienced on the Cell architecture
when init-time functions, early_*(), are called at runtime. It alters
the call paths to make sure that the callers explicitly say whether the
call is being made on behalf of a hotplug even, or happening at
boot-time.
Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
---
lxc-dave/arch/s390/mm/vmem.c | 3 ++-
lxc-dave/include/linux/mm.h | 7 ++++++-
lxc-dave/include/linux/mmzone.h | 3 ++-
lxc-dave/mm/memory_hotplug.c | 6 ++++--
lxc-dave/mm/page_alloc.c | 25 +++++++++++++++++--------
5 files changed, 31 insertions(+), 13 deletions(-)
diff -puN mm/page_alloc.c~sparsemem-enum1 mm/page_alloc.c
--- lxc/mm/page_alloc.c~sparsemem-enum1 2006-12-19 09:38:34.000000000 -0800
+++ lxc-dave/mm/page_alloc.c 2006-12-19 11:18:24.000000000 -0800
@@ -2062,17 +2062,24 @@ static inline unsigned long wait_table_b
* done. Non-atomic initialization, single-pass.
*/
void __meminit memmap_init_zone(unsigned long size, int nid, unsigned long zone,
- unsigned long start_pfn)
+ unsigned long start_pfn, enum memmap_context context)
{
struct page *page;
unsigned long end_pfn = start_pfn + size;
unsigned long pfn;
for (pfn = start_pfn; pfn < end_pfn; pfn++) {
- if (!early_pfn_valid(pfn))
- continue;
- if (!early_pfn_in_nid(pfn, nid))
- continue;
+ /*
+ * There can be holes in boot-time mem_map[]s
+ * handed to this function. They do not
+ * exist on hotplugged memory.
+ */
+ if (context == MEMMAP_EARLY) {
+ if (!early_pfn_valid(pfn))
+ continue;
+ if (!early_pfn_in_nid(pfn, nid))
+ continue;
+ }
page = pfn_to_page(pfn);
set_page_links(page, zone, nid, pfn);
init_page_count(page);
@@ -2102,7 +2109,7 @@ void zone_init_free_lists(struct pglist_
#ifndef __HAVE_ARCH_MEMMAP_INIT
#define memmap_init(size, nid, zone, start_pfn) \
- memmap_init_zone((size), (nid), (zone), (start_pfn))
+ memmap_init_zone((size), (nid), (zone), (start_pfn), MEMMAP_EARLY)
#endif
static int __cpuinit zone_batchsize(struct zone *zone)
@@ -2348,7 +2355,8 @@ static __meminit void zone_pcp_init(stru
__meminit int init_currently_empty_zone(struct zone *zone,
unsigned long zone_start_pfn,
- unsigned long size)
+ unsigned long size,
+ enum memmap_context context)
{
struct pglist_data *pgdat = zone->zone_pgdat;
int ret;
@@ -2792,7 +2800,8 @@ static void __meminit free_area_init_cor
if (!size)
continue;
- ret = init_currently_empty_zone(zone, zone_start_pfn, size);
+ ret = init_currently_empty_zone(zone, zone_start_pfn,
+ size, MEMMAP_EARLY);
BUG_ON(ret);
zone_start_pfn += size;
}
diff -puN include/linux/mm.h~sparsemem-enum1 include/linux/mm.h
--- lxc/include/linux/mm.h~sparsemem-enum1 2006-12-19 09:38:45.000000000 -0800
+++ lxc-dave/include/linux/mm.h 2006-12-19 09:50:47.000000000 -0800
@@ -979,7 +979,12 @@ extern int early_pfn_to_nid(unsigned lon
#endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */
#endif /* CONFIG_ARCH_POPULATES_NODE_MAP */
extern void set_dma_reserve(unsigned long new_dma_reserve);
-extern void memmap_init_zone(unsigned long, int, unsigned long, unsigned long);
+enum memmap_context {
+ MEMMAP_EARLY,
+ MEMMAP_HOTPLUG,
+};
+extern void memmap_init_zone(unsigned long, int, unsigned long,
+ unsigned long, enum memmap_context);
extern void setup_per_zone_pages_min(void);
extern void mem_init(void);
extern void show_mem(void);
diff -puN mm/memory_hotplug.c~sparsemem-enum1 mm/memory_hotplug.c
--- lxc/mm/memory_hotplug.c~sparsemem-enum1 2006-12-19 09:39:19.000000000 -0800
+++ lxc-dave/mm/memory_hotplug.c 2006-12-19 09:50:24.000000000 -0800
@@ -67,11 +67,13 @@ static int __add_zone(struct zone *zone,
zone_type = zone - pgdat->node_zones;
if (!populated_zone(zone)) {
int ret = 0;
- ret = init_currently_empty_zone(zone, phys_start_pfn, nr_pages);
+ ret = init_currently_empty_zone(zone, phys_start_pfn,
+ nr_pages, MEMMAP_HOTPLUG);
if (ret < 0)
return ret;
}
- memmap_init_zone(nr_pages, nid, zone_type, phys_start_pfn);
+ memmap_init_zone(nr_pages, nid, zone_type,
+ phys_start_pfn, MEMMAP_HOTPLUG);
return 0;
}
diff -puN arch/s390/mm/vmem.c~sparsemem-enum1 arch/s390/mm/vmem.c
--- lxc/arch/s390/mm/vmem.c~sparsemem-enum1 2006-12-19 09:42:26.000000000 -0800
+++ lxc-dave/arch/s390/mm/vmem.c 2006-12-19 11:17:49.000000000 -0800
@@ -61,7 +61,8 @@ void memmap_init(unsigned long size, int
if (map_start < map_end)
memmap_init_zone((unsigned long)(map_end - map_start),
- nid, zone, page_to_pfn(map_start));
+ nid, zone, page_to_pfn(map_start),
+ context);
}
}
diff -puN include/linux/mmzone.h~sparsemem-enum1 include/linux/mmzone.h
--- lxc/include/linux/mmzone.h~sparsemem-enum1 2006-12-19 09:48:58.000000000 -0800
+++ lxc-dave/include/linux/mmzone.h 2006-12-19 09:53:42.000000000 -0800
@@ -474,7 +474,8 @@ int zone_watermark_ok(struct zone *z, in
int classzone_idx, int alloc_flags);
extern int init_currently_empty_zone(struct zone *zone, unsigned long start_pfn,
- unsigned long size);
+ unsigned long size,
+ enum memmap_context context);
#ifdef CONFIG_HAVE_MEMORY_PRESENT
void memory_present(int nid, unsigned long start, unsigned long end);
_
-- Dave
--
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:[~2007-01-06 1:10 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-12-15 16:53 [PATCH] Fix sparsemem on Cell Dave Hansen
2006-12-15 16:53 ` Dave Hansen
2006-12-15 16:53 ` Dave Hansen
2006-12-15 17:11 ` Andy Whitcroft
2006-12-15 17:11 ` Andy Whitcroft
2006-12-15 17:11 ` Andy Whitcroft
2006-12-15 17:24 ` Dave Hansen
2006-12-15 17:24 ` Dave Hansen
2006-12-15 17:24 ` Dave Hansen
2006-12-15 19:45 ` Andrew Morton
2006-12-15 19:45 ` Andrew Morton
2006-12-15 19:45 ` Andrew Morton
2006-12-16 8:03 ` KAMEZAWA Hiroyuki
2006-12-16 8:03 ` KAMEZAWA Hiroyuki
2006-12-16 8:03 ` KAMEZAWA Hiroyuki
2006-12-18 21:13 ` Dave Hansen
2006-12-18 21:13 ` Dave Hansen
2006-12-18 21:13 ` Dave Hansen
2006-12-18 22:15 ` Christoph Hellwig
2006-12-18 22:15 ` Christoph Hellwig
2006-12-18 22:15 ` Christoph Hellwig
2006-12-18 22:54 ` Arnd Bergmann
2006-12-18 22:54 ` Arnd Bergmann
2006-12-18 22:54 ` Arnd Bergmann
2006-12-18 23:16 ` Dave Hansen
2006-12-18 23:16 ` Dave Hansen
2006-12-18 23:16 ` Dave Hansen
2006-12-19 0:16 ` KAMEZAWA Hiroyuki
2006-12-19 0:16 ` KAMEZAWA Hiroyuki
2006-12-19 0:16 ` KAMEZAWA Hiroyuki
2006-12-19 8:59 ` Arnd Bergmann
2006-12-19 8:59 ` Arnd Bergmann
2006-12-19 8:59 ` Arnd Bergmann
2006-12-19 19:34 ` Dave Hansen
2006-12-19 19:34 ` Dave Hansen
2006-12-19 19:34 ` Dave Hansen
2007-01-06 1:10 ` Dave Hansen [this message]
2007-01-06 1:10 ` [PATCH] Fix sparsemem on Cell (take 3) Dave Hansen
2007-01-06 1:10 ` Dave Hansen
2007-01-06 4:52 ` John Rose
2007-01-06 4:52 ` John Rose
2007-01-06 4:52 ` John Rose
2007-01-07 8:58 ` Dave Hansen
2007-01-07 8:58 ` Dave Hansen
2007-01-07 8:58 ` Dave Hansen
2007-01-07 12:07 ` Arnd Bergmann
2007-01-07 12:07 ` Arnd Bergmann
2007-01-07 12:07 ` Arnd Bergmann
2007-01-08 6:31 ` Tim Pepper
2007-01-08 6:31 ` Tim Pepper
2007-01-08 6:47 ` Tim Pepper
2007-01-08 6:47 ` Tim Pepper
2007-01-08 6:47 ` Tim Pepper
2006-12-15 17:22 ` [PATCH] Fix sparsemem on Cell Michael Buesch
2006-12-15 17:22 ` Michael Buesch
2006-12-15 17:22 ` Michael Buesch
2006-12-15 17:57 ` Dave Hansen
2006-12-15 17:57 ` Dave Hansen
2006-12-15 17:57 ` Dave Hansen
2006-12-15 20:21 ` Benjamin Herrenschmidt
2006-12-15 20:21 ` Benjamin Herrenschmidt
2006-12-15 20:21 ` Benjamin Herrenschmidt
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=1168045803.8945.14.camel@localhost.localdomain \
--to=haveblue@us.ibm.com \
--cc=akpm@osdl.org \
--cc=arnd@arndb.de \
--cc=cbe-oss-dev@ozlabs.org \
--cc=gone@us.ibm.com \
--cc=hch@infradead.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kmannth@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=mkravetz@us.ibm.com \
--cc=paulus@samba.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.