linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Borislav Petkov <bp@alien8.de>, Changli Gao <xiaosuo@gmail.com>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] fs: optimize mpage_readpage()
Date: Fri, 4 Jun 2010 08:19:06 +0100	[thread overview]
Message-ID: <20100604071906.GC31073@ZenIV.linux.org.uk> (raw)
In-Reply-To: <20100529121019.GA25092@liondog.tnic>

On Sat, May 29, 2010 at 02:10:19PM +0200, Borislav Petkov wrote:
> > -	struct bio *bio = NULL;
> > +	struct bio *bio;
> >  	sector_t last_block_in_bio = 0;
> >  	struct buffer_head map_bh;
> >  	unsigned long first_logical_block = 0;
> >  
> >  	map_bh.b_state = 0;
> >  	map_bh.b_size = 0;
> > -	bio = do_mpage_readpage(bio, page, 1, &last_block_in_bio,
> > +	bio = do_mpage_readpage(NULL, page, 1, &last_block_in_bio,
> >  			&map_bh, &first_logical_block, get_block);
> >  	if (bio)
> >  		mpage_bio_submit(READ, bio);
> 
> Nope, I don't think that's a good idea.
> 
> On the one hand, this is a trick to shut up gcc:
> 
> fs/mpage.c: In function ???mpage_readpage???:
> fs/mpage.c:419: warning: ???bio??? is used uninitialized in this function

File a bug against your version of gcc, then.  The very first operation
involving bio is assignment to it; if gcc complains about that, it's
extremely fscked up.

Said that, I don't see how could that be an optimization.  Recent gcc is
apparently b0rken in dead stores elimination, but that seems to be
triggered by passing address of variable to another function later on [1];
nothing of that kind happens here.

[1] gcc 4.3 and later (at least) fails to eliminate the first assignment in
int foo(void)
{
	extern int f(void);
	extern int g(int *);
	int x;
	x = 0;
	x = f();
	return g(&x);
}
with any optimization level (and apparently on any target).

  parent reply	other threads:[~2010-06-04  7:19 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-29  1:18 [PATCH 1/2] fs: optimize mpage_readpage() Changli Gao
2010-05-29 12:10 ` Borislav Petkov
2010-05-29 13:26   ` Changli Gao
2010-05-29 13:46     ` Borislav Petkov
2010-05-29 14:17       ` Changli Gao
2010-06-04  7:19   ` Al Viro [this message]
2010-06-04  8:13     ` Borislav Petkov
2010-06-04  8:30       ` Al Viro
2010-06-04 10:18         ` Borislav Petkov

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=20100604071906.GC31073@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=bp@alien8.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xiaosuo@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 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).