All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pekka Enberg <penberg@cs.helsinki.fi>
To: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
Cc: Paul Mundt <lethal@linux-sh.org>,
	linux-kernel@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-mm@vger.kernel.org,
	Christoph Lameter <cl@linux-foundation.org>
Subject: Re: [PATCH] slab: fix slab flags for archs use alignment larger
Date: Fri, 13 Feb 2009 09:22:58 +0000	[thread overview]
Message-ID: <84144f020902130122y471dd92em4a72de43a0cfc681@mail.gmail.com> (raw)
In-Reply-To: <499544AD.3030804@st.com>

Hi Giuseppe,

On Fri, Feb 13, 2009 at 12:00 PM, Giuseppe CAVALLARO
<peppe.cavallaro@st.com> wrote:
> IIUC, and as you explained above, ralign is already set to the cache
> line size by the following code:
> ...
> /* 3) caller mandated alignment */
> if (ralign < align)
> ralign = align;
>
> Then, there is following check:
> ...
> /* disable debug if necessary */
> if (ralign > _alignof__(unsigned long long))
> flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER);
>
> In my point of view, just this check appears "incoherent" (please, note
> I'm not familiar with the slab internals).
> It always makes sense in case of x86 where ARCH_KMALLOC_MINALIGN is
> defined as: __alignof__(unsigned long long) as well.

The code is indeed quite cryptic but I don't think the above statement
is correct. Both SLAB_RED_ZONE and SLAB_STORE_USER add padding in
front of an object and the maximum size of that padding is 2 *
sizeof(unsigned long long). That's why we check for
__alignof__(unsigned long) there to make sure the object can begin
immediately after the padding added for red-zone and user pointer.

On Fri, Feb 13, 2009 at 12:00 PM, Giuseppe CAVALLARO
<peppe.cavallaro@st.com> wrote:
> In case of sh, we always disable debug for 32 aligned objects. As side
> effect, within the leaks_show function we immediately exit for them.
> Indeed, after applying the patch, I attached, I was able to find size-X
> fields within the slab_allocators proc entry.

That sounds unfortunate. Can you post

  cat /proc/meminfo | grep Slab

results on sh without and with your patch? Bumping the limit up to
ARCH_KMALLOC_MINALIGN does make sense but we'd need to know what kind
of problems it might cause.

                                Pekka

WARNING: multiple messages have this Message-ID (diff)
From: Pekka Enberg <penberg@cs.helsinki.fi>
To: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
Cc: Paul Mundt <lethal@linux-sh.org>,
	linux-kernel@vger.kernel.org, linux-sh@vger.kernel.org,
	linux-mm@vger.kernel.org,
	Christoph Lameter <cl@linux-foundation.org>
Subject: Re: [PATCH] slab: fix slab flags for archs use alignment larger  64-bit
Date: Fri, 13 Feb 2009 11:22:58 +0200	[thread overview]
Message-ID: <84144f020902130122y471dd92em4a72de43a0cfc681@mail.gmail.com> (raw)
In-Reply-To: <499544AD.3030804@st.com>

Hi Giuseppe,

On Fri, Feb 13, 2009 at 12:00 PM, Giuseppe CAVALLARO
<peppe.cavallaro@st.com> wrote:
> IIUC, and as you explained above, ralign is already set to the cache
> line size by the following code:
> ...
> /* 3) caller mandated alignment */
> if (ralign < align)
> ralign = align;
>
> Then, there is following check:
> ...
> /* disable debug if necessary */
> if (ralign > _alignof__(unsigned long long))
> flags &= ~(SLAB_RED_ZONE | SLAB_STORE_USER);
>
> In my point of view, just this check appears "incoherent" (please, note
> I'm not familiar with the slab internals).
> It always makes sense in case of x86 where ARCH_KMALLOC_MINALIGN is
> defined as: __alignof__(unsigned long long) as well.

The code is indeed quite cryptic but I don't think the above statement
is correct. Both SLAB_RED_ZONE and SLAB_STORE_USER add padding in
front of an object and the maximum size of that padding is 2 *
sizeof(unsigned long long). That's why we check for
__alignof__(unsigned long) there to make sure the object can begin
immediately after the padding added for red-zone and user pointer.

On Fri, Feb 13, 2009 at 12:00 PM, Giuseppe CAVALLARO
<peppe.cavallaro@st.com> wrote:
> In case of sh, we always disable debug for 32 aligned objects. As side
> effect, within the leaks_show function we immediately exit for them.
> Indeed, after applying the patch, I attached, I was able to find size-X
> fields within the slab_allocators proc entry.

That sounds unfortunate. Can you post

  cat /proc/meminfo | grep Slab

results on sh without and with your patch? Bumping the limit up to
ARCH_KMALLOC_MINALIGN does make sense but we'd need to know what kind
of problems it might cause.

                                Pekka

  reply	other threads:[~2009-02-13  9:22 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-12 17:51 [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Giuseppe CAVALLARO
2009-02-12 18:56 ` Paul Mundt
2009-02-12 18:56   ` Paul Mundt
2009-02-13  9:00   ` Giuseppe CAVALLARO
2009-02-13 10:00     ` Giuseppe CAVALLARO
2009-02-13  9:22     ` Pekka Enberg [this message]
2009-02-13  9:22       ` Pekka Enberg
2009-02-13  9:30       ` [PATCH] slab: fix slab flags for archs use alignment larger Pekka Enberg
2009-02-13  9:30         ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Pekka Enberg
2009-02-13  9:30         ` Pekka Enberg
2009-02-13  9:47       ` [PATCH] slab: fix slab flags for archs use alignment larger Giuseppe CAVALLARO
2009-02-13 10:46         ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Giuseppe CAVALLARO
2009-02-13 10:05         ` [PATCH] slab: fix slab flags for archs use alignment larger Pekka Enberg
2009-02-13 10:05           ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Pekka Enberg
2009-02-13 10:16           ` [PATCH] slab: fix slab flags for archs use alignment larger Giuseppe CAVALLARO
2009-02-13 11:15             ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Giuseppe CAVALLARO
2009-02-13 13:11             ` [PATCH] slab: fix slab flags for archs use alignment larger Giuseppe CAVALLARO
2009-02-13 14:11               ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Giuseppe CAVALLARO
2009-02-13 13:41               ` [PATCH] slab: fix slab flags for archs use alignment larger Pekka Enberg
2009-02-13 13:41                 ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Pekka Enberg
2009-02-18  8:31                 ` [PATCH] slab: fix slab flags for archs use alignment larger Giuseppe CAVALLARO
2009-02-18  9:30                   ` [PATCH] slab: fix slab flags for archs use alignment larger 64-bit Giuseppe CAVALLARO

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=84144f020902130122y471dd92em4a72de43a0cfc681@mail.gmail.com \
    --to=penberg@cs.helsinki.fi \
    --cc=cl@linux-foundation.org \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=peppe.cavallaro@st.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.