-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
vfio/virtio: Enable live migration once VIRTIO_PCI was configured
Now that the driver supports live migration, only the legacy IO functionality depends on config VIRTIO_PCI_ADMIN_LEGACY. As part of that we introduce a bool configuration option as a sub menu under the driver's main live migration feature named VIRTIO_VFIO_PCI_ADMIN_LEGACY, to control the legacy IO functionality. This will let users configuring the kernel, know which features from the description might be available in the resulting driver. As of that, move the legacy IO into a separate file to be compiled only once CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY was configured and let the live migration depends only on VIRTIO_PCI. Signed-off-by: Yishai Hadas <yishaih@nvidia.com> Link: https://lore.kernel.org/r/20241113115200.209269-8-yishaih@nvidia.com Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
- Loading branch information
Yishai Hadas
authored and
Alex Williamson
committed
Nov 13, 2024
1 parent
6cea64b
commit 40bcdb1
Showing
5 changed files
with
489 additions
and
401 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,31 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only | ||
config VIRTIO_VFIO_PCI | ||
tristate "VFIO support for VIRTIO NET PCI devices" | ||
depends on VIRTIO_PCI && VIRTIO_PCI_ADMIN_LEGACY | ||
select VFIO_PCI_CORE | ||
help | ||
This provides support for exposing VIRTIO NET VF devices which support | ||
legacy IO access, using the VFIO framework that can work with a legacy | ||
virtio driver in the guest. | ||
Based on PCIe spec, VFs do not support I/O Space. | ||
As of that this driver emulates I/O BAR in software to let a VF be | ||
seen as a transitional device by its users and let it work with | ||
a legacy driver. | ||
|
||
If you don't know what to do here, say N. | ||
tristate "VFIO support for VIRTIO NET PCI VF devices" | ||
depends on VIRTIO_PCI | ||
select VFIO_PCI_CORE | ||
help | ||
This provides migration support for VIRTIO NET PCI VF devices | ||
using the VFIO framework. Migration support requires the | ||
SR-IOV PF device to support specific VIRTIO extensions, | ||
otherwise this driver provides no additional functionality | ||
beyond vfio-pci. | ||
|
||
Migration support in this driver relies on dirty page tracking | ||
provided by the IOMMU hardware and exposed through IOMMUFD, any | ||
other use cases are dis-recommended. | ||
|
||
If you don't know what to do here, say N. | ||
|
||
config VIRTIO_VFIO_PCI_ADMIN_LEGACY | ||
bool "Legacy I/O support for VIRTIO NET PCI VF devices" | ||
depends on VIRTIO_VFIO_PCI && VIRTIO_PCI_ADMIN_LEGACY | ||
default y | ||
help | ||
This extends the virtio-vfio-pci driver to support legacy I/O | ||
access, allowing use of legacy virtio drivers with VIRTIO NET | ||
PCI VF devices. Legacy I/O support requires the SR-IOV PF | ||
device to support and enable specific VIRTIO extensions, | ||
otherwise this driver provides no additional functionality | ||
beyond vfio-pci. | ||
|
||
If you don't know what to do here, say N. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,4 @@ | ||
# SPDX-License-Identifier: GPL-2.0-only | ||
obj-$(CONFIG_VIRTIO_VFIO_PCI) += virtio-vfio-pci.o | ||
virtio-vfio-pci-y := main.o migrate.o | ||
virtio-vfio-pci-$(CONFIG_VIRTIO_VFIO_PCI_ADMIN_LEGACY) += legacy_io.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.