From: Alex Shi <alex.shi@intel.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: gcc@gcc.gnu.org, Ingo Molnar <mingo@elte.hu>,
tglx@linutronix.de, "mingo@redhat.com" <mingo@redhat.com>,
hpa@zytor.com, akpm@linux-foundation.org,
linux-kernel@vger.kernel.org, x86@kernel.org,
andi.kleen@intel.com, gcc-help@gcc.gnu.org
Subject: Re: [RFC patch] spindep: add cross cache lines checking
Date: Thu, 08 Mar 2012 10:30:47 +0800 [thread overview]
Message-ID: <1331173847.18835.355.camel@debian> (raw)
In-Reply-To: <201203071154.36059.arnd@arndb.de>
> > 1, it is alignof bug for default gcc on my fc15 and Ubuntu 11.10 etc?
> >
> > struct sub {
> > int raw_lock;
> > char a;
> > };
> > struct foo {
> > struct sub z;
> > int slk;
> > char y;
> > }__attribute__((packed));
> >
> > struct foo f1;
> >
> > __alignof__(f1.z.raw_lock) is 4, but its address actually can align on
> > one byte.
>
> That looks like correct behavior, because the alignment of raw_lock inside of
> struct sub is still 4. But it does mean that there can be cases where the
> compile-time check is not sufficient, so we might want the run-time check
> as well, at least under some config option.
According to explanation of gcc, seems it should return 1 when it can be
align on char. And then it's useful for design intend. Any comments from
gcc guys?
====
http://gcc.gnu.org/onlinedocs/gcc/Alignment.html
The keyword __alignof__ allows you to inquire about how an object is
aligned, or the minimum alignment usually required by a type. Its syntax
is just like sizeof.
prev parent reply other threads:[~2012-03-08 2:31 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-05 3:20 [RFC patch] spin_lock: add cross cache lines checking Alex Shi
2012-03-05 3:24 ` Alex Shi
2012-03-05 5:43 ` [RFC patch] spindep: " Alex Shi
2012-03-05 5:48 ` Alex Shi
2012-03-05 9:41 ` Arnd Bergmann
2012-03-05 10:43 ` Ingo Molnar
2012-03-06 6:13 ` Alex Shi
2012-03-06 6:18 ` Alex Shi
2012-03-06 9:32 ` Arnd Bergmann
2012-03-07 8:23 ` Alex Shi
2012-03-07 11:54 ` Arnd Bergmann
2012-03-07 13:13 ` Alex Shi
2012-03-07 13:39 ` Ingo Molnar
2012-03-08 2:21 ` Alex Shi
2012-03-08 7:13 ` Ingo Molnar
2012-03-09 1:20 ` Alex Shi
2012-03-08 2:30 ` Alex Shi [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=1331173847.18835.355.camel@debian \
--to=alex.shi@intel.com \
--cc=akpm@linux-foundation.org \
--cc=andi.kleen@intel.com \
--cc=arnd@arndb.de \
--cc=gcc-help@gcc.gnu.org \
--cc=gcc@gcc.gnu.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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.