I created a file system with mkfs.xfs heres the output:
meta-data=/dev/vg/xfs isize=256 agcount=8, agsize=5120 blks
data = bsize=4096 blocks=40959, imaxpct=25
= sunit=0 swidth=0 blks, unwritten=0
naming =version 2 bsize=4096
log =internal log bsize=4096 blocks=1200
realtime =none extsz=65536 blocks=0, rtextents=0
mkfs.xfs reports agcount of 8 with 5120 blks in an ag.
df reports that that I have 159036 indoes. This implies that
the ag size is 163776*256/8 bytes are 1280 4096 byte blocks per ag
,round up, which is not 5120 blks its 1/4 of this value. Which
implies that mkfs.xfs is using 1024 byes per block when computing
ag sizes in block.
I dug a little deeper and printed sbp->sb_inopblog in xfs_mount.c
using printk. It value of is 4 which would be correct if a block
size was 1024, 1024/256 == 4. This is set by mkfs.xfs
I filled up the file system and I know it filled up the ag's with
81855 inodes which is slitly less then the 81920 inodes that I would
expect if an ag was 5120 4096 byte bocks in size. The kernel
is is using 4096 for the size of a ag block which is not the
1024 that mkfs.xfs uses.
The kernel and mkfs.xfs need to agree on the size of block.