On 8/9/2023 8:50 PM, Jason Wang wrote:> On Wed, Aug 9, 2023 at 8:56?PM Si-Wei Liu <si-wei.liu at oracle.com>
wrote:
>> Following patchset introduces dedicated group for descriptor table to
>> reduce live migration downtime when passthrough VQ is being switched
>> to shadow VQ. As this RFC set is to seek early feedback on the uAPI
>> and driver API part, for now there's no associated driver patch
consuming
>> the API. As soon as the support is in place on both hardware device and
>> driver, performance data will be show using real hardware device. The
>> target goal of this series is to reduce the SVQ switching overhead
>> to less than 300ms on a ~100GB guest with 2 non-mq vhost-vdpa devices.
>>
>> The plan of the intended driver implementation is to use a dedicated
>> group (specifically, 2 in below table) to host descriptor table for
>> all data vqs, different from where buffer addresses are contained (in
>> group 0 as below). cvq does not have to allocate dedicated group for
>> descriptor table, so its buffers and descriptor table would always
>> belong to a same group (1).
> I'm fine with this, but I think we need an implementation in the
> driver (e.g the simulator).
Yes. FWIW for the sake of time saving and get this series accepted
promptly in the upcoming v6.6 merge window, the driver we're going to
support along with this series will be mlx5_vdpa in the formal
submission, and simulator support may come up later after if I got spare
cycle. Do you foresee any issue without simulator change? We will have
mlx5_vdpa driver consuming the API for sure, that's the target of this
work and it has to be proved working on real device at first.
Thanks,
-Siwei
>
> Thanks
>
>>
>> | data vq | ctrl vq
>> ==============+==========+==========>> vq_group | 0 |
1
>> vq_desc_group | 2 | 1
>>
>>
>> ---
>>
>> Si-Wei Liu (3):
>> vdpa: introduce dedicated descriptor group for virtqueue
>> vhost-vdpa: introduce descriptor group backend feature
>> vhost-vdpa: uAPI to get dedicated descriptor group id
>>
>> drivers/vhost/vdpa.c | 27 +++++++++++++++++++++++++++
>> include/linux/vdpa.h | 11 +++++++++++
>> include/uapi/linux/vhost.h | 8 ++++++++
>> include/uapi/linux/vhost_types.h | 5 +++++
>> 4 files changed, 51 insertions(+)
>>
>> --
>> 1.8.3.1
>>