[PATCH v4 2/3] ethdev: add standby state for live migration

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Wed Feb 1 08:32:30 CET 2023


On 2/1/23 01:55, Thomas Monjalon wrote:
> 31/01/2023 19:14, Jerin Jacob:
>> On Wed, Jan 18, 2023 at 9:15 PM Rongwei Liu <rongweil at nvidia.com> wrote:
>>>
>>> When a DPDK application must be upgraded,
>>> the traffic downtime should be shortened as much as possible.
>>> During the migration time, the old application may stay alive
>>> while the new application is starting and being configured.
>>>
>>> In order to optimize the switch to the new application,
>>> the old application may need to be aware of the presence
>>> of the new application being prepared.
>>> This is achieved with a new API allowing the user to change the
>>> new application state to standby and active later.
>>>
>>> The added function is trying to apply the new state to all probed
>>> ethdev ports. To make this API simple and easy to use,
>>> the same flags have to be accepted by all devices.
>>>
>>> This is the scenario of operations in the old and new applications:
>>> .       device: already configured by the old application
>>> .       new:    start as active
>>> .       new:    probe the same device
>>
>> How to probe same device if is already bind to another application?
>> vfio-pci wont allow this.
> 
> I missed that part.
> There is no way to share a VFIO device between 2 applications?

As I understand multi-process shares an VFIO device between
many application. As far as I remember it is just required to
pass corresponding file descriptor to another application.

Anyway I fully agree that the patch requires more documentation
in doc/guides/ with the description of live migration theory of
operations.

>>> .       new:    set as standby
>>> .       new:    configure the device
>>> .       device: has configurations from old and new applications
>>> .       old:    clear its device configuration
>>> .       device: has only 1 configuration from new application
>>> .       new:    set as active
>>> .       device: downtime for connecting all to the new application
>>> .       old:    shutdown
> 
> 
> 



More information about the dev mailing list