On 9/17/2023 11:25 PM, Yahui Cao wrote:
> This series adds vfio live migration support for Intel E810 VF devices
> based on the v2 migration protocol definition series discussed here[0].
>
> Steps to test:
> 1. Bind one or more E810 VF devices to the module ice_vfio_pci.ko
> 2. Assign the VFs to the virtual machine and enable device live migration
> 3. Run a workload using IAVF inside the VM, for example, iperf.
> 4. Migrate the VM from the source node to a destination node.
>
> Thanks,
> Yahui
> [0] https://lore.kernel.org/kvm/[email protected]/
>
The series fails to compile cleanly at each stage if CONFIG_ICE_VFIO_PCI
is disabled.
Additionally I noticed that the earlier patches depend on
CONFIG_ICE_VFIO_PCI (the config option is checked in the headers) but
its not added to the Kconfig until near the end of the series
> In file included from drivers/net/ethernet/intel/ice/ice.h:58,
> from drivers/net/ethernet/intel/ice/ice_main.c:9:
> ./include/linux/net/intel/ice_migration.h: In function
> ‘ice_migration_init_dev’:
> ./include/linux/net/intel/ice_migration.h:24:49: error: no return statement
> in function returning non-void [-Werror=return-type]
> 24 | static inline int ice_migration_init_dev(struct ice_pf *pf, int
> vf_id) { }
> | ^~~~~~
> In file included from drivers/net/ethernet/intel/ice/ice.h:58,
> from drivers/net/ethernet/intel/ice/ice_lib.c:4:
> make[7]: *** [scripts/Makefile.build:243:
> drivers/net/ethernet/intel/ice/ice_fltr.o] Error 1
> cc1: some warnings being treated as errors
> cc1: some warnings being treated as errors
> drivers/net/ethernet/intel/ice/ice_virtchnl.c:4145:17: error: implicit
> declaration of function ‘ice_migration_unlog_vf_msg’; did you mean
> ‘ice_migration_save_vf_msg’? [-Werror=implicit-function-declaration]
> 4145 | ice_migration_unlog_vf_msg(vf, v_opcode);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~
> | ice_migration_save_vf_msg
> cc1: some warnings being treated as errors
Please fix these issues.
Thanks,
Jake
> Change log:
>
> v2 --> v3: link [2]
> - Add P2P support in vfio driver (Jason)
> - Remove source/destination check in vfio driver (Jason)
> - Restructure PF exported API with proper types and layering (Jason)
> - Change patchset email sender.
> - Reword commit message and comments to be more reviewer-friendly (Kevin)
> - Add s-o-b for Patch01 (Kevin)
> - Merge Patch08 into Patch04 and merge Patch13 into Patch06 (Kevin)
> - Remove uninit() in VF destroy stage for Patch 05 (Kevin)
> - change migration_active to migration_enabled (Kevin)
> - Add total_size in devstate to greatly simplify the various checks for
> Patch07 (Kevin)
> - Add magic and version in device state for Patch07 (Kevin)
> - Fix rx head init issue in Patch10 (Kevin)
> - Remove DMA access for Guest Memory at device resume stage and deprecate
> the approach to restore TX head in VF space, instead restore TX head in
> PF space and then switch context back to VF space which is transparent
> to Guest for Patch11 (Jason, Kevin)
> - Use non-interrupt mode instead of VF MSIX vector to restore TX head for
> Patch11 (Kevin)
> - Move VF pci mmio save/restore from vfio driver into PF driver
> - Add configuration match check at device resume stage (Kevin)
> - Remove sleep before stopping queue at device suspend stage (Kevin)
> - Let PF respond failure to VF if virtual channel messages logging failed
> (Kevin)
> - Add migration setup and description in cover letter
>
> [2]
> https://lore.kernel.org/intel-wired-lan/[email protected]/
>
> v1 --> v2: link [1]
> - clarified comments and commit message
>
> [1]
> https://lore.kernel.org/intel-wired-lan/[email protected]/
>
> ---
>
> Lingyu Liu (9):
> ice: Introduce VF state ICE_VF_STATE_REPLAYING_VC for migration
> ice: Add fundamental migration init and exit function
> ice: Log virtual channel messages in PF
> ice: Add device state save/restore function for migration
> ice: Fix VSI id in virtual channel message for migration
> ice: Save and restore RX Queue head
> ice: Save and restore TX Queue head
> ice: Add device suspend function for migration
> vfio/ice: Implement vfio_pci driver for E800 devices
>
> Xu Ting (1):
> ice: Fix missing legacy 32byte RXDID in the supported bitmap
>
> Yahui Cao (3):
> ice: Add function to get RX queue context
> ice: Add function to get and set TX queue context
> ice: Save and restore mmio registers
>
> MAINTAINERS | 7 +
> drivers/net/ethernet/intel/ice/Makefile | 3 +-
> drivers/net/ethernet/intel/ice/ice.h | 3 +
> drivers/net/ethernet/intel/ice/ice_common.c | 484 +++++-
> drivers/net/ethernet/intel/ice/ice_common.h | 11 +
> .../net/ethernet/intel/ice/ice_hw_autogen.h | 23 +
> .../net/ethernet/intel/ice/ice_lan_tx_rx.h | 3 +
> drivers/net/ethernet/intel/ice/ice_main.c | 15 +
> .../net/ethernet/intel/ice/ice_migration.c | 1344 +++++++++++++++++
> .../intel/ice/ice_migration_private.h | 44 +
> drivers/net/ethernet/intel/ice/ice_vf_lib.c | 4 +
> drivers/net/ethernet/intel/ice/ice_vf_lib.h | 10 +
> drivers/net/ethernet/intel/ice/ice_virtchnl.c | 267 ++--
> drivers/net/ethernet/intel/ice/ice_virtchnl.h | 15 +-
> .../ethernet/intel/ice/ice_virtchnl_fdir.c | 28 +-
> drivers/vfio/pci/Kconfig | 2 +
> drivers/vfio/pci/Makefile | 2 +
> drivers/vfio/pci/ice/Kconfig | 10 +
> drivers/vfio/pci/ice/Makefile | 4 +
> drivers/vfio/pci/ice/ice_vfio_pci.c | 707 +++++++++
> include/linux/net/intel/ice_migration.h | 42 +
> 21 files changed, 2916 insertions(+), 112 deletions(-)
> create mode 100644 drivers/net/ethernet/intel/ice/ice_migration.c
> create mode 100644 drivers/net/ethernet/intel/ice/ice_migration_private.h
> create mode 100644 drivers/vfio/pci/ice/Kconfig
> create mode 100644 drivers/vfio/pci/ice/Makefile
> create mode 100644 drivers/vfio/pci/ice/ice_vfio_pci.c
> create mode 100644 include/linux/net/intel/ice_migration.h
>
_______________________________________________
Intel-wired-lan mailing list
[email protected]
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan