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