mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-09-10 01:34:51 +00:00
In [1], changes were made to remove the existing auto-alignment for pSeries NVDIMM devices. That design promotes strange situations where the NVDIMM size reported in the domain XML is different from what QEMU is actually using. We removed the auto-alignment and relied on standard size validation. However, this goes against Libvirt design philosophy of not tampering with existing guest behavior, as pointed out by Daniel in [2]. Since we can't know for sure whether there are guests that are relying on the auto-alignment feature to work, the changes made in [1] are a direct violation of this rule. This patch reverts [1] entirely, re-enabling auto-alignment for pSeries NVDIMM as it was before. Changes will be made to ease the limitations of this design without hurting existing guests. This reverts the following commits: - commit2d93cbdea9
Revert "formatdomain.html.in: mention pSeries NVDIMM 'align down' mechanic" - commit0ee56369c8
qemu_domain.c: change qemuDomainMemoryDeviceAlignSize() return type - commit07de813924
qemu_domain.c: do not auto-align ppc64 NVDIMMs - commit0ccceaa57c
qemu_validate.c: add pSeries NVDIMM size alignment validation - commit4fa2202d88
qemu_domain.c: make qemuDomainGetMemorySizeAlignment() public [1] https://www.redhat.com/archives/libvir-list/2020-July/msg02010.html [2] https://www.redhat.com/archives/libvir-list/2020-September/msg00572.html Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Andrea Bolognani <abologna@redhat.com>
51 lines
1.5 KiB
XML
51 lines
1.5 KiB
XML
<domain type='qemu'>
|
|
<name>QEMUGuest1</name>
|
|
<uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
|
|
<maxMemory slots='16' unit='KiB'>1099511627776</maxMemory>
|
|
<memory unit='KiB'>1267710</memory>
|
|
<currentMemory unit='KiB'>1267710</currentMemory>
|
|
<vcpu placement='static' cpuset='0-1'>2</vcpu>
|
|
<os>
|
|
<type arch='ppc64' machine='pseries'>hvm</type>
|
|
<boot dev='hd'/>
|
|
</os>
|
|
<cpu>
|
|
<topology sockets='2' dies='1' cores='1' threads='1'/>
|
|
<numa>
|
|
<cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
|
|
</numa>
|
|
</cpu>
|
|
<clock offset='utc'/>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>restart</on_reboot>
|
|
<on_crash>destroy</on_crash>
|
|
<devices>
|
|
<emulator>/usr/bin/qemu-system-ppc64</emulator>
|
|
<controller type='usb' index='0'>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
|
|
</controller>
|
|
<controller type='pci' index='0' model='pci-root'>
|
|
<model name='spapr-pci-host-bridge'/>
|
|
<target index='0'/>
|
|
</controller>
|
|
<memballoon model='virtio'>
|
|
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
|
|
</memballoon>
|
|
<panic model='pseries'/>
|
|
<memory model='nvdimm'>
|
|
<uuid>49545eb3-75e1-2d0a-acdd-f0294406c99e</uuid>
|
|
<source>
|
|
<path>/tmp/nvdimm</path>
|
|
</source>
|
|
<target>
|
|
<size unit='KiB'>550000</size>
|
|
<node>0</node>
|
|
<label>
|
|
<size unit='KiB'>128</size>
|
|
</label>
|
|
</target>
|
|
<address type='dimm' slot='0'/>
|
|
</memory>
|
|
</devices>
|
|
</domain>
|