Re: [PATCH -mm 00/14] bootmem rewrite v4

From: Andrew Morton
Date: Sun Jun 08 2008 - 19:33:43 EST


On Sun, 08 Jun 2008 23:52:47 +0200 Johannes Weiner <hannes@xxxxxxxxxxxx> wrote:

> Hi,
>
> Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> writes:
>
> > On Fri, 06 Jun 2008 00:49:40 +0200 Johannes Weiner <hannes@xxxxxxxxxxxx> wrote:
> >
> >> This is a complete overhaul of the bootmem allocator while preserving
> >> most of its original functionality.
> >
> > Confused. This conflicts with patches from yourself which I have already
> > merged.
>
> Hum. I just tried again:
>
> - checkout v2.6.26-rc5
> - get latest mmotm broken-out tarball (stamp-2008-06-07-02-27)
> - git-quiltimport
> - apply the bootmem series
>
> and no conflicts. Anything I missed? Which files are conflicting, btw?
>

bootmem-reorder-code-to-match-new-bootmem-structure.patch spits:

***************
*** 575,609 ****
return ptr;
}
#endif
-
- #ifndef ARCH_LOW_ADDRESS_LIMIT
- #define ARCH_LOW_ADDRESS_LIMIT 0xffffffffUL
- #endif
-
- void * __init __alloc_bootmem_low(unsigned long size, unsigned long align,
- unsigned long goal)
- {
- bootmem_data_t *bdata;
- void *ptr;
-
- list_for_each_entry(bdata, &bdata_list, list) {
- ptr = alloc_bootmem_core(bdata, size, align, goal,
- ARCH_LOW_ADDRESS_LIMIT);
- if (ptr)
- return ptr;
- }
-
- /*
- * Whoops, we cannot satisfy the allocation request.
- */
- printk(KERN_ALERT "low bootmem alloc of %lu bytes failed!\n", size);
- panic("Out of low memory");
- return NULL;
- }
-
- void * __init __alloc_bootmem_low_node(pg_data_t *pgdat, unsigned long size,
- unsigned long align, unsigned long goal)
- {
- return alloc_bootmem_core(pgdat->bdata, size, align, goal,
- ARCH_LOW_ADDRESS_LIMIT);
- }
--- 606,608 ----
return ptr;
}
#endif

and

***************
*** 79,107 ****
__alloc_bootmem(x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_low_pages(x) \
__alloc_bootmem_low(x, PAGE_SIZE, 0)
- #endif /* !CONFIG_HAVE_ARCH_BOOTMEM_NODE */
-
- extern unsigned long free_all_bootmem(void);
- extern unsigned long free_all_bootmem_node(pg_data_t *pgdat);
- extern void *__alloc_bootmem_node(pg_data_t *pgdat,
- unsigned long size,
- unsigned long align,
- unsigned long goal);
- extern unsigned long init_bootmem_node(pg_data_t *pgdat,
- unsigned long freepfn,
- unsigned long startpfn,
- unsigned long endpfn);
- extern void reserve_bootmem_node(pg_data_t *pgdat,
- unsigned long physaddr,
- unsigned long size,
- int flags);
- extern void free_bootmem_node(pg_data_t *pgdat,
- unsigned long addr,
- unsigned long size);
- extern void *alloc_bootmem_section(unsigned long size,
- unsigned long section_nr);
-
- #ifndef CONFIG_HAVE_ARCH_BOOTMEM_NODE
#define alloc_bootmem_node(pgdat, x) \
__alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_pages_node(pgdat, x) \
--- 101,106 ----
__alloc_bootmem(x, PAGE_SIZE, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_low_pages(x) \
__alloc_bootmem_low(x, PAGE_SIZE, 0)
#define alloc_bootmem_node(pgdat, x) \
__alloc_bootmem_node(pgdat, x, SMP_CACHE_BYTES, __pa(MAX_DMA_ADDRESS))
#define alloc_bootmem_pages_node(pgdat, x) \

Seems that Nick's mm-introduce-non-panic-alloc_bootmem.patch mucked
things up. I'll have a go at fixing things.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/