Eric Sandeen wrote:
Eric Sandeen wrote:
> The remaining issue may be xfs+4kstacks+complicated/deep IO stacks on
> x86. Honestly I've never much liked 4kstacks... layered filesystems
> coming down the pipe (ecryptfs, unionfs) may well have trouble too.
> I'd prefer to see the stack size boot-time selectable, maybe - or
> perhaps disallow xfs (or issue a stern warning) on x86 boxes? (x86_64 &
> ia64, with sane stack size, work fine in this regard).
I can confirm that xfs on 4KSTACKS over lvm is still a problem.
Basic functionality is fine, but I can't make it through all of xfsqa
w/o a stack overflow. Even just mounting with -o quota gets us pretty
close to the edge:
mount used greatest stack depth: 180 bytes left
I'll look at some of the bigger offenders if I have any spare time in
the evenings. It's the callchains, too though, not just the individual
functions that come into play.
Ok, some good news on this front. With a handful of changes, I got
these stack reductions:
xfs_alloc_file_space [xfs]: 184 176 : -8
xfs_bmap_adjacent [xfs]: 120 136 : +16
xfs_bmapi [xfs]: 276 268 : -8
xfs_bunmapi [xfs]: 200 172 : -28
xfs_create [xfs]: 116 100 : -16
xfs_free_file_space [xfs]: 200 132 : -68
xfs_getbmap [xfs]: 200 204 : +4
xfs_iomap_write_direct [xfs]: 180 168 : -12
xfs_link [xfs]: 96 88 : -8
xfs_mkdir [xfs]: 116 96 : -20
xfs_mountfs [xfs]: 200 152 : -48
xfs_qm_dqusage_adjust [xfs]: 52 48 : -4
xfs_qm_vop_chown_reserve [xfs]: 48 44 : -4
xfs_read [xfs]: 72 48 : -24
xfs_remove [xfs]: 96 84 : -12
xfs_rename [xfs]: 144 136 : -8
xfs_rmdir [xfs]: 92 76 : -16
xfs_setattr [xfs]: 132 116 : -16
xfs_splice_read [xfs]: 36 16 : -20
xfs_splice_write [xfs]: 56 36 : -20
xfs_unmount [xfs]: 52 4 : -48
xfs_write [xfs]: 144 124 : -20
----------------------
Functions increased: 2
Functions decreased: 20
Net change: -388
and I can now survive xfsqa over lvm on 4KSTACKS. I still get within
spitting distance of the end of the stack though. :)
I've put the stack-reducing changes & a few bugfixes into
kernel-2.6.23-0.133.rc3.git6.fc8, building now.
-Eric