• Shay Drory's avatar
    devlink: Expose port function commands to control migratable · a8ce7b26
    Shay Drory authored
    Expose port function commands to enable / disable migratable
    capability, this is used to set the port function as migratable.
    
    Live migration is the process of transferring a live virtual machine
    from one physical host to another without disrupting its normal
    operation.
    
    In order for a VM to be able to perform LM, all the VM components must
    be able to perform migration. e.g.: to be migratable.
    In order for VF to be migratable, VF must be bound to VFIO driver with
    migration support.
    
    When migratable capability is enabled for a function of the port, the
    device is making the necessary preparations for the function to be
    migratable, which might include disabling features which cannot be
    migrated.
    
    Example of LM with migratable function configuration:
    Set migratable of the VF's port function.
    
    $ devlink port show pci/0000:06:00.0/2
    pci/0000:06:00.0/2: type eth netdev enp6s0pf0vf1 flavour pcivf pfnum 0
    vfnum 1
        function:
            hw_addr 00:00:00:00:00:00 migratable disable
    
    $ devlink port function set pci/0000:06:00.0/2 migratable enable
    
    $ devlink port show pci/0000:06:00.0/2
    pci/0000:06:00.0/2: type eth netdev enp6s0pf0vf1 flavour pcivf pfnum 0
    vfnum 1
        function:
            hw_addr 00:00:00:00:00:00 migratable enable
    
    Bind VF to VFIO driver with migration support:
    $ echo <pci_id> > /sys/bus/pci/devices/0000:08:00.0/driver/unbind
    $ echo mlx5_vfio_pci > /sys/bus/pci/devices/0000:08:00.0/driver_override
    $ echo <pci_id> > /sys/bus/pci/devices/0000:08:00.0/driver/bind
    
    Attach VF to the VM.
    Start the VM.
    Perform LM.
    Signed-off-by: default avatarShay Drory <shayd@nvidia.com>
    Reviewed-by: default avatarJiri Pirko <jiri@nvidia.com>
    Acked-by: default avatarShannon Nelson <shannon.nelson@amd.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    a8ce7b26
devlink.h 68.7 KB