On Tue, Nov 15, 2022 at 1:08 AM Longpeng (Mike, Cloud Infrastructure Service Product Dept.) <longpeng2@xxxxxxxxxx> wrote: > > *snip* > > Adding 2K+ VFs to the sysfs need too much time. > > Look at the bottomhalf of the hypervisor live update: > kexec --> add 2K VFs --> restore VMs > > The downtime can be reduced if the sequence is: > kexec --> add 100 VFs(the VMs used) --> resotre VMs --> add 1.9K VFs Right, so you want to add VFs in batches rather than all at once. Personally I think the bitmap approach is error prone since it renders the meaning of pf_dev->sriov->num_VFs unclear and there's some hairy code in arch/powerpc/ that approach will likely break. A better approach would be to add an attribute to control the number of VFs enabled in hardware and allowing sriov_numvfs to accept any number between the current value and sriov_hw_numvfs. e.g. your HV setup would look something like: echo 2048 > sriov_hw_numvfs echo 100 > sriov_numvfs # time passes echo 2048 > sriov_numvfs This would be fairly simple to implement and you can make it backwards compatible by having writes to sriov_numvfs retain their current semantics if sriov_hw_numvfs is zero.