From: keith.busch@intel.com (Keith Busch)
Subject: [PATCH V2] nvme: free pre-allocated queue if create ioq goes wrong
Date: Thu, 18 Jan 2018 04:31:14 -0700 [thread overview]
Message-ID: <20180118113114.GA11093@localhost.localdomain> (raw)
In-Reply-To: <CAA7jztfXAgo33NmmzvHu5dNyNKEkVzgqMWRR6FS4p3Etxx-i6g@mail.gmail.com>
On Thu, Jan 18, 2018@07:25:06PM +0900, Minwoo Im wrote:
> On Thu, Jan 18, 2018 at 2:27 PM, jianchao.wang
> <jianchao.w.wang@oracle.com> wrote:
> > Hi Minwoo
>
> >> Think of the following scenario:
> > nvme_reset_work
> > -> nvme_setup_io_queues
> > -> nvme_create_io_queues
> > -> nvme_free_queues
> > -> nvme_kill_queues
> > -> blk_set_queue_dying // just freeze the queue here, but will not wait to be drained.
> > not new requests come in, but maybe still residual requests in blk-mq queues.
> > -> blk_mq_unquiesce_queue
> >
> > the queues are _unquiesced_ here, then the residual requests will be queued
> > and go through nvme_queue_rq. Then the freed nvme_queue structure will be accessed.
> > :)
> >
> > Thanks
> > Jianchao
>
> Hi Jianchao,
>
> First of all, I really appreciate letting me know the case.
> It seems no one updates the actual nr_hw_queues value and frees hctxs
> after nvme_kill_queues().
> If you don't mind, would you please tell me where hctxs are freed
> after nvme_kill_queues()?
The API doesn't let us set the nr_hw_queues to 0. We'd have to free the
tagset at that point, but we don't free it until the last open reference
is dropped. I can't seem to recall why that's necessary but I'll stare
at this a bit longer see if it makes sense. The memory the driver is
holding onto is not really a big deal either way.
next prev parent reply other threads:[~2018-01-18 11:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-14 21:00 [PATCH V2] nvme: free pre-allocated queue if create ioq goes wrong Minwoo Im
2018-01-15 2:00 ` Keith Busch
2018-01-17 13:07 ` Minwoo Im
2018-01-17 15:00 ` Minwoo Im
2018-01-18 5:27 ` jianchao.wang
2018-01-18 10:25 ` Minwoo Im
2018-01-18 11:31 ` Keith Busch [this message]
2018-01-18 22:52 ` Minwoo Im
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=20180118113114.GA11093@localhost.localdomain \
--to=keith.busch@intel.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 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.