linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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>
Subject: Re: C13 [00/14] Sl[auo]b: Common code for cgroups V13
Date: Mon, 3 Sep 2012 19:39:37 +0400	[thread overview]
Message-ID: <5044CF39.60201@parallels.com> (raw)
In-Reply-To: <000001395964f744-d2c49443-b8b7-4ab8-bcab-ab68a418f276-000000@email.amazonses.com>

On 08/24/2012 08:09 PM, Christoph Lameter wrote:
> V12->V13
> - Reduce patches to those useful for cgroup support
> - Additional patches continuing slab unification will
>   be posted separately.
> 
> V10->V11
> - Fix issues pointed out by Joonsoo and Glauber
> - Simplify Slab bootstrap further
> 
> V9->V10
> - Memory leak was a false alarm
> - Resequence patches to make it easier
>   to apply.
> - Do more boot sequence consolidation in slab/slub.
>   [We could still do much more like common kmalloc
>   handling]
> - Fixes suggested by David and Glauber
> 
> V8->V9:
> - Fix numerous things pointed out by Glauber.
> - Cleanup the way error handling works in the
>   common kmem_cache_create() function.
> - General cleanup by breaking things up
>   into multiple patches were necessary.
> 
> V7->V8:
> - Do not use kfree for kmem_cache in slub.
> - Add more patches up to a common
>   scheme for object alignment.
> 
> V6->V7:
> - Omit pieces that were merged for 3.6
> - Fix issues pointed out by Glauber.
> - Include the patches up to the point at which
>   the slab name handling is unified
> 
> V5->V6:
> - Patches against Pekka's for-next tree.
> - Go slow and cut down to just patches that are safe
>   (there will likely be some churn already due to the
>   mutex unification between slabs)
> - More to come next week when I have more time (
>   took me almost the whole week to catch up after
>   being gone for awhile).
> 
> V4->V5
> - Rediff against current upstream + Pekka's cleanup branch.
> 
> V3->V4:
> - Do not use the COMMON macro anymore.
> - Fixup various issues
> - No general sysfs support yet due to lockdep issues with
>   keys in kmalloc'ed memory.
> 
> V2->V3:
> - Incorporate more feedback from Joonsoo Kim and Glauber Costa
> - And a couple more patches to deal with slab duping and move
>   more code to slab_common.c
> 
> V1->V2:
> - Incorporate glommers feedback.
> - Add 2 more patches dealing with common code in kmem_cache_destroy
> 
> This is a series of patches that extracts common functionality from
> slab allocators into a common code base. The intend is to standardize
> as much as possible of the allocator behavior while keeping the
> distinctive features of each allocator which are mostly due to their
> storage format and serialization approaches.
> 
> This patchset makes a beginning by extracting common functionality in
> kmem_cache_create() and kmem_cache_destroy(). However, there are
> numerous other areas where such work could be beneficial:
> 
> 1. Extract the sysfs support from SLUB and make it common. That way
>    all allocators have a common sysfs API and are handleable in the same
>    way regardless of the allocator chose.
> 
> 2. Extract the error reporting and checking from SLUB and make
>    it available for all allocators. This means that all allocators
>    will gain the resiliency and error handling capabilties.
> 
> 3. Extract the memory hotplug and cpu hotplug handling. It seems that
>    SLAB may be more sophisticated here. Having common code here will
>    make it easier to maintain the special code.
> 
> 4. Extract the aliasing capability of SLUB. This will enable fast
>    slab creation without creating too many additional slab caches.
>    The arrays of caches of varying sizes in numerous subsystems
>    do not cause the creation of numerous slab caches. Storage
>    density is increased and the cache footprint is reduced.
> 
> Ultimately it is to be hoped that the special code for each allocator
> shrinks to a mininum. This will also make it easier to make modification
> to allocators.
> 
> In the far future one could envision that the current allocators will
> just become storage algorithms that can be chosen based on the need of
> the subsystem. F.e.
> 
> Cpu cache dependend performance		= Bonwick allocator (SLAB)
> Minimal cycle count and cache footprint	= SLUB
> Maximum storage density			= K&R allocator (SLOB)
> 
> 

I reviewed all your series, focusing on the former problems found at the
slub. I also boot tested it, although I didn't fully bisect-tested it. I
build & boot tested individual patches where I remembered them to be
breaking before.

The series seem fine, apart from a minor concern I have with the
rcu_barrier(). The actual object freeing is still done after the
barrier, but a lot of code freeing internal structures of the allocator
is now no more, and this sounds extremely suspicious. I believe it is wrong.

The slab has some build issues, mainly present with CONFIG_DEBUG. I
pointed them out and it should be trivial to fix.

I expect at least a final respin of this fixing the aforementioned
problems. You may want for us to sort out the rcu thing on-list before
posting it. Please make it just a respin, without adding any more
patches on top, so we can converge on this.



--
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>

      reply	other threads:[~2012-09-03 15:42 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-24 16:09 Christoph Lameter
2012-09-03 15:39 ` Glauber Costa [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=5044CF39.60201@parallels.com \
    --to=glommer@parallels.com \
    --cc=cl@linux.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox