From: Glauber Costa <glommer@parallels.com>
To: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>, Joonsoo Kim <js1304@gmail.com>,
linux-mm@kvack.org, David Rientjes <rientjes@google.com>,
elezegarcia@gmail.com
Subject: Re: CK2 [01/15] slab: Simplify bootstrap
Date: Mon, 22 Oct 2012 11:57:39 +0400 [thread overview]
Message-ID: <5084FC73.1030302@parallels.com> (raw)
In-Reply-To: <0000013a796a77f9-b0c5beb7-21e0-4e62-bc08-5b909617f678-000000@email.amazonses.com>
On 10/19/2012 06:25 PM, Christoph Lameter wrote:
> The nodelists field in kmem_cache is pointing to the first unused
> object in the array field when bootstrap is complete.
>
> A problem with the current approach is that the statically sized
> kmem_cache structure use on boot can only contain NR_CPUS entries.
> If the number of nodes plus the number of cpus is greater then we
> would overwrite memory following the kmem_cache_boot definition.
>
> Increase the size of the array field to ensure that also the node
> pointers fit into the array field.
>
> Once we do that we no longer need the kmem_cache_nodelists
> array and we can then also use that structure elsewhere.
Fair.
One comment:
> /*
> + * The memory after the last cpu cache pointer is used for the
> + * the nodelists pointer.
> + */
> +static void setup_nodelists_pointer(struct kmem_cache *s)
> +{
> + s->nodelists = (struct kmem_list3 **)&s->array[nr_cpu_ids];
> +}
> +
> +/*
> * Initialisation. Called after the page allocator have been initialised and
> * before smp_init().
> */
> @@ -1590,13 +1597,15 @@ void __init kmem_cache_init(void)
> int node;
>
> kmem_cache = &kmem_cache_boot;
> + setup_nodelists_pointer(kmem_cache);
>
> if (num_possible_nodes() == 1)
> use_alien_caches = 0;
>
> +
> for (i = 0; i < NUM_INIT_LISTS; i++) {
> kmem_list3_init(&initkmem_list3[i]);
> - if (i < MAX_NUMNODES)
> + if (i < nr_node_ids)
> kmem_cache->nodelists[i] = NULL;
> }
With nodelists being part of kmem_cache, and kmem_cache being allocated
with kmem_cache_zalloc, it seems to me that you can actually just get
rid of the inner loop instead of patching it. But this is orthogonal to
this patch...
So:
Acked-by: Glauber Costa <glommer@parallels.com>
--
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:[~2012-10-22 7:57 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20121019142254.724806786@linux.com>
2012-10-19 14:25 ` CK2 [02/15] create common functions for boot slab creation Christoph Lameter
2012-10-20 15:57 ` JoonSoo Kim
2012-10-19 14:25 ` CK2 [01/15] slab: Simplify bootstrap Christoph Lameter
2012-10-22 7:57 ` Glauber Costa [this message]
2012-10-23 20:45 ` Christoph Lameter
2012-10-19 14:32 ` CK2 [14/15] stat: Use size_t for sizes instead of unsigned Christoph Lameter
2012-10-22 8:42 ` Glauber Costa
2012-10-19 14:32 ` CK2 [05/15] Common alignment code Christoph Lameter
2012-10-19 14:32 ` CK2 [12/15] Common definition for the array of kmalloc caches Christoph Lameter
2012-10-19 14:42 ` CK2 [04/15] slab: Use the new create_boot_cache function to simplify bootstrap Christoph Lameter
2012-10-20 16:01 ` JoonSoo Kim
2012-10-22 8:09 ` Glauber Costa
2012-10-23 21:40 ` Christoph Lameter
2012-10-19 14:42 ` CK2 [13/15] Common function to create the kmalloc array Christoph Lameter
2012-10-22 9:51 ` Glauber Costa
2012-10-19 14:42 ` CK2 [15/15] Common Kmalloc cache determination Christoph Lameter
2012-10-20 16:20 ` JoonSoo Kim
2012-10-23 20:40 ` Christoph Lameter
2012-10-19 14:45 ` CK2 [08/15] slab: Use common kmalloc_index/kmalloc_size functions Christoph Lameter
2012-10-20 16:12 ` JoonSoo Kim
2012-10-23 20:39 ` Christoph Lameter
2012-10-24 17:47 ` JoonSoo Kim
2012-10-19 14:49 ` CK2 [09/15] slab: Common name for the per node structures Christoph Lameter
2012-10-20 16:14 ` JoonSoo Kim
2012-10-23 20:39 ` Christoph Lameter
2012-10-22 8:32 ` Glauber Costa
2012-10-19 14:51 ` CK2 [07/15] Common kmalloc slab index determination Christoph Lameter
2012-10-22 9:45 ` Glauber Costa
2012-10-23 20:48 ` Christoph Lameter
2012-10-19 14:51 ` CK2 [03/15] slub: Use a statically allocated kmem_cache boot structure for bootstrap Christoph Lameter
2012-10-19 14:51 ` CK2 [06/15] Move kmalloc related function defs Christoph Lameter
2012-10-22 8:11 ` Glauber Costa
2012-10-19 14:51 ` CK2 [10/15] slab: rename nodelists to node Christoph Lameter
2012-10-22 8:34 ` Glauber Costa
2012-10-19 14:58 ` CK2 [11/15] Common constants for kmalloc boundaries Christoph Lameter
[not found] <20120928191715.368450474@linux.com>
2012-09-28 19:18 ` CK2 [01/15] slab: Simplify bootstrap Christoph Lameter
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=5084FC73.1030302@parallels.com \
--to=glommer@parallels.com \
--cc=cl@linux.com \
--cc=elezegarcia@gmail.com \
--cc=js1304@gmail.com \
--cc=linux-mm@kvack.org \
--cc=penberg@kernel.org \
--cc=rientjes@google.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.