On 16.12.22 09:52, David Hildenbrand wrote:
On 16.12.22 07:22, Chenyi Qiang wrote:
vmem->bitmap indexes the memory region of the virtio-mem backend at a
granularity of block_size. To calculate the index of target section offset,
the block_size should be divided instead of the bitmap_size.

I'm curious, what's the user-visible effect and how did you identify
this issue?

IIUC, we could end up our search for a plugged/unplugged block "too
late", such that we miss to process blocks.

That would be the case if the bitmap_size < block_size, which should
effectively always happen ...


unplug_all and migration would be affected, which is why a simple test
case without a guest reboot/migration wouldn't run into it.

I just realized that unplug_all is fine because only vfio implements the ram_discard_listener so far and always sets double_discard_supported=true. So migration should be the issue (and IIRC migration with VFIO is still shaky).

--
Thanks,

David / dhildenb


Reply via email to