[PATCH v1 00/10] move memory module align to PostParse time
Michal Privoznik
mprivozn at redhat.com
Thu Nov 12 11:28:41 UTC 2020
On 11/11/20 11:07 PM, Daniel Henrique Barboza wrote:
> Hi,
>
> This is a work that I intended to do after pSeries NVDIMM changes
> I made in commit v6.7.0-302-gd3f3c2c97f. The reasoning is that
> if ppc64 NVDIMM alignment can be done in PostParse time, regular
> ppc64 DIMMs alignment can also be done the same way. After that
> I realized that the same logic can be applied to x86 as well,
> and then I started to see where we could eliminate explicit
> align calls.
>
> The end result is that a bug that affects pSeries the most
> was found and fixed in patch 02, and now we're able to reflect
> the exact memory being used by the guest in the live XML since
> the alignment is now done in parse time. The series can be
> fetched from:
>
> https://gitlab.com/danielhb/libvirt/-/tree/memory_modules_postparse_v1
>
> NOTE: I worked with the x86 logic based on what I could assert
> from the code itself, i.e. the aligment mechanics (2MiB align for
> mem modules, 1MiB align for total memory) are related to QEMU
> internals, not being hypervisor-agnostic. If someone with authority can
> guarantee that the alignment restrictions for x86 are applicable
> to all hypervisors (like in the pSeries case), let me know and
> I'll respin the series putting the x86 code in
> virDomainMemoryDefPostParse().
>
>
> Daniel Henrique Barboza (10):
> domain_conf.c: handle all ppc64 dimms in
> virDomainNVDimmAlignSizePseries
> qemu_domain.c: align memory modules before calculating 'initialmem'
> domain_conf.c: align pSeries mem modules in
> virDomainMemoryDefPostParse()
> qemu_domain.c: simplify qemuDomainGetMemoryModuleSizeAlignment()
> qemu_domain.c: align x86 memory module in post parse time
> qemu_domain.c: move size check for mem modules after alignment
> qemu_hotplug.c: avoid aligning the mem obj in
> qemuDomainDetachPrepMemory()
> qemu_hotplug.c: avoid aligning the mem obj in qemuDomainAttachMemory()
> qemu_domain.c: remove qemuDomainMemoryDeviceAlignSize()
> NEWS.rs: document memory alignment improvements
>
> NEWS.rst | 14 +++
> src/conf/domain_conf.c | 25 ++++-
> src/conf/domain_conf.h | 2 +-
> src/libvirt_private.syms | 2 +-
> src/qemu/qemu_domain.c | 106 +++++++-----------
> src/qemu/qemu_domain.h | 2 -
> src/qemu/qemu_hotplug.c | 9 +-
> tests/qemuxml2argvdata/hugepages-nvdimm.xml | 2 +-
> .../memory-hotplug-nvdimm-access.xml | 2 +-
> .../memory-hotplug-nvdimm-align.xml | 2 +-
> .../memory-hotplug-nvdimm-label.xml | 2 +-
> .../memory-hotplug-nvdimm-pmem.xml | 2 +-
> .../memory-hotplug-nvdimm-readonly.xml | 2 +-
> .../memory-hotplug-nvdimm.xml | 2 +-
> .../memory-hotplug-ppc64-nonuma.args | 2 +-
> tests/qemuxml2argvdata/pages-dimm-discard.xml | 2 +-
> .../memory-hotplug-dimm.xml | 4 +-
> 17 files changed, 92 insertions(+), 90 deletions(-)
>
Reviewed-by: Michal Privoznik <mprivozn at redhat.com>
but perhaps you want Andrea to look into it too.
Michal
More information about the libvir-list
mailing list