On Tue, Jul 20, 2021 at 03:03:04PM +0200, David Hildenbrand wrote: > virtio-mem logically plugs/unplugs memory within a sparse memory region > and notifies via the RamDiscardManager interface when parts become > plugged (populated) or unplugged (discarded). > > Currently, we end up (via the two users) > 1) zeroing all logically unplugged/discarded memory during TPM resets. > 2) reading all logically unplugged/discarded memory when dumping, to > figure out the content is zero. > > 1) is always bad, because we assume unplugged memory stays discarded > (and is already implicitly zero). > 2) isn't that bad with anonymous memory, we end up reading the zero > page (slow and unnecessary, though). However, once we use some > file-backed memory (future use case), even reading will populate memory. > > Let's cut out all parts marked as not-populated (discarded) via the > RamDiscardManager. As virtio-mem is the single user, this now means that > logically unplugged memory ranges will no longer be included in the > dump, which results in smaller dump files and faster dumping. > > virtio-mem has a minimum granularity of 1 MiB (and the default is usually > 2 MiB). Theoretically, we can see quite some fragmentation, in practice > we won't have it completely fragmented in 1 MiB pieces. Still, we might > end up with many physical ranges. > > Both, the ELF format and kdump seem to be ready to support many > individual ranges (e.g., for ELF it seems to be UINT32_MAX, kdump has a > linear bitmap). > > Cc: Marc-André Lureau <marcandre.lur...@redhat.com> > Cc: Paolo Bonzini <pbonz...@redhat.com> > Cc: "Michael S. Tsirkin" <m...@redhat.com> > Cc: Eduardo Habkost <ehabk...@redhat.com> > Cc: Alex Williamson <alex.william...@redhat.com> > Cc: Dr. David Alan Gilbert <dgilb...@redhat.com> > Cc: Igor Mammedov <imamm...@redhat.com> > Cc: Claudio Fontana <cfont...@suse.de> > Cc: Thomas Huth <th...@redhat.com> > Cc: "Alex Bennée" <alex.ben...@linaro.org> > Cc: Peter Xu <pet...@redhat.com> > Cc: Laurent Vivier <lviv...@redhat.com> > Cc: Stefan Berger <stef...@linux.ibm.com> > Signed-off-by: David Hildenbrand <da...@redhat.com>
Reviewed-by: Peter Xu <pet...@redhat.com> -- Peter Xu