Re: [PATCH V2 00/12] ifcvf/vDPA implement features provisioning

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

 





On 12/6/2022 4:25 PM, Jason Wang wrote:
On Fri, Nov 25, 2022 at 11:06 PM Zhu Lingshan <lingshan.zhu@xxxxxxxxx> wrote:
This series implements features provisioning for ifcvf.
By applying this series, we allow userspace to create
a vDPA device with selected (management device supported)
feature bits and mask out others.

Examples:
a)The management device supported features:
$ vdpa mgmtdev show pci/0000:01:00.5
pci/0000:01:00.5:
   supported_classes net
   max_supported_vqs 9
   dev_features MTU MAC MRG_RXBUF CTRL_VQ MQ ANY_LAYOUT VERSION_1 ACCESS_PLATFORM

b)Provision a vDPA device with all supported features:
$ vdpa dev add name vdpa0 mgmtdev pci/0000:01:00.5
$ vdpa/vdpa dev config show vdpa0
vdpa0: mac 00:e8:ca:11:be:05 link up link_announce false max_vq_pairs 4 mtu 1500
   negotiated_features MRG_RXBUF CTRL_VQ MQ VERSION_1 ACCESS_PLATFORM

c)Provision a vDPA device with a subset of the supported features:
$ vdpa dev add name vdpa0 mgmtdev pci/0000:01:00.5 device_features 0x300020020
$ vdpa dev config show vdpa0
mac 00:e8:ca:11:be:05 link up link_announce false
   negotiated_features CTRL_VQ VERSION_1 ACCESS_PLATFORM

Please help review

Thanks

Changes from V1:
split original patch 1 ~ patch 3 to small patches that are less
than 100 lines,
True but.

so they can be applied to stalbe kernel(Jason)

It requires each patch fixes a real issue so I think those can not go
to -stable.

Btw, looking at git history what you want to decouple is basically
functional equivalent to a partial revert of this commit:

commit 378b2e956820ff5c082d05f42828badcfbabb614
Author: Zhu Lingshan <lingshan.zhu@xxxxxxxxx>
Date:   Fri Jul 22 19:53:05 2022 +0800

     vDPA/ifcvf: support userspace to query features and MQ of a
management device

     Adapting to current netlink interfaces, this commit allows userspace
     to query feature bits and MQ capability of a management device.

     Currently both the vDPA device and the management device are the VF itself,
     thus this ifcvf should initialize the virtio capabilities in probe() before
     setting up the struct vdpa_mgmt_dev.

     Signed-off-by: Zhu Lingshan <lingshan.zhu@xxxxxxxxx>
     Message-Id: <20220722115309.82746-3-lingshan.zhu@xxxxxxxxx>
     Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

Before this commit. adapter was allocated/freed in device_add/del
which should be fine.

Can we go back to doing things that way?
Hi Jason

Thanks for your advice, my concern is, even revert this commit 378b2e95,
we still need to re-implement the feature "support userspace to query features and MQ of a management device" in stable kernel(still not a patch fix something but implement something), or we remove a feature in the stable kernel.
And there may still need to split patches to meet the <100 lines requirement

The reason why I place the adapter allocation in probe is that currently the management device is the VF itself, move it from dev_add to probe can lighten the organization of data structures, it is not a good design anyway,
so this series tries to fix them as well.

Maybe not to to sable

Thanks

Thanks

Zhu Lingshan (12):
   vDPA/ifcvf: decouple hw features manipulators from the adapter
   vDPA/ifcvf: decouple config space ops from the adapter
   vDPA/ifcvf: alloc the mgmt_dev before the adapter
   vDPA/ifcvf: decouple vq IRQ releasers from the adapter
   vDPA/ifcvf: decouple config IRQ releaser from the adapter
   vDPA/ifcvf: decouple vq irq requester from the adapter
   vDPA/ifcvf: decouple config/dev IRQ requester and vectors allocator
     from the adapter
   vDPA/ifcvf: ifcvf_request_irq works on ifcvf_hw
   vDPA/ifcvf: manage ifcvf_hw in the mgmt_dev
   vDPA/ifcvf: allocate the adapter in dev_add()
   vDPA/ifcvf: retire ifcvf_private_to_vf
   vDPA/ifcvf: implement features provisioning

  drivers/vdpa/ifcvf/ifcvf_base.c |  32 ++-----
  drivers/vdpa/ifcvf/ifcvf_base.h |  10 +-
  drivers/vdpa/ifcvf/ifcvf_main.c | 162 +++++++++++++++-----------------
  3 files changed, 91 insertions(+), 113 deletions(-)

--
2.31.1





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux