All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wanpeng Li <liwp.linux@gmail.com>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	Gavin Shan <shangw@linux.vnet.ibm.com>,
	Wanpeng Li <liwp.linux@gmail.com>
Subject: Re: [PATCH] writeback: fix hung_task alarm when sync block
Date: Wed, 13 Jun 2012 09:12:04 +0800	[thread overview]
Message-ID: <20120613011151.GA2181@kernel> (raw)
In-Reply-To: <20120613005945.GA24091@localhost>

On Wed, Jun 13, 2012 at 08:59:46AM +0800, Fengguang Wu wrote:
>On Wed, Jun 13, 2012 at 08:52:53AM +0800, Wanpeng Li wrote:
>> From: Wanpeng Li <liwp@linux.vnet.ibm.com>
>> 
>> I use several dd processes to write a slow SD card
>> dd if=/dev/sda1 of=/dev/sdc4 bs=1M count=4000
>> and several sync commands(maybe > 10),dmesg show this:
>> 
>> [  366.888741] INFO: task sync:3518 blocked for more than 120 seconds.
>> [  366.888742] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
>> [  366.888746] sync            D 00000201     0  3518   3462 0x00000000
>
>> Too many similar messages flood the logs. So I use a present method to 
>> fix this issue.
>> ------------------------------------------
>> Author: Mark Lord <kernel@teksavvy.com>
>> Date:   Fri Sep 24 09:51:13 2010 -0400
>> 
>>     block: Prevent hang_check firing during long I/O
>> ------------------------------------------
>> 
>> Signed-off-by: Wanpeng Li <liwp.linux@gmail.com>
>
>Yeah that's also what I'd like to do. So you've tested it?

Not yet, I will test it today.

>
>> ---
>>  fs/fs-writeback.c |    8 +++++++-
>>  1 file changed, 7 insertions(+), 1 deletion(-)
>> 
>> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
>> index f2d0109..5d403a1 100644
>> --- a/fs/fs-writeback.c
>> +++ b/fs/fs-writeback.c
>> @@ -1300,6 +1300,7 @@ void writeback_inodes_sb_nr(struct super_block *sb,
>>  			    enum wb_reason reason)
>>  {
>>  	DECLARE_COMPLETION_ONSTACK(done);
>> +	unsigned long hangcheck;
>>  	struct wb_writeback_work work = {
>>  		.sb			= sb,
>>  		.sync_mode		= WB_SYNC_NONE,
>> @@ -1311,7 +1312,12 @@ void writeback_inodes_sb_nr(struct super_block *sb,
>>  
>>  	WARN_ON(!rwsem_is_locked(&sb->s_umount));
>>  	bdi_queue_work(sb->s_bdi, &work);
>> -	wait_for_completion(&done);
>> +	hangcheck = sysctl_hung_task_timeout_secs;
>> +	if (hangcheck)
>
>The hangcheck variable looks redundant.

if sysctl_hung_task_timeout_secs is equal to ZERO, it means infinite
timeout -- no checking done. So I think wait_for_completion_timeout 
makes no sense this time.

Regards,
Wanpeng Li

>
>> +		while (!wait_for_completion_timeout(&done, HZ/2))
>> +			;
>> +	else
>> +		wait_for_completion(&done);
>>  }
>>  EXPORT_SYMBOL(writeback_inodes_sb_nr);
>>  
>> -- 
>> 1.7.9.5

  reply	other threads:[~2012-06-13  1:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-13  0:52 [PATCH] writeback: fix hung_task alarm when sync block Wanpeng Li
2012-06-13  0:59 ` Fengguang Wu
2012-06-13  1:12   ` Wanpeng Li [this message]
2012-06-13  1:18     ` Fengguang Wu
2012-06-13  1:30       ` Wanpeng Li

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=20120613011151.GA2181@kernel \
    --to=liwp.linux@gmail.com \
    --cc=fengguang.wu@intel.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shangw@linux.vnet.ibm.com \
    --cc=viro@zeniv.linux.org.uk \
    /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.