[PATCH 0/5] vDPA/ifcvf: implement immediate initialization mechanism

Zhu, Lingshan
2023-04-03T10:10:35Z

On 4/3/2023 1:28 PM, Jason Wang wrote:
> On Fri, Mar 31, 2023 at 8:49?PM Zhu Lingshan <lingshan.zhu at
intel.com> wrote:
>> Formerly, ifcvf driver has implemented a lazy-initialization mechanism
>> for the virtqueues and other config space contents,
>> it would store all configurations that passed down from the userspace,
>> then load them to the device config space upon DRIVER_OK.
>>
>> This can not serve live migration, so this series implement an
>> immediate initialization mechanism, which means rather than the
>> former store-load process, the virtio operations like vq ops
>> would take immediate actions by access the virtio registers.
> Is there any chance that ifcvf can use virtio_pci_modern_dev library?
>
> Then we don't need to duplicate the codes.
>
> Note that pds_vdpa will be the second user for virtio_pci_modern_dev
> library (and the first vDPA parent to use that library).
Yes I agree this library can help a lot for a standard virtio pci device.
But this change would be huge, its like require to change every line of
the driver. For example current driver functions work on the adapter and
ifcvf_hw, if we wants to reuse the lib, we need the driver work on
struct virtio_pci_modern_device.
Almost need to re-write the driver.

Can we plan this huge change in following series?

Thanks,
Zhu Lingshan
>
> Thanks
>
>> This series also implement irq synchronization in the reset
>> routine
>>
>> Zhu Lingshan (5):
>>    virt queue ops take immediate actions
>>    get_driver_features from virito registers
>>    retire ifcvf_start_datapath and ifcvf_add_status
>>    synchronize irqs in the reset routine
>>    a vendor driver should not set _CONFIG_S_FAILED
>>
>>   drivers/vdpa/ifcvf/ifcvf_base.c | 162
+++++++++++++++++++-------------
>>   drivers/vdpa/ifcvf/ifcvf_base.h |  16 ++--
>>   drivers/vdpa/ifcvf/ifcvf_main.c |  97 ++++---------------
>>   3 files changed, 122 insertions(+), 153 deletions(-)
>>
>> --
>> 2.39.1
>>