All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
To: Marc MERLIN <marc@merlins.org>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: 3.14.0-rc3 btrfs scrub is preventing my laptop from going to sleep
Date: Mon, 03 Mar 2014 14:50:33 +0800	[thread overview]
Message-ID: <53142639.3030600@cn.fujitsu.com> (raw)
In-Reply-To: <20140303052147.GB24835@merlins.org>

[-- Attachment #1: Type: text/plain, Size: 2202 bytes --]

On 03/03/2014 01:21 PM, Marc MERLIN wrote:
> On Mon, Mar 03, 2014 at 11:17:51AM +0800, Wang Shilong wrote:
>> Hi Marc,
>>
>> On 03/01/2014 11:22 PM, Marc MERLIN wrote:
>>> On Fri, Feb 28, 2014 at 09:09:37PM -0800, Marc MERLIN wrote:
>>>> On Fri, Feb 28, 2014 at 09:18:06AM +0800, Wang Shilong wrote:
>>>>> Could you run the following command when scrub is blocked, we can know more
>>>>> why scrub is blocked here.
>>>>>
>>>>> # echo w >  /proc/sysrq-trigger
>>>>> # dmesg
>>> Yes, there you go:
>>>
>>> (attached because it's too big for the list)
>>>
>>> http://marc.merlins.org/tmp/btrfs_nofreeze.txt
>> Could you please try the following patch, and let's see if it helps:
>>
>> https://patchwork.kernel.org/patch/3680431/
> I just applied your patch, along with the other btrfs send patch to
> 3.14.0-rc5
>
> I didn't help with ACPI sleep. Do you have a laptop you can try this on?
> It'll likely be faster than me doing this remotely :)
>
> Here's the log of failure:
> http://marc.merlins.org/tmp/btrfs_nofreeze2.txt

Unfortunately, i could not reproduce this problem here.

It should not be the problem that i addressed before, there is not 
deadlock here.
try the attached patch and hopely it could solve your problem.(I know 
this is
not polite:-) )

If the attached patch could not solve your problem, i will find a laptop and
try to reproduce myself.

>   
>> This patch addressed a deadlock for device replace, but i guess scrub
>> may also trigger this problem if there are errors related to the disk.
> Hope the log above helps.
>   
>> BTW, is there  some errors related to scrub device, something like:
>>
>> # btrfs device stat <device>
> You mean this?
> legolas:~# btrfs scrub stat /dev/mapper/cryptroot
> scrub status for 4850ee22-bf32-4131-a841-02abdb4a5ba6
> 	scrub started at Sun Mar  2 20:52:21 2014, running for 1587 seconds
> 	total bytes scrubbed: 298.96GiB with 1 errors
> 	error details: csum=1
> 	corrected errors: 0, uncorrectable errors: 1, unverified errors: 0
BTW, I suppose you should use datacow option for btrfs, but here scrub 
time is a little longer.
(1578s for 300g).. Was your filesystem on pressure while running scrub.

Thanks,
Wang
>
>   
> Thanks,
> Marc


[-- Attachment #2: 0001-Btrfs-add-schedule-points-for-scrub.patch --]
[-- Type: text/x-patch, Size: 741 bytes --]

>From 7c0564d5604581dc0ed868de4dbb1ed8d8fbd55f Mon Sep 17 00:00:00 2001
From: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
Date: Mon, 3 Mar 2014 14:34:07 +0800
Subject: [PATCH] Btrfs: add schedule points for scrub

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
---
 fs/btrfs/scrub.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 682ec3fc..0a00db0 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -2064,6 +2064,7 @@ leave_nomem:
 			scrub_block_put(sblock);
 			return ret;
 		}
+		cond_resched();
 	}
 
 	if (force)
@@ -2229,6 +2230,7 @@ behind_scrub_pages:
 		logical += l;
 		physical += l;
 		physical_for_dev_replace += l;
+		cond_resched();
 	}
 	return 0;
 }
-- 
1.9.0


  reply	other threads:[~2014-03-03  6:52 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-27 19:06 3.14.0-rc3 btrfs scrub is preventing my laptop from going to sleep Marc MERLIN
2014-02-27 23:30 ` Marc MERLIN
2014-02-28  1:18 ` Wang Shilong
     [not found]   ` <20140301050937.GD18300@merlins.org>
2014-03-01 15:22     ` Marc MERLIN
2014-03-03  3:17       ` Wang Shilong
2014-03-03  5:21         ` Marc MERLIN
2014-03-03  6:50           ` Wang Shilong [this message]
2014-03-03 15:10             ` Marc MERLIN
2014-03-03 16:56 ` Josef Bacik
2014-03-03 17:09   ` Josef Bacik
2014-03-03 22:05     ` Marc MERLIN
2014-03-03 22:18       ` Josef Bacik
2014-03-03 23:13         ` Marc MERLIN

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=53142639.3030600@cn.fujitsu.com \
    --to=wangsl.fnst@cn.fujitsu.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=marc@merlins.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.