mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: rostedt@goodmis.org
Cc: richm@oldelvet.org.uk, 609371@bugs.debian.org,
	ben@decadent.org.uk, sparclinux@vger.kernel.org,
	linux-kernel@vger.kernel.org, fweisbec@gmail.com,
	mingo@redhat.com, mathieu.desnoyers@efficios.com
Subject: Re: Bug#609371: linux-image-2.6.37-trunk-sparc64: module scsi_mod: Unknown relocation: 36
Date: Mon, 17 Jan 2011 22:00:39 -0800 (PST)	[thread overview]
Message-ID: <20110117.220039.71097651.davem@davemloft.net> (raw)
In-Reply-To: <20110117.213448.226787087.davem@davemloft.net>

From: David Miller <davem@davemloft.net>
Date: Mon, 17 Jan 2011 21:34:48 -0800 (PST)

> Where are these "holes" coming from?  Reading the commit message for
> the change that introduced this problem
> (86c38a31aa7f2dd6e74a262710bf8ebf7455acc5), it seems like the issue is
> coming from the compiler, and that fact that beforehand some
> structures were marked with 4-byte alignment.  The existing 4-byte
> alignment cases sound like the real bug to me, where is that happening
> and why?

Ok, now I'm getting a bit irritated.  I went and looked into the
history of this "aligned(4)" tag on ftrace_event_call.

The reason for it is completely undocumented, and in fact it gets
added in a commit whose commit message doesn't mention this part
of the commit's change at all.

That really sucks.

The commit message is:

commit 1473e4417c79f12d91ef91a469699bfa911f510f
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Tue Feb 24 14:15:08 2009 -0500

    tracing: make event directory structure
    
    This patch adds the directory /debug/tracing/events/ that will contain
    all the registered trace points.
    
     # ls /debug/tracing/events/
    sched_kthread_stop      sched_process_fork  sched_switch
    sched_kthread_stop_ret  sched_process_free  sched_wait_task
    sched_migrate_task      sched_process_wait  sched_wakeup
    sched_process_exit      sched_signal_send   sched_wakeup_new
    
     # ls /debug/tracing/events/sched_switch/
    enable
    
     # cat /debug/tracing/events/sched_switch/enable
    1
    
     # cat /debug/tracing/set_event
    sched_switch
    
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>

And in this commit we have:

@@ -39,6 +41,7 @@ static void ftrace_unreg_event_##call(void)				\
 }									\
 									\
 static struct ftrace_event_call __used					\
+__attribute__((__aligned__(4)))						\
 __attribute__((section("_ftrace_events"))) event_##call = {		\
 	.name 			= #call,				\
 	.regfunc		= ftrace_reg_event_##call,		\

Excuse me?

This is a serious infraction of responsible development, and it makes
bugs hard if not impossible to analyze.  I see it was postedo on LKML,
and I'm surprised nobody asked "Why are you adding that alignment, and
whatever the reason why isn't it mentioned in the commit message or in
a comment?"

Anyways, this commit is where this alignment originates.

It probably is spurious and unnecessary and we can remove it
completely from _ALL_ of the cases.  Did anyone do any research
whatsoever into why the alignment tag was put there in the first place
when the GCC 4.5 bug showed up?

Steven what is the deal here?

Can't we just do the following patch?  Also, I notice similar
alignment tag being used for syscall_metadata, what's the story there?

--------------------
ftrace: Remove unnecessary alignment tag from ftrace_event_call.

It's completely unnecessary and causes problems on platforms
where this tag down-aligns the structure's alignment.

Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
index 18cd068..05295f2 100644
--- a/include/linux/syscalls.h
+++ b/include/linux/syscalls.h
@@ -128,7 +128,6 @@ extern struct trace_event_functions exit_syscall_print_funcs;
 	static struct syscall_metadata					\
 	__attribute__((__aligned__(4))) __syscall_meta_##sname;		\
 	static struct ftrace_event_call __used				\
-	  __attribute__((__aligned__(4)))				\
 	  __attribute__((section("_ftrace_events")))			\
 	  event_enter_##sname = {					\
 		.name                   = "sys_enter"#sname,		\
@@ -142,7 +141,6 @@ extern struct trace_event_functions exit_syscall_print_funcs;
 	static struct syscall_metadata					\
 	__attribute__((__aligned__(4))) __syscall_meta_##sname;		\
 	static struct ftrace_event_call __used				\
-	  __attribute__((__aligned__(4)))				\
 	  __attribute__((section("_ftrace_events")))			\
 	  event_exit_##sname = {					\
 		.name                   = "sys_exit"#sname,		\
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index e16610c..bd86d1b 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -68,8 +68,7 @@
 
 #undef DEFINE_EVENT
 #define DEFINE_EVENT(template, name, proto, args)	\
-	static struct ftrace_event_call	__used		\
-	__attribute__((__aligned__(4))) event_##name
+	static struct ftrace_event_call	__used event_##name
 
 #undef DEFINE_EVENT_PRINT
 #define DEFINE_EVENT_PRINT(template, name, proto, args, print)	\
@@ -447,7 +446,6 @@ static inline notrace int ftrace_get_offsets_##call(			\
  * };
  *
  * static struct ftrace_event_call __used
- * __attribute__((__aligned__(4)))
  * __attribute__((section("_ftrace_events"))) event_<call> = {
  *	.name			= "<call>",
  *	.class			= event_class_<template>,
@@ -580,7 +578,6 @@ static struct ftrace_event_class __used event_class_##call = {		\
 #define DEFINE_EVENT(template, call, proto, args)			\
 									\
 static struct ftrace_event_call __used					\
-__attribute__((__aligned__(4)))						\
 __attribute__((section("_ftrace_events"))) event_##call = {		\
 	.name			= #call,				\
 	.class			= &event_class_##template,		\
@@ -594,7 +591,6 @@ __attribute__((section("_ftrace_events"))) event_##call = {		\
 static const char print_fmt_##call[] = print;				\
 									\
 static struct ftrace_event_call __used					\
-__attribute__((__aligned__(4)))						\
 __attribute__((section("_ftrace_events"))) event_##call = {		\
 	.name			= #call,				\
 	.class			= &event_class_##template,		\

  reply	other threads:[~2011-01-18  6:00 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20110113.155700.102679408.davem@davemloft.net>
     [not found] ` <4D302B2F.7030108@oldelvet.org.uk>
     [not found]   ` <4D3074FE.3030707@oldelvet.org.uk>
2011-01-16  5:17     ` David Miller
2011-01-16 14:17       ` Richard Mortimer
2011-01-16 19:39         ` David Miller
2011-01-17 14:11           ` Steven Rostedt
2011-01-17 14:37             ` Bastian Blank
2011-01-17 19:35             ` Mathieu Desnoyers
2011-01-18  6:36               ` David Miller
2011-01-18  5:34             ` David Miller
2011-01-18  6:00               ` David Miller [this message]
2011-01-18  6:08                 ` David Miller
2011-01-18 16:46                   ` Mathieu Desnoyers
2011-01-18 17:33                     ` Steven Rostedt
2011-01-18 18:16                       ` Steven Rostedt
2011-01-18 18:26                         ` Steven Rostedt
2011-01-18 20:13                           ` Mathieu Desnoyers
2011-01-18 20:22                             ` Steven Rostedt
2011-01-19  5:08                               ` Mathieu Desnoyers
2011-01-19  5:16                                 ` David Miller
2011-01-19 15:10                                   ` Mathieu Desnoyers
2011-01-19 16:14                                     ` Sam Ravnborg
2011-01-19 16:18                                       ` Mathieu Desnoyers
2011-01-19  6:32                                 ` David Miller
2011-01-19  7:20                                   ` David Miller
2011-01-19 15:33                                     ` Mathieu Desnoyers
2011-01-19 21:40                                       ` David Miller
2011-01-19 22:00                                         ` Steven Rostedt
2011-01-19 22:09                                           ` David Miller
2011-01-19 22:21                                           ` Mathieu Desnoyers
2011-01-19 22:23                                             ` David Miller
2011-01-19 22:32                                             ` Sam Ravnborg
2011-01-19 22:34                                               ` Mathieu Desnoyers
2011-01-19 22:13                                         ` Mathieu Desnoyers
2011-01-19 22:21                                           ` David Miller
2011-01-19 22:33                                             ` Mathieu Desnoyers
2011-01-20  0:41                                               ` David Miller
2011-01-21  0:04                                                 ` Mathieu Desnoyers
2011-01-21 18:06                                                   ` Richard Mortimer
2011-01-21 18:52                                                     ` Mathieu Desnoyers
2011-01-21 19:15                                                       ` Mathieu Desnoyers
2011-01-21 20:14                                                       ` Richard Mortimer
2011-01-21 20:40                                                         ` Mathieu Desnoyers
2011-01-21 22:50                                                           ` Richard Mortimer
2011-01-22 18:42                                                             ` Richard Mortimer
2011-01-22 18:53                                                               ` Mathieu Desnoyers
2011-01-19 15:46                                     ` Steven Rostedt
2011-01-19 16:15                                       ` Mathieu Desnoyers
2011-01-19 18:13                                         ` Steven Rostedt
2011-01-19 18:20                                           ` Mathieu Desnoyers
2011-01-19 21:44                                             ` David Miller
2011-01-19 22:15                                               ` Mathieu Desnoyers
2011-01-19 22:22                                                 ` David Miller
2011-01-19 15:11                                   ` Mathieu Desnoyers
2011-01-19 15:27                   ` Richard Mortimer
2011-01-17  6:07       ` David Miller
2011-01-17  9:05         ` Jesper Nilsson
2011-02-01  5:11           ` David Miller
2011-02-01 10:03             ` Jesper Nilsson
2011-01-17 10:22         ` Richard Mortimer
2011-01-17 14:15           ` Steven Rostedt
2011-01-18  6:35             ` David Miller
2011-01-18 17:30               ` Steven Rostedt
2011-01-17 19:46           ` R_SPARC_13 (Re: Bug#609371: linux-image-2.6.37-trunk-sparc64: module scsi_mod: Unknown relocation: 36) Richard Mortimer
2011-01-17 21:02             ` R_SPARC_13 David Miller
2011-01-17 23:34               ` R_SPARC_13 Richard Mortimer
2011-01-18  0:18                 ` R_SPARC_13 David Miller
2011-01-18  0:37                 ` R_SPARC_13 David Miller
2011-01-18  1:28                   ` R_SPARC_13 Richard Mortimer
2011-01-18  6:50                   ` R_SPARC_13 David Miller
2011-01-18 10:52                     ` R_SPARC_13 Richard Mortimer
2011-01-18 13:23                       ` R_SPARC_13 Richard Mortimer
2011-01-18 21:00                         ` R_SPARC_13 David Miller
2011-01-19  4:12                           ` R_SPARC_13 David Miller
2011-01-17 14:39         ` Bug#609371: linux-image-2.6.37-trunk-sparc64: module scsi_mod: Unknown relocation: 36 Bernhard R. Link
2011-01-18  5:24           ` David Miller
2011-01-18  9:26             ` Jesper Nilsson
2011-01-18  6:27           ` David Miller
2011-01-18 17:05             ` Steven Rostedt

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=20110117.220039.71097651.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=609371@bugs.debian.org \
    --cc=ben@decadent.org.uk \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@redhat.com \
    --cc=richm@oldelvet.org.uk \
    --cc=rostedt@goodmis.org \
    --cc=sparclinux@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®