[Btrfs-devel] [PATCH] delay commit if work is done while we're
asleep
Josef Bacik
jwhiter at redhat.com
Thu Aug 9 08:56:31 PDT 2007
On Thu, Aug 09, 2007 at 11:44:17AM -0400, Chris Mason wrote:
> On Thu, 9 Aug 2007 11:34:14 -0400
> Josef Bacik <jwhiter at redhat.com> wrote:
>
> > On Thu, Aug 09, 2007 at 11:20:51AM -0400, Chris Mason wrote:
> > > On Thu, 9 Aug 2007 11:07:39 -0400
> > > Josef Bacik <jwhiter at redhat.com> wrote:
> > >
> > > > Hello,
> > > >
> > > > Ok this one works I promise :). Cleaned a few things up and such,
> > > > but basically same idea as before, I keep the waitqueue, I use
> > > > schedule_timeout which keeps us from deadlocking. This speeds us
> > > > up a decent amount, without the patch I usually get 70-75
> > > > files/sec. With this patch I get between 85-115 files/sec. The
> > > > reason there is such a wide spread depends mostly on when the
> > > > transaction cleaner runs while I'm running the test, as this is
> > > > only single threaded. Feedback is appreciated. Thank you,
> > >
> > > It looks great to me, thanks for working on this. One change I'll
> > > probably make here is to do something like this:
> > >
> > > prepare_to_wait
> > > if (trans->transaction->num_writers > 1)
> > > timeout = MAX_SCHEDULE_TIMEOUT
> > > else
> > > timeout = 1
> > > drop locks
> > > schedule_timeout(timeout);
> > >
> > > This way we don't loop in schedule when there are writers around who
> > > will wake us. I'll give it a try this afternoon.
> >
> >
> > Sounds good, but one quick comment, I just hit a panic doing a
> > multithreaded test. Fortunately its wasn't introduced by my code,
> > just made it easier to hit. Here is the patch that fixes this
> > problem, tested it out with and without my patch with no issues.
>
> Ack, looks correct to me.
>
> > Do
> > you want me to make the above changes? Or are you going to do it?
>
> I welcome all patches ;) Didn't want to ask you for another rewrite
> for a small change, but I'd actually love to see numbers for how much
> it helps/hurts your runs. I'm starting a long test here of unrelated
> changes, so I won't be testing this out until later today.
>
> BTW, which revisions are you testing against?
>
Ok I'll rework the patch and re-run my tests and include my numbers next time
around. What do you mean which revisions? I pulled down what was in mercurial
this morning and ran tests against that, then did my patch and re-ran my tests,
if thats what you are asking. Thanks much,
Josef
More information about the Btrfs-devel
mailing list