[Top][All Lists]

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

Re: [PATCH v28 00/17] Add migration support for VFIO devices

From: Philippe Mathieu-Daudé
Subject: Re: [PATCH v28 00/17] Add migration support for VFIO devices
Date: Sat, 24 Oct 2020 18:56:46 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.3.1

Hi Kirti,

On 10/23/20 12:40 PM, Kirti Wankhede wrote:

This Patch set adds migration support for VFIO devices in QEMU.

Since there is no device which has hardware support for system memmory
dirty bitmap tracking, right now there is no other API from vendor driver
to VFIO IOMMU module to report dirty pages. In future, when such hardware
support will be implemented, an API will be required in kernel such that
vendor driver could report dirty pages to VFIO module during migration phases.

Below is the flow of state change for live migration where states in brackets
represent VM state, migration state and VFIO device state as:

Live migration save path:
         QEMU normal running state
     migrate_init spawns migration_thread.
     Migration thread then calls each device's .save_setup()
     If device is active, get pending bytes by .save_live_pending()
     if pending bytes >= threshold_size,  call save_live_iterate()
     Data of VFIO device for pre-copy phase is copied.
     Iterate till total pending bytes converge and are less than threshold
     On migration completion, vCPUs stops and calls .save_live_complete_precopy
     for each active device. VFIO device is then transitioned in
      _SAVING state.
     For VFIO device, iterate in .save_live_complete_precopy until
     pending data is 0.
     Migraton thread schedule cleanup bottom half and exit

Live migration resume path:
     Incomming migration calls .load_setup for each device
     For each device, .load_state is called for that device section data
     At the end, called .load_cleanup for each device and vCPUs are started.

Note that:
- Migration post copy is not supported.

Can you commit this ^^^ somewhere in docs/devel/ please?
(as a patch on top of this series)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]