public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Torokhov <dtor@vmware.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	David Miller <davem@davemloft.net>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Rusty Russell <rusty@rustcorp.com.au>,
	Linux/m68k <linux-m68k@vger.kernel.org>,
	Linux-Arch <linux-arch@vger.kernel.org>
Subject: Re: [PATCH 1/3] module: deal with alignment issues in built-in module versions
Date: Thu, 17 Feb 2011 10:00:42 -0800	[thread overview]
Message-ID: <20110217180042.GA30530@dtor-ws.eng.vmware.com> (raw)
In-Reply-To: <AANLkTikGVS9EM=7uhwYfXrGHg9yzes7m0pxAinRxivPC@mail.gmail.com>

On Thu, Feb 17, 2011 at 09:45:37AM -0800, Linus Torvalds wrote:
> On Thu, Feb 17, 2011 at 9:31 AM, Dmitry Torokhov <dtor@vmware.com> wrote:
> >
> > From what I understand __attribute__ ((aligned(x))) only guarantees
> > minimum alignment, not exact (gapless) alignment. GCC seems to lay out
> > pointers in the section without gaps on all arches that we have.
> 
> I still don't see the problem.
> 
> Have you actually _tried_ just adding the proper alignment to before
> the __modver thing in include/asm-generic/vmlinux.lds.h ?
> 
> As far as I can tell, the bug is really simple:
>  - the section is not aligned
>  - but we told the compiler that that structure is aligned
> 
> End result: there is a gap between the section start and the first structure.
> 
> And the fix seems obvious: just make sure that the section is
> sufficiently aligned.
> 
> IOW, why isn't the proper fix the obvious trivial one (attached)?
> 

The problem is that on m68k size of the struct module_version_attribute
is not evenly divisible by sizeof(void *), thus when we lay out the
__modver section we align on 4 bytes but when we iterate we think that
the alignment is 2.

I/Geert tried adding __attribute__ (aligned(sizeof(void *))) to the type
definition itself so we have matching alignment everywhere, but DaveM
said that this only guarantees minimum alignment and that using
structures like we do shown to break from time to time in kprobes and
that only pointers worked reliably.

Thanks.

-- 
Dmitry

  reply	other threads:[~2011-02-17 18:01 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-08  0:02 [PATCH 1/3] module: deal with alignment issues in built-in module versions Dmitry Torokhov
2011-02-08  0:02 ` [PATCH 2/3] module: deal with alignment issues in built-in module parameters Dmitry Torokhov
2011-02-08  0:02 ` [PATCH 3/3] module: do not hide __modver_version_show declaration behind ifdef Dmitry Torokhov
2011-02-08 21:12 ` [PATCH 1/3] module: deal with alignment issues in built-in module versions Geert Uytterhoeven
2011-02-17 12:43   ` Geert Uytterhoeven
2011-02-11 22:03 ` [PATCH v2] module: deal with alignment issues in built-in module parameters Dmitry Torokhov
2011-02-13 23:04   ` Rusty Russell
2011-02-17 17:24 ` [PATCH 1/3] module: deal with alignment issues in built-in module versions Linus Torvalds
2011-02-17 17:31   ` Dmitry Torokhov
2011-02-17 17:45     ` Linus Torvalds
2011-02-17 18:00       ` Dmitry Torokhov [this message]
2011-02-17 18:06         ` Linus Torvalds
2011-02-17 21:01           ` David Miller
2011-02-17 21:11             ` Linus Torvalds
2011-02-17 21:17               ` David Miller
2011-02-17 21:54                 ` Linus Torvalds
2011-02-17 22:01                   ` David Miller
2011-02-17 22:19                     ` Dmitry Torokhov
2011-02-17 22:23                       ` David Miller
2011-02-17 22:48                         ` Linus Torvalds
2011-02-17 23:08                           ` Linus Torvalds
2011-02-17 23:19                             ` David Miller
2011-02-19  0:14                             ` Benjamin Herrenschmidt
2011-02-21  4:00                               ` Rusty Russell
2011-02-21  7:38                                 ` Geert Uytterhoeven
2011-02-21  7:49                                   ` Dmitry Torokhov
2011-02-21 13:25                                     ` Geert Uytterhoeven
2011-02-22  1:58                                 ` Benjamin Herrenschmidt
2011-02-22  2:03                                   ` Linus Torvalds
2011-02-22  7:02                                     ` Dmitry Torokhov
2011-02-22 17:08                                       ` Jesper Nilsson
2011-02-22 20:47                                         ` Linus Torvalds
2011-02-23 15:00                                           ` Jesper Nilsson

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=20110217180042.GA30530@dtor-ws.eng.vmware.com \
    --to=dtor@vmware.com \
    --cc=davem@davemloft.net \
    --cc=geert@linux-m68k.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-m68k@vger.kernel.org \
    --cc=rusty@rustcorp.com.au \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox