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
>From 7c0564d5604581dc0ed868de4dbb1ed8d8fbd55f Mon Sep 17 00:00:00 2001
From: Wang Shilong <wangsl.fnst@xxxxxxxxxxxxxx>
Date: Mon, 3 Mar 2014 14:34:07 +0800
Subject: [PATCH] Btrfs: add schedule points for scrub
Signed-off-by: Wang Shilong <wangsl.fnst@xxxxxxxxxxxxxx>
---
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