On 8/31/19 7:33 PM, Seema Pandit wrote:
Hi Michal, Thank you for the reply. I was having issues compiling qemu code on fedora29. So instead of dropping prealloc in virsh, tried adding prealloc=yes in qemu command line. prealloc=yes works. It does not lead to using more system memory when using DAX. +Dan Here are the steps: ndctl create-namespace -t pmem -m fsdax --align=4k -s 400G mkfs.ext4 /dev/pmem0 mount -o dax /dev/pmem0 /mnt/pmem0 dd if=/dev/zero of=/mnt/pmem0/file1 bs=4k count=104857600 [root@system-name]# dd if=/dev/zero of=/mnt/pmem0/file1 bs=4k count=104857600 dd: error writing '/mnt/pmem0/file1': No space left on device 101313980+0 records in 101313979+0 records out 414982057984 bytes (415 GB, 386 GiB) copied, 946.495 s, 438 MB/s Slightly smaller file is created than asked. [root@system-name]# du -sh 387G . sample qemu command line which works: qemu-system-x86_64 \ -name test \ -drive file=/var/lib/libvirt/images/test-ad.qcow2,format=qcow2,index=0,media=disk \ -m 2G,slots=4,maxmem=428G \ -smp 2 \ -machine pc,accel=kvm,nvdimm=on \ -enable-kvm \ -object memory-backend-file,id=pmem1,prealloc=yes,share=on,mem-path=/mnt/pmem0/file1,size=386G,align=4K \ -device nvdimm,memdev=pmem1,id=nv1 \ -daemonize
Looks like the only difference to the cmd line generated by libvirt and this one then is align=4K. To confirm that, can you share the full qemu cmd line as generated by libvirt please? Libvirt does not do anything special with guest memory, so this is matter of qemu cmd line and that's why we need to see what's different, what works and what doesn't. Then we have some lead to understand the problem IMO.
Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list