* [PATCH] virtio_pmem: Check device status before requesting flush
@ 2024-08-15 0:30 Philip Chen
0 siblings, 0 replies; 6+ messages in thread
From: Philip Chen @ 2024-08-15 0:30 UTC (permalink / raw)
To: Pankaj Gupta, Dan Williams, Vishal Verma, Dave Jiang, Ira Weiny
Cc: virtualization, nvdimm, linux-kernel, Philip Chen
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.
Change-Id: Icc1d0a4405359fb5364751031589d15a455f849b
Signed-off-by: Philip Chen <philipchen@chromium.org>
---
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..3b4d07aa8447 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 send the request to the device if the device is not
+ * acticated.
+ */
+ 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)
--
2.46.0.76.ge559c4bf1a-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread* [PATCH] virtio_pmem: Check device status before requesting flush
@ 2024-08-15 0:57 Philip Chen
2024-08-19 21:56 ` Ira Weiny
0 siblings, 1 reply; 6+ messages in thread
From: Philip Chen @ 2024-08-15 0:57 UTC (permalink / raw)
To: Pankaj Gupta, Dan Williams, Vishal Verma, Dave Jiang, Ira Weiny
Cc: virtualization, nvdimm, linux-kernel, Philip Chen
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.
Signed-off-by: Philip Chen <philipchen@chromium.org>
---
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..3b4d07aa8447 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 send the request to the device if the device is not
+ * acticated.
+ */
+ 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)
--
2.46.0.76.ge559c4bf1a-goog
^ permalink raw reply related [flat|nested] 6+ messages in thread* Re: [PATCH] virtio_pmem: Check device status before requesting flush
2024-08-15 0:57 Philip Chen
@ 2024-08-19 21:56 ` Ira Weiny
2024-08-20 4:16 ` Philip Chen
0 siblings, 1 reply; 6+ messages in thread
From: Ira Weiny @ 2024-08-19 21:56 UTC (permalink / raw)
To: Philip Chen, Pankaj Gupta, Dan Williams, Vishal Verma, Dave Jiang,
Ira Weiny
Cc: virtualization, nvdimm, linux-kernel, Philip Chen
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.
I assume this was supposed to be v2 and you resent this as a proper v2
with a change list from v1?
Ira
>
> Signed-off-by: Philip Chen <philipchen@chromium.org>
> ---
> 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..3b4d07aa8447 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 send the request to the device if the device is not
> + * acticated.
> + */
> + 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)
> --
> 2.46.0.76.ge559c4bf1a-goog
>
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] virtio_pmem: Check device status before requesting flush
2024-08-19 21:56 ` Ira Weiny
@ 2024-08-20 4:16 ` Philip Chen
2024-08-20 14:23 ` Ira Weiny
0 siblings, 1 reply; 6+ messages in thread
From: Philip Chen @ 2024-08-20 4:16 UTC (permalink / raw)
To: Ira Weiny
Cc: Pankaj Gupta, Dan Williams, Vishal Verma, Dave Jiang,
virtualization, nvdimm, linux-kernel
On Mon, Aug 19, 2024 at 2:56 PM Ira Weiny <ira.weiny@intel.com> wrote:
>
> 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.
>
> I assume this was supposed to be v2 and you resent this as a proper v2
> with a change list from v1?
Ah...yes, I'll fix it and re-send it as a v2 patch.
>
> Ira
>
> >
> > Signed-off-by: Philip Chen <philipchen@chromium.org>
> > ---
> > 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..3b4d07aa8447 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 send the request to the device if the device is not
> > + * acticated.
> > + */
> > + 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)
> > --
> > 2.46.0.76.ge559c4bf1a-goog
> >
>
>
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [PATCH] virtio_pmem: Check device status before requesting flush
2024-08-20 4:16 ` Philip Chen
@ 2024-08-20 14:23 ` Ira Weiny
2024-08-21 2:46 ` Philip Chen
0 siblings, 1 reply; 6+ messages in thread
From: Ira Weiny @ 2024-08-20 14:23 UTC (permalink / raw)
To: Philip Chen, Ira Weiny
Cc: Pankaj Gupta, Dan Williams, Vishal Verma, Dave Jiang,
virtualization, nvdimm, linux-kernel
Philip Chen wrote:
> On Mon, Aug 19, 2024 at 2:56 PM Ira Weiny <ira.weiny@intel.com> wrote:
> >
> > 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.
> >
> > I assume this was supposed to be v2 and you resent this as a proper v2
> > with a change list from v1?
> Ah...yes, I'll fix it and re-send it as a v2 patch.
Wait didn't you already do that? Wasn't this v2?
https://lore.kernel.org/all/20240815010337.2334245-1-philipchen@chromium.org/
Ira
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] virtio_pmem: Check device status before requesting flush
2024-08-20 14:23 ` Ira Weiny
@ 2024-08-21 2:46 ` Philip Chen
0 siblings, 0 replies; 6+ messages in thread
From: Philip Chen @ 2024-08-21 2:46 UTC (permalink / raw)
To: Ira Weiny
Cc: Pankaj Gupta, Dan Williams, Vishal Verma, Dave Jiang,
virtualization, nvdimm, linux-kernel
Hi,
On Tue, Aug 20, 2024 at 7:23 AM Ira Weiny <ira.weiny@intel.com> wrote:
>
> Philip Chen wrote:
> > On Mon, Aug 19, 2024 at 2:56 PM Ira Weiny <ira.weiny@intel.com> wrote:
> > >
> > > 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.
> > >
> > > I assume this was supposed to be v2 and you resent this as a proper v2
> > > with a change list from v1?
> > Ah...yes, I'll fix it and re-send it as a v2 patch.
>
> Wait didn't you already do that? Wasn't this v2?
Yes, but somehow the patch didn't go to my inbox.
(Maybe it's because there is no code change between v1 and v2?)
So I resent another v2 (with some minor change to the comment):
https://lore.kernel.org/all/20240820172256.903251-1-philipchen@chromium.org/
Please take a look.
>
> https://lore.kernel.org/all/20240815010337.2334245-1-philipchen@chromium.org/
>
> Ira
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-08-21 2:46 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-15 0:30 [PATCH] virtio_pmem: Check device status before requesting flush Philip Chen
-- strict thread matches above, loose matches on Subject: below --
2024-08-15 0:57 Philip Chen
2024-08-19 21:56 ` Ira Weiny
2024-08-20 4:16 ` Philip Chen
2024-08-20 14:23 ` Ira Weiny
2024-08-21 2:46 ` Philip Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox