linux-mips
[Top] [All Lists]

Re: XFS mounting fails on MIPS

To: Christoph Hellwig <hch@infradead.org>
Subject: Re: XFS mounting fails on MIPS
From: Ajeet Yadav <ajeet.yadav.77@gmail.com>
Date: Thu, 11 Nov 2010 11:10:33 +0530
Cc: "xfs@oss.sgi.com" <xfs@oss.sgi.com>, linux-mips@linux-mips.org
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=1G1zuw18GvkLF3bXBPvxFbD1HW/W2IEjBT6WWX9QzLQ=; b=X5QZbM6NC7bPZfhAKbEaVOUReBqAdsxersjZgPyOZH/Qg4XgppJEEI5tmtC4gfcgyB SmfRLk2FC/6iqGUhwJ6UerQ1k9MgqNTgQ0KAJvapA5zMtxaax7iWxKLJuB1tVQDGesDz 9Vgq0ZH9gaAJV/gDNOzsD5s6nTjonAMujzpCM=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=EcGeIWpWMzfnZLxh5tUBngjL0ROX2ezNwobhiVECpUMTWLmKOdDHMPgS0ODvibV+DO awEM2A8K7z43B1yxx8KtUwAEHIZmE/2L6s311/7E/pFRWLGE98Ru/8JfXG5Kuc12+K4O syP49deMDelifB1owFPEh3VaQiB5Ezd3R8z3U=
In-reply-to: <AANLkTik09-0udnrpAJ-mTxMx8iKZ5UTq-ucduQJOZkws@mail.gmail.com>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <AANLkTi=mLwQ0N_cErHzES1ZWvOa8jQspeYwKgn9sU4Jm@mail.gmail.com> <20101104125052.GA22429@infradead.org> <AANLkTinqK-HvuHPeaTgxJOJuWMfomP2C12G=uVcqhWdn@mail.gmail.com> <20101109140527.GA13041@infradead.org> <AANLkTik09-0udnrpAJ-mTxMx8iKZ5UTq-ucduQJOZkws@mail.gmail.com>
Sender: linux-mips-bounce@linux-mips.org
I think mips folks agree with the change. I really wish to have there comment.

I also wish to know do we really need fix in XFS for virtual indexed architecture, I think its generic issue as many architecture now use VIVT or VIPT caches. Do we want to say XFS is relatively unstable with virtual indexed architecture ?
 

On Thu, Nov 11, 2010 at 10:27 AM, Ajeet Yadav <ajeet.yadav.77@gmail.com> wrote:
Coming back to problem, I wish to know about this problem
Linux XFS version : 2.6.34
Architecure: MIPS
I am getting the following error during mount.
 
XFS mounting filesystem sda2
Starting XFS recovery on filesystem: sda2 (logdev: internal)
XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1518 of file fs/xfs/xfs_alloc.c.  Caller 0x801174a0
Call Trace:
[<800050bc>] dump_stack+0x8/0x34
[<80115254>] xfs_free_ag_extent+0x128/0x7a8
[<801174a0>] xfs_free_extent+0xa0/0xcc
[<80155278>] xlog_recover_process_efi+0x15c/0x210
[<801553cc>] xlog_recover_process_efis+0xa0/0x12c
[<8015590c>] xlog_recover_finish+0x28/0xcc
[<8015d4fc>] xfs_mountfs+0x4f0/0x5d0
[<801758d8>] xfs_fs_fill_super+0x158/0x360
[<8008b67c>] get_sb_bdev+0x11c/0x1c4
[<801734e0>] xfs_fs_get_sb+0x20/0x2c
[<80089cd0>] vfs_kern_mount+0x68/0xd0
[<80089d9c>] do_kern_mount+0x54/0x118
[<800a4e98>] do_mount+0x7f0/0x86c
[<800a4fb0>] sys_mount+0x9c/0xf8
[<80002124>] stack_done+0x20/0x3c
 
Filesystem "sda2": XFS internal error xfs_trans_cancel at line 1161 of file fs/xfs/xfs_trans.c.  Caller 0x801552f8
 
Call Trace:
[<800050bc>] dump_stack+0x8/0x34
[<801601f0>] xfs_trans_cancel+0x88/0x118
[<801552f8>] xlog_recover_process_efi+0x1dc/0x210
[<801553cc>] xlog_recover_process_efis+0xa0/0x12c
[<8015590c>] xlog_recover_finish+0x28/0xcc
[<8015d4fc>] xfs_mountfs+0x4f0/0x5d0
[<801758d8>] xfs_fs_fill_super+0x158/0x360
[<8008b67c>] get_sb_bdev+0x11c/0x1c4
[<801734e0>] xfs_fs_get_sb+0x20/0x2c
[<80089cd0>] vfs_kern_mount+0x68/0xd0
[<80089d9c>] do_kern_mount+0x54/0x118
[<800a4e98>] do_mount+0x7f0/0x86c
[<800a4fb0>] sys_mount+0x9c/0xf8
[<80002124>] stack_done+0x20/0x3c
 
xfs_force_shutdown(sda2,0x8) called from line 1162 of file fs/xfs/xfs_trans.c.  Return address = 0x80160204
Filesystem "sda2": Corruption of in-memory data detected.  Shutting down filesystem: sda2
Please umount the filesystem, and rectify the problem(s)
Failed to recover EFIs on filesystem: sda2
XFS: log mount finish failed
 
With Regards
Ajeet Yadav

On Tue, Nov 9, 2010 at 7:35 PM, Christoph Hellwig <hch@infradead.org> wrote:
Hi Ajeet,

On Tue, Nov 09, 2010 at 04:43:04PM +0530, Ajeet Yadav wrote:
> True, its the same system and you were right it was cache VIPT cache problem
> the cache hold the stale value even after xlog_bread() update the buffer.
> I do not know whether its correct ways to resolve the problem, but the
> problem no longer occur.

It seems like you more less re-implemented the vmap coherency hooks
inside XFS, hardcoded to the mips implementation.

The actual helpers would looks something like:

static inline void flush_kernel_vmap_range(void *addr, int size)
{
       dma_cache_inv(addr, size);
}

static inline void invalidate_kernel_vmap_range(void *addr, int size)
{
       dma_cache_inv(addr, size);
}

For some reason the kernel also expects flush_dcache_page to be
implemented by an architecture if we want to implement these two
(it's keyed off ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE).

Can someone of the mips folks helps with this?

The testcase is easy, mounting an xfs filesystem after an unclean
shutdown on a machine with virtually indexed caches.



<Prev in Thread] Current Thread [Next in Thread>