From: Ingo Molnar <mingo@kernel.org>
To: Andy Lutomirski <luto@amacapital.net>
Cc: Denys Vlasenko <vda.linux@googlemail.com>,
Denys Vlasenko <dvlasenk@redhat.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Steven Rostedt <rostedt@goodmis.org>,
Borislav Petkov <bp@alien8.de>, "H. Peter Anvin" <hpa@zytor.com>,
Oleg Nesterov <oleg@redhat.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Alexei Starovoitov <ast@plumgrid.com>,
Will Drewry <wad@chromium.org>, Kees Cook <keescook@chromium.org>,
X86 ML <x86@kernel.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] move offsetofend() from vfio.h to stddef.h
Date: Mon, 9 Mar 2015 16:45:38 +0100 [thread overview]
Message-ID: <20150309154538.GA21578@gmail.com> (raw)
In-Reply-To: <CALCETrXRjpary2PRzxbyjcwJcHUu5Pr4ELiK8+=_feNxooMoPg@mail.gmail.com>
* Andy Lutomirski <luto@amacapital.net> wrote:
> > So I might be missing something, but what generic uses does it
> > have, beyond structures that have some rare size related
> > weirdness, such as alignment attributes? In 99% of the cases:
> >
> > sizeof(struct) == offsetofend(struct, last_member)
> >
> > right?
>
> struct foo {
> u64 a;
> char b;
> };
>
> sizeof(struct foo) will be 16, but offsetofend(struct foo, b) will be
> 9 on most platforms, right?
I knew I missed something obvious :-)
Let me attempt to get it right:
When the next byte after the last member of a structure is not aligned
to the largest alignment requirement of any structure member, then the
structure grows (is padded) and offsetofend() < sizeof().
'packed' or 'aligned' attributes will modify the largest alignment
requirement value so they are a common but not only mechanism for this
to be the case.
Thanks,
Ingo
next prev parent reply other threads:[~2015-03-09 15:45 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-09 14:52 [PATCH 1/2] move offsetofend() from vfio.h to stddef.h Denys Vlasenko
2015-03-09 14:52 ` [PATCH 2/2 v2] x86: make 32-bit "emergency stack" better documented Denys Vlasenko
2015-03-09 15:16 ` Andy Lutomirski
2015-03-14 16:00 ` Pavel Machek
2015-03-14 17:24 ` Brian Gerst
2015-03-16 12:10 ` [tip:x86/asm] x86/asm/entry/32: Document the 32-bit SYSENTER " emergency stack" better tip-bot for Denys Vlasenko
2015-03-17 8:46 ` tip-bot for Denys Vlasenko
2015-03-09 14:58 ` [PATCH 1/2] move offsetofend() from vfio.h to stddef.h Ingo Molnar
2015-03-09 15:15 ` Denys Vlasenko
2015-03-09 15:28 ` Ingo Molnar
2015-03-09 15:30 ` Andy Lutomirski
2015-03-09 15:45 ` Ingo Molnar [this message]
2015-03-09 15:44 ` Alex Williamson
2015-03-09 16:16 ` Linus Torvalds
2015-03-16 12:10 ` [tip:x86/asm] include/stddef.h: Move offsetofend() from vfio.h to a generic kernel header tip-bot for Denys Vlasenko
2015-03-17 8:46 ` tip-bot for Denys Vlasenko
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=20150309154538.GA21578@gmail.com \
--to=mingo@kernel.org \
--cc=ast@plumgrid.com \
--cc=bp@alien8.de \
--cc=dvlasenk@redhat.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=oleg@redhat.com \
--cc=rostedt@goodmis.org \
--cc=torvalds@linux-foundation.org \
--cc=vda.linux@googlemail.com \
--cc=wad@chromium.org \
--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.