[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190507170733.GA6783@localhost.localdomain>
Date: Tue, 7 May 2019 11:07:34 -0600
From: Keith Busch <kbusch@...nel.org>
To: Akinobu Mita <akinobu.mita@...il.com>
Cc: linux-nvme@...ts.infradead.org, linux-kernel@...r.kernel.org,
Johannes Berg <johannes@...solutions.net>,
Keith Busch <keith.busch@...el.com>, Jens Axboe <axboe@...com>,
Christoph Hellwig <hch@....de>,
Sagi Grimberg <sagi@...mberg.me>,
Minwoo Im <minwoo.im.dev@...il.com>
Subject: Re: [PATCH v2 6/7] nvme-pci: add device coredump support
On Wed, May 08, 2019 at 01:58:33AM +0900, Akinobu Mita wrote:
> +static void nvme_coredump(struct device *dev)
> +{
> + struct nvme_dev *ndev = dev_get_drvdata(dev);
> +
> + mutex_lock(&ndev->shutdown_lock);
> +
> + nvme_coredump_prologue(ndev);
> + nvme_coredump_epilogue(ndev);
> +
> + mutex_unlock(&ndev->shutdown_lock);
> +}
This is a bit of a mine field. The shutdown_lock is held when reclaiming
requests that didn't see a response. If you're holding it here and your
telemetry log page times out, we're going to deadlock. And since the
controller is probably in a buggered state when you try to retrieve one,
I would guess an unrecoverable timeout is the most likely outcome.
Powered by blists - more mailing lists