-
Bug
-
Resolution: Won't Do
-
Undefined
-
None
-
rhel-9.3.0
-
None
-
Moderate
-
rhel-sst-virtualization
-
ssg_virtualization
-
None
-
QE ack
-
False
-
-
None
-
Red Hat Enterprise Linux
-
None
-
None
-
None
-
None
What were you trying to do that didn't work?
Error msg prompts is not meaningful while attaching a nvdimm device with unaligned address
Please provide the package NVR for which bug is seen:
rpm -q libvirt qemu-kvm
libvirt-9.5.0-7.el9_3.x86_64
qemu-kvm-8.1.0-3.el9.x86_64
How reproducible:
100%
Steps to reproduce
1. Start a guest with below config xml:
<maxMemory slots="16" unit="KiB">20485760</maxMemory>
<memory unit="KiB">2097152</memory>
<currentMemory unit="KiB">2097152</currentMemory>
...
<numa>
<cell id="0" cpus="0-5" memory="2097152" unit="KiB"/>
</numa>
virsh start vm1
Domain 'vm1' started
2. Prepare nvdimm backed file
# truncate -s 128M /tmp/nvdimm
3. Attach a nvdimm device with unaligned address:
cat mem.xml
<memory model='nvdimm'>
<source>
<path>/tmp/nvdimm</path>
<alignsize unit='KiB'>2048</alignsize>
</source>
<target>
<size unit='KiB'>131072</size>
<node>0</node>
</target>
<address type='dimm' slot='0' base='0x100000001'/>
</memory>
# virsh attach-device vm1 mem.xml
error: Failed to attach device from mem.xml
error: internal error: unable to execute QEMU command 'device_add': nvdimm is not enabled: missing 'nvdimm' in '-M'
Expected results
Error msg should be more meaningful to indicate the root cause or the correct way to config
Actual results
Error msg "nvdimm is not enabled: missing 'nvdimm' in '-M'" makes the user confused
Additional info
When start a nvdimm device with unaligned address the error msg is showing the correct config:
guest config xml like below:
<maxMemory slots="16" unit="KiB">20485760</maxMemory>
<memory unit="KiB">2228224</memory>
<currentMemory unit="KiB">2097152</currentMemory>
...
<numa>
<cell id="0" cpus="0-5" memory="2097152" unit="KiB"/>
</numa>
...
<memory model="nvdimm">
<source>
<path>/tmp/nvdimm</path>
<alignsize unit="KiB">2048</alignsize>
</source>
<target>
<size unit="KiB">131072</size>
<node>0</node>
</target>
<address type="dimm" slot="0" base="0x100000001"/>
</memory>
virsh start vm1
error: Failed to start domain 'vm1'
error: internal error: QEMU unexpectedly closed the monitor (vm='vm1'): 2023-11-06T05:38:27.690433Z qemu-kvm: -device {"driver":"nvdimm","node":0,"memdev":"memnvdimm0","id":"nvdimm0","slot":0,"addr":4294967297}: address must be aligned to 0x200000 bytes