mkfs.xfs with a 9TB realtime volume hangs

Jan Wagner
2008-11-14T12:15:39Z

Hi,

I have a RAID0 with 11x750GB+1x1TB components in the following
partitionable-md test setup

root@abidal:~# cat /proc/partitions | grep md
254 0 9035047936 md_d0
254 1 124983 md_d0p1
254 2 1828125 md_d0p2
254 3 1953125 md_d0p3
254 4 9031141669 md_d0p4

Essentially, four partitions: 128MB, ~1.9GB, 2GB, 9TB. I'd like to use the
1.9GB partition for xfs and put a realtime subvolume onto the same raid0
onto the 9TB partition. The partition tables are GDT instead of MBR to be
able to have >=2TB partitions.

When I create xfs with realtime subvolume on the 2GB partition all is
fine:

root@abidal:~# mkfs.xfs -f -d su=1024k,sw=12 -r rtdev=/dev/md_d0p3 /dev/md_d0p2
log stripe unit (1048576 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md_d0p2 isize=256 agcount=4, agsize=114432
blks
= sectsz=512 attr=2
data = bsize=4096 blocks=457031, imaxpct=25
= sunit=256 swidth=3072 blks
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=0
realtime =/dev/md_d0p3 extsz=4096 blocks=488281, rtextents=488281

When I try the same but place the realtime subvolume on the 9TB partition
the mkfs.xfs hangs indefinitely with 100% CPU:

root@abidal:~# mkfs.xfs -f -d su=1024k,sw=12 -r rtdev=/dev/md_d0p4 /dev/md_d0p2
log stripe unit (1048576 bytes) is too large (maximum is 256KiB)
log stripe unit adjusted to 32KiB
meta-data=/dev/md_d0p2 isize=256 agcount=4, agsize=114432
blks
= sectsz=512 attr=2
data = bsize=4096 blocks=457031, imaxpct=25
= sunit=256 swidth=3072 blks
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=8 blks, lazy-count=0
realtime =/dev/md_d0p4 extsz=4096 blocks=2257785417, rtextents=2257785417
(hangs...)

When I run strace on the first, it completes with
...
pwrite(4, "IABT\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\0"...,
4096, 468725760) = 4096
pwrite(4, "XAGI\0\0\0\1\0\0\0\1\0\1\277\0\0\0\0\0\0\0\0\3\0\0\0\1"...,
512, 468714496) = 512
pread(4, "XFSB\0\0\20\0\0\0\0\0\0\6\371G\0\0\0\0\0\7sY\0\0\0\0\0"..., 512,
0) = 512
pwrite(4, "XFSB\0\0\20\0\0\0\0\0\0\6\371G\0\0\0\0\0\7sY\0\0\0\0\0"...,
512, 0) = 512
fsync(5) = 0
ioctl(5, BLKFLSBUF, 0) = 0
close(5) = 0
fsync(4) = 0
ioctl(4, BLKFLSBUF, 0) = 0
close(4) = 0
exit_group(0) = ?

When I run strace on the latter mkfs.xfs it is reading for hours

pread(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096, 7802880) = 4096
brk(0x1667000) = 0x1667000
pread(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096, 7806976) = 4096
pread(4, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
4096, 7811072) = 4096
....

Any ideas?

- Jan

--
****************************************************
Helsinki University of Technology
Dept. of Metsähovi Radio Observatory
http://www.metsahovi.fi/~jwagner/
Work +358-9-428320-36