On Mon, Jul 19, 2021 at 10:57:56AM -0700, Darrick J. Wong wrote: > Which seems to translate to: > > -machine pc-q35-4.2,accel=kvm,usb=off,vmport=off,dump-guest-core=off,nvdimm=on > -object > memory-backend-file,id=memnvdimm0,prealloc=no,mem-path=/run/g.mem,share=yes,size=10739515392,align=128M > -device nvdimm,memdev=memnvdimm0,id=nvdimm0,slot=0,label-size=2M > > Evidently something was added to the pmem code(?) that makes it fussy if > the memory region doesn't align to a 128M boundary or the label isn't > big enough for ... whatever gets written into them. > > The file /run/g.mem is intended to provide 10GB of pmem to the VM, with > an additional 2M allocated for the label.
I managed to get something like this to work, and had two pmem devices shown up. But of course they don't actually support DAX without a reconfiguration in the VM, and the #$%$@^$^$ DAX code won't even tell you about why as the printk for that is a pr_debug (patch to fix this coming). After a fair amount of goodling I tried to copy this command line to reconfigure them: $NDCTL create-namespace --force --reconfig=namespace0.0 --mode=fsdax --map=mem $NDCTL create-namespace --force --reconfig=namespace1.0 --mode=fsdax --map=mem Of course that fails with EINVAL. And after the first run the second namespace is gone entirely. The DAX user story is just a trainwreck.
