linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Moyer <jmoyer@redhat.com>
To: Vivek Goyal <vgoyal@redhat.com>
Cc: linux-ext4@vger.kernel.org, axboe@kernel.dk,
	linux-kernel@vger.kernel.org, tao.ma@oracle.com
Subject: Re: [PATCH 0/6 v6][RFC] jbd[2]: enhance fsync performance when using CFQ
Date: Fri, 02 Jul 2010 16:32:31 -0400	[thread overview]
Message-ID: <x49iq4xtyjk.fsf@segfault.boston.devel.redhat.com> (raw)
In-Reply-To: <20100702202342.GH7001@redhat.com> (Vivek Goyal's message of "Fri, 2 Jul 2010 16:23:42 -0400")

Vivek Goyal <vgoyal@redhat.com> writes:

> On Fri, Jul 02, 2010 at 03:58:13PM -0400, Jeff Moyer wrote:
>
> [..]
>> Changes from the last posting:
>> - Yielding no longer expires the current queue.  Instead, it sets up new
>>   requests from the target process so that they are issued in the yielding
>>   process' cfqq.  This means that we don't need to worry about losing group
>>   or workload share.
>> - Journal commits are now synchronous I/Os, which was required to get any
>>   sort of performance out of the fs_mark process in the presence of a
>>   competing reader.
>> - WRITE_SYNC I/O no longer sets RQ_NOIDLE, for a similar reason.
>
> Hi Jeff,
>
> So this patchset relies on idling on WRITE_SYNC queues. Though in general
> we don't have examples that why one should idle on processes doing WRITE_SYNC
> IO because previous IO does not tell anything about the upcoming IO. I am
> bringing up this point again to make sure that fundamentally we agree that
> continue to idle on WRITE_SYNC is the right thing to do otherwise this patch
> will fall apart.

I think a mail server would be an example of an application that might
do this.  I'll see if I can get a real world test case (or perhaps some
real world data) and verify that.

I agree that if we choose not to idle on write's, then this approach can
be thrown out the window.

> I have yet to go through the patch in detail but allowing other queue to
> dispatch requests in the same queue sounds like queue merging. So can
> we use that semantics to say elv_merge_context() or elv_merge_queue()
> instead of elv_yield(). In the code we can just merge the two queues when
> the next request comes in and separate them out at the slice expiry I 
> guess.

I considered that approach, but then you run into all of the questions
about losing fairness across workloads and across groups.  I believe the
approach I've taken here is *significantly* simpler than merging and
unmerging would be.

Cheers,
Jeff

  reply	other threads:[~2010-07-02 20:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-02 19:58 [PATCH 0/6 v6][RFC] jbd[2]: enhance fsync performance when using CFQ Jeff Moyer
2010-07-02 19:58 ` [PATCH 1/6] block: Implement a blk_yield function to voluntarily give up the I/O scheduler Jeff Moyer
2010-07-02 19:58 ` [PATCH 2/6] jbd: yield the device queue when waiting for commits Jeff Moyer
2010-07-02 19:58 ` [PATCH 3/6] jbd2: yield the device queue when waiting for journal commits Jeff Moyer
2010-07-02 19:58 ` [PATCH 4/6] jbd: use WRITE_SYNC for journal I/O Jeff Moyer
2010-07-02 19:58 ` [PATCH 5/6] jbd2: " Jeff Moyer
2010-07-02 19:58 ` [PATCH 6/6] block: remove RQ_NOIDLE from WRITE_SYNC Jeff Moyer
2010-07-02 20:23 ` [PATCH 0/6 v6][RFC] jbd[2]: enhance fsync performance when using CFQ Vivek Goyal
2010-07-02 20:32   ` Jeff Moyer [this message]
2010-07-06  6:27 ` Tao Ma

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=x49iq4xtyjk.fsf@segfault.boston.devel.redhat.com \
    --to=jmoyer@redhat.com \
    --cc=axboe@kernel.dk \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tao.ma@oracle.com \
    --cc=vgoyal@redhat.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;
as well as URLs for NNTP newsgroup(s).