lkml.org 
[lkml]   [2009]   [Feb]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patches in this message
/
Date
From
SubjectRe: [PATCH] slab: fix slab flags for archs use alignment larger 64-bit
Giuseppe CAVALLARO wrote:
> Pekka Enberg wrote:
>
>> Hi Giuseppe,
>>
>> On Fri, Feb 13, 2009 at 12:46 PM, Giuseppe CAVALLARO
>> <peppe.cavallaro@st.com> wrote:
>>
>>
>>> 1) LOG with my patch:
>>> root@linux:~# cat /proc/meminfo | grep Slab
>>> Slab: 2612 kB
>>>
>>> 2) LOG without my patch:
>>> root@linux:~# cat /proc/meminfo | grep Slab
>>> Slab: 2504 kB
>>>
>>>
>> That's not too bad. I assume it's L1_CACHE_BYTES set to 32 bytes?
>>
> you are perfectly right.
>
>> One big problem with your patch is that on some MIPS configurations
>> ARCH_KMALLOC_MINALIGN is as big as 128.
>>
> Agree again and problem understood... thanks!
>
>> So if you're going to do this, you can't use ARCH_KMALLOC_MINALIGN directly but add a some
>> SLAB_MAX_DEBUG_ALIGN which can be overridden by architecture code.
>>
>>
> If you like, I can prepare a patch in any case.
> Then we can decide if it actually adds complexity and discard it.
> Otherwise we could maintain it.
>
>> One obvious question, though, is whether all this is worth the added
>> complexity. I mean, we've managed "just fine" without it for years.
>> Paul, thoughts?
>>
>> Pekka
>>
>>
Hi!
as promised, patches attached.
At any rate, (this is just my feeling) although we add more complexity
this kind of 'fixes' can actually help users to debug.
So, complexity is welcome especially in these scenarios (debug on, users
in panic mode :-)).
Let me know.
Cheers,
Peppe
From 86c7fe861b4a6ee7b533a25ce2c506134a7533a8 Mon Sep 17 00:00:00 2001
From: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Date: Fri, 13 Feb 2009 15:06:22 +0100
Subject: [PATCH] slab: fix the debug information with different alignments.

This patch is to fix the debug information reported in /proc/slab_allocators

for all the architectures by using a new define (ARCH_SLAB_MAX_DEBUG_ALIGN)
rather than the alignment of a 64-bit integer.
Currently, on sh, for example, /proc/slab_allocators has no size-X entries
as side effect.

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
---
mm/slab.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/mm/slab.c b/mm/slab.c
index 4d00855..587e0f3 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -165,6 +165,10 @@
#define ARCH_SLAB_MINALIGN 0
#endif

+#ifndef ARCH_SLAB_MAX_DEBUG_ALIGN
+#define ARCH_SLAB_MAX_DEBUG_ALIGN __alignof__(unsigned long long)
+#endif
+
#ifndef ARCH_KMALLOC_FLAGS
#define ARCH_KMALLOC_FLAGS SLAB_HWCACHE_ALIGN
#endif
@@ -2262,7 +2266,7 @@ kmem_cache_create (const char *name, size_t size, size_t align,
ralign = align;
}
/* disable debug if necessary */
- if (ralign > __alignof__(unsigned long long))
+ if (ralign > ARCH_SLAB_MAX_DEBUG_ALIGN)
flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER);
/*
* 4) Store it.
--
1.5.6.6
From 3b461766df1841f03e740b91efc38132eae74f86 Mon Sep 17 00:00:00 2001
From: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Date: Fri, 13 Feb 2009 15:06:39 +0100
Subject: [PATCH] sh: add the default value for ARCH_SLAB_MAX_DEBUG_ALIGN define.

Add and enforce ARCH_SLAB_MAX_DEBUG_ALIGN to the cache line size.

Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
---
arch/sh/include/asm/page.h | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/sh/include/asm/page.h b/arch/sh/include/asm/page.h
index 5871d78..14768c8 100644
--- a/arch/sh/include/asm/page.h
+++ b/arch/sh/include/asm/page.h
@@ -182,4 +182,6 @@ typedef struct page *pgtable_t;
#define ARCH_SLAB_MINALIGN 8
#endif

+#define ARCH_SLAB_MAX_DEBUG_ALIGN L1_CACHE_BYTES
+
#endif /* __ASM_SH_PAGE_H */
--
1.5.6.6
\
 
 \ /
  Last update: 2009-02-13 14:15    [W:0.607 / U:0.616 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site