All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Sam Ravnborg <sam@ravnborg.org>
Cc: Zeev Tarantov <zeev.tarantov@gmail.com>,
	linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	Maciej Rutecki <maciej.rutecki@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>
Subject: Re: 2.6.35 regression
Date: Thu, 08 Jul 2010 10:17:22 -0400	[thread overview]
Message-ID: <1278598643.1537.121.camel@gandalf.stny.rr.com> (raw)
In-Reply-To: <20100708140854.GA11983@merkur.ravnborg.org>

On Thu, 2010-07-08 at 16:08 +0200, Sam Ravnborg wrote:

> In vmlinux.lds.h we have the following code:
> #define TRACE_SYSCALLS() VMLINUX_SYMBOL(__start_syscalls_metadata) = .; \
>                          *(__syscalls_metadata)                         \
>                          VMLINUX_SYMBOL(__stop_syscalls_metadata) = .;
> 
> But there is nothing that guarantee that
> __syscalls_metadata starts at the address
> assigned to __start_syscalls_metadata.
> 
> The will align __syscalls_metadata accoding to the
> largest member in that section.
> 
> We need to do one of two things:
> 1) Make sure __start_syscalls_metadata is properly aligned
> 2) or make the code robust against misaligned symbols.

1 is much easier to do than 2, so I would say we need to do 1.

Hmm, looking at include/linux/syscalls.h:

#define SYSCALL_TRACE_ENTER_EVENT(sname)				\
	static const struct syscall_metadata __syscall_meta_##sname;	\
	static struct ftrace_event_call					\
	__attribute__((__aligned__(4))) event_enter_##sname;		\
	static struct trace_event enter_syscall_print_##sname = {	\
		.trace                  = print_syscall_enter,		\
	};								\
	static struct ftrace_event_call __used				\
	  __attribute__((__aligned__(4)))				\
	  __attribute__((section("_ftrace_events")))			\
	  event_enter_##sname = {					\

The __syscall_meta_##sname is not forced aligned. The forced 4 byte
alignment compacts the code in a nice array, as the event_enter_##sname
is done.


> 
> > 
> > Zeev, can you try to reproduce it with gcc 4.4.
> > 
> > And for now could you send me the output of this:
> > 
> >  objdump -Dr --start-addr 0x`nm vmlinux | grep __start_syscalls_metadata | cut -d' ' -f 1` \
> >     --stop-addr 0x`nm vmlinux | grep __stop_syscalls_metadata | cut -d' ' -f 1` vmlinux
> > 
> This output would be great to have just to check if my assumption above is correct.

Yeah, that's why I asked about it. I want to confirm it too. I think
adding the align attribute to the meta data will fix it.

-- Steve



  reply	other threads:[~2010-07-08 14:17 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-05 13:04 2.6.35 regression Zeev Tarantov
2010-07-08 13:22 ` Steven Rostedt
2010-07-08 14:08   ` Sam Ravnborg
2010-07-08 14:17     ` Steven Rostedt [this message]
2010-07-08 18:53   ` Zeev Tarantov
2010-07-08 20:14     ` Steven Rostedt
2010-07-09  3:26     ` Steven Rostedt
2010-07-09  8:45       ` Zeev Tarantov
2010-07-09 13:04         ` Frederic Weisbecker
2010-07-09 14:03           ` Steven Rostedt
2010-07-09 14:10             ` Frederic Weisbecker
2010-07-09 16:52             ` Zeev Tarantov
2010-07-09 20:21         ` [tip:perf/urgent] tracing: Add alignment to syscall metadata declarations tip-bot for 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=1278598643.1537.121.camel@gandalf.stny.rr.com \
    --to=rostedt@goodmis.org \
    --cc=akpm@linux-foundation.org \
    --cc=fweisbec@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maciej.rutecki@gmail.com \
    --cc=rjw@sisk.pl \
    --cc=sam@ravnborg.org \
    --cc=zeev.tarantov@gmail.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.