From: Josef Bacik <jbacik@fb.com>
To: Marc MERLIN <marc@merlins.org>, <linux-btrfs@vger.kernel.org>
Subject: Re: 3.14.0-rc3 btrfs scrub is preventing my laptop from going to sleep
Date: Mon, 3 Mar 2014 12:09:11 -0500 [thread overview]
Message-ID: <5314B737.10609@fb.com> (raw)
In-Reply-To: <5314B446.6000400@fb.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 03/03/2014 11:56 AM, Josef Bacik wrote:
> On 02/27/2014 02:06 PM, Marc MERLIN wrote:
>> This does not happen consistently, but sometimes:
>
>> PM: Preparing system for mem sleep Freezing user space processes
>> ... (...) Freezing of tasks failed after 20.002 seconds (1 tasks
>> refusing to freeze, wq_busy=0): btrfs D
>> ffff88017639c800 0 12239 12224 0x00000084 ffff880165ec1960
>> 0000000000000086 ffff880165ec1fd8 ffff88017639c2d0
>> 00000000000141c0 ffff88017639c2d0 ffff88007b874000
>> ffff8804062fa480 0000000000000000 ffff880175837ec0
>> ffff88007b874220 ffff880165ec1970 Call Trace:
>> [<ffffffff8160b0d9>] schedule+0x73/0x75 [<ffffffff8126e94c>]
>> scrub_pages+0x27e/0x426 [<ffffffff81085062>] ?
>> finish_wait+0x65/0x65 [<ffffffff81271732>]
>> scrub_stripe+0xada/0xc9e [<ffffffff812719cc>]
>> scrub_chunk.isra.9+0xd6/0x10d [<ffffffff81271c77>]
>> scrub_enumerate_chunks+0x274/0x418 [<ffffffff81085000>] ?
>> finish_wait+0x3/0x65 [<ffffffff812723bb>]
>> btrfs_scrub_dev+0x254/0x3cb [<ffffffff8116ddab>] ?
>> __mnt_want_write+0x62/0x78 [<ffffffff81255c68>]
>> btrfs_ioctl+0x1114/0x24b1 [<ffffffff81140698>] ?
>> ____cache_alloc+0x1c/0x29b [<ffffffff81140a06>] ?
>> kmem_cache_alloc_node+0xef/0x179 [<ffffffff8160d7b3>] ?
>> _raw_spin_unlock+0x17/0x2a [<ffffffff81163ade>]
>> do_vfs_ioctl+0x3d2/0x41d [<ffffffff8116bd00>] ? __fget+0x6f/0x79
>> [<ffffffff81163b80>] SyS_ioctl+0x57/0x82 [<ffffffff8161426d>]
>> system_call_fastpath+0x1a/0x1f
>
>
>> And then I end up with a hot laptop and a mostly dead battery in
>> my backpack.
>
>> As far as I know, this was not happening with 3.13, unless I'm
>> doing something differently without knowing.
>
>> My laptop went to sleep just fine while I was typing this Email,
>> so I'm guessing it's only btrfs scrub that causes the problem
>> with sleep.
>
>
> We probably need to put something in ->fs_freeze() to pause
> scrubbing (and this probably applies to snapshot deletion too) so
> you can hibernate. Should be easy enough to do, I'll look into it
> after quotas unless somebody beats me to it. Thanks,
>
Ok I lied I just went ahead and did it, please let me know if this
fixes it
- From 8ab47dd51e446fb2aa5dfc432c8c5b6ddd083371 Mon Sep 17 00:00:00 2001
From: Josef Bacik <jbacik@fb.com>
Date: Mon, 3 Mar 2014 12:07:11 -0500
Subject: [PATCH] Btrfs: pause scrubing when we freeze the fs
Need to make sure we don't keep scrubbing when we freeze the fs so
pause it
until we are unfrozen. Thanks,
Signed-off-by: Josef Bacik <jbacik@fb.com>
- ---
fs/btrfs/super.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index dc0a315..dc9ba85 100644
- --- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1764,6 +1764,8 @@ static int btrfs_freeze(struct super_block *sb)
struct btrfs_trans_handle *trans;
struct btrfs_root *root = btrfs_sb(sb)->tree_root;
+ btrfs_scrub_pause(root);
+
trans = btrfs_attach_transaction_barrier(root);
if (IS_ERR(trans)) {
/* no transaction, don't bother */
@@ -1776,6 +1778,9 @@ static int btrfs_freeze(struct super_block *sb)
static int btrfs_unfreeze(struct super_block *sb)
{
+ struct btrfs_root *root = btrfs_sb(sb)->tree_root;
+
+ btrfs_scrub_continue(root);
return 0;
}
- --
1.8.3.1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBAgAGBQJTFLc3AAoJEANb+wAKly3BW4EQAKasDW7tHabddmS5x3f2Vf2x
rySPlP+cTszqcLTeTpeFB4rUolGOwOgZMlDLCK/q0/561uebzNTMp3khdwBCO1GA
hiavMilmdnJx1uZ6PR0xW4sCI+/GsMu/gPymAgOU21wsqb7L3a2+IC9TcqX+UMML
JwMn5QvqyBQ/ii9DmwHLsk+buqP0+o0wbVB//ltQKH98qn9b+AbIQEpfDT5F7xh6
5J/XEHPDFE1xJfqC7b2yTGTCyTUzUVCPzfolDGkOyZiQb4Lp/Ihn1Wh7hcW1J65z
rvouCFFgaoeBkcJJDH8Dm+9qq1pqKWIw24i0GBZ+0222nncGp+qDxgydxWJ640p0
LDILxFlov5kfqqpwc6KmcLCMXU0F2wnKF6dKY31eF3zPgJs/OV2N1wg2i1ojKCr+
e4fL7dB/f/2pLE3+bQFeNVxEH1JxNkj/bK8s6V/AaIyVMODAakhMPJi/9xYQk7tl
I37vr+AcMqCknvId1rZ9lDHJFJDtJCbA1PFPRdzf9OH2+RazN4vXl9xyjcoXdWZz
oQz5DfGEN+fliPjDgC09DVgzFjjyXWUv49O73eEm0iIMIVHTbUovwVBcebVafr1z
uugG0phhaA/gf11Q9UPwz3EHzlG+NGTmooE/Z4C5+I02z7KLDGTzGPByn7aspQOJ
Sq1mfu6wwCjjA/UVK73V
=kq6N
-----END PGP SIGNATURE-----
next prev parent reply other threads:[~2014-03-03 17:09 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
2014-03-03 15:10 ` Marc MERLIN
2014-03-03 16:56 ` Josef Bacik
2014-03-03 17:09 ` Josef Bacik [this message]
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=5314B737.10609@fb.com \
--to=jbacik@fb.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.