On Thu, Jun 29, 2017 at 09:35:38AM -0600, Ross Zwisler wrote: > Our validation team noticed that in some configurations mkfs.ext4 with the > -D option creates a filesystem that can't be mounted: > > # mkfs.ext4 -D -F /dev/pmem5 > mke2fs 1.43.3 (04-Sep-2016) > /dev/pmem5 contains a ext4 file system > last mounted on Tue Jul 26 07:44:19 2016 > Creating filesystem with 65027584 4k blocks and 16261120 inodes > Filesystem UUID: 6f95ece9-d4cb-4cfc-bc22-211119d5efe7 > Superblock backups stored on blocks: > 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, > 4096000, 7962624, 11239424, 20480000, 23887872 > > Allocating group tables: done > Writing inode tables: done > Creating journal (262144 blocks): done > Writing superblocks and filesystem accounting information: done > > # mount /dev/pmem5 /mnt > mount: wrong fs type, bad option, bad superblock on /dev/pmem5, > missing codepage or helper program, or other error > > In some cases useful info is found in syslog - try > dmesg | tail or so. > > where dmesg says: > > EXT4-fs (pmem5): ext4_check_descriptors: Block bitmap for group 1 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Inode bitmap for group 1 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Inode table for group 1 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Block bitmap for group 2 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Inode bitmap for group 2 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Inode table for group 2 overlaps superblock > ... > EXT4-fs (pmem5): ext4_check_descriptors: Block bitmap for group 63 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Inode bitmap for group 63 overlaps superblock > EXT4-fs (pmem5): ext4_check_descriptors: Inode table for group 63 overlaps superblock > EXT4-fs (pmem5): no journal found > > If we omit the "-D" option from mkfs.ext4, everything works. Note also that > this behavior is independent of the DAX mount option. > > This isn't blocking us, I just thought you would want to know. One more bit of info - this seems to be strongly tied to the size of the block device. With a 32 GB block device it works fine, with 248 GB you get overlap messages for groups 1 through 63, and with a 250 GB device you get overlaps for groups 1 through 1999. I've been varying my virtual NVDIMM namespace size via QEMU. Here's are the relevant bits from my QEMU my command line to enable the NVDIMM: -m 8G,slots=3,maxmem=512G -machine pc,accel=kvm,nvdimm -object memory-backend-file,id=mem1,share,mem-path=/tmp/nvdimm-8,size=250G -device nvdimm,memdev=mem1,id=nv1 Here's my full QEMU command line, in case that's interesting: sudo /usr/bin/qemu-system-x86_64 /home/rzwisler/vms/amonkhet-8.qcow2 -m 8G,slots=3,maxmem=512G -smp 6 -machine pc,accel=kvm,nvdimm -enable-kvm -netdev tap,id=hostnet0,ifname=tap8,script=no,downscript=no -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:48:94:b8,bus=pci.0,addr=0x8 -rtc base=localtime -serial stdio -display none -monitor unix:/tmp/amonkhet-8.monitor,server,nowait -object memory-backend-file,id=mem1,share,mem-path=/tmp/nvdimm-8,size=250G -device nvdimm,memdev=mem1,id=nv1 - Ross