All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: Jan Kara <jack@suse.cz>
Cc: ext4 development <linux-ext4@vger.kernel.org>,
	Dave Wysochanski <dwysocha@redhat.com>
Subject: Re: [PATCH RFC] jbd: don't wake kjournald unnecessarily
Date: Tue, 18 Dec 2012 20:36:20 -0600	[thread overview]
Message-ID: <50D12824.40605@redhat.com> (raw)
In-Reply-To: <20121219012710.GF5987@quack.suse.cz>

On 12/18/12 7:27 PM, Jan Kara wrote:
> On Tue 18-12-12 11:03:57, Eric Sandeen wrote:
>> Commit d9b0193 jbd: fix fsync() tid wraparound bug
>> changed the logic for whether __log_start_commit() should wake up
>> kjournald.

...

>> Anyway, I think this patch helps on the "don't send extra wakeups"
>> side of things.  Does anyone see a problem with it?
>   The patch is fine. I'll queue it up.

Thanks for the review!  I'll get jbd2 on the list soon.

-Eric

> 								Honza
>> =============
>> [PATCH] jbd: don't wake kjournald unnecessarily
>>
>> Don't send an extra wakeup to kjournald in the case where we
>> already have the proper target in j_commit_request, i.e. that
>> commit has already been requested for commit.
>>
>> commit d9b0193 "jbd: fix fsync() tid wraparound bug" changed
>> the logic leading to a wakeup, but it caused some extra wakeups
>> which were found to lead to a measurable performance regression.
>>
>> Signed-off-by: Eric Sandeen <sandeen@redhat.com>
>> ---
>>  
>> diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c
>> index a286233..81cc7ea 100644
>> --- a/fs/jbd/journal.c
>> +++ b/fs/jbd/journal.c
>> @@ -446,7 +446,8 @@ int __log_start_commit(journal_t *journal, tid_t target)
>>  	 * currently running transaction (if it exists).  Otherwise,
>>  	 * the target tid must be an old one.
>>  	 */
>> -	if (journal->j_running_transaction &&
>> +	if (journal->j_commit_request != target &&
>> +	    journal->j_running_transaction &&
>>  	    journal->j_running_transaction->t_tid == target) {
>>  		/*
>>  		 * We want a new commit: OK, mark the request and wakeup the


  parent reply	other threads:[~2012-12-19  2:37 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-18 17:03 [PATCH RFC] jbd: don't wake kjournald unnecessarily Eric Sandeen
2012-12-19  1:27 ` Jan Kara
2012-12-19  2:05   ` Jan Kara
2012-12-19  3:08     ` Eric Sandeen
2012-12-19  8:13       ` Jan Kara
2012-12-19 15:37         ` Theodore Ts'o
2012-12-19 17:14           ` Jan Kara
2012-12-19 20:27             ` Theodore Ts'o
2012-12-19 21:19               ` Eric Sandeen
2012-12-21 17:01               ` Eric Sandeen
2012-12-21 17:46                 ` Theodore Ts'o
2013-01-08 19:19                   ` Eric Sandeen
2013-01-11 16:42                   ` Eric Sandeen
2013-01-11 19:03                     ` Jan Kara
2013-01-11 19:06                       ` Eric Sandeen
2012-12-19 15:46         ` Eric Sandeen
2012-12-19 17:11           ` Jan Kara
2012-12-19  2:36   ` Eric Sandeen [this message]
2012-12-19  2:59 ` [PATCH] jbd2: " Eric Sandeen
2012-12-19  8:09   ` Jan Kara

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=50D12824.40605@redhat.com \
    --to=sandeen@redhat.com \
    --cc=dwysocha@redhat.com \
    --cc=jack@suse.cz \
    --cc=linux-ext4@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.