On 19.12.22 02:21, Chenyi Qiang wrote:
On 12/16/2022 6:30 PM, David Hildenbrand wrote:
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).
Yes, actually, no obvious visible effect on my side. I was just learning
the RamDiscardManager interface and found this issue. :)
Good, thanks.
Queuing this to
https://github.com/davidhildenbrand/qemu.git mem-next
--
Thanks,
David / dhildenb