LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Ralf Baechle <ralf@linux-mips.org>
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>,
	linux-mips@linux-mips.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Optimize generic get_unaligned / put_unaligned implementations.
Date: Thu, 15 Feb 2007 17:27:20 -0800	[thread overview]
Message-ID: <20070215172720.3e9ce464.akpm@linux-foundation.org> (raw)
In-Reply-To: <20070216004317.GA18987@linux-mips.org>

On Fri, 16 Feb 2007 00:43:17 +0000
Ralf Baechle <ralf@linux-mips.org> wrote:

> On Thu, Feb 15, 2007 at 03:38:23PM -0800, Andrew Morton wrote:
> 
> > hm.  So if I have
> > 
> > 	struct bar {
> > 		unsigned long b;
> > 	} __attribute__((packed));
> > 
> > 	struct foo {
> > 		unsigned long u;
> > 		struct bar b;
> > 	};
> > 
> > then the compiler can see that foo.b.b is well-aligned, regardless of the
> > packedness.
> > 
> > Plus some crazy people compile the kernel with icc (or at least they used
> > to).  What happens there?
> 
> A quick grep for __attribute__((packed)) and __packed find around 900 hits,
> I'd probably find more if I'd look for syntactical variations.  Some hits
> are in arch/{i386,x86_64,ia64}.  At a glance it seems hard to configure a
> useful x86 kernel that doesn't involve any packed attribute.  I take that
> as statistical proof that icc either has doesn't really work for building
> the kernel or groks packing.  Any compiler not implementing gcc extensions
> is lost at building the kernel but that's old news.
> 

No, icc surely supports attribute(packed).  My point is that we shouldn't
rely upon the gcc info file for this, because other compilers can (or
could) be used to build the kernel.

So it would be safer if the C spec said (or could be interpreted to say)
"members of packed structures are always copied bytewise".  So then we
can be reasonably confident that this change won't break the use of
those compilers.

But then, I don't even know if any C standard says anything about packing.

Ho hum.  Why are we talking about this, anyway?  Does the patch make the
code faster?  Or just nicer?

  reply	other threads:[~2007-02-16  1:30 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20050830104056.GA4710@linux-mips.org>
     [not found] ` <20060306.203218.69025300.nemoto@toshiba-tops.co.jp>
2006-03-07  1:05   ` [PATCH] 64bit unaligned access on 32bit kernel Andrew Morton
2006-03-07  2:03     ` Atsushi Nemoto
2006-03-07 18:09     ` Ralf Baechle
2006-03-08  4:58       ` Atsushi Nemoto
2006-03-08  5:12         ` Andrew Morton
2007-02-14 21:42     ` [PATCH] Optimize generic get_unaligned / put_unaligned implementations Ralf Baechle
2007-02-15  4:39       ` Andrew Morton
2007-02-15  8:35         ` Marcel Holtmann
2007-02-15 14:34         ` Ralf Baechle
2007-02-15 21:53           ` Andrew Morton
2007-02-15 22:18             ` Ralf Baechle
2007-02-15 23:05               ` Jeremy Fitzhardinge
2007-02-15 23:38               ` Andrew Morton
2007-02-16  0:13                 ` Jeremy Fitzhardinge
2007-02-16  0:43                 ` Ralf Baechle
2007-02-16  1:27                   ` Andrew Morton [this message]
2007-02-16  1:59                     ` Ralf Baechle
2007-02-20 13:50                     ` Pavel Machek

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=20070215172720.3e9ce464.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=anemo@mba.ocn.ne.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@linux-mips.org \
    --cc=ralf@linux-mips.org \
    --subject='Re: [PATCH] Optimize generic get_unaligned / put_unaligned implementations.' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).