linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 00/14] virtio pci support VIRTIO_F_RING_RESET
@ 2022-02-09 12:28 Xuan Zhuo
  2022-02-09 12:28 ` [PATCH v4 01/14] virtio_pci: struct virtio_pci_common_cfg add queue_notify_data Xuan Zhuo
                   ` (14 more replies)
  0 siblings, 15 replies; 26+ messages in thread
From: Xuan Zhuo @ 2022-02-09 12:28 UTC (permalink / raw)
  To: linux-kernel; +Cc: Michael S. Tsirkin, Jason Wang, virtualization

The virtio spec already supports the virtio queue reset function. This patch set
is to add this function to the kernel. The relevant virtio spec information is
here:

    https://github.com/oasis-tcs/virtio-spec/issues/124

Also regarding MMIO support for queue reset, I plan to support it after this
patch is passed.

Please review. Thanks.

v4:
  1. just the code of virtio, without virtio-net
  2. Performing reset on a queue is divided into these steps:
    1. reset_vq: reset one vq
    2. recycle the buffer from vq by virtqueue_detach_unused_buf()
    3. release the ring of the vq by vring_release_virtqueue()
    4. enable_reset_vq: re-enable the reset queue
  3. Simplify the parameters of enable_reset_vq()
  4. add container structures for virtio_pci_common_cfg

v3:
  1. keep vq, irq unreleased

Xuan Zhuo (14):
  virtio_pci: struct virtio_pci_common_cfg add queue_notify_data
  virtio: queue_reset: add VIRTIO_F_RING_RESET
  virtio_ring: queue_reset: add function vring_setup_virtqueue()
  virtio_ring: queue_reset: split: add __vring_init_virtqueue()
  virtio_ring: queue_reset: split: support enable reset queue
  virtio_ring: queue_reset: packed: support enable reset queue
  virtio_ring: queue_reset: extract the release function of the vq ring
  virtio_ring: queue_reset: add vring_release_virtqueue()
  virtio: queue_reset: struct virtio_config_ops add callbacks for
    queue_reset
  virtio_pci: queue_reset: update struct virtio_pci_common_cfg and
    option functions
  virtio_pci: queue_reset: release vq by vp_dev->vqs
  virtio_pci: queue_reset: setup_vq() support vring_setup_virtqueue()
  virtio_pci: queue_reset: vp_setup_vq() support ring_num
  virtio_pci: queue_reset: support VIRTIO_F_RING_RESET

 drivers/virtio/virtio_pci_common.c     |  65 +++++++---
 drivers/virtio/virtio_pci_common.h     |  11 +-
 drivers/virtio/virtio_pci_legacy.c     |   5 +-
 drivers/virtio/virtio_pci_modern.c     |  99 ++++++++++++--
 drivers/virtio/virtio_pci_modern_dev.c |  36 +++++
 drivers/virtio/virtio_ring.c           | 173 ++++++++++++++++++-------
 include/linux/virtio.h                 |   6 +
 include/linux/virtio_config.h          |  13 ++
 include/linux/virtio_pci_modern.h      |   2 +
 include/linux/virtio_ring.h            |  37 ++++--
 include/uapi/linux/virtio_config.h     |   7 +-
 include/uapi/linux/virtio_pci.h        |  14 ++
 12 files changed, 375 insertions(+), 93 deletions(-)

--
2.31.0


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2022-02-14  2:53 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-09 12:28 [PATCH v4 00/14] virtio pci support VIRTIO_F_RING_RESET Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 01/14] virtio_pci: struct virtio_pci_common_cfg add queue_notify_data Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 02/14] virtio: queue_reset: add VIRTIO_F_RING_RESET Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 03/14] virtio_ring: queue_reset: add function vring_setup_virtqueue() Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 04/14] virtio_ring: queue_reset: split: add __vring_init_virtqueue() Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 05/14] virtio_ring: queue_reset: split: support enable reset queue Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 06/14] virtio_ring: queue_reset: packed: " Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 07/14] virtio_ring: queue_reset: extract the release function of the vq ring Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 08/14] virtio_ring: queue_reset: add vring_release_virtqueue() Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 09/14] virtio: queue_reset: struct virtio_config_ops add callbacks for queue_reset Xuan Zhuo
2022-02-11  6:49   ` Jason Wang
2022-02-11  7:07     ` Xuan Zhuo
2022-02-11  7:36       ` Jason Wang
2022-02-09 12:28 ` [PATCH v4 10/14] virtio_pci: queue_reset: update struct virtio_pci_common_cfg and option functions Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 11/14] virtio_pci: queue_reset: release vq by vp_dev->vqs Xuan Zhuo
2022-02-09 12:28 ` [PATCH v4 12/14] virtio_pci: queue_reset: setup_vq() support vring_setup_virtqueue() Xuan Zhuo
2022-02-09 12:29 ` [PATCH v4 13/14] virtio_pci: queue_reset: vp_setup_vq() support ring_num Xuan Zhuo
2022-02-09 12:29 ` [PATCH v4 14/14] virtio_pci: queue_reset: support VIRTIO_F_RING_RESET Xuan Zhuo
2022-02-11  7:05   ` Jason Wang
2022-02-11  7:21     ` Xuan Zhuo
2022-02-11  7:45       ` Jason Wang
2022-02-11  8:24         ` Xuan Zhuo
2022-02-14  2:50     ` Xuan Zhuo
2022-02-11  5:40 ` [PATCH v4 00/14] virtio pci " Jason Wang
2022-02-11  6:27   ` Xuan Zhuo
2022-02-11  7:09     ` Jason Wang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).