From: Alex Elder <aelder@sgi.com>
To: Dave Chinner <david@fromorbit.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCHv2 8/10] xfs: avoid repeated pointer dereferences
Date: Wed, 14 Apr 2010 16:02:41 -0500 [thread overview]
Message-ID: <1271278961.3559.75.camel@doink> (raw)
In-Reply-To: <20100412065644.GJ2493@dastard>
On Mon, 2010-04-12 at 16:56 +1000, Dave Chinner wrote:
> On Fri, Apr 09, 2010 at 05:30:42PM -0500, Alex Elder wrote:
> > In xlog_find_cycle_start() use a local variable for some repeated
> > operations rather than constantly updating the memory location
> > whose address is passed in.
>
> Won't the compiler optimise that out for us? i.e. does the dissassembly
> of the function look any better before and after this change?
I doubt it *can* optimize that. Doing so would change
the way the function interacts semantically with the
pointed-to memory. Still, I performed a quick check
to be sure (on an x86_64) and the compiled code really
does de-reference the pointer for both reads from and
writes to memory.
> > Signed-off-by: Alex Elder <aelder@sgi.com>
> >
> > ---
> > fs/xfs/xfs_log_recover.c | 83 ++++++++++++++++++++++++-----------------------
> > fs/xfs/xfs_log_recover.c | 26 ++++++++++++++------------
> > 1 file changed, 14 insertions(+), 12 deletions(-)
> >
> > Index: b/fs/xfs/xfs_log_recover.c
> > ===================================================================
> > --- a/fs/xfs/xfs_log_recover.c
> > +++ b/fs/xfs/xfs_log_recover.c
> > @@ -354,26 +354,28 @@ xlog_find_cycle_start(
> > {
> > xfs_caddr_t offset;
> > xfs_daddr_t mid_blk;
> > + xfs_daddr_t end_blk;
> > uint mid_cycle;
> > int error;
> >
> > - mid_blk = BLK_AVG(first_blk, *last_blk);
> > - while (mid_blk != first_blk && mid_blk != *last_blk) {
> > + ASSERT(last_blk != NULL);
> > + end_blk = *last_blk;
>
> FWIW, there is no need for that ASSERT there - the machine will
> panic on the very next line, anyway....
Agreed. I make a habit of stating assumptions about
passed-in arguments via assertions. Not a big deal,
I'll take it out.
Still soliciting a reviewed-by on this one.
-Alex
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
prev parent reply other threads:[~2010-04-14 21:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-09 22:30 [PATCHv2 8/10] xfs: avoid repeated pointer dereferences Alex Elder
2010-04-12 6:56 ` Dave Chinner
2010-04-14 21:02 ` Alex Elder [this message]
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=1271278961.3559.75.camel@doink \
--to=aelder@sgi.com \
--cc=david@fromorbit.com \
--cc=xfs@oss.sgi.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