Re: [PATCH v3 00/17] virtio pci support VIRTIO_F_RING_RESET

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




在 2022/2/7 下午2:02, Xuan Zhuo 写道:
On Mon, 7 Feb 2022 11:39:36 +0800, Jason Wang <jasowang@xxxxxxxxxx> wrote:
On Wed, Jan 26, 2022 at 3:35 PM Xuan Zhuo <xuanzhuo@xxxxxxxxxxxxxxxxx> wrote:
================================================================================
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.

#14-#17 is the disable/enable function of rx/tx pair implemented by virtio-net
using the new helper.
One thing that came to mind is the steering. E.g if we disable an RX,
should we stop steering packets to that queue?
Yes, we should reselect a queue.

Thanks.


Maybe a spec patch for that?

Thanks



Thanks

This function is not currently referenced by other
functions. It is more to show the usage of the new helper, I not sure if they
are going to be merged together.

Please review. Thanks.

v3:
   1. keep vq, irq unreleased

Xuan Zhuo (17):
   virtio_pci: struct virtio_pci_common_cfg add queue_notify_data
   virtio: queue_reset: add VIRTIO_F_RING_RESET
   virtio: queue_reset: struct virtio_config_ops add callbacks for
     queue_reset
   virtio: queue_reset: add helper
   vritio_ring: queue_reset: extract the release function of the vq ring
   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: add vring_reset_virtqueue()
   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 use vring_setup_virtqueue()
   virtio_pci: queue_reset: support VIRTIO_F_RING_RESET
   virtio_net: virtnet_tx_timeout() fix style
   virtio_net: virtnet_tx_timeout() stop ref sq->vq
   virtio_net: split free_unused_bufs()
   virtio_net: support pair disable/enable

  drivers/net/virtio_net.c               | 220 ++++++++++++++++++++++---
  drivers/virtio/virtio_pci_common.c     |  62 ++++---
  drivers/virtio/virtio_pci_common.h     |  11 +-
  drivers/virtio/virtio_pci_legacy.c     |   5 +-
  drivers/virtio/virtio_pci_modern.c     | 120 +++++++++++++-
  drivers/virtio/virtio_pci_modern_dev.c |  28 ++++
  drivers/virtio/virtio_ring.c           | 144 +++++++++++-----
  include/linux/virtio.h                 |   1 +
  include/linux/virtio_config.h          |  75 ++++++++-
  include/linux/virtio_pci_modern.h      |   2 +
  include/linux/virtio_ring.h            |  42 +++--
  include/uapi/linux/virtio_config.h     |   7 +-
  include/uapi/linux/virtio_pci.h        |   2 +
  13 files changed, 618 insertions(+), 101 deletions(-)

--
2.31.0





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux