xfs
[Top] [All Lists]

Re: [PATCH 1/4] xfs: Don't allocate new buffers on every call to _xfs_bu

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/4] xfs: Don't allocate new buffers on every call to _xfs_buf_find
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 21 Sep 2011 07:28:56 -0400
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20110921064443.GO15688@dastard>
References: <1314341497-23910-1-git-send-email-david@xxxxxxxxxxxxx> <1314341497-23910-2-git-send-email-david@xxxxxxxxxxxxx> <20110826081132.GA3551@xxxxxxxxxxxxx> <20110921064443.GO15688@dastard>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Sep 21, 2011 at 04:44:43PM +1000, Dave Chinner wrote:
> 
> > And once you touch _xfs_buf_initialize
> > after the core of this patch, please merge it with xfs_buf_allocate into
> > a new xfs_buf_alloc that does the full allocation + initialization and
> > can also replace xfs_buf_get_empty.
> 
> Not right now. That restructing can be done separately, probably in
> the same patch set that fixes the API types problems...

That's what I meant - the conversion changes should be part of a larger
patch (-series) to also fix up the API, and this bit.

> > >   if (bp == new_bp) {
> > >           error = xfs_buf_allocate_memory(bp, flags);
> > >           if (error)
> > >                   goto no_buffer;
> > > + } else
> > >           xfs_buf_deallocate(new_bp);
> > 
> > I'd recommend moving the call to xfs_buf_allocate_memory into
> > _xfs_buf_find so that it returns a fully allocated buffer.  In fact I'd
> > also move the xfs_buf_deallocate(new_bp) into the found side of
> > _xfs_buf_find, avoiding any conditionals in xfs_buf_get.
> 
> <sigh>
> 
> This code s pretty much as you requested it after the first time I
> posted it.
> 
> http://oss.sgi.com/archives/xfs/2011-08/msg00146.html
> 
> I'll go rewrite this again, but IMO all you are asking for is for me
> to put a different colour on the bike shed....

We can leave it as-is for now. My suggestion in the previous mail just
went half-way to where it makes most sense after looking at it for a
while.

<Prev in Thread] Current Thread [Next in Thread>