* State of XFS on ARM @ 2010-02-02 3:24 Daniel Goller 2010-02-02 3:52 ` Eric Sandeen 2010-02-02 11:23 ` Christoph Hellwig 0 siblings, 2 replies; 9+ messages in thread From: Daniel Goller @ 2010-02-02 3:24 UTC (permalink / raw) To: xfs Dear Sir or Madam, I Would like to find out about the current state of XFS on ARM. I have been using XFS for a while successfully on my laptop, and was using XFS on a ARM device (little endian) since it would hold the same data i had on the laptop. It seems i have not been able to unmount it and then mounting it cleanly once, always required xfs_repair -L /dev/sdc3 I Could understand power issues or lockups causing this, but on clean umount and followed mount to see it fail is surprising. When mounting fails on the headless arm machine i move the drive to a x86_64 and run xfs_repair there when mounting there fails too (so log can't be replayed, making -L necessary). All of this leads me to ask: "Is XFS as well maintained on ARM as it is on x86/x86_64?" Thank you in advance for any info you can provide, Daniel Goller _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-02 3:24 State of XFS on ARM Daniel Goller @ 2010-02-02 3:52 ` Eric Sandeen 2010-02-02 11:23 ` Christoph Hellwig 1 sibling, 0 replies; 9+ messages in thread From: Eric Sandeen @ 2010-02-02 3:52 UTC (permalink / raw) To: Daniel Goller; +Cc: xfs Daniel Goller wrote: > Dear Sir or Madam, > > I Would like to find out about the current state of XFS on ARM. > I have been using XFS for a while successfully on my laptop, and was > using XFS on a ARM device (little endian) since it would hold the same > data i had on the laptop. > It seems i have not been able to unmount it and then mounting it > cleanly once, always required xfs_repair -L /dev/sdc3 > I Could understand power issues or lockups causing this, but on clean > umount and followed mount to see it fail is surprising. well, actually neither power issues nor lockups should cause it either ;) > When mounting fails on the headless arm machine i move the drive to a > x86_64 and run xfs_repair there when mounting there fails too (so log > can't be replayed, making -L necessary). > All of this leads me to ask: "Is XFS as well maintained on ARM as it > is on x86/x86_64?" Short answer no, but effort is made. The last known issue, as far as I know, is a cache aliasing problem. This patch is a big-hammer approach, better things have been proposed but not yet upstream as far as I know. With "what doesn't work" helpfully commented out ;) Index: linux-2.6.22.18/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6.22.18.orig/fs/xfs/linux-2.6/xfs_buf.c +++ linux-2.6.22.18/fs/xfs/linux-2.6/xfs_buf.c @@ -1185,6 +1185,8 @@ _xfs_buf_ioapply( bio->bi_end_io = xfs_buf_bio_end_io; bio->bi_private = bp; + //flush_dcache_page(bp->b_pages[0]); + flush_cache_all(); bio_add_page(bio, bp->b_pages[0], PAGE_CACHE_SIZE, 0); size = 0; @@ -1211,6 +1213,8 @@ next_chunk: if (nbytes > size) nbytes = size; + //flush_dcache_page(bp->b_pages[map_i]); + flush_cache_all(); rbytes = bio_add_page(bio, bp->b_pages[map_i], nbytes, offset); if (rbytes < nbytes) break; > Thank you in advance for any info you can provide, > > Daniel Goller > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-02 3:24 State of XFS on ARM Daniel Goller 2010-02-02 3:52 ` Eric Sandeen @ 2010-02-02 11:23 ` Christoph Hellwig 2010-02-02 15:42 ` Richard Sharpe 2010-02-03 2:19 ` Daniel Goller 1 sibling, 2 replies; 9+ messages in thread From: Christoph Hellwig @ 2010-02-02 11:23 UTC (permalink / raw) To: Daniel Goller, James.Bottomley; +Cc: xfs On Mon, Feb 01, 2010 at 09:24:33PM -0600, Daniel Goller wrote: > It seems i have not been able to unmount it and then mounting it > cleanly once, always required xfs_repair -L /dev/sdc3 > I Could understand power issues or lockups causing this, but on clean > umount and followed mount to see it fail is surprising. > When mounting fails on the headless arm machine i move the drive to a > x86_64 and run xfs_repair there when mounting there fails too (so log > can't be replayed, making -L necessary). > All of this leads me to ask: "Is XFS as well maintained on ARM as it > is on x86/x86_64?" XFS itself is platform neutral. But it seems like you have an ARM platform with virtually indexed caches, which currently can't support the I/O XFS does. James has been working on fixing this for a while, but so far the architecture support patches for it unfortunately still haven't made it to mainline despite many people running into this issue. The git tree with the current versions of the patches to fix this is here: http://git.kernel.org/?p=linux/kernel/git/jejb/xfs-vipt/.git;a=summary _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-02 11:23 ` Christoph Hellwig @ 2010-02-02 15:42 ` Richard Sharpe 2010-02-02 16:12 ` James Bottomley 2010-02-03 2:19 ` Daniel Goller 1 sibling, 1 reply; 9+ messages in thread From: Richard Sharpe @ 2010-02-02 15:42 UTC (permalink / raw) To: Christoph Hellwig; +Cc: James.Bottomley, xfs, Daniel Goller On Tue, Feb 2, 2010 at 3:23 AM, Christoph Hellwig <hch@infradead.org> wrote: > On Mon, Feb 01, 2010 at 09:24:33PM -0600, Daniel Goller wrote: >> It seems i have not been able to unmount it and then mounting it >> cleanly once, always required xfs_repair -L /dev/sdc3 >> I Could understand power issues or lockups causing this, but on clean >> umount and followed mount to see it fail is surprising. >> When mounting fails on the headless arm machine i move the drive to a >> x86_64 and run xfs_repair there when mounting there fails too (so log >> can't be replayed, making -L necessary). >> All of this leads me to ask: "Is XFS as well maintained on ARM as it >> is on x86/x86_64?" > > XFS itself is platform neutral. But it seems like you have an ARM > platform with virtually indexed caches, which currently can't support > the I/O XFS does. James has been working on fixing this for a while, > but so far the architecture support patches for it unfortunately still > haven't made it to mainline despite many people running into this issue. I would be interested in a precise explanation for this problem. We ran into an issue here with XFS on the Marvell 78200 (ARM) which has a VIVT cache. We eventually solved the problem by using flush_icache_range in a strategic place (after also discovering the need for flush_dcache_page, but that has to do with doing IO between the cores on the 78200), but we really did not understand why that fixed the problem. However, it stopped the corruption we were experiencing when using a file system exerciser. (We have subsequently stopped using XFS, but not because of any corruption issues.) -- Regards, Richard Sharpe _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-02 15:42 ` Richard Sharpe @ 2010-02-02 16:12 ` James Bottomley 0 siblings, 0 replies; 9+ messages in thread From: James Bottomley @ 2010-02-02 16:12 UTC (permalink / raw) To: Richard Sharpe; +Cc: Christoph Hellwig, xfs, Daniel Goller On Tue, 2010-02-02 at 07:42 -0800, Richard Sharpe wrote: > On Tue, Feb 2, 2010 at 3:23 AM, Christoph Hellwig <hch@infradead.org> wrote: > > On Mon, Feb 01, 2010 at 09:24:33PM -0600, Daniel Goller wrote: > >> It seems i have not been able to unmount it and then mounting it > >> cleanly once, always required xfs_repair -L /dev/sdc3 > >> I Could understand power issues or lockups causing this, but on clean > >> umount and followed mount to see it fail is surprising. > >> When mounting fails on the headless arm machine i move the drive to a > >> x86_64 and run xfs_repair there when mounting there fails too (so log > >> can't be replayed, making -L necessary). > >> All of this leads me to ask: "Is XFS as well maintained on ARM as it > >> is on x86/x86_64?" > > > > XFS itself is platform neutral. But it seems like you have an ARM > > platform with virtually indexed caches, which currently can't support > > the I/O XFS does. James has been working on fixing this for a while, > > but so far the architecture support patches for it unfortunately still > > haven't made it to mainline despite many people running into this issue. > > I would be interested in a precise explanation for this problem. We > ran into an issue here with XFS on the Marvell 78200 (ARM) which has a > VIVT cache. We eventually solved the problem by using > flush_icache_range in a strategic place (after also discovering the > need for flush_dcache_page, but that has to do with doing IO between > the cores on the 78200), but we really did not understand why that > fixed the problem. However, it stopped the corruption we were > experiencing when using a file system exerciser. XFS uses large buffers for log operations. Because large physically contiguous pieces of memory are hard to come by, it makes its logs from virtually contiguous pages. The problem is that doing this sets up aliasing within the kernel: each page in the range now has two virtual addresses: one for the standard kernel offset map and the other for the xfs created virtual area. When I/O is done on a kernel page, the kernel always flushes the offset map to ensure that the data is in main memory. However, when the page has another alias in the xfs created virtual area, the kernel I/O subsystem has no idea about this. Since xfs is reading and writing to this other alias, that's what needs to be flushed to make sure the data is safely in main memory before I/O takes place. James _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-02 11:23 ` Christoph Hellwig 2010-02-02 15:42 ` Richard Sharpe @ 2010-02-03 2:19 ` Daniel Goller 2010-02-03 20:34 ` Daniel Goller 1 sibling, 1 reply; 9+ messages in thread From: Daniel Goller @ 2010-02-03 2:19 UTC (permalink / raw) To: Christoph Hellwig; +Cc: xfs Thanks for the many replys, it also made me realize how basic and general the question was, without giving much details about the hardware. I see my "can't mount a xfs partition after successful unmounting without needing to clear the log" in 2.6.32, 2.6.33-rc2 and now 2.6.33-rc6. The arm device: Processor : Feroceon 88FR131 rev 1 (v5l) BogoMIPS : 1192.75 Features : swp half thumb fastmult edsp CPU implementer : 0x56 CPU architecture: 5TE CPU variant : 0x2 CPU part : 0x131 CPU revision : 1 Hardware : Marvell SheevaPlug Reference Board Revision : 0000 Serial : 0000000000000000 Typically i just can't mount without a xfs_repair -L which seems to be all i need to get it back and lose no data in the process. In 2.6.33-rc6 i had it for the first time do this: (which basically stopped the boot process cold as it would not go past this point) keeping this partition from being mounted at boot then allowed me to record the following when manually mounting it) * Mounting local filesystems... Internal error: Oops: 5 [#1] last sysfs file: /sys/kernel/uevent_seqnum Modules linked in: CPU: 0 Not tainted (2.6.33-rc6 #1) PC is at xlog_recover_process_data+0x1c4/0x304 LR is at xlog_recover_unmount_trans+0x10/0x1c pc : [] lr : [] psr: 20000013 sp : df091c78 ip : 0000000a fp : 00000001 r10: df0794d0 r9 : df091d14 r8 : e0ffea00 r7 : df091d04 r6 : e0ffe034 r5 : 00000010 r4 : 02e00a34 r3 : 00000001 r2 : c0563190 r1 : c05631b8 r0 : 00000000 Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 0005317f Table: 1f314000 DAC: 00000015 Process mount (pid: 857, stack limit = 0xdf090270) Stack: (0xdf091c78 to 0xdf092000) 1c60: 00000007 df291000 1c80: 00000005 df3329c0 00000000 00000001 00000005 df3329c0 df291000 00000005 1ca0: 00000001 00000000 df332cc0 0000000f 00000000 c0206eb0 00000001 df332cc0 1cc0: df091d44 ffffffff c0563174 c003d13c df091d44 c058dddc c0563174 00000002 1ce0: 00000002 00000000 00000000 00000000 df332cc0 c003d66c 00000028 df332c00 1d00: c04f0121 00000000 00000000 00000000 00000000 df0ade00 00000000 00000000 1d20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 1d40: 00000000 e0ffe000 00000000 df3329c0 00000000 00000028 00000000 00000006 1d60: 00000000 a3d7b000 00000000 c02074d8 00000006 00000000 00000001 c0427758 1d80: 60000013 df3329c0 00000000 00000006 00000000 00408100 00000000 c0207534 1da0: 00000006 00000000 00000000 df3329c0 00000000 00000006 00000000 00408100 1dc0: 00000000 c0208be4 00000006 00000000 00000006 00000000 00000028 00000000 1de0: df0fd800 000001c0 00000000 c0202b58 00020000 df0fd800 c0220a64 df0fd800 1e00: c0220a64 073904d0 00000000 073904cc 00000000 c020ac34 00020000 000002d0 1e20: 00000001 00000000 51eb851f c02154fc 00000000 00000058 df296000 c01f1b1c 1e40: 0000000a 00000058 df189120 c01f1b1c 0000000a df0fda9c df296000 c01f1b1c 1e60: 00000000 df0fd800 df218a00 00000000 df28a000 00000000 00000000 df28a000 1e80: 00000000 c0220a64 df218a00 00000000 df6b8340 00000003 df6b839c 00000000 1ea0: df218a00 c00991fc 33616473 df096f00 df096da0 000000d0 df096da0 df096f40 1ec0: 0000000a c007cdd8 df296d00 df296d00 c056dfc4 df096da0 df28a000 00000000 1ee0: df28a000 c021ed60 c02208e8 df296d00 00000000 c00981fc df296d00 c00ab304 1f00: c056dfc4 df096d60 df28a000 df096da0 00000000 c00982d0 00000000 00000030 1f20: df091f48 df096da0 df096d60 c00addc4 00000a18 00200800 df28a000 df090000 1f40: 00000000 0001e560 dfbebe00 df705d80 c007186c df241000 0001e560 00200800 1f60: 00000000 c002b044 df090000 00000000 0001e560 c00ae3f4 df28a000 c00476c8 1f80: 00000000 df28a000 df096da0 df096d60 00000000 0001ea18 00200800 0001e570 1fa0: 00000015 c002aec0 0001ea18 00200800 0001e560 0001e570 0001e988 00200800 1fc0: 0001ea18 00200800 0001e570 00000015 0001c444 00000000 00000000 0001e560 1fe0: 00200800 befff5cc 0000b0f4 40115384 60000010 0001e560 00000000 00000000 [] (xlog_recover_process_data+0x1c4/0x304) from [] (xlog_do_recovery_pass+0x1b0/0x794) [] (xlog_do_recovery_pass+0x1b0/0x794) from [] (xlog_do_log_recovery+0x44/0x88) [] (xlog_do_log_recovery+0x44/0x88) from [] (xlog_do_recover+0x18/0x124) [] (xlog_do_recover+0x18/0x124) from [] (xlog_recover+0x7c/0xc4) [] (xlog_recover+0x7c/0xc4) from [] (xfs_log_mount+0x154/0x18c) [] (xfs_log_mount+0x154/0x18c) from [] (xfs_mountfs+0x34c/0x670) [] (xfs_mountfs+0x34c/0x670) from [] (xfs_fs_fill_super+0x17c/0x2c0) [] (xfs_fs_fill_super+0x17c/0x2c0) from [] (get_sb_bdev+0x138/0x170) [] (get_sb_bdev+0x138/0x170) from [] (xfs_fs_get_sb+0x1c/0x28) [] (xfs_fs_get_sb+0x1c/0x28) from [] (vfs_kern_mount+0x50/0xe0) [] (vfs_kern_mount+0x50/0xe0) from [] (do_kern_mount+0x34/0xdc) [] (do_kern_mount+0x34/0xdc) from [] (do_mount+0x154/0x700) [] (do_mount+0x154/0x700) from [] (sys_mount+0x84/0xc4) [] (sys_mount+0x84/0xc4) from [] (ret_fast_syscall+0x0/0x28) Code: 93a03000 82033001 e3530000 0a000048 (e5d43008) ---[ end trace b80cd4d01963a09f ]--- /etc/init.d/localmount: line 15: 857 Segmentation fault mount -at "$types" it seems to operate fine since running a xfs_repair -L on it from the x86_64 laptop (It is a disk in a usb enclosure, which makes the moving of the drive to clear the log rather easy) > The git tree with the current versions of the patches to fix this is > here: > > http://git.kernel.org/?p=linux/kernel/git/jejb/xfs-vipt/.git;a=summary > > I will probably not get a chance to try pulling this from git before the weekend, if the Sheevaplug however the type of arm machine you were referring to (i honestly never looked at its cache), i would be interested in trying the fix and (hopefully) stick to xfs for this partition. Thanks, Daniel Goller Let me know if there is further information you would like to look at for this issue. _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-03 2:19 ` Daniel Goller @ 2010-02-03 20:34 ` Daniel Goller 2010-02-03 20:38 ` Christoph Hellwig 2010-02-03 20:46 ` Eric Sandeen 0 siblings, 2 replies; 9+ messages in thread From: Daniel Goller @ 2010-02-03 20:34 UTC (permalink / raw) To: xfs Any particular stress test you can suggest, to use once i try git for xfs on this Marvell box? To try to help bringing up issues faster than through normal use of this box? Thanks in advance for any suggestions, Daniel _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-03 20:34 ` Daniel Goller @ 2010-02-03 20:38 ` Christoph Hellwig 2010-02-03 20:46 ` Eric Sandeen 1 sibling, 0 replies; 9+ messages in thread From: Christoph Hellwig @ 2010-02-03 20:38 UTC (permalink / raw) To: Daniel Goller; +Cc: xfs On Wed, Feb 03, 2010 at 02:34:43PM -0600, Daniel Goller wrote: > Any particular stress test you can suggest, to use once i try git for > xfs on this Marvell box? > To try to help bringing up issues faster than through normal use of this box? The primary use of the large buffers where this matters is the log. So you just need to cleanly unmount and mount the filesystem again, and the issues your previously reported should be gone. _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: State of XFS on ARM 2010-02-03 20:34 ` Daniel Goller 2010-02-03 20:38 ` Christoph Hellwig @ 2010-02-03 20:46 ` Eric Sandeen 1 sibling, 0 replies; 9+ messages in thread From: Eric Sandeen @ 2010-02-03 20:46 UTC (permalink / raw) To: Daniel Goller; +Cc: xfs Daniel Goller wrote: > Any particular stress test you can suggest, to use once i try git for > xfs on this Marvell box? > To try to help bringing up issues faster than through normal use of this box? Run it through the xfstests suite: http://git.kernel.org/?p=fs/xfs/xfstests-dev.git;a=summary (I have a sheevaplug too, thanks to some nice folks @Marvell, and I really need to get regular qa going on it in return... have been too busy so far) :( There's a readme in the tree, but basically just create a local.config like: # - setenv TEST_DEV "device containing TEST PARTITION" # - setenv TEST_DIR "mount point of TEST PARTITION" # - setenv SCRATCH_DEV "device containing SCRATCH PARTITION" # - setenv SCRATCH_MNT "mount point for SCRATCH PARTITION" TEST_DEV=/dev/sdb1 TEST_DIR=/mnt/test SCRATCH_DEV=/dev/sdb3 SCRATCH_MNT=/mnt/scratch mkfs.xfs $TEST_DEV, and then run #./check -g auto -Eric > Thanks in advance for any suggestions, > > Daniel > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-02-03 20:45 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2010-02-02 3:24 State of XFS on ARM Daniel Goller 2010-02-02 3:52 ` Eric Sandeen 2010-02-02 11:23 ` Christoph Hellwig 2010-02-02 15:42 ` Richard Sharpe 2010-02-02 16:12 ` James Bottomley 2010-02-03 2:19 ` Daniel Goller 2010-02-03 20:34 ` Daniel Goller 2010-02-03 20:38 ` Christoph Hellwig 2010-02-03 20:46 ` Eric Sandeen
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox