All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: Jeff Moyer <jmoyer@redhat.com>
Cc: Chris Mason <chris.mason@oracle.com>,
	Mike Galbraith <efault@gmx.de>, Diego Calleja <diegocg@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	LKML <linux-kernel@vger.kernel.org>,
	jens.axboe@oracle.com, linux-ext4@vger.kernel.org
Subject: Re: Performance regressions in 2.6.30-rc7?
Date: Thu, 16 Jul 2009 18:34:44 +0200	[thread overview]
Message-ID: <20090716163444.GC25725@duck.suse.cz> (raw)
In-Reply-To: <x49ab34ptb2.fsf@segfault.boston.devel.redhat.com>

On Thu 16-07-09 10:59:45, Jeff Moyer wrote:
> Jan Kara <jack@suse.cz> writes:
> >> OK, looking back at the blktrace data I collected, we see[1]:
> >> 
> >> Total (cciss_c0d1):         2.6.29                  2.6.30-rc7
> >> -------------------------------------------------------------------
> >> Writes Queued:         8,531K,   34,126MiB  |   8,526K,   34,104MiB 
> >> Write Dispatches:    556,256,   34,126MiB   | 294,809,   34,105MiB  <===
> >> Writes Requeued:           0                |       0               
> >> Writes Completed:    556,256,   34,126MiB   | 294,809,   34,105MiB  
> >> Write Merges:          7,975K,   31,901MiB  |   8,231K,   32,924MiB 
> >> --------------------------------------------------------------------
> >> IO unplugs:          1,253,337              | 7,346,184             <===
> >> Timer unplugs:         1,462                |       3               
> >> 
> >> Hmmm...
> 
> >   Yeah, this looks promissing. Although what I don't get is, how come that
> > number of writes dispatched is roughly twice as much for 2.6.29 but the
> > number of unplugs is higher on 2.6.30. My naive assumption would be that
> > higher unplug rate -> less merging -> more requests dispatched.
> 
> Yeah, that's confusing!  I don't have an answer for you yet!
  Maybe this is connected with the WRITE_SYNC changes?

> >> commit b029195dda0129b427c6e579a3bb3ae752da3a93
> >> Author: Jens Axboe <jens.axboe@oracle.com>
> >> Date:   Tue Apr 7 11:38:31 2009 +0200
> >> 
> >>     cfq-iosched: don't let idling interfere with plugging
> >>     
> >>     When CFQ is waiting for a new request from a process, currently it'll
> >>     immediately restart queuing when it sees such a request. This doesn't
> >>     work very well with streamed IO, since we then end up splitting IO
> >>     that would otherwise have been merged nicely. For a simple dd test,
> >>     this causes 10x as many requests to be issued as we should have.
> >>     Normally this goes unnoticed due to the low overhead of requests
> >>     at the device side, but some hardware is very sensitive to request
> >>     sizes and there it can cause big slow downs.
> >>     
> >>     Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
> >> 
> >> There were a couple of subsequent fixups to this commit:
> >> 
> >> commit d6ceb25e8d8bccf826848c2621a50d02c0a7f4ae
> >> Author: Jens Axboe <jens.axboe@oracle.com>
> >> Date:   Tue Apr 14 14:18:16 2009 +0200
> >> 
> >>     cfq-iosched: don't delay queue kick for a merged request
> >> 
> >> commit 2d870722965211de072bb36b446a4df99dae07e1
> >> Author: Jens Axboe <jens.axboe@oracle.com>
> >> Date:   Wed Apr 15 12:12:46 2009 +0200
> >> 
> >>     cfq-iosched: tweak kick logic a bit more
> >> 
> >> 
> >> So I guess that's where we need to start looking.
> >   OK, I can try to check whether backing out just these changes will help
> > anything.
> 
> Well, that will help identify if they are, in fact, the cause.  I hope
> it's not too hard to disentangle them from the current kernel!  Thanks
> for all of your work on this!
  It was no problem to revert them. But the throughput didn't increase :(.

									Honza
-- 
Jan Kara <jack@suse.cz>
SUSE Labs, CR

      reply	other threads:[~2009-07-16 16:34 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-28 20:49 Performance regressions in 2.6.30-rc7? Diego Calleja
2009-05-30  4:07 ` Andrew Morton
2009-05-30 16:51   ` Diego Calleja
2009-06-03 19:58     ` Jan Kara
     [not found]       ` <1244100382.7131.12.camel@marge.simson.net>
     [not found]         ` <20090604112109.GC2859@duck.suse.cz>
     [not found]           ` <1244142795.5731.31.camel@marge.simson.net>
2009-06-09 10:32             ` Jan Kara
2009-06-09 18:48               ` Chris Mason
2009-06-10  9:12                 ` Jan Kara
2009-06-10  9:12                   ` Jan Kara
2009-06-10 22:12                   ` Jeff Moyer
2009-07-15 10:43                     ` Jan Kara
2009-07-15 13:41                       ` Jeff Moyer
2009-07-15 14:58                         ` Jan Kara
2009-07-15 17:50                           ` Jan Kara
2009-07-15 18:54                             ` Jan Kara
2009-07-16 14:36                               ` Jeff Moyer
2009-07-16 14:46                                 ` Jan Kara
2009-07-16 14:59                                   ` Jeff Moyer
2009-07-16 16:34                                     ` Jan Kara [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=20090716163444.GC25725@duck.suse.cz \
    --to=jack@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=chris.mason@oracle.com \
    --cc=diegocg@gmail.com \
    --cc=efault@gmx.de \
    --cc=jens.axboe@oracle.com \
    --cc=jmoyer@redhat.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.