From: "Zhu, Lingshan" <lingshan.zhu@intel.com>
To: Jason Wang <jasowang@redhat.com>
Cc: mst@redhat.com, eperezma@redhat.com, cohuck@redhat.com,
virtio-comment@lists.oasis-open.org,
virtio-dev@lists.oasis-open.org
Subject: Re: [virtio-comment] Re: [RFC PATCH 1/5] virtio: introduce SUSPEND bit in device status
Date: Wed, 16 Aug 2023 10:20:39 +0800 [thread overview]
Message-ID: <02ce48ed-6804-933c-9cf5-3e4123d12530@intel.com> (raw)
In-Reply-To: <CACGkMEvuJ7iBL6NWesi8UO3Vw5216DobkL2bb525Hhh34x3h0w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4958 bytes --]
On 8/16/2023 10:05 AM, Jason Wang wrote:
> On Tue, Aug 15, 2023 at 6:50 PM Zhu, Lingshan<lingshan.zhu@intel.com> wrote:
>>
>>
>> On 8/15/2023 8:37 AM, Jason Wang wrote:
>>> On Tue, Aug 15, 2023 at 8:26 AM Jason Wang<jasowang@redhat.com> wrote:
>>>> On Mon, Aug 14, 2023 at 7:29 PM Zhu Lingshan<lingshan.zhu@intel.com> wrote:
>>>>> This patch introudces a new status bit in the device status: SUSPEND.
>>>>>
>>>>> This SUSPEND bit can be used by the driver to suspend a device,
>>>>> in order to stablize the device states and virtqueue states.
>>>>>
>>>>> Its main use case is live migration.
>>>> I think patch 3 needs to be squashed into this one.
>>>>
>>>>> Signed-off-by: Jason Wang<jasowang@redhat.com>
>>>>> Signed-off-by: Eugenio PÃrez<eperezma@redhat.com>
>>>>> Signed-off-by: Zhu Lingshan<lingshan.zhu@intel.com>
>>>>> ---
>>>>> content.tex | 18 ++++++++++++++++++
>>>>> 1 file changed, 18 insertions(+)
>>>>>
>>>>> diff --git a/content.tex b/content.tex
>>>>> index 0a62dce..1bb4401 100644
>>>>> --- a/content.tex
>>>>> +++ b/content.tex
>>>>> @@ -47,6 +47,9 @@ \section{\field{Device Status} Field}\label{sec:Basic Facilities of a Virtio Dev
>>>>> \item[DRIVER_OK (4)] Indicates that the driver is set up and ready to
>>>>> drive the device.
>>>>>
>>>>> +\item[SUSPEND (16)] When VIRTIO_F_SUSPEND is negotiated, indicates that the
>>>>> + device has been suspended by the driver.
>>>>> +
>>>>> \item[DEVICE_NEEDS_RESET (64)] Indicates that the device has experienced
>>>>> an error from which it can't recover.
>>>>> \end{description}
>>>>> @@ -73,6 +76,10 @@ \section{\field{Device Status} Field}\label{sec:Basic Facilities of a Virtio Dev
>>>>> recover by issuing a reset.
>>>>> \end{note}
>>>>>
>>>>> +The driver MUST NOT set SUSPEND if FEATURES_OK is not set.
>>>>> +
>>>>> +When set SUSPEND, the driver MUST re-read \field{device status} to ensure the SUSPEND bit is set.
>>>>> +
>>>>> \devicenormative{\subsection}{Device Status Field}{Basic Facilities of a Virtio Device / Device Status Field}
>>>>>
>>>>> The device MUST NOT consume buffers or send any used buffer
>>>>> @@ -82,6 +89,13 @@ \section{\field{Device Status} Field}\label{sec:Basic Facilities of a Virtio Dev
>>>>> that a reset is needed. If DRIVER_OK is set, after it sets DEVICE_NEEDS_RESET, the device
>>>>> MUST send a device configuration change notification to the driver.
>>>>>
>>>>> +The device MUST ignore SUSPEND if FEATURES_OK is not set.
>>>> Is there any value to allow SUSPEND to be set without DRIVER_OK?
>>>>
>>>>> +
>>>>> +The deivce MUST ignore SUSPEND if VIRTIO_F_SUSPEND is not negotiated.
>>>> typo.
>>>>
>>>> Thanks
>>> Btw, it's not clear to me if driver is allowed to clear this bit.
>> To allow terminate a live migration process or resume from a failed live
>> migration,
>> we allow DRIVER_OK to clear SUSPEND, in patch 1.
> Does this imply DRIVER_OK is cleared during SUSPEND? This seems more
> complicated than simply allowing clearing this bit?
No, SUSPEND does not clears DRIVER_OK, only DRIVER_OK clears SUSPEND.
The spec says: The driver MUST NOT clear a device status bit.
So I think maybe it's better let the device clears SUSPEND.
Thanks
>
> Thanks
>
>> Thanks
>>> Thanks
>>>
>>>>> +
>>>>> +If VIRTIO_F_SUSPEND is negotiated and SUSPEND is set, the device MUST clear SUSPEND
>>>>> +and resumes operation upon DRIVER_OK.
>>>>> +
>>>>> \section{Feature Bits}\label{sec:Basic Facilities of a Virtio Device / Feature Bits}
>>>>>
>>>>> Each virtio device offers all the features it understands. During
>>>>> @@ -872,6 +886,10 @@ \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
>>>>> \ref{devicenormative:Basic Facilities of a Virtio Device / Feature Bits} for
>>>>> handling features reserved for future use.
>>>>>
>>>>> + \item[VIRTIO_F_SUSPEND(41)] This feature indicates that the driver can
>>>>> + SUSPEND the device.
>>>>> + See \ref{sec:Basic Facilities of a Virtio Device / Device Status Field}.
>>>>> +
>>>>> \end{description}
>>>>>
>>>>> \drivernormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}
>>>>> --
>>>>> 2.35.3
>>>>>
>>
>> This publicly archived list offers a means to provide input to the
>> OASIS Virtual I/O Device (VIRTIO) TC.
>>
>> In order to verify user consent to the Feedback License terms and
>> to minimize spam in the list archive, subscription is required
>> before posting.
>>
>> Subscribe:virtio-comment-subscribe@lists.oasis-open.org
>> Unsubscribe:virtio-comment-unsubscribe@lists.oasis-open.org
>> List help:virtio-comment-help@lists.oasis-open.org
>> List archive:https://lists.oasis-open.org/archives/virtio-comment/
>> Feedback License:https://www.oasis-open.org/who/ipr/feedback_license.pdf
>> List Guidelines:https://www.oasis-open.org/policies-guidelines/mailing-lists
>> Committee:https://www.oasis-open.org/committees/virtio/
>> Join OASIS:https://www.oasis-open.org/join/
>>
[-- Attachment #2: Type: text/html, Size: 8355 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: "Zhu, Lingshan" <lingshan.zhu@intel.com>
To: Jason Wang <jasowang@redhat.com>
Cc: mst@redhat.com, eperezma@redhat.com, cohuck@redhat.com,
virtio-comment@lists.oasis-open.org,
virtio-dev@lists.oasis-open.org
Subject: [virtio-dev] Re: [virtio-comment] Re: [RFC PATCH 1/5] virtio: introduce SUSPEND bit in device status
Date: Wed, 16 Aug 2023 10:20:39 +0800 [thread overview]
Message-ID: <02ce48ed-6804-933c-9cf5-3e4123d12530@intel.com> (raw)
In-Reply-To: <CACGkMEvuJ7iBL6NWesi8UO3Vw5216DobkL2bb525Hhh34x3h0w@mail.gmail.com>
[-- Attachment #1: Type: text/plain, Size: 4958 bytes --]
On 8/16/2023 10:05 AM, Jason Wang wrote:
> On Tue, Aug 15, 2023 at 6:50 PM Zhu, Lingshan<lingshan.zhu@intel.com> wrote:
>>
>>
>> On 8/15/2023 8:37 AM, Jason Wang wrote:
>>> On Tue, Aug 15, 2023 at 8:26 AM Jason Wang<jasowang@redhat.com> wrote:
>>>> On Mon, Aug 14, 2023 at 7:29 PM Zhu Lingshan<lingshan.zhu@intel.com> wrote:
>>>>> This patch introudces a new status bit in the device status: SUSPEND.
>>>>>
>>>>> This SUSPEND bit can be used by the driver to suspend a device,
>>>>> in order to stablize the device states and virtqueue states.
>>>>>
>>>>> Its main use case is live migration.
>>>> I think patch 3 needs to be squashed into this one.
>>>>
>>>>> Signed-off-by: Jason Wang<jasowang@redhat.com>
>>>>> Signed-off-by: Eugenio PÃrez<eperezma@redhat.com>
>>>>> Signed-off-by: Zhu Lingshan<lingshan.zhu@intel.com>
>>>>> ---
>>>>> content.tex | 18 ++++++++++++++++++
>>>>> 1 file changed, 18 insertions(+)
>>>>>
>>>>> diff --git a/content.tex b/content.tex
>>>>> index 0a62dce..1bb4401 100644
>>>>> --- a/content.tex
>>>>> +++ b/content.tex
>>>>> @@ -47,6 +47,9 @@ \section{\field{Device Status} Field}\label{sec:Basic Facilities of a Virtio Dev
>>>>> \item[DRIVER_OK (4)] Indicates that the driver is set up and ready to
>>>>> drive the device.
>>>>>
>>>>> +\item[SUSPEND (16)] When VIRTIO_F_SUSPEND is negotiated, indicates that the
>>>>> + device has been suspended by the driver.
>>>>> +
>>>>> \item[DEVICE_NEEDS_RESET (64)] Indicates that the device has experienced
>>>>> an error from which it can't recover.
>>>>> \end{description}
>>>>> @@ -73,6 +76,10 @@ \section{\field{Device Status} Field}\label{sec:Basic Facilities of a Virtio Dev
>>>>> recover by issuing a reset.
>>>>> \end{note}
>>>>>
>>>>> +The driver MUST NOT set SUSPEND if FEATURES_OK is not set.
>>>>> +
>>>>> +When set SUSPEND, the driver MUST re-read \field{device status} to ensure the SUSPEND bit is set.
>>>>> +
>>>>> \devicenormative{\subsection}{Device Status Field}{Basic Facilities of a Virtio Device / Device Status Field}
>>>>>
>>>>> The device MUST NOT consume buffers or send any used buffer
>>>>> @@ -82,6 +89,13 @@ \section{\field{Device Status} Field}\label{sec:Basic Facilities of a Virtio Dev
>>>>> that a reset is needed. If DRIVER_OK is set, after it sets DEVICE_NEEDS_RESET, the device
>>>>> MUST send a device configuration change notification to the driver.
>>>>>
>>>>> +The device MUST ignore SUSPEND if FEATURES_OK is not set.
>>>> Is there any value to allow SUSPEND to be set without DRIVER_OK?
>>>>
>>>>> +
>>>>> +The deivce MUST ignore SUSPEND if VIRTIO_F_SUSPEND is not negotiated.
>>>> typo.
>>>>
>>>> Thanks
>>> Btw, it's not clear to me if driver is allowed to clear this bit.
>> To allow terminate a live migration process or resume from a failed live
>> migration,
>> we allow DRIVER_OK to clear SUSPEND, in patch 1.
> Does this imply DRIVER_OK is cleared during SUSPEND? This seems more
> complicated than simply allowing clearing this bit?
No, SUSPEND does not clears DRIVER_OK, only DRIVER_OK clears SUSPEND.
The spec says: The driver MUST NOT clear a device status bit.
So I think maybe it's better let the device clears SUSPEND.
Thanks
>
> Thanks
>
>> Thanks
>>> Thanks
>>>
>>>>> +
>>>>> +If VIRTIO_F_SUSPEND is negotiated and SUSPEND is set, the device MUST clear SUSPEND
>>>>> +and resumes operation upon DRIVER_OK.
>>>>> +
>>>>> \section{Feature Bits}\label{sec:Basic Facilities of a Virtio Device / Feature Bits}
>>>>>
>>>>> Each virtio device offers all the features it understands. During
>>>>> @@ -872,6 +886,10 @@ \chapter{Reserved Feature Bits}\label{sec:Reserved Feature Bits}
>>>>> \ref{devicenormative:Basic Facilities of a Virtio Device / Feature Bits} for
>>>>> handling features reserved for future use.
>>>>>
>>>>> + \item[VIRTIO_F_SUSPEND(41)] This feature indicates that the driver can
>>>>> + SUSPEND the device.
>>>>> + See \ref{sec:Basic Facilities of a Virtio Device / Device Status Field}.
>>>>> +
>>>>> \end{description}
>>>>>
>>>>> \drivernormative{\section}{Reserved Feature Bits}{Reserved Feature Bits}
>>>>> --
>>>>> 2.35.3
>>>>>
>>
>> This publicly archived list offers a means to provide input to the
>> OASIS Virtual I/O Device (VIRTIO) TC.
>>
>> In order to verify user consent to the Feedback License terms and
>> to minimize spam in the list archive, subscription is required
>> before posting.
>>
>> Subscribe:virtio-comment-subscribe@lists.oasis-open.org
>> Unsubscribe:virtio-comment-unsubscribe@lists.oasis-open.org
>> List help:virtio-comment-help@lists.oasis-open.org
>> List archive:https://lists.oasis-open.org/archives/virtio-comment/
>> Feedback License:https://www.oasis-open.org/who/ipr/feedback_license.pdf
>> List Guidelines:https://www.oasis-open.org/policies-guidelines/mailing-lists
>> Committee:https://www.oasis-open.org/committees/virtio/
>> Join OASIS:https://www.oasis-open.org/join/
>>
[-- Attachment #2: Type: text/html, Size: 8355 bytes --]
next prev parent reply other threads:[~2023-08-16 2:20 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-14 19:28 [virtio-comment] [RFC PATCH 0/5] virtio: introduce SUSPEND bit and vq state Zhu Lingshan
2023-08-14 19:28 ` [virtio-dev] " Zhu Lingshan
2023-08-14 14:20 ` [virtio-comment] " Stefan Hajnoczi
2023-08-14 14:20 ` [virtio-dev] " Stefan Hajnoczi
2023-08-14 15:47 ` Stefan Hajnoczi
2023-08-14 15:47 ` [virtio-dev] " Stefan Hajnoczi
2023-08-15 1:38 ` Jason Wang
2023-08-15 1:38 ` [virtio-dev] " Jason Wang
2023-08-15 10:14 ` Zhu, Lingshan
2023-08-15 10:14 ` [virtio-dev] " Zhu, Lingshan
2023-08-14 19:29 ` [virtio-comment] [RFC PATCH 1/5] virtio: introduce SUSPEND bit in device status Zhu Lingshan
2023-08-14 19:29 ` [virtio-dev] " Zhu Lingshan
2023-08-14 14:30 ` [virtio-comment] " Stefan Hajnoczi
2023-08-14 14:30 ` [virtio-dev] " Stefan Hajnoczi
2023-08-15 10:31 ` Zhu, Lingshan
2023-08-15 10:31 ` [virtio-dev] " Zhu, Lingshan
2023-08-15 12:29 ` Stefan Hajnoczi
2023-08-15 12:29 ` [virtio-dev] " Stefan Hajnoczi
2023-08-17 15:15 ` Eugenio Perez Martin
2023-08-17 15:15 ` [virtio-dev] " Eugenio Perez Martin
2023-08-17 16:04 ` Stefan Hajnoczi
2023-08-17 16:04 ` [virtio-dev] " Stefan Hajnoczi
2023-08-18 9:55 ` Zhu, Lingshan
2023-08-18 9:55 ` [virtio-dev] " Zhu, Lingshan
2023-08-21 13:45 ` Stefan Hajnoczi
2023-08-21 13:45 ` [virtio-dev] " Stefan Hajnoczi
2023-08-15 0:26 ` [virtio-comment] " Jason Wang
2023-08-15 0:26 ` [virtio-dev] " Jason Wang
2023-08-15 0:37 ` [virtio-comment] " Jason Wang
2023-08-15 0:37 ` [virtio-dev] " Jason Wang
2023-08-15 10:48 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 10:48 ` [virtio-dev] " Zhu, Lingshan
2023-08-16 1:58 ` [virtio-comment] " Jason Wang
2023-08-16 1:58 ` [virtio-dev] " Jason Wang
2023-08-16 2:17 ` [virtio-comment] " Zhu, Lingshan
2023-08-16 2:17 ` [virtio-dev] " Zhu, Lingshan
2023-08-15 10:50 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 10:50 ` [virtio-dev] " Zhu, Lingshan
2023-08-16 2:05 ` [virtio-comment] " Jason Wang
2023-08-16 2:05 ` [virtio-dev] " Jason Wang
2023-08-16 2:20 ` Zhu, Lingshan [this message]
2023-08-16 2:20 ` Zhu, Lingshan
2023-08-14 19:29 ` [virtio-comment] [RFC PATCH 2/5] virtio: introduce vq state as basic facility Zhu Lingshan
2023-08-14 19:29 ` [virtio-dev] " Zhu Lingshan
2023-08-14 14:49 ` [virtio-comment] " Stefan Hajnoczi
2023-08-14 14:49 ` Stefan Hajnoczi
2023-08-15 10:53 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 10:53 ` Zhu, Lingshan
2023-08-14 19:29 ` [virtio-comment] [RFC PATCH 3/5] virtio: The actions by the device upon SUSPEND Zhu Lingshan
2023-08-14 19:29 ` [virtio-dev] " Zhu Lingshan
2023-08-14 15:00 ` [virtio-comment] " Stefan Hajnoczi
2023-08-14 15:00 ` [virtio-dev] " Stefan Hajnoczi
2023-08-15 11:07 ` Zhu, Lingshan
2023-08-15 11:07 ` [virtio-dev] " Zhu, Lingshan
2023-08-15 12:33 ` Stefan Hajnoczi
2023-08-15 12:33 ` [virtio-dev] " Stefan Hajnoczi
2023-08-16 4:25 ` Zhu, Lingshan
2023-08-16 4:25 ` [virtio-dev] " Zhu, Lingshan
2023-08-16 12:33 ` Stefan Hajnoczi
2023-08-16 12:33 ` [virtio-dev] " Stefan Hajnoczi
2023-08-15 0:29 ` [virtio-comment] " Jason Wang
2023-08-15 0:29 ` [virtio-dev] " Jason Wang
2023-08-15 11:16 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 11:16 ` Zhu, Lingshan
2023-08-16 2:10 ` [virtio-comment] " Jason Wang
2023-08-16 2:10 ` Jason Wang
2023-08-16 4:53 ` [virtio-comment] " Zhu, Lingshan
2023-08-16 4:53 ` Zhu, Lingshan
2023-08-14 19:29 ` [virtio-comment] [RFC PATCH 4/5] virtqueue: constraints for virtqueue state Zhu Lingshan
2023-08-14 19:29 ` [virtio-dev] " Zhu Lingshan
2023-08-14 15:15 ` [virtio-comment] " Stefan Hajnoczi
2023-08-14 15:15 ` Stefan Hajnoczi
2023-08-15 11:18 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 11:18 ` Zhu, Lingshan
2023-08-15 0:34 ` [virtio-comment] " Jason Wang
2023-08-15 0:34 ` [virtio-dev] " Jason Wang
2023-08-15 11:30 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 11:30 ` [virtio-dev] " Zhu, Lingshan
2023-08-16 2:11 ` [virtio-comment] " Jason Wang
2023-08-16 2:11 ` [virtio-dev] " Jason Wang
2023-08-16 5:07 ` [virtio-comment] " Zhu, Lingshan
2023-08-16 5:07 ` Zhu, Lingshan
2023-08-17 8:31 ` [virtio-comment] " Uminski, Piotr
2023-08-17 8:42 ` Zhu, Lingshan
2023-08-17 8:42 ` [virtio-dev] " Zhu, Lingshan
2023-08-21 4:03 ` Jason Wang
2023-08-21 4:03 ` [virtio-dev] " Jason Wang
2023-08-17 15:19 ` Eugenio Perez Martin
2023-08-17 15:19 ` [virtio-dev] " Eugenio Perez Martin
2023-08-18 9:44 ` [virtio-comment] " Zhu, Lingshan
2023-08-18 9:44 ` [virtio-dev] " Zhu, Lingshan
2023-08-21 9:26 ` [virtio-comment] " Eugenio Perez Martin
2023-08-21 9:26 ` [virtio-dev] " Eugenio Perez Martin
2023-08-21 10:32 ` [virtio-comment] " Zhu, Lingshan
2023-08-21 10:32 ` [virtio-dev] " Zhu, Lingshan
2023-09-05 9:08 ` Zhu, Lingshan
2023-09-05 9:08 ` [virtio-dev] " Zhu, Lingshan
2023-09-07 8:09 ` Eugenio Perez Martin
2023-09-07 8:09 ` [virtio-dev] " Eugenio Perez Martin
2023-09-07 9:34 ` Zhu, Lingshan
2023-09-07 9:34 ` [virtio-dev] " Zhu, Lingshan
2023-09-08 6:23 ` Si-Wei Liu
2023-09-08 6:23 ` [virtio-dev] " Si-Wei Liu
2023-09-08 8:41 ` Zhu, Lingshan
2023-09-08 8:41 ` [virtio-dev] " Zhu, Lingshan
2023-08-14 19:29 ` [virtio-comment] [RFC PATCH 5/5] virtio-pci: implement VIRTIO_F_QUEUE_STATE Zhu Lingshan
2023-08-14 19:29 ` [virtio-dev] " Zhu Lingshan
2023-08-14 15:18 ` [virtio-comment] " Stefan Hajnoczi
2023-08-14 15:18 ` Stefan Hajnoczi
2023-08-15 11:31 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 11:31 ` [virtio-dev] " Zhu, Lingshan
2023-08-15 0:35 ` [virtio-comment] " Jason Wang
2023-08-15 0:35 ` [virtio-dev] " Jason Wang
2023-08-15 11:31 ` [virtio-comment] " Zhu, Lingshan
2023-08-15 11:31 ` [virtio-dev] " Zhu, Lingshan
2023-08-17 3:04 ` [virtio-comment] Re: [RFC PATCH 0/5] virtio: introduce SUSPEND bit and vq state Zhu, Lingshan
2023-08-17 3:04 ` [virtio-dev] " Zhu, Lingshan
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=02ce48ed-6804-933c-9cf5-3e4123d12530@intel.com \
--to=lingshan.zhu@intel.com \
--cc=cohuck@redhat.com \
--cc=eperezma@redhat.com \
--cc=jasowang@redhat.com \
--cc=mst@redhat.com \
--cc=virtio-comment@lists.oasis-open.org \
--cc=virtio-dev@lists.oasis-open.org \
/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.