All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glauber Costa <glommer@parallels.com>
To: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>,
	linux-mm@kvack.org, David Rientjes <rientjes@google.com>,
	Matt Mackall <mpm@selenic.com>
Subject: Re: [RFC] SL[AUO]B common code 5/9] slabs: Common definition for boot state of the slab allocators
Date: Wed, 16 May 2012 12:19:36 +0400	[thread overview]
Message-ID: <4FB36318.30600@parallels.com> (raw)
In-Reply-To: <20120514201611.710540961@linux.com>

On 05/15/2012 12:15 AM, Christoph Lameter wrote:
> ll allocators have some sort of support for the bootstrap status.
>
> Setup a common definition for the boot states and make all slab
> allocators use that definition.
>
> Signed-off-by: Christoph Lameter<cl@linux.com>

This is a good change.

> Index: linux-2.6/mm/slab.c
> ===================================================================
> --- linux-2.6.orig/mm/slab.c	2012-05-11 09:43:33.160436947 -0500
> +++ linux-2.6/mm/slab.c	2012-05-11 09:43:53.448436526 -0500
> @@ -87,6 +87,7 @@
>    */
>
>   #include	<linux/slab.h>
> +#include	"slab.h"

Why do we need a separate file for that?
I know some people do prefer it... I am not being one of them, just feel 
forced to ask =)

>   static int __init_refok setup_cpu_cache(struct kmem_cache *cachep, gfp_t gfp)
>   {
> -	if (g_cpucache_up == FULL)
> +	if (slab_state == FULL)
>   		return enable_cpucache(cachep, gfp);
>
> -	if (g_cpucache_up == NONE) {
> +	if (slab_state == DOWN) {

Can we avoid doing == tests here?

There are a couple of places where that test seems to be okay (I 
remember 1 in the slub), but at least for the "FULL" test here, we 
should be testing >= FULL.

Also, I don't like the name FULL too much, since I do intend to add a 
new one soon (MEMCG, as you can see in my series)

Since we are using slab-specific states like PARTIAL_L3 here, maybe we 
can use slub's like SYSFS here with no problem.

If we stick to >= and <= whenever needed, that should reflect a lot 
better what the algorithm is really doing


> Index: linux-2.6/include/linux/slab.h
> ===================================================================
> --- linux-2.6.orig/include/linux/slab.h	2012-05-11 09:43:33.164436947 -0500
> +++ linux-2.6/include/linux/slab.h	2012-05-11 09:43:53.448436526 -0500
> @@ -117,10 +117,6 @@ int kmem_cache_shrink(struct kmem_cache
>   void kmem_cache_free(struct kmem_cache *, void *);
>   unsigned int kmem_cache_size(struct kmem_cache *);
>
> -/* Slab internal function */
> -struct kmem_cache *__kmem_cache_create(const char *, size_t, size_t,
> -			unsigned long,
> -			void (*)(void *));
>   /*
>    * Please use this macro to create slab caches. Simply specify the
>    * name of the structure and maybe some flags that are listed above.
>

Should be in an earlier patch...

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2012-05-16  8:21 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-14 20:15 [RFC] SL[AUO]B common code 0/9] Sl[auo]b: Common functionality V1 Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 1/9] [slob] define page struct fields used in mm_types.h Christoph Lameter
2012-05-16  7:31   ` Glauber Costa
2012-05-16 14:26     ` Christoph Lameter
2012-05-16 15:38       ` Christoph Lameter
2012-05-17  9:41         ` Glauber Costa
2012-05-17 14:09           ` Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 2/9] [slab]: Use page struct fields instead of casting Christoph Lameter
2012-05-16  7:52   ` Glauber Costa
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 3/9] Extract common fields from struct kmem_cache Christoph Lameter
2012-05-16  7:59   ` Glauber Costa
2012-05-16 14:28     ` Christoph Lameter
2012-05-16 15:41     ` Christoph Lameter
     [not found]   ` <alpine.LFD.2.02.1205160943180.2249@tux.localdomain>
     [not found]     ` <alpine.DEB.2.00.1205160922520.25512@router.home>
     [not found]       ` <alpine.LFD.2.02.1205181221570.3899@tux.localdomain>
2012-05-18 13:57         ` Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 4/9] slabs: Extract common code for kmem_cache_create Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 5/9] slabs: Common definition for boot state of the slab allocators Christoph Lameter
2012-05-16  8:19   ` Glauber Costa [this message]
2012-05-16 14:31     ` Christoph Lameter
2012-05-17  9:38       ` Glauber Costa
2012-05-17 14:07         ` Christoph Lameter
2012-05-17 14:08           ` Glauber Costa
2012-05-17 14:16             ` Christoph Lameter
2012-05-17 14:19               ` Glauber Costa
2012-05-17 14:27                 ` Christoph Lameter
2012-05-16 15:44     ` Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 6/9] slabs: Use a common mutex definition Christoph Lameter
2012-05-16  8:34   ` Glauber Costa
2012-05-16 14:32     ` Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 7/9] slabs: Move kmem_cache_create mutex handling to common code Christoph Lameter
2012-05-16 10:15   ` Glauber Costa
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 8/9] slabs: list addition move to slab_common Christoph Lameter
2012-05-16 10:09   ` Glauber Costa
2012-05-16 14:33     ` Christoph Lameter
2012-05-17  9:39       ` Glauber Costa
2012-05-17 14:09         ` Christoph Lameter
2012-05-14 20:15 ` [RFC] SL[AUO]B common code 9/9] slabs: Extract a common function for kmem_cache_destroy Christoph Lameter
2012-05-16  8:08 ` [RFC] SL[AUO]B common code 0/9] Sl[auo]b: Common functionality V1 Glauber Costa
2012-05-16 14:28   ` 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=4FB36318.30600@parallels.com \
    --to=glommer@parallels.com \
    --cc=cl@linux.com \
    --cc=linux-mm@kvack.org \
    --cc=mpm@selenic.com \
    --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.