On 27/07/21 10:25, David Hildenbrand wrote:
> Minor fixes and cleanups, followed by an optimization for virtio-mem
> regarding guest dumps and tpm.
>
> virtio-mem logically plugs/unplugs memory within a sparse memory region
> and notifies via the RamDiscardMgr interface when parts become
> plugged (populated) or unplugged (discarded).
>
> Currently, guest_phys_blocks_append() appends the whole (sparse)
> virtio-mem managed region and therefore tpm code might zero the hole
> region and dump code will dump the whole region. Let's only add logically
> plugged (populated) parts of that region, skipping over logically
> unplugged (discarded) parts by reusing the RamDiscardMgr infrastructure
> introduced to handle virtio-mem + VFIO properly.
Queued, thanks.
Paolo
> v3 -> v4:
> - "tpm: mark correct memory region range dirty when clearing RAM"
> -- Finally get it right :) I tried triggering that code without luck. So
> I ended up forcing that call path, verifying that the offset into
> memory regions is now correct.
>
> v2 -> v3:
> - "tpm: mark correct memory region range dirty when clearing RAM"
> -- Fix calculation of offset into memory region (thanks Peter!)
> - "softmmu/memory_mapping: reuse qemu_get_guest_simple_memory_mapping()"
> -- Dropped
>
> v1 -> v2:
> - "softmmu/memory_mapping: factor out adding physical memory ranges"
> -- Simplify based on RamDiscardManager changes: add using a
> MemoryRegionSection
> - "softmmu/memory_mapping: optimize for RamDiscardManager sections"
> -- Simplify based on RamDiscardManager changes
>
> David Hildenbrand (4):
> tpm: mark correct memory region range dirty when clearing RAM
> softmmu/memory_mapping: never merge ranges accross memory regions
> softmmu/memory_mapping: factor out adding physical memory ranges
> softmmu/memory_mapping: optimize for RamDiscardManager sections
>
> hw/tpm/tpm_ppi.c | 5 +++-
> softmmu/memory_mapping.c | 64 ++++++++++++++++++++++++++--------------
> 2 files changed, 46 insertions(+), 23 deletions(-)
>