From: Jason Wang <jasowang@redhat.com>
To: mst@redhat.com, jasowang@redhat.com,
virtio-comment@lists.oasis-open.org,
virtio-dev@lists.oasis-open.org
Cc: stefanha@redhat.com, mgurtovoy@nvidia.com, cohuck@redhat.com,
eperezma@redhat.com, oren@nvidia.com, shahafs@nvidia.com,
parav@nvidia.com, bodong@nvidia.com, amikheev@nvidia.com,
pasic@linux.ibm.com
Subject: [PATCH V2 0/2] Vitqueue State Synchronization
Date: Tue, 6 Jul 2021 12:33:32 +0800 [thread overview]
Message-ID: <20210706043334.36359-1-jasowang@redhat.com> (raw)
Hi All:
This is an updated version to implement virtqueue state
synchronization which is a must for the migration support.
The first patch introduces virtqueue states as a new basic facility of
the virtio device. This is used by the driver to save and restore
virtqueue state. The states were split into available state and used
state to ease the transport specific implementation. It is also
allowed for the device to have its own device specific way to save and
resotre extra virtqueue states like in flight request.
The second patch introduce a new status bit STOP. This bit is used for
the driver to stop the device. The major difference from reset is that
STOP must preserve all the virtqueue state plus the device state.
A driver can then:
- Get the virtqueue state if STOP status bit is set
- Set the virtqueue state after FEATURE_OK but before DRIVER_OK
Device specific state synchronization could be built on top.
Please review.
Thanks
Changes from V1:
- introduce used_idx for synchronize used state for split virtqueue,
this is needed since the used ring is read only by the driver.
- stick to the uni-directional state machine, this means driver is
forbidden to clear STOP, the only way to 'resume' the device is to
reset and re-initialization the device. This simplify the
implementation and make it works more like a vhost device.
- mandate the virtqueue state setting during device initialization
- clarify the steps that are required for saving the virtqueue state
- allow the device to have its specifc way to save and restore extra
virtqueue state
- rename DEVICE_STOPPED to STOP
- various other tweaks
Jason Wang (2):
virtio: introduce virtqueue state as basic facility
virtio: introduce STOP status bit
content.tex | 180 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 180 insertions(+)
--
2.25.1
next reply other threads:[~2021-07-06 4:33 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-06 4:33 Jason Wang [this message]
2021-07-06 4:33 ` [PATCH V2 1/2] virtio: introduce virtqueue state as basic facility Jason Wang
2021-07-06 9:32 ` Michael S. Tsirkin
2021-07-06 17:09 ` Eugenio Perez Martin
2021-07-06 19:08 ` Michael S. Tsirkin
2021-07-06 23:49 ` Max Gurtovoy
2021-07-07 2:50 ` Jason Wang
2021-07-07 12:03 ` Max Gurtovoy
2021-07-07 2:42 ` Jason Wang
2021-07-07 4:36 ` Jason Wang
2021-07-07 2:41 ` Jason Wang
2021-07-06 12:27 ` [virtio-comment] " Cornelia Huck
2021-07-07 3:29 ` [virtio-dev] " Jason Wang
2021-07-06 4:33 ` [PATCH V2 2/2] virtio: introduce STOP status bit Jason Wang
2021-07-06 9:24 ` [virtio-comment] " Dr. David Alan Gilbert
2021-07-07 3:20 ` Jason Wang
2021-07-09 17:23 ` Eugenio Perez Martin
2021-07-10 20:36 ` Michael S. Tsirkin
2021-07-12 4:00 ` Jason Wang
2021-07-12 9:57 ` Stefan Hajnoczi
2021-07-13 3:27 ` Jason Wang
2021-07-13 8:19 ` Cornelia Huck
2021-07-13 9:13 ` Jason Wang
2021-07-13 11:31 ` Cornelia Huck
2021-07-13 12:23 ` Jason Wang
2021-07-13 12:28 ` Cornelia Huck
2021-07-14 2:47 ` Jason Wang
2021-07-14 6:20 ` Cornelia Huck
2021-07-14 8:53 ` Jason Wang
2021-07-14 9:24 ` [virtio-dev] " Cornelia Huck
2021-07-15 2:01 ` Jason Wang
2021-07-13 10:00 ` Stefan Hajnoczi
2021-07-13 12:16 ` Jason Wang
2021-07-14 9:53 ` Stefan Hajnoczi
2021-07-14 10:29 ` Jason Wang
2021-07-14 15:07 ` Stefan Hajnoczi
2021-07-14 16:22 ` Max Gurtovoy
2021-07-15 1:38 ` Jason Wang
2021-07-15 9:26 ` Stefan Hajnoczi
2021-07-16 1:48 ` Jason Wang
2021-07-19 12:08 ` Stefan Hajnoczi
2021-07-20 2:46 ` Jason Wang
2021-07-15 21:18 ` Michael S. Tsirkin
2021-07-16 2:19 ` Jason Wang
2021-07-15 1:35 ` Jason Wang
2021-07-15 9:16 ` [virtio-dev] " Stefan Hajnoczi
2021-07-16 1:44 ` Jason Wang
2021-07-19 12:18 ` [virtio-dev] " Stefan Hajnoczi
2021-07-20 2:50 ` Jason Wang
2021-07-20 10:31 ` Cornelia Huck
2021-07-21 2:59 ` Jason Wang
2021-07-15 10:01 ` Stefan Hajnoczi
2021-07-16 2:03 ` Jason Wang
2021-07-16 3:53 ` Jason Wang
2021-07-19 12:45 ` Stefan Hajnoczi
2021-07-20 3:04 ` Jason Wang
2021-07-20 8:50 ` Stefan Hajnoczi
2021-07-20 10:48 ` Cornelia Huck
2021-07-20 12:47 ` Stefan Hajnoczi
2021-07-21 2:29 ` Jason Wang
2021-07-21 10:20 ` Stefan Hajnoczi
2021-07-22 7:33 ` Jason Wang
2021-07-22 10:24 ` Stefan Hajnoczi
2021-07-22 13:08 ` Jason Wang
2021-07-26 15:07 ` Stefan Hajnoczi
2021-07-27 7:43 ` Max Reitz
2021-08-03 6:33 ` Jason Wang
2021-08-03 10:37 ` Stefan Hajnoczi
2021-08-03 11:42 ` Jason Wang
2021-08-03 12:22 ` Dr. David Alan Gilbert
2021-08-04 1:42 ` Jason Wang
2021-08-04 9:07 ` Dr. David Alan Gilbert
2021-08-05 6:38 ` Jason Wang
2021-08-05 8:19 ` Dr. David Alan Gilbert
2021-08-06 6:15 ` Jason Wang
2021-08-08 9:31 ` Max Gurtovoy
2021-08-04 9:20 ` Stefan Hajnoczi
2021-08-05 6:45 ` Jason Wang
2021-08-04 8:38 ` Stefan Hajnoczi
2021-08-04 8:36 ` Stefan Hajnoczi
2021-08-05 6:35 ` Jason Wang
2021-07-19 12:43 ` Stefan Hajnoczi
2021-07-20 3:02 ` Jason Wang
2021-07-20 10:19 ` Stefan Hajnoczi
2021-07-21 2:52 ` Jason Wang
2021-07-21 10:42 ` Stefan Hajnoczi
2021-07-22 2:08 ` Jason Wang
2021-07-22 10:30 ` Stefan Hajnoczi
2021-07-20 12:27 ` Max Gurtovoy
2021-07-20 12:57 ` Stefan Hajnoczi
2021-07-20 13:09 ` Max Gurtovoy
2021-07-21 3:06 ` Jason Wang
2021-07-21 10:48 ` Stefan Hajnoczi
2021-07-21 11:37 ` Max Gurtovoy
2021-07-21 3:09 ` Jason Wang
2021-07-21 11:43 ` Max Gurtovoy
2021-07-22 2:01 ` Jason Wang
2021-07-12 3:53 ` Jason Wang
2021-07-06 12:50 ` [virtio-comment] " Cornelia Huck
2021-07-06 13:18 ` Jason Wang
2021-07-06 14:27 ` [virtio-dev] " Cornelia Huck
2021-07-07 0:05 ` Max Gurtovoy
2021-07-07 3:14 ` Jason Wang
2021-07-07 2:56 ` Jason Wang
2021-07-07 16:45 ` [virtio-comment] " Cornelia Huck
2021-07-08 4:06 ` Jason Wang
2021-07-09 17:35 ` Eugenio Perez Martin
2021-07-12 4:06 ` Jason Wang
2021-07-10 20:40 ` Michael S. Tsirkin
2021-07-12 4:04 ` Jason Wang
2021-07-12 10:12 ` [PATCH V2 0/2] Vitqueue State Synchronization Stefan Hajnoczi
2021-07-13 3:08 ` Jason Wang
2021-07-13 10:30 ` Stefan Hajnoczi
2021-07-13 11:56 ` Jason Wang
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=20210706043334.36359-1-jasowang@redhat.com \
--to=jasowang@redhat.com \
--cc=amikheev@nvidia.com \
--cc=bodong@nvidia.com \
--cc=cohuck@redhat.com \
--cc=eperezma@redhat.com \
--cc=mgurtovoy@nvidia.com \
--cc=mst@redhat.com \
--cc=oren@nvidia.com \
--cc=parav@nvidia.com \
--cc=pasic@linux.ibm.com \
--cc=shahafs@nvidia.com \
--cc=stefanha@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox