From: Ira Weiny <ira.weiny@intel.com>
To: Philip Chen <philipchen@chromium.org>, Dave Jiang <dave.jiang@intel.com>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
Dan Williams <dan.j.williams@intel.com>,
Vishal Verma <vishal.l.verma@intel.com>,
"Ira Weiny" <ira.weiny@intel.com>,
<virtualization@lists.linux.dev>, <nvdimm@lists.linux.dev>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v2] virtio_pmem: Check device status before requesting flush
Date: Wed, 21 Aug 2024 15:37:41 -0500 [thread overview]
Message-ID: <66c6501536e2e_1719d294b1@iweiny-mobl.notmuch> (raw)
In-Reply-To: <CA+cxXhnrg8vipY37siXRudRiwLKFuyJXizH9EUczFFnB6iwQAg@mail.gmail.com>
Philip Chen wrote:
> Hi,
>
> On Tue, Aug 20, 2024 at 1:01 PM Dave Jiang <dave.jiang@intel.com> wrote:
> >
> >
> >
> > On 8/20/24 10:22 AM, Philip Chen wrote:
> > > If a pmem device is in a bad status, the driver side could wait for
> > > host ack forever in virtio_pmem_flush(), causing the system to hang.
> > >
> > > So add a status check in the beginning of virtio_pmem_flush() to return
> > > early if the device is not activated.
> > >
> > > Signed-off-by: Philip Chen <philipchen@chromium.org>
> > > ---
> > >
> > > v2:
> > > - Remove change id from the patch description
> > > - Add more details to the patch description
> > >
> > > drivers/nvdimm/nd_virtio.c | 9 +++++++++
> > > 1 file changed, 9 insertions(+)
> > >
> > > diff --git a/drivers/nvdimm/nd_virtio.c b/drivers/nvdimm/nd_virtio.c
> > > index 35c8fbbba10e..97addba06539 100644
> > > --- a/drivers/nvdimm/nd_virtio.c
> > > +++ b/drivers/nvdimm/nd_virtio.c
> > > @@ -44,6 +44,15 @@ static int virtio_pmem_flush(struct nd_region *nd_region)
> > > unsigned long flags;
> > > int err, err1;
> > >
> > > + /*
> > > + * Don't bother to submit the request to the device if the device is
> > > + * not acticated.
> >
> > s/acticated/activated/
>
> Thanks for the review.
> I'll fix this typo in v3.
>
> In addition to this typo, does anyone have any other concerns?
I'm not super familiar with the virtio-pmem workings and the needs reset
flag is barely used.
Did you actually experience this hang? How was this found? What is the
user visible issue and how critical is it?
Thanks,
Ira
>
> >
> > > + */
> > > + if (vdev->config->get_status(vdev) & VIRTIO_CONFIG_S_NEEDS_RESET) {
> > > + dev_info(&vdev->dev, "virtio pmem device needs a reset\n");
> > > + return -EIO;
> > > + }
> > > +
> > > might_sleep();
> > > req_data = kmalloc(sizeof(*req_data), GFP_KERNEL);
> > > if (!req_data)
next prev parent reply other threads:[~2024-08-21 20:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-20 17:22 [PATCH v2] virtio_pmem: Check device status before requesting flush Philip Chen
2024-08-20 20:01 ` Dave Jiang
2024-08-21 2:48 ` Philip Chen
2024-08-21 20:37 ` Ira Weiny [this message]
2024-08-21 21:30 ` Philip Chen
-- strict thread matches above, loose matches on Subject: below --
2024-08-15 1:03 Philip Chen
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=66c6501536e2e_1719d294b1@iweiny-mobl.notmuch \
--to=ira.weiny@intel.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nvdimm@lists.linux.dev \
--cc=pankaj.gupta.linux@gmail.com \
--cc=philipchen@chromium.org \
--cc=virtualization@lists.linux.dev \
--cc=vishal.l.verma@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox