From: Anand Jain <anand.jain@oracle.com>
To: Yauhen Kharuzhy <yauhen.kharuzhy@zavadatar.com>
Cc: linux-btrfs@vger.kernel.org
Subject: Re: Global hotspare functionality
Date: Sat, 2 Apr 2016 09:17:34 +0800 [thread overview]
Message-ID: <56FF1DAE.8070401@oracle.com> (raw)
In-Reply-To: <20160330221708.GA8892@jeknote.loshitsa1.net>
On 03/31/2016 06:17 AM, Yauhen Kharuzhy wrote:
> On Tue, Mar 29, 2016 at 10:40:40PM +0300, Yauhen Kharuzhy wrote:
>> Hi.
>>
>> I am testing hotspare v2 on kernel v4.4.5 (I will try latest Chris' tree later)
>> now with lockdep debugging enabled. At starting of replacement, lockdep warning is displayed,
>> because kstrdup() is called with GFP_NOFS inside of rcu_read_lock/unlock()
>> block (GFP_NOFS can sleep).
>
> Similar thing in the btrfs_auto_replace_start(): rcu_str_deref() without
> rcu_read_lock():
>
> int btrfs_auto_replace_start(struct btrfs_root *root,
> struct btrfs_device *src_device)
> {
> int ret;
> char *tgt_path;
>
> if (btrfs_get_spare_device(&tgt_path)) {
> btrfs_err(root->fs_info,
> "No spare device found/configured in the kernel");
> return -EINVAL;
> }
>
> ret = btrfs_dev_replace_start(root, tgt_path,
> src_device->devid,
> rcu_str_deref(src_device->name),
This is fixed in V3.
Thanks, Anand
> BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID);
> if (ret)
> btrfs_put_spare_device(tgt_path);
>
> kfree(tgt_path);
>
> return 0;
> }
>
> [ 156.168133] ===============================
> [ 156.168963] [ INFO: suspicious RCU usage. ]
> [ 156.169822] 4.4.5-scst31x+ #20 Not tainted
> [ 156.170656] -------------------------------
> [ 156.171488] fs/btrfs/dev-replace.c:990 suspicious rcu_dereference_check() usage!
> [ 156.172920]
> [ 156.172920] other info that might help us debug this:
> [ 156.172920]
> [ 156.174825]
> [ 156.174825] rcu_scheduler_active = 1, debug_locks = 0
> [ 156.176152] 1 lock held by btrfs-casualty/4807:
> [ 156.181917] #0: (&fs_info->casualty_mutex){+.+...}, at: [<ffffffffa0165364>] casualty_kthread+0x64/0x390 [btrfs]
> [ 156.193511]
> [ 156.193511] stack backtrace:
> [ 156.194680] CPU: 0 PID: 4807 Comm: btrfs-casualty Not tainted 4.4.5-scst31x+ #20
> [ 156.201650] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
> [ 156.219100] 0000000000000000 ffff88005d79fda0 ffffffff813529e3 ffff88005e19c600
> [ 156.221216] 0000000000000001 ffff88005d79fdd0 ffffffff810d6407 0000000000000000
> [ 156.224287] 0000000000000000 ffff88005f4a0c00 ffff88005da36000 ffff88005d79fe08
> [ 156.226375] Call Trace:
> [ 156.227078] [<ffffffff813529e3>] dump_stack+0x85/0xc2
> [ 156.228152] [<ffffffff810d6407>] lockdep_rcu_suspicious+0xd7/0x110
> [ 156.229418] [<ffffffffa01e6236>] btrfs_auto_replace_start+0xa6/0xd0 [btrfs]
> [ 156.230714] [<ffffffffa01655c4>] casualty_kthread+0x2c4/0x390 [btrfs]
> [ 156.231915] [<ffffffffa016549c>] ? casualty_kthread+0x19c/0x390 [btrfs]
> [ 156.233105] [<ffffffffa0165300>] ? btrfs_check_devices+0x200/0x200 [btrfs]
> [ 156.234339] [<ffffffff810a70df>] kthread+0xef/0x110
> [ 156.235309] [<ffffffff810dc081>] ? __raw_callee_save___pv_queued_spin_unlock+0x11/0x20
> [ 156.236940] [<ffffffff810a6ff0>] ? kthread_create_on_node+0x200/0x200
> [ 156.239489] [<ffffffff81637c2f>] ret_from_fork+0x3f/0x70
> [ 156.240533] [<ffffffff810a6ff0>] ? kthread_create_on_node+0x200/0x200
>
>
next prev parent reply other threads:[~2016-04-02 1:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-18 19:39 Global hotspare functionality Yauhen Kharuzhy
2016-03-19 1:17 ` Yauhen Kharuzhy
2016-03-29 14:43 ` Anand Jain
2016-03-29 14:41 ` Anand Jain
2016-03-29 19:24 ` Yauhen Kharuzhy
2016-03-29 19:59 ` Austin S. Hemmelgarn
2016-03-29 20:26 ` Chris Murphy
2016-03-30 11:26 ` Austin S. Hemmelgarn
2016-03-29 19:40 ` Yauhen Kharuzhy
2016-03-30 22:17 ` Yauhen Kharuzhy
2016-04-02 1:17 ` Anand Jain [this message]
2016-03-29 19:47 ` Yauhen Kharuzhy
2016-03-29 23:18 ` Yauhen Kharuzhy
2016-04-02 1:15 ` Anand Jain
2016-04-02 1:33 ` Yauhen Kharuzhy
2016-04-02 1:38 ` Anand Jain
2016-04-04 19:32 ` Yauhen Kharuzhy
2016-04-12 14:16 ` Anand Jain
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=56FF1DAE.8070401@oracle.com \
--to=anand.jain@oracle.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=yauhen.kharuzhy@zavadatar.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).