From: Ingo Molnar <mingo@elte.hu>
To: Yinghai Lu <yinghai@kernel.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Andrew Morton <akpm@linux-foundation.org>,
Jesse Barnes <jbarnes@virtuousgeek.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Christoph Lameter <cl@linux-foundation.org>,
Pekka Enberg <penberg@cs.helsinki.fi>
Subject: Re: [PATCH 2/2] sparsemem: put mem map for one node together.
Date: Mon, 28 Dec 2009 09:35:25 +0100 [thread overview]
Message-ID: <20091228083525.GJ28652@elte.hu> (raw)
In-Reply-To: <4B2DEC5C.8000108@kernel.org>
* Yinghai Lu <yinghai@kernel.org> wrote:
> add vmemmap_alloc_block_buf for mem map only.
>
> it will fallback old wayif can not get that big.
>
> it will help system with more memory that use early_res instead of bootmem
> that can not handle too many entries
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>
> ---
> arch/x86/mm/init_64.c | 2
> include/linux/mm.h | 7 +++
> mm/sparse-vmemmap.c | 70 +++++++++++++++++++++++++++++++
> mm/sparse.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++-
> 4 files changed, 187 insertions(+), 3 deletions(-)
> +++ linux-2.6/mm/sparse-vmemmap.c
> @@ -43,6 +43,8 @@ static void * __init_refok __earlyonly_b
> return __alloc_bootmem_node_high(NODE_DATA(node), size, align, goal);
> }
>
> +static void *buf;
> +static void *buf_end;
there's so many buf's in the kernel - this naming isnt very intuitive. Also,
they should perhaps be __initdata-ish?
> void * __meminit vmemmap_alloc_block(unsigned long size, int node)
> {
> @@ -64,6 +66,24 @@ void * __meminit vmemmap_alloc_block(uns
> __pa(MAX_DMA_ADDRESS));
> }
>
> +/* need to make sure size is all the same during early stage */
> +void * __meminit vmemmap_alloc_block_buf(unsigned long size, int node)
> +{
> + void *ptr;
> +
> + if (!buf)
> + return vmemmap_alloc_block(size, node);
> +
> + /* take the from buf */
> + ptr = (void *)ALIGN((unsigned long)buf, size);
Hm, two type cast in the same line.
these kinds of x86-64-isms:
> +++ linux-2.6/mm/sparse.c
>
> +#ifndef CONFIG_X86_64
> +#ifdef CONFIG_X86_64
> +#ifdef CONFIG_X86_64
> +#else
> +#endif
> +#ifdef CONFIG_X86_64
> +#endif
are not particularly welcome constructs in core MM files. Appropriately
structured Kconfig helper bools, selected by arch's, are cleaner.
These patches need more work.
Ingo
prev parent reply other threads:[~2009-12-28 8:35 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4B2B4C19.6010402@kernel.org>
2009-12-18 9:46 ` [PATCH 1/9] x86: move range related operation to one file Yinghai Lu
2009-12-18 20:10 ` H. Peter Anvin
2009-12-18 20:17 ` Yinghai Lu
2009-12-18 21:26 ` H. Peter Anvin
2009-12-18 23:47 ` Yinghai Lu
2009-12-19 0:25 ` H. Peter Anvin
2009-12-19 0:27 ` Yinghai Lu
2009-12-19 0:34 ` H. Peter Anvin
2009-12-18 9:46 ` [PATCH 2/9] x86: check range in update range Yinghai Lu
2009-12-18 17:23 ` Jesse Barnes
2009-12-18 19:39 ` Yinghai Lu
2009-12-18 9:47 ` [PATCH 3/9] x86: call early_res_to_bootmem one time Yinghai Lu
2009-12-18 9:47 ` [PATCH 4/9] x86: introduce max_early_res and early_res_count Yinghai Lu
2009-12-18 9:47 ` [PATCH 5/9] x86: dynamic increase early_res array size -v2 Yinghai Lu
2009-12-18 9:47 ` [PATCH 6/9] x86: print bootmem free before pci_iommu_alloc and free_all_bootmem -v2 Yinghai Lu
2009-12-18 9:48 ` [PATCH 7/9] x86: make early_node_mem get mem > 4g if possible -v2 Yinghai Lu
2009-12-18 9:48 ` [PATCH 8/9] x86: only call dma32_reserve_bootmem 64bit !CONFIG_NUMA Yinghai Lu
2009-12-18 9:48 ` [PATCH 9/9] x86: make 64 bit use early_res instead of bootmem before slab Yinghai Lu
2009-12-20 9:18 ` [PATCH 1/2] sparsemem: put usemap for one node together Yinghai Lu
2009-12-20 9:20 ` [PATCH 2/2] sparsemem: put mem map " Yinghai Lu
2009-12-28 8:35 ` Ingo Molnar [this message]
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=20091228083525.GJ28652@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=cl@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-kernel@vger.kernel.org \
--cc=penberg@cs.helsinki.fi \
--cc=tglx@linutronix.de \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox