From: Pekka Enberg on
Hi Bob,

[ Please CC me on SLOB patches. You can use the 'scripts/get_maintainer.pl'
script to figure out automatically who to CC on your patches. ]

On Sat, Jul 10, 2010 at 1:05 PM, Bob Liu <lliubbo(a)gmail.com> wrote:
> slob has alloced smaller objects from their own list in reduce
> overall external fragmentation and increase repeatability,
> free to their own list also.
>
> Signed-off-by: Bob Liu <lliubbo(a)gmail.com>

The patch looks sane to me. Matt, does it look OK to you as well?

It would be nice to have some fragmentation numbers for this. One
really simple test case is to grep for MemTotal and MemFree in
/proc/meminfo. I'd expect to see some small improvement with your
patch applied. Quantifying long term fragmentation would be even
better but I don't have a good test case for that so I'm CC'ing Mel.

> ---
> �mm/slob.c | � �9 ++++++++-
> �1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/mm/slob.c b/mm/slob.c
> index 3f19a34..d582171 100644
> --- a/mm/slob.c
> +++ b/mm/slob.c
> @@ -396,6 +396,7 @@ static void slob_free(void *block, int size)
> � � � �slob_t *prev, *next, *b = (slob_t *)block;
> � � � �slobidx_t units;
> � � � �unsigned long flags;
> + � � � struct list_head *slob_list;
>
> � � � �if (unlikely(ZERO_OR_NULL_PTR(block)))
> � � � � � � � �return;
> @@ -424,7 +425,13 @@ static void slob_free(void *block, int size)
> � � � � � � � �set_slob(b, units,
> � � � � � � � � � � � �(void *)((unsigned long)(b +
> � � � � � � � � � � � � � � � � � � � �SLOB_UNITS(PAGE_SIZE)) & PAGE_MASK));
> - � � � � � � � set_slob_page_free(sp, &free_slob_small);
> + � � � � � � � if (size < SLOB_BREAK1)
> + � � � � � � � � � � � slob_list = &free_slob_small;
> + � � � � � � � else if (size < SLOB_BREAK2)
> + � � � � � � � � � � � slob_list = &free_slob_medium;
> + � � � � � � � else
> + � � � � � � � � � � � slob_list = &free_slob_large;
> + � � � � � � � set_slob_page_free(sp, slob_list);
> � � � � � � � �goto out;
> � � � �}
>
> --
> 1.5.6.3
>
> --
> To unsubscribe, send a message with 'unsubscribe linux-mm' in
> the body to majordomo(a)kvack.org. �For more info on Linux MM,
> see: http://www.linux-mm.org/ .
> Don't email: <a href=mailto:"dont(a)kvack.org"> email(a)kvack.org </a>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Pekka Enberg on
On Tue, Jul 13, 2010 at 8:52 PM, Pekka Enberg <penberg(a)cs.helsinki.fi> wrote:
> It would be nice to have some fragmentation numbers for this. One
> really simple test case is to grep for MemTotal and MemFree in
> /proc/meminfo. I'd expect to see some small improvement with your
> patch applied.

Small correction: grep them immediately after you've booted up the
kernel. If you run applications, the numbers are not comparable.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Matt Mackall on
On Tue, 2010-07-13 at 20:52 +0300, Pekka Enberg wrote:
> Hi Bob,
>
> [ Please CC me on SLOB patches. You can use the 'scripts/get_maintainer.pl'
> script to figure out automatically who to CC on your patches. ]
>
> On Sat, Jul 10, 2010 at 1:05 PM, Bob Liu <lliubbo(a)gmail.com> wrote:
> > slob has alloced smaller objects from their own list in reduce
> > overall external fragmentation and increase repeatability,
> > free to their own list also.
> >
> > Signed-off-by: Bob Liu <lliubbo(a)gmail.com>
>
> The patch looks sane to me. Matt, does it look OK to you as well?

Yep, this should be a marginal improvement.

Acked-by: Matt Mackall <mpm(a)selenic.com>

--
Mathematics is the supreme nostalgia of our time.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Pekka Enberg on
On Wed, Jul 14, 2010 at 12:53 AM, Matt Mackall <mpm(a)selenic.com> wrote:
> On Tue, 2010-07-13 at 20:52 +0300, Pekka Enberg wrote:
>> Hi Bob,
>>
>> [ Please CC me on SLOB patches. You can use the 'scripts/get_maintainer.pl'
>> � script to figure out automatically who to CC on your patches. ]
>>
>> On Sat, Jul 10, 2010 at 1:05 PM, Bob Liu <lliubbo(a)gmail.com> wrote:
>> > slob has alloced smaller objects from their own list in reduce
>> > overall external fragmentation and increase repeatability,
>> > free to their own list also.
>> >
>> > Signed-off-by: Bob Liu <lliubbo(a)gmail.com>
>>
>> The patch looks sane to me. Matt, does it look OK to you as well?
>
> Yep, this should be a marginal improvement.
>
> Acked-by: Matt Mackall <mpm(a)selenic.com>

Great! Bob, if you could provide the /proc/meminfo numbers for the
patch description, I'd be more than happy to merge this.

Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Bob Liu on
On Wed, Jul 14, 2010 at 5:07 PM, Pekka Enberg <penberg(a)cs.helsinki.fi> wrote:
> On Wed, Jul 14, 2010 at 12:53 AM, Matt Mackall <mpm(a)selenic.com> wrote:
>> On Tue, 2010-07-13 at 20:52 +0300, Pekka Enberg wrote:
>>> Hi Bob,
>>>
>>> [ Please CC me on SLOB patches. You can use the 'scripts/get_maintainer.pl'
>>>   script to figure out automatically who to CC on your patches. ]
>>>
>>> On Sat, Jul 10, 2010 at 1:05 PM, Bob Liu <lliubbo(a)gmail.com> wrote:
>>> > slob has alloced smaller objects from their own list in reduce
>>> > overall external fragmentation and increase repeatability,
>>> > free to their own list also.
>>> >
>>> > Signed-off-by: Bob Liu <lliubbo(a)gmail.com>
>>>
>>> The patch looks sane to me. Matt, does it look OK to you as well?
>>
>> Yep, this should be a marginal improvement.
>>
>> Acked-by: Matt Mackall <mpm(a)selenic.com>
>
> Great! Bob, if you could provide the /proc/meminfo numbers for the
> patch description, I'd be more than happy to merge this.
>
Hi, Pekka

Sorry for the wrong cc and later reply.
This is /proc/meminfo result in my test machine:
without this patch:
===
MemTotal: 1030720 kB
MemFree: 750012 kB
Buffers: 15496 kB
Cached: 160396 kB
SwapCached: 0 kB
Active: 105024 kB
Inactive: 145604 kB
Active(anon): 74816 kB
Inactive(anon): 2180 kB
Active(file): 30208 kB
Inactive(file): 143424 kB
Unevictable: 16 kB
.....

with this patch:
===
MemTotal: 1030720 kB
MemFree: 751908 kB
Buffers: 15492 kB
Cached: 160280 kB
SwapCached: 0 kB
Active: 102720 kB
Inactive: 146140 kB
Active(anon): 73168 kB
Inactive(anon): 2180 kB
Active(file): 29552 kB
Inactive(file): 143960 kB
Unevictable: 16 kB
....

The result show only very small improverment!
And when i tested it on a embeded system with 64MB, I found this path
is never called while kernel booting.

Thanks for the kindly review.

--
Regards,
--Bob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/