xfs
[Top] [All Lists]

Re: [patch] Prevent excessive xfsaild wakeups

To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Subject: Re: [patch] Prevent excessive xfsaild wakeups
From: David Chinner <dgc@xxxxxxx>
Date: Fri, 22 Feb 2008 09:47:00 +1100
Cc: David Chinner <dgc@xxxxxxx>, xfs-dev <xfs-dev@xxxxxxx>, xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <20080220191000.GA24257@infradead.org>
References: <20080218225906.GS155407@sgi.com> <20080220191000.GA24257@infradead.org>
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.4.2.1i
On Wed, Feb 20, 2008 at 02:10:00PM -0500, Christoph Hellwig wrote:
> On Tue, Feb 19, 2008 at 09:59:06AM +1100, David Chinner wrote:
> > +   if (count && (XFS_LSN_CMP(lsn, target) >= 0)) {
> > +           /*
> > +            * We reached the target so wait a bit longer for I/O to
> > +            * complete and remove pushed items from the AIL before we
> > +            * start the next scan from the start of the AIL.
> > +            */
> >             tout += 20;
> >             last_pushed_lsn = 0;
> > +   } else if (!count) {
> > +           /* We're past our target or empty, so idle */
> > +           tout = 1000;
> >     } else if ((restarts > XFS_TRANS_PUSH_AIL_RESTARTS) ||
> >                (count && ((stuck * 100) / count > 90))) {
> >             /*
> 
> When looking at this conditions it confuses the hell out of me.  Having
> count checked in each of three nested conditionals simply isn't readable
> :)

Yeah, I noticed that when posting it. Got to keep you busy, Christoph. ;)

> Also some checks seem to be superflous, so how about:

Yup, fixed to be like this. I'll run it through a qa run
and go from there...

Cheers,

Dave.
-- 
Dave Chinner
Principal Engineer
SGI Australian Software Group


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