lkml.org 
[lkml]   [2007]   [Feb]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [-mm patch] UNION_FS must depend on SLAB
    On Wed, Feb 21, 2007 at 02:19:44PM -0800, Andrew Morton wrote:
    > On Tue, 20 Feb 2007 10:13:56 -0500
    > Josef Sipek <jsipek@fsl.cs.sunysb.edu> wrote:
    >
    > > On Tue, Feb 20, 2007 at 08:37:34AM +0200, Pekka Enberg wrote:
    > > > On 2/20/07, Adrian Bunk <bunk@stusta.de> wrote:
    > > > > CC fs/unionfs/copyup.o
    > > > >/home/bunk/linux/kernel-2.6/linux-2.6.20-mm2/fs/unionfs/copyup.c: In
    > > > >function 'create_parents_named':
    > > > >/home/bunk/linux/kernel-2.6/linux-2.6.20-mm2/fs/unionfs/copyup.c:620:
    > > > >error: 'malloc_sizes' undeclared (first use in this function)
    > > > >/home/bunk/linux/kernel-2.6/linux-2.6.20-mm2/fs/unionfs/copyup.c:620:
    > > > >error: (Each undeclared identifier is reported only once
    > > > >/home/bunk/linux/kernel-2.6/linux-2.6.20-mm2/fs/unionfs/copyup.c:620:
    > > > >error: for each function it appears in.)
    > > > >make[3]: *** [fs/unionfs/copyup.o] Error 1
    > > >
    > > > Hmm, why is unionfs playing around with malloc_sizes in the first place?
    > > > Jeff?
    > >
    > > The code is in lookup.c:
    > >
    > > if (oldsize) {
    > > int minsize = malloc_sizes[0].cs_size;
    > >
    > > if (!newsize || ((oldsize < newsize) && (newsize > minsize))) {
    > > kfree(info->lower_paths);
    > > info->lower_paths = NULL;
    > > }
    > > }
    > >
    > > That's the only user of malloc_sizes. It is supposed to be an optimization -
    > > we get the smallest sized piece of memory even if we don't need all of it.
    > > This way we don't reallocate & memcpy needlessly.
    > >
    >
    > urgh, no, please don't poke around in slab internals like that.

    I agree that it is a hack.

    > I can't say more until I've managed to understand your description, which
    > might take a while.

    It is intended for reallocation of a buffer. The code in lookup.c allocates
    some memory, and it may have to reallocate the buffer. The code tries to
    prevent some unneeded allocations by looking at what the smallest object the
    slabcache gives you is.

    I hope this explains it better. There's some discussion about this in the
    threads by Pekka Enberg.

    Josef "Jeff" Sipek.

    --
    Linux, n.:
    Generous programmers from around the world all join forces to help
    you shoot yourself in the foot for free.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-02-22 03:05    [W:0.024 / U:91.712 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site