From: Ming Lei <ming.lei@redhat.com>
To: Sagi Grimberg <sagi@grimberg.me>
Cc: Jens Axboe <axboe@kernel.dk>,
linux-block@vger.kernel.org, linux-nvme@lists.infradead.org,
Christoph Hellwig <hch@lst.de>, Keith Busch <kbusch@kernel.org>,
Johannes Thumshirn <Johannes.Thumshirn@wdc.com>,
Hannes Reinecke <hare@suse.de>, Chao Leng <lengchao@huawei.com>,
Bart Van Assche <bvanassche@acm.org>
Subject: Re: [PATCH V5 0/4] blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING
Date: Sat, 12 Sep 2020 07:28:44 +0800 [thread overview]
Message-ID: <20200911232844.GA172054@T590> (raw)
In-Reply-To: <09d5cb96-b442-6965-96b3-d884c95a3ca7@grimberg.me>
On Fri, Sep 11, 2020 at 11:34:45AM -0700, Sagi Grimberg wrote:
>
> > > Hi Jens,
> > >
> > > The 1st patch add .mq_quiesce_mutex for serializing quiesce/unquiesce,
> > > and prepares for replacing srcu with percpu_ref.
> > >
> > > The 2nd patch replaces srcu with percpu_ref.
> > >
> > > The 3rd patch adds tagset quiesce interface.
> > >
> > > The 4th patch applies tagset quiesce interface for NVMe subsystem.
> >
> > Tested some reset storms and target restarts during traffic with
> > nvme-tcp.
> >
> > Seems that no apparent breakage.
> >
> > So:
> >
> > Tested-by: Sagi Grimberg <sagi@grimberg.me>
>
> Probably unrelated to this patches, but I do see new
> kmemleak complaints in the form of:
> --
> unreferenced object 0xffff9440dbf3c240 (size 64):
> comm "systemd", pid 1, jiffies 4306444056 (age 25034.440s)
> hex dump (first 32 bytes):
> 00 00 00 00 00 00 00 00 b0 fe 13 99 ff ff ff ff ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace:
> [<00000000f1d0b20e>] percpu_ref_init+0x5f/0xf0
> [<000000009598103f>] cgroup_mkdir+0xe9/0x440
> [<0000000001b93c19>] kernfs_iop_mkdir+0x57/0x80
> [<000000001ed0f985>] vfs_mkdir+0x10e/0x1d0
> [<00000000cac65f7e>] do_mkdirat+0xec/0x120
> [<00000000956db630>] do_syscall_64+0x33/0x80
> [<000000001c2b0e1a>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
Hello Sagi,
Could you test the following patch and see if the leak is fixed?
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index dd247747ec14..e8b7a8b66415 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -4962,6 +4962,7 @@ static void css_free_rwork_fn(struct work_struct *work)
psi_cgroup_free(cgrp);
if (cgroup_on_dfl(cgrp))
cgroup_rstat_exit(cgrp);
+ percpu_ref_exit(&cgrp->self.refcnt);
kfree(cgrp);
} else {
/*
Thanks,
Ming
WARNING: multiple messages have this Message-ID (diff)
From: Ming Lei <ming.lei@redhat.com>
To: Sagi Grimberg <sagi@grimberg.me>
Cc: Jens Axboe <axboe@kernel.dk>,
Bart Van Assche <bvanassche@acm.org>,
Johannes Thumshirn <Johannes.Thumshirn@wdc.com>,
linux-nvme@lists.infradead.org, linux-block@vger.kernel.org,
Hannes Reinecke <hare@suse.de>, Chao Leng <lengchao@huawei.com>,
Keith Busch <kbusch@kernel.org>, Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH V5 0/4] blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING
Date: Sat, 12 Sep 2020 07:28:44 +0800 [thread overview]
Message-ID: <20200911232844.GA172054@T590> (raw)
In-Reply-To: <09d5cb96-b442-6965-96b3-d884c95a3ca7@grimberg.me>
On Fri, Sep 11, 2020 at 11:34:45AM -0700, Sagi Grimberg wrote:
>
> > > Hi Jens,
> > >
> > > The 1st patch add .mq_quiesce_mutex for serializing quiesce/unquiesce,
> > > and prepares for replacing srcu with percpu_ref.
> > >
> > > The 2nd patch replaces srcu with percpu_ref.
> > >
> > > The 3rd patch adds tagset quiesce interface.
> > >
> > > The 4th patch applies tagset quiesce interface for NVMe subsystem.
> >
> > Tested some reset storms and target restarts during traffic with
> > nvme-tcp.
> >
> > Seems that no apparent breakage.
> >
> > So:
> >
> > Tested-by: Sagi Grimberg <sagi@grimberg.me>
>
> Probably unrelated to this patches, but I do see new
> kmemleak complaints in the form of:
> --
> unreferenced object 0xffff9440dbf3c240 (size 64):
> comm "systemd", pid 1, jiffies 4306444056 (age 25034.440s)
> hex dump (first 32 bytes):
> 00 00 00 00 00 00 00 00 b0 fe 13 99 ff ff ff ff ................
> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> backtrace:
> [<00000000f1d0b20e>] percpu_ref_init+0x5f/0xf0
> [<000000009598103f>] cgroup_mkdir+0xe9/0x440
> [<0000000001b93c19>] kernfs_iop_mkdir+0x57/0x80
> [<000000001ed0f985>] vfs_mkdir+0x10e/0x1d0
> [<00000000cac65f7e>] do_mkdirat+0xec/0x120
> [<00000000956db630>] do_syscall_64+0x33/0x80
> [<000000001c2b0e1a>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
Hello Sagi,
Could you test the following patch and see if the leak is fixed?
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index dd247747ec14..e8b7a8b66415 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -4962,6 +4962,7 @@ static void css_free_rwork_fn(struct work_struct *work)
psi_cgroup_free(cgrp);
if (cgroup_on_dfl(cgrp))
cgroup_rstat_exit(cgrp);
+ percpu_ref_exit(&cgrp->self.refcnt);
kfree(cgrp);
} else {
/*
Thanks,
Ming
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme
next prev parent reply other threads:[~2020-09-11 23:29 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-11 2:41 [PATCH V5 0/4] blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING Ming Lei
2020-09-11 2:41 ` Ming Lei
2020-09-11 2:41 ` [PATCH V5 1/4] block: use test_and_{clear|test}_bit to set/clear QUEUE_FLAG_QUIESCED Ming Lei
2020-09-11 2:41 ` Ming Lei
2020-09-11 6:03 ` Hannes Reinecke
2020-09-11 6:03 ` Hannes Reinecke
2020-09-11 2:41 ` [PATCH V5 2/4] blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING Ming Lei
2020-09-11 2:41 ` Ming Lei
2020-09-11 2:41 ` [PATCH V5 3/4] blk-mq: add tagset quiesce interface Ming Lei
2020-09-11 2:41 ` Ming Lei
2020-09-11 2:41 ` [PATCH V5 4/4] nvme: use blk_mq_[un]quiesce_tagset Ming Lei
2020-09-11 2:41 ` Ming Lei
2020-09-11 17:29 ` [PATCH V5 0/4] blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING Sagi Grimberg
2020-09-11 17:29 ` Sagi Grimberg
2020-09-11 18:34 ` Sagi Grimberg
2020-09-11 18:34 ` Sagi Grimberg
2020-09-11 18:45 ` Jens Axboe
2020-09-11 18:45 ` Jens Axboe
2020-09-11 23:28 ` Ming Lei [this message]
2020-09-11 23:28 ` Ming Lei
2020-09-11 17:33 ` Keith Busch
2020-09-11 17:33 ` Keith Busch
2020-09-11 18:05 ` Jens Axboe
2020-09-11 18:05 ` Jens Axboe
2020-09-11 19:12 ` Sagi Grimberg
2020-09-11 19:12 ` Sagi Grimberg
2020-09-11 19:14 ` Jens Axboe
2020-09-11 19:14 ` Jens Axboe
2020-09-14 3:05 ` Ming Lei
2020-09-14 3:05 ` Ming Lei
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=20200911232844.GA172054@T590 \
--to=ming.lei@redhat.com \
--cc=Johannes.Thumshirn@wdc.com \
--cc=axboe@kernel.dk \
--cc=bvanassche@acm.org \
--cc=hare@suse.de \
--cc=hch@lst.de \
--cc=kbusch@kernel.org \
--cc=lengchao@huawei.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-nvme@lists.infradead.org \
--cc=sagi@grimberg.me \
/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.