From BATV+6e58e3a765969f5bf11a+2138+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 1 07:44:15 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61CiBFa010475 for ; Wed, 1 Jul 2009 07:44:14 -0500 X-ASG-Debug-ID: 1246452662-438102ba0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3D0E9BC356 for ; Wed, 1 Jul 2009 05:51:02 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id bWSDjlRXr16Zsf2X for ; Wed, 01 Jul 2009 05:51:02 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MLzB3-0003TC-E9; Wed, 01 Jul 2009 12:44:41 +0000 Date: Wed, 1 Jul 2009 08:44:41 -0400 From: Christoph Hellwig To: Patrick Schreurs Cc: linux-xfs@oss.sgi.com, Tommy van Leeuwen , Lachlan McIlroy , Eric Sandeen X-ASG-Orig-Subj: Re: 2.6.30 panic - xfs_fs_destroy_inode Subject: Re: 2.6.30 panic - xfs_fs_destroy_inode Message-ID: <20090701124441.GA12844@infradead.org> References: <4A408316.2070903@news-service.com> <1587994907.388291245745033392.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> <20090623171305.GB23971@infradead.org> <4A4A7205.6010101@news-service.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A4A7205.6010101@news-service.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246452663 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Actually you might want to give this patch a try which fixes a race affecting the reclaim tag in iget: Index: xfs/fs/xfs/xfs_iget.c =================================================================== --- xfs.orig/fs/xfs/xfs_iget.c 2009-06-04 13:27:41.901946950 +0200 +++ xfs/fs/xfs/xfs_iget.c 2009-06-04 14:08:08.837816707 +0200 @@ -132,80 +132,89 @@ xfs_iget_cache_hit( int flags, int lock_flags) __releases(pag->pag_ici_lock) { + struct inode *inode = VFS_I(ip); struct xfs_mount *mp = ip->i_mount; - int error = EAGAIN; + int error; + + spin_lock(&ip->i_flags_lock); /* - * If INEW is set this inode is being set up - * If IRECLAIM is set this inode is being torn down - * Pause and try again. + * This inode is being torn down, pause and try again. */ - if (xfs_iflags_test(ip, (XFS_INEW|XFS_IRECLAIM))) { + if (ip->i_flags & XFS_IRECLAIM) { XFS_STATS_INC(xs_ig_frecycle); + error = EAGAIN; goto out_error; } - /* If IRECLAIMABLE is set, we've torn down the vfs inode part */ - if (xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { + /* + * If we are racing with another cache hit that is currently recycling + * this inode out of the XFS_IRECLAIMABLE state, wait for the + * initialisation to complete before continuing. + */ + if (ip->i_flags & XFS_INEW) { + spin_unlock(&ip->i_flags_lock); + read_unlock(&pag->pag_ici_lock); - /* - * If lookup is racing with unlink, then we should return an - * error immediately so we don't remove it from the reclaim - * list and potentially leak the inode. - */ - if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { - error = ENOENT; - goto out_error; - } + XFS_STATS_INC(xs_ig_frecycle); + wait_on_inode(inode); + return EAGAIN; + } + /* + * If lookup is racing with unlink, then we should return an + * error immediately so we don't remove it from the reclaim + * list and potentially leak the inode. + */ + if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { + error = ENOENT; + goto out_error; + } + + /* + * If IRECLAIMABLE is set, we've torn down the vfs inode part already. + * Need to carefully get it back into useable state. + */ + if (ip->i_flags & XFS_IRECLAIMABLE) { xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); /* - * We need to re-initialise the VFS inode as it has been - * 'freed' by the VFS. Do this here so we can deal with - * errors cleanly, then tag it so it can be set up correctly - * later. + * We need to set XFS_INEW atomically with clearing the + * reclaimable tag so that we do have an indicator of the + * inode still being initialized. */ - if (!inode_init_always(mp->m_super, VFS_I(ip))) { + ip->i_flags |= XFS_INEW; + __xfs_inode_clear_reclaim_tag(pag, ip); + + spin_unlock(&ip->i_flags_lock); + read_unlock(&pag->pag_ici_lock); + + if (unlikely(!inode_init_always(mp->m_super, inode))) { + printk("node_init_always failed!!\n"); + + /* + * Re-initializing the inode failed, and we are in deep + * trouble. Try to re-add it to the reclaim list. + */ + read_lock(&pag->pag_ici_lock); + spin_lock(&ip->i_flags_lock); + + ip->i_flags &= ~XFS_INEW; + __xfs_inode_set_reclaim_tag(pag, ip); + error = ENOMEM; goto out_error; } - - /* - * We must set the XFS_INEW flag before clearing the - * XFS_IRECLAIMABLE flag so that if a racing lookup does - * not find the XFS_IRECLAIMABLE above but has the igrab() - * below succeed we can safely check XFS_INEW to detect - * that this inode is still being initialised. - */ - xfs_iflags_set(ip, XFS_INEW); - xfs_iflags_clear(ip, XFS_IRECLAIMABLE); - - /* clear the radix tree reclaim flag as well. */ - __xfs_inode_clear_reclaim_tag(mp, pag, ip); - } else if (!igrab(VFS_I(ip))) { + } else { /* If the VFS inode is being torn down, pause and try again. */ - XFS_STATS_INC(xs_ig_frecycle); - goto out_error; - } else if (xfs_iflags_test(ip, XFS_INEW)) { - /* - * We are racing with another cache hit that is - * currently recycling this inode out of the XFS_IRECLAIMABLE - * state. Wait for the initialisation to complete before - * continuing. - */ - wait_on_inode(VFS_I(ip)); - } + if (!igrab(inode)) + goto out_error; - if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { - error = ENOENT; - iput(VFS_I(ip)); - goto out_error; + /* We've got a live one. */ + spin_unlock(&ip->i_flags_lock); + read_unlock(&pag->pag_ici_lock); } - /* We've got a live one. */ - read_unlock(&pag->pag_ici_lock); - if (lock_flags != 0) xfs_ilock(ip, lock_flags); @@ -215,6 +224,7 @@ xfs_iget_cache_hit( return 0; out_error: + spin_unlock(&ip->i_flags_lock); read_unlock(&pag->pag_ici_lock); return error; } Index: xfs/fs/xfs/linux-2.6/xfs_sync.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c 2009-06-04 13:40:09.135939715 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_sync.c 2009-06-04 13:59:17.978816696 +0200 @@ -607,6 +607,17 @@ xfs_reclaim_inode( return 0; } +void +__xfs_inode_set_reclaim_tag( + struct xfs_perag *pag, + struct xfs_inode *ip) +{ + xfs_agino_t agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino); + + radix_tree_tag_set(&pag->pag_ici_root, agino, XFS_ICI_RECLAIM_TAG); + __xfs_iflags_set(ip, XFS_IRECLAIMABLE); +} + /* * We set the inode flag atomically with the radix tree tag. * Once we get tag lookups on the radix tree, this inode flag @@ -621,9 +632,7 @@ xfs_inode_set_reclaim_tag( read_lock(&pag->pag_ici_lock); spin_lock(&ip->i_flags_lock); - radix_tree_tag_set(&pag->pag_ici_root, - XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); - __xfs_iflags_set(ip, XFS_IRECLAIMABLE); + __xfs_inode_set_reclaim_tag(pag, ip); spin_unlock(&ip->i_flags_lock); read_unlock(&pag->pag_ici_lock); xfs_put_perag(mp, pag); @@ -631,30 +640,15 @@ xfs_inode_set_reclaim_tag( void __xfs_inode_clear_reclaim_tag( - xfs_mount_t *mp, - xfs_perag_t *pag, - xfs_inode_t *ip) -{ - radix_tree_tag_clear(&pag->pag_ici_root, - XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); -} - -void -xfs_inode_clear_reclaim_tag( - xfs_inode_t *ip) + struct xfs_perag *pag, + struct xfs_inode *ip) { - xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); + xfs_agino_t agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino); - read_lock(&pag->pag_ici_lock); - spin_lock(&ip->i_flags_lock); - __xfs_inode_clear_reclaim_tag(mp, pag, ip); - spin_unlock(&ip->i_flags_lock); - read_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); + ip->i_flags &= ~XFS_IRECLAIMABLE; + radix_tree_tag_clear(&pag->pag_ici_root, agino, XFS_ICI_RECLAIM_TAG); } - STATIC void xfs_reclaim_inodes_ag( xfs_mount_t *mp, Index: xfs/fs/xfs/linux-2.6/xfs_sync.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.h 2009-06-04 13:53:32.994814723 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_sync.h 2009-06-04 13:58:54.746942001 +0200 @@ -51,7 +51,6 @@ int xfs_reclaim_inode(struct xfs_inode * int xfs_reclaim_inodes(struct xfs_mount *mp, int noblock, int mode); void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); -void xfs_inode_clear_reclaim_tag(struct xfs_inode *ip); -void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, - struct xfs_inode *ip); +void __xfs_inode_set_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); +void __xfs_inode_clear_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); #endif From BATV+6e58e3a765969f5bf11a+2138+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 1 09:55:51 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61Etn7E017399 for ; Wed, 1 Jul 2009 09:55:51 -0500 X-ASG-Debug-ID: 1246460180-488400d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 602A13375D9 for ; Wed, 1 Jul 2009 07:56:21 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id ihzfaLRHrJJm2BM9 for ; Wed, 01 Jul 2009 07:56:21 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MM1ES-0003ZQ-Ma; Wed, 01 Jul 2009 14:56:20 +0000 Date: Wed, 1 Jul 2009 10:56:20 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: XFS status update for June 2009 Subject: XFS status update for June 2009 Message-ID: <20090701145620.GA13061@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246460181 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On June 9th we finally saw the release of Linux 2.6.30. For XFS this release mostly contains the improved ENOSPC handling, but also various smaller bugfixes and lots of cleanups. The code size of XFS decreased again by 500 lines of code in this release. The Linux 2.6.31 merge opened in the mid of the month and some big XFS changes have been pushed: A removal of the quotaops infrastructure which simplifies the quota implementation, the switch from XFS's own Posix ACL implementation to the generic one shared by various other filesystems which also supports in-memory caching of ACLs and another incremental refactoring of the sync code. A patch to better track dirty inodes and work around issues in the way the VFS updates the access time stamp on inodes has been reposted and discussed. Another patch to converting the existing XFS tracing infrastructure to use the ftrace even tracer has been posted. On the userspace side there have been a few updates to xfsprogs, including some repair fixes and a new fallocate command for xfs_io. There were major updates for xfstests: The existing aio-dio-regress testsuite has been merged into xfstests, and various changes went into the tree to make xfstests better suitable for use with other filesystems. The attr and acl projects which have been traditionally been hosted as part of the XFS userspace utilities have now been split into a separate project maintained by Andreas Gruenbacher, who has been doing most of the work on it, and moved to the Savannah hosting platform. From felixb@sgi.com Wed Jul 1 11:09:32 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61G9Wtp021226 for ; Wed, 1 Jul 2009 11:09:32 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay3.corp.sgi.com (Postfix) with ESMTP id 68080AC011 for ; Wed, 1 Jul 2009 09:10:00 -0700 (PDT) Received: from eagdhcp-232-157.americas.sgi.com (eagdhcp-232-157.americas.sgi.com [128.162.232.157]) by estes.americas.sgi.com (Postfix) with ESMTP id F2D3B7000103; Wed, 1 Jul 2009 11:09:59 -0500 (CDT) Cc: Christoph Hellwig , xfs mailing list Message-Id: <708E7D36-A57F-4ABD-935C-6AF6524E364B@sgi.com> From: Felix Blyakher To: Eric Sandeen In-Reply-To: <4A48D218.5050208@sandeen.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v926) Subject: Re: [PATCH] add more statics & drop some unused functions Date: Wed, 1 Jul 2009 11:10:01 -0500 References: <4A1C3D65.4020306@sandeen.net> <20090527102319.GA28274@infradead.org> <4A48D218.5050208@sandeen.net> X-Mailer: Apple Mail (2.926) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Jun 29, 2009, at 9:39 AM, Eric Sandeen wrote: > Christoph Hellwig wrote: >> On Tue, May 26, 2009 at 02:05:09PM -0500, Eric Sandeen wrote: >>> A lot more functions could be made static, but they need >>> forward declarations; this does some easy ones, and also >>> found a few unused functions in the process. >> >> Looks good to me. >> > > Felix, do you plan to merge this one? Yep, will merge and push it to oss shortly. Felix From a.beregalov@gmail.com Wed Jul 1 11:20:50 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61GKoEA021715 for ; Wed, 1 Jul 2009 11:20:50 -0500 X-ASG-Debug-ID: 1246465281-48c702b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f214.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A779337BAD for ; Wed, 1 Jul 2009 09:21:21 -0700 (PDT) Received: from mail-bw0-f214.google.com (mail-bw0-f214.google.com [209.85.218.214]) by cuda.sgi.com with ESMTP id NSU20wdj3pVBoWo7 for ; Wed, 01 Jul 2009 09:21:21 -0700 (PDT) Received: by bwz10 with SMTP id 10so888416bwz.20 for ; Wed, 01 Jul 2009 09:21:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=38TWLhQghkcnwHj4DIpwACcmzjEtABa/+BRxdJLRDFY=; b=a+loPMJqpoqIHeE3s1CS+6DPGSiHhOqfXfVIbGYimWKL3GUnjjJMXRmuDhFdfmsRFs 53DzZYn/tmAUpS4K0opjL8oyrB0SR6eVO7nQQx9IHA3S7J9iPJt2iQuXjHRc/NuTs8cw L+bYVVDK0dDZI41KU00ixvkYbOpyr8klHIO+Y= 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:content-transfer-encoding; b=tpA5JgY1S/Ofxft9QWid5YX8sO0jZqsopjjnKxwRjOEVREJFbIb5THYEMz6myqfXUO AgR57PknffM6CDanjufA1KpzHnhW9RloSWSaWaCrL0mzxek2EqfkeXVt6reKkoL/kuNf 71V1W34Xun3Mn8TzU65DDtiMtdKjPI5RdBcjg= MIME-Version: 1.0 Received: by 10.204.120.193 with SMTP id e1mr9735909bkr.147.1246465280270; Wed, 01 Jul 2009 09:21:20 -0700 (PDT) In-Reply-To: References: <20090604092330.GT16929@discord.disaster> Date: Wed, 1 Jul 2009 20:21:20 +0400 Message-ID: X-ASG-Orig-Subj: Re: 2.6.30-rc6: BUG at fs/xfs/support/debug.c:109! Subject: Re: 2.6.30-rc6: BUG at fs/xfs/support/debug.c:109! From: Alexander Beregalov To: Dave Chinner Cc: Kernel Testers List , xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-bw0-f214.google.com[209.85.218.214] X-Barracuda-Start-Time: 1246465282 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2273 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 2009/6/5 Alexander Beregalov : > 2009/6/4 Dave Chinner : >> On Mon, Jun 01, 2009 at 07:22:56PM +0400, Alexander Beregalov wrote: >>> Hi >>> >>> Assertion failed: *nmap >=3D 1, file: fs/xfs/xfs_bmap.c, line: 4846 >> ..... >>> Call Trace: >>> =C2=A0[] xfs_bmapi+0xad/0x1ad0 >>> =C2=A0[] xfs_dir2_leaf_getdents+0x640/0x7b0 >>> =C2=A0[] xfs_readdir+0x12c/0x140 >>> =C2=A0[] xfs_file_readdir+0x47/0x70 >>> =C2=A0[] vfs_readdir+0xd0/0xf0 >>> =C2=A0[] sys_getdents+0x96/0x110 >>> =C2=A0[] system_call_fastpath+0x16/0x1b >> >> I'd say this indicates a corrupted directory. =C2=A0Can you run >> 'xfs_repair -n' over the filesystem and see if it finds a bad >> directory? Still cannot fix the filesystem. After repairing all corruptions from LiveCD it still fails on the same workload. Do you need metadump or anything else? From sandeen@sandeen.net Wed Jul 1 14:53:19 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61JrJEh031156 for ; Wed, 1 Jul 2009 14:53:19 -0500 X-ASG-Debug-ID: 1246478411-473701390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 297A31499232 for ; Wed, 1 Jul 2009 13:00:12 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 0ysHC6c0IfLiu85n for ; Wed, 01 Jul 2009 13:00:12 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id A0FD5AABFCC; Wed, 1 Jul 2009 14:53:48 -0500 (CDT) Message-ID: <4A4BBECC.8000308@sandeen.net> Date: Wed, 01 Jul 2009 14:53:48 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Jesse Stroik CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Seg fault during xfs repair (segmentation fault / segv) Subject: Re: Seg fault during xfs repair (segmentation fault / segv) References: <4A4A596D.8030800@ssec.wisc.edu> <4A4A5C4E.7030605@sandeen.net> <4A4A7D44.7040009@ssec.wisc.edu> In-Reply-To: <4A4A7D44.7040009@ssec.wisc.edu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246478413 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.92 X-Barracuda-Spam-Status: No, SCORE=-0.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085, BSF_SC1_TG070 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2286 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.00 BSF_SC1_TG070 Custom Rule TG070 0.10 BSF_SC0_SA085 Custom Rule SA085 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Jesse Stroik wrote: > Eric, > > Eric Sandeen wrote: >> Jesse Stroik wrote: >>> I have a server with a ~20TB xfs file system on Linux >>> (2.6.18-92.1.22.el5) and am running xfsprogs-2.9.4-4.el5. We had a few >>> corrupted files which I believe were due to a SCSI issue after a recent >>> power outage. Due to the corruption, I ran xfs_check and would like to >>> run xfs_repair on the system. >> It'd really be great to test more recent xfsprogs first, that one is >> about 2 years old. >> >> You can probably grab any recent fedora src.rpm and rebuild it, and >> later go back to the centos version if you wish. > > > I fetched the current version from SVN using these directions: > http://xfs.org/index.php/Getting_the_latest_source_code > > I get identical results. > > -------- > ... > reset bad sb for ag 31 > reset bad agf for ag 31 > reset bad agi for ag 31 > Segmentation fault Ok, from a metadump image Jesse provided (thanks!) it's dying in here: bno = be32_to_cpu(agfl->agfl_bno[i]); printf("agfl at %p i is %d agfl_bno[i] %u bno is %u\n", agfl, i, agfl->agfl_bno[i], bno); if (verify_agbno(mp, be32_to_cpu(agf->agf_seqno), bno)) set_agbno_state(mp, be32_to_cpu(agf->agf_seqno), bno, XR_E_FREE); agfl_bno looks corrupt, and bno is coming out to be huge. set_agbno_state() does: *(ba_bmap[(agno)] + (ag_blockno)/XR_BB_NUM) = .... where ag_blockno is that bno above; this wanders us off into bad memory and boom. I'll see what we can do to fix it up. -Eric From sandeen@sandeen.net Wed Jul 1 15:32:33 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61KWWuB033108 for ; Wed, 1 Jul 2009 15:32:33 -0500 X-ASG-Debug-ID: 1246480766-04d300240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E04A51499037 for ; Wed, 1 Jul 2009 13:39:26 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id SRuW2cBUhfo8Uefn for ; Wed, 01 Jul 2009 13:39:26 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id DE1F0AABFCC; Wed, 1 Jul 2009 15:33:03 -0500 (CDT) Message-ID: <4A4BC7FF.6050004@sandeen.net> Date: Wed, 01 Jul 2009 15:33:03 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: xfs-oss , Jesse Stroik X-ASG-Orig-Subj: [PATCH] xfs_repair: fix verify_ag_bno() overflow Subject: [PATCH] xfs_repair: fix verify_ag_bno() overflow Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246480766 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2290 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The last test in verify_ag_bno() may overflow: return (agbno >= (sbp->sb_dblocks - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); because sb_agcount & sb_agblocks are 32-bit integers; this may then miss corrupt agbnos for the last ag, which can in turn lead to out of bounds memory accesses later, for example when the block nr is used to offset in set_agbno_state(): addr = ba_bmap[(agno)] + (ag_blockno)/XR_BB_NUM; Also make the first test simpler; agbno > sb_agblocks is -always- bad, regardless of the agno. This may even speed it up a tiny bit. Reported-by: Jesse Stroik Signed-off-by: Eric Sandeen --- diff --git a/repair/dinode.c b/repair/dinode.c index fdf52db..f50f1ad 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -315,11 +315,14 @@ verify_ag_bno(xfs_sb_t *sbp, xfs_agnumber_t agno, xfs_agblock_t agbno) { - if (agno < (sbp->sb_agcount - 1)) - return (agbno >= sbp->sb_agblocks); - if (agno == (sbp->sb_agcount - 1)) + /* in all cases bno >= agblocks is bad */ + if (agbno >= sbp->sb_agblocks) + return 1; + /* last ag may be smaller */ + if (agno == (sbp->sb_agcount - 1)) return (agbno >= (sbp->sb_dblocks - - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); + ((xfs_drfsbno_t)(sbp->sb_agcount - 1) * + sbp->sb_agblocks))); return 1; } From sandeen@sandeen.net Wed Jul 1 15:33:33 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61KXWLd033159 for ; Wed, 1 Jul 2009 15:33:33 -0500 X-ASG-Debug-ID: 1246480444-5db303cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 26CE1338797 for ; Wed, 1 Jul 2009 13:34:04 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 9W4JHY6BGGk4NUsY for ; Wed, 01 Jul 2009 13:34:04 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 7BB91AABFCC; Wed, 1 Jul 2009 15:34:03 -0500 (CDT) Message-ID: <4A4BC83A.3080401@sandeen.net> Date: Wed, 01 Jul 2009 15:34:02 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Jesse Stroik CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Seg fault during xfs repair (segmentation fault / segv) Subject: Re: Seg fault during xfs repair (segmentation fault / segv) References: <4A4A596D.8030800@ssec.wisc.edu> <4A4A5C4E.7030605@sandeen.net> <4A4A7D44.7040009@ssec.wisc.edu> <4A4BBECC.8000308@sandeen.net> In-Reply-To: <4A4BBECC.8000308@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246480445 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC1_TG070 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.00 BSF_SC1_TG070 Custom Rule TG070 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eric Sandeen wrote: > Ok, from a metadump image Jesse provided (thanks!) it's dying in here: > > bno = be32_to_cpu(agfl->agfl_bno[i]); > printf("agfl at %p i is %d agfl_bno[i] %u bno is %u\n", > agfl, i, agfl->agfl_bno[i], bno); > if (verify_agbno(mp, be32_to_cpu(agf->agf_seqno), bno)) > set_agbno_state(mp, be32_to_cpu(agf->agf_seqno), > bno, XR_E_FREE); > > agfl_bno looks corrupt, and bno is coming out to be huge. > > set_agbno_state() does: > > *(ba_bmap[(agno)] + (ag_blockno)/XR_BB_NUM) = .... > > where ag_blockno is that bno above; this wanders us off into bad memory > and boom. I'll see what we can do to fix it up. Ok patch sent, but now I hit: junking entry "soh " in directory inode 128 entry ".nsr" in shortform directory 128 references invalid inode 210397 junking entry ".nsr" in directory inode 128 bogus .. inode number (128) in directory inode 128, clearing inode number xfs_repair: dir2.c:2123: process_dir2: Assertion `(ino != mp->m_sb.sb_rootino && ino != *parent) || (ino == mp->m_sb.sb_rootino && (ino == *parent || need_root_dotdot == 1))' failed. Aborted that's one crunchy filesystem you've got there; what happened to it? -Eric From jstroik@ssec.wisc.edu Wed Jul 1 15:50:46 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61Kojjq036962 for ; Wed, 1 Jul 2009 15:50:46 -0500 X-ASG-Debug-ID: 1246481859-04c7006d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ssec.wisc.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B234C14993E4 for ; Wed, 1 Jul 2009 13:57:39 -0700 (PDT) Received: from ssec.wisc.edu (mahogany.ssec.wisc.edu [128.104.110.2]) by cuda.sgi.com with ESMTP id JXibA1mNMTg6sR72 for ; Wed, 01 Jul 2009 13:57:39 -0700 (PDT) Received: from arthur.ssec.wisc.edu (account jstroik [128.104.111.93] verified) by ssec.wisc.edu (CommuniGate Pro SMTP 5.2.13) with ESMTPSA id 30433411; Wed, 01 Jul 2009 15:51:16 -0500 Message-ID: <4A4BCC44.7050302@ssec.wisc.edu> Date: Wed, 01 Jul 2009 15:51:16 -0500 From: Jesse Stroik User-Agent: Thunderbird 2.0.0.17 (X11/20080915) MIME-Version: 1.0 To: Eric Sandeen CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Seg fault during xfs repair (segmentation fault / segv) Subject: Re: Seg fault during xfs repair (segmentation fault / segv) References: <4A4A596D.8030800@ssec.wisc.edu> <4A4A5C4E.7030605@sandeen.net> <4A4A7D44.7040009@ssec.wisc.edu> <4A4BBECC.8000308@sandeen.net> <4A4BC83A.3080401@sandeen.net> In-Reply-To: <4A4BC83A.3080401@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mahogany.ssec.wisc.edu[128.104.110.2] X-Barracuda-Start-Time: 1246481859 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2290 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eric, Thanks for addressing the issue with xfs_repair. > that's one crunchy filesystem you've got there; what happened to it? It's not entirely clear -- the JBOD and SAS controller seem to have gotten into inconsistent states and I was observing a few SCSI errors for those particular LUNs. While the system was exhibiting the SCSI errors, the user of this file system (and a few others like it on the host) noticed file corruption when reading/writing certain files, then spontaneous corruption after making copies of the files. I'll take a look at the new xfs_check and see what happens. Best, Jesse From sandeen@sandeen.net Wed Jul 1 15:51:54 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61Kpr8c037292 for ; Wed, 1 Jul 2009 15:51:54 -0500 X-ASG-Debug-ID: 1246481545-67a4031f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31084338DC2 for ; Wed, 1 Jul 2009 13:52:25 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id nCRjoqoXLVw6mXLi for ; Wed, 01 Jul 2009 13:52:25 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 89370AABFCC; Wed, 1 Jul 2009 15:52:25 -0500 (CDT) Message-ID: <4A4BCC89.10202@sandeen.net> Date: Wed, 01 Jul 2009 15:52:25 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Jesse Stroik CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Seg fault during xfs repair (segmentation fault / segv) Subject: Re: Seg fault during xfs repair (segmentation fault / segv) References: <4A4A596D.8030800@ssec.wisc.edu> <4A4A5C4E.7030605@sandeen.net> <4A4A7D44.7040009@ssec.wisc.edu> <4A4BBECC.8000308@sandeen.net> <4A4BC83A.3080401@sandeen.net> <4A4BCC44.7050302@ssec.wisc.edu> In-Reply-To: <4A4BCC44.7050302@ssec.wisc.edu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246481546 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2291 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Jesse Stroik wrote: > Eric, > > Thanks for addressing the issue with xfs_repair. > > >> that's one crunchy filesystem you've got there; what happened to it? > > > It's not entirely clear -- the JBOD and SAS controller seem to have > gotten into inconsistent states and I was observing a few SCSI errors > for those particular LUNs. While the system was exhibiting the SCSI > errors, the user of this file system (and a few others like it on the > host) noticed file corruption when reading/writing certain files, then > spontaneous corruption after making copies of the files. > > I'll take a look at the new xfs_check and see what happens. > > Best, > Jesse > Turns out that it runs to completion, but another run still finds corruption. And a debug build trips asserts, so I guess there are still issues. -Eric From sandeen@sandeen.net Wed Jul 1 17:15:03 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n61MF2WW044257 for ; Wed, 1 Jul 2009 17:15:02 -0500 X-ASG-Debug-ID: 1246486533-7bcb00d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8916633921D for ; Wed, 1 Jul 2009 15:15:33 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 2jZDDaF32ZghLUeC for ; Wed, 01 Jul 2009 15:15:33 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 93B72AABFCC; Wed, 1 Jul 2009 17:15:33 -0500 (CDT) Message-ID: <4A4BE005.3000102@sandeen.net> Date: Wed, 01 Jul 2009 17:15:33 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: xfs-oss , Jesse Stroik X-ASG-Orig-Subj: Re: [PATCH] xfs_repair: fix verify_ag_bno() overflow Subject: Re: [PATCH] xfs_repair: fix verify_ag_bno() overflow References: <4A4BC7FF.6050004@sandeen.net> In-Reply-To: <4A4BC7FF.6050004@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246486534 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2295 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Argh self-nak on that one, stupid thinko; it always returns 1 for a non-last AG :/ Just add the cast and don't get fancy! V2 below: ------- The last test in verify_ag_bno() may overflow: return (agbno >= (sbp->sb_dblocks - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); because sb_agcount & sb_agblocks are 32-bit integers; this may then miss corrupt agbnos for the last ag, which can in turn lead to out of bounds memory accesses later, for example when the block nr is used to offset in set_agbno_state(): addr = ba_bmap[(agno)] + (ag_blockno)/XR_BB_NUM; Reported-by: Jesse Stroik Signed-off-by: Eric Sandeen --- diff --git a/repair/dinode.c b/repair/dinode.c index fdf52db..84e1d05 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -319,7 +319,8 @@ verify_ag_bno(xfs_sb_t *sbp, return (agbno >= sbp->sb_agblocks); if (agno == (sbp->sb_agcount - 1)) return (agbno >= (sbp->sb_dblocks - - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); + ((xfs_drfsbno_t)(sbp->sb_agcount - 1) * + sbp->sb_agblocks))); return 1; } From lmcilroy@redhat.com Wed Jul 1 20:52:26 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n621qPsu054394 for ; Wed, 1 Jul 2009 20:52:26 -0500 X-ASG-Debug-ID: 1246499959-0de801a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 241089BDA0A for ; Wed, 1 Jul 2009 18:59:19 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by cuda.sgi.com with ESMTP id usLwxTjb8G11Ft8E for ; Wed, 01 Jul 2009 18:59:19 -0700 (PDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id n621qbs6013852; Wed, 1 Jul 2009 21:52:37 -0400 Received: from mail05.corp.redhat.com (zmail05.collab.prod.int.phx2.redhat.com [10.5.5.46]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n621qaqN002183; Wed, 1 Jul 2009 21:52:36 -0400 Date: Wed, 1 Jul 2009 21:52:36 -0400 (EDT) From: Lachlan McIlroy Reply-To: Lachlan McIlroy To: Alexander Beregalov Cc: Kernel Testers List , xfs@oss.sgi.com, Dave Chinner Message-ID: <584076313.830951246499556455.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> In-Reply-To: <824092896.830901246499419777.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> X-ASG-Orig-Subj: Re: 2.6.30-rc6: BUG at fs/xfs/support/debug.c:109! Subject: Re: 2.6.30-rc6: BUG at fs/xfs/support/debug.c:109! MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.5.5.72] X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 X-Barracuda-Connect: mx1.redhat.com[66.187.233.31] X-Barracuda-Start-Time: 1246499961 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2310 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Alexander, Are you running with this fix? http://git.kernel.org/?p=3Dlinux/kernel/git/stable/linux-2.6.29.y.git;a=3Dc= ommitdiff;h=3Dd415867e0abc35e3b2f0d4196e98c339d6fe29a2 I've seen this assertion before and the above patch fixed it for me. Hmmm, looks like you're running a recent kernel so you should have this fix - maybe the fix wasn't quite right. Lachlan ----- "Alexander Beregalov" wrote: > 2009/6/5 Alexander Beregalov : > > 2009/6/4 Dave Chinner : > >> On Mon, Jun 01, 2009 at 07:22:56PM +0400, Alexander Beregalov > wrote: > >>> Hi > >>> > >>> Assertion failed: *nmap >=3D 1, file: fs/xfs/xfs_bmap.c, line: 4846 > >> ..... > >>> Call Trace: > >>> =C2=A0[] xfs_bmapi+0xad/0x1ad0 > >>> =C2=A0[] xfs_dir2_leaf_getdents+0x640/0x7b0 > >>> =C2=A0[] xfs_readdir+0x12c/0x140 > >>> =C2=A0[] xfs_file_readdir+0x47/0x70 > >>> =C2=A0[] vfs_readdir+0xd0/0xf0 > >>> =C2=A0[] sys_getdents+0x96/0x110 > >>> =C2=A0[] system_call_fastpath+0x16/0x1b > >> > >> I'd say this indicates a corrupted directory. =C2=A0Can you run > >> 'xfs_repair -n' over the filesystem and see if it finds a bad > >> directory? >=20 > Still cannot fix the filesystem. After repairing all corruptions from > LiveCD it still fails on the same workload. >=20 > Do you need metadump or anything else? >=20 > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From sandeen@sandeen.net Wed Jul 1 23:13:29 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n624DTca061473 for ; Wed, 1 Jul 2009 23:13:29 -0500 X-ASG-Debug-ID: 1246508040-038501f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 961F113359CC for ; Wed, 1 Jul 2009 21:14:00 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id CAgWbMoYOrnE699j for ; Wed, 01 Jul 2009 21:14:00 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 35F6EAABFCC; Wed, 1 Jul 2009 23:14:00 -0500 (CDT) Message-ID: <4A4C3407.60501@sandeen.net> Date: Wed, 01 Jul 2009 23:13:59 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: xfs-oss , Jesse Stroik X-ASG-Orig-Subj: [PATCH V3] xfs_repair: fix agcount*agblocks overflows Subject: [PATCH V3] xfs_repair: fix agcount*agblocks overflows References: <4A4BC7FF.6050004@sandeen.net> <4A4BE005.3000102@sandeen.net> In-Reply-To: <4A4BE005.3000102@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246508041 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2315 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean (V3: found another spot with this problem) The last test in verify_ag_bno() may overflow: return (agbno >= (sbp->sb_dblocks - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); because sb_agcount & sb_agblocks are 32-bit integers; this may then miss corrupt agbnos for the last ag, which can in turn lead to out of bounds memory accesses later, for example when the block nr is used to offset in set_agbno_state(): addr = ba_bmap[(agno)] + (ag_blockno)/XR_BB_NUM; Similar problems in mk_incore_fstree Reported-by: Jesse Stroik Signed-off-by: Eric Sandeen --- diff --git a/repair/dinode.c b/repair/dinode.c index fdf52db..84e1d05 100644 --- a/repair/dinode.c +++ b/repair/dinode.c @@ -319,7 +319,8 @@ verify_ag_bno(xfs_sb_t *sbp, return (agbno >= sbp->sb_agblocks); if (agno == (sbp->sb_agcount - 1)) return (agbno >= (sbp->sb_dblocks - - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); + ((xfs_drfsbno_t)(sbp->sb_agcount - 1) * + sbp->sb_agblocks))); return 1; } diff --git a/repair/phase5.c b/repair/phase5.c index 2c243b6..77c7363 100644 --- a/repair/phase5.c +++ b/repair/phase5.c @@ -113,7 +113,8 @@ mk_incore_fstree(xfs_mount_t *mp, xfs_agnumber_t agno) ag_end = mp->m_sb.sb_agblocks; else ag_end = mp->m_sb.sb_dblocks - - mp->m_sb.sb_agblocks * (mp->m_sb.sb_agcount - 1); + (xfs_drfsbno_t)mp->m_sb.sb_agblocks * + (mp->m_sb.sb_agcount - 1); /* * ok, now find the number of extents, keep track of the From felixb@sgi.com Wed Jul 1 23:50:42 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n624og8m063613 for ; Wed, 1 Jul 2009 23:50:42 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id 137D88F80AD for ; Wed, 1 Jul 2009 21:51:12 -0700 (PDT) Received: from [IPv6???1] (sshgate.corp.sgi.com [198.149.20.12]) by estes.americas.sgi.com (Postfix) with ESMTP id A8A387000103; Wed, 1 Jul 2009 23:51:11 -0500 (CDT) Cc: Christoph Hellwig , xfs mailing list Message-Id: <6E6C2EFA-9893-4585-AA36-CDE866C7CE45@sgi.com> From: Felix Blyakher To: Eric Sandeen In-Reply-To: <4A48D218.5050208@sandeen.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: [PATCH] add more statics & drop some unused functions Date: Wed, 1 Jul 2009 23:51:10 -0500 References: <4A1C3D65.4020306@sandeen.net> <20090527102319.GA28274@infradead.org> <4A48D218.5050208@sandeen.net> X-Mailer: Apple Mail (2.930.3) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Jun 29, 2009, at 9:39 AM, Eric Sandeen wrote: > Christoph Hellwig wrote: >> On Tue, May 26, 2009 at 02:05:09PM -0500, Eric Sandeen wrote: >>> A lot more functions could be made static, but they need >>> forward declarations; this does some easy ones, and also >>> found a few unused functions in the process. >> >> Looks good to me. >> > > Felix, do you plan to merge this one? Eric, this patch doesn't apply cleanly now: Applying xfs: add more statics & drop some unused functions error: patch failed: fs/xfs/linux-2.6/xfs_sync.c:640 error: fs/xfs/linux-2.6/xfs_sync.c: patch does not apply error: patch failed: fs/xfs/linux-2.6/xfs_sync.h:51 error: fs/xfs/linux-2.6/xfs_sync.h: patch does not apply Patch failed at 0002. Can you rebase and repost it? Thanks, Felix From sandeen@sandeen.net Thu Jul 2 00:09:05 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,J_CHICKENPOX_65 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62594W1066895 for ; Thu, 2 Jul 2009 00:09:04 -0500 X-ASG-Debug-ID: 1246511758-5831020e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 252E010951A2 for ; Wed, 1 Jul 2009 22:15:58 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 0Zpy2W8SWtjdVF6F for ; Wed, 01 Jul 2009 22:15:58 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 8CBFDAABFCC; Thu, 2 Jul 2009 00:09:33 -0500 (CDT) Message-ID: <4A4C410D.5040205@sandeen.net> Date: Thu, 02 Jul 2009 00:09:33 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Felix Blyakher CC: Christoph Hellwig , xfs mailing list X-ASG-Orig-Subj: Re: [PATCH] add more statics & drop some unused functions Subject: Re: [PATCH] add more statics & drop some unused functions References: <4A1C3D65.4020306@sandeen.net> <20090527102319.GA28274@infradead.org> <4A48D218.5050208@sandeen.net> <6E6C2EFA-9893-4585-AA36-CDE866C7CE45@sgi.com> In-Reply-To: <6E6C2EFA-9893-4585-AA36-CDE866C7CE45@sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246511760 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2319 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Felix Blyakher wrote: > On Jun 29, 2009, at 9:39 AM, Eric Sandeen wrote: > > >> Christoph Hellwig wrote: >> >>> On Tue, May 26, 2009 at 02:05:09PM -0500, Eric Sandeen wrote: >>> >>>> A lot more functions could be made static, but they need >>>> forward declarations; this does some easy ones, and also >>>> found a few unused functions in the process. >>>> >>> Looks good to me. >>> >>> >> Felix, do you plan to merge this one? >> > > Eric, this patch doesn't apply cleanly now: > > Applying xfs: add more statics & drop some unused functions > error: patch failed: fs/xfs/linux-2.6/xfs_sync.c:640 > error: fs/xfs/linux-2.6/xfs_sync.c: patch does not apply > error: patch failed: fs/xfs/linux-2.6/xfs_sync.h:51 > error: fs/xfs/linux-2.6/xfs_sync.h: patch does not apply > Patch failed at 0002. > > Can you rebase and repost it? > > Thanks, > Felix > > This one applies to linus' tree ok.... -Eric diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index a220d36..c709ed6 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -687,7 +687,7 @@ xfs_barrier_test( return error; } -void +STATIC void xfs_mountfs_check_barriers(xfs_mount_t *mp) { int error; diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index b619d6b..fbf3e02 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -740,21 +740,6 @@ __xfs_inode_clear_reclaim_tag( XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); } -void -xfs_inode_clear_reclaim_tag( - xfs_inode_t *ip) -{ - xfs_mount_t *mp = ip->i_mount; - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); - - read_lock(&pag->pag_ici_lock); - spin_lock(&ip->i_flags_lock); - __xfs_inode_clear_reclaim_tag(mp, pag, ip); - spin_unlock(&ip->i_flags_lock); - read_unlock(&pag->pag_ici_lock); - xfs_put_perag(mp, pag); -} - STATIC int xfs_reclaim_inode_now( struct xfs_inode *ip, diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h index 2a10301..23e7e7e 100644 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ b/fs/xfs/linux-2.6/xfs_sync.h @@ -48,7 +48,6 @@ int xfs_reclaim_inode(struct xfs_inode *ip, int locked, int sync_mode); int xfs_reclaim_inodes(struct xfs_mount *mp, int mode); void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); -void xfs_inode_clear_reclaim_tag(struct xfs_inode *ip); void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, struct xfs_inode *ip); diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index f24b50b..af3cfeb 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -91,9 +91,6 @@ typedef struct xfs_agf { #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) #define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) -extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, - xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); - /* * Size of the unlinked inode hash table in the agi. */ diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 2cf944e..6316004 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -2248,7 +2248,7 @@ xfs_alloc_put_freelist( /* * Read in the allocation group header (free/alloc section). */ -int /* error */ +STATIC int /* error */ xfs_read_agf( struct xfs_mount *mp, /* mount point structure */ struct xfs_trans *tp, /* transaction pointer */ diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 7928b99..9759724 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -3713,7 +3713,7 @@ done: * entry (null if none). Else, *lastxp will be set to the index * of the found entry; *gotp will contain the entry. */ -xfs_bmbt_rec_host_t * /* pointer to found extent entry */ +STATIC xfs_bmbt_rec_host_t * /* pointer to found extent entry */ xfs_bmap_search_multi_extents( xfs_ifork_t *ifp, /* inode fork pointer */ xfs_fileoff_t bno, /* block number searched for */ diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index 1b8ff92..56f62d2 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h @@ -392,17 +392,6 @@ xfs_bmap_count_blocks( int whichfork, int *count); -/* - * Search the extent records for the entry containing block bno. - * If bno lies in a hole, point to the next entry. If bno lies - * past eof, *eofp will be set, and *prevp will contain the last - * entry (null if none). Else, *lastxp will be set to the index - * of the found entry; *gotp will contain the entry. - */ -xfs_bmbt_rec_host_t * -xfs_bmap_search_multi_extents(struct xfs_ifork *, xfs_fileoff_t, int *, - xfs_extnum_t *, xfs_bmbt_irec_t *, xfs_bmbt_irec_t *); - #endif /* __KERNEL__ */ #endif /* __XFS_BMAP_H__ */ diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c index 5c1ade0..eb7b702 100644 --- a/fs/xfs/xfs_bmap_btree.c +++ b/fs/xfs/xfs_bmap_btree.c @@ -202,16 +202,6 @@ xfs_bmbt_get_state( ext_flag); } -/* Endian flipping versions of the bmbt extraction functions */ -void -xfs_bmbt_disk_get_all( - xfs_bmbt_rec_t *r, - xfs_bmbt_irec_t *s) -{ - __xfs_bmbt_get_all(get_unaligned_be64(&r->l0), - get_unaligned_be64(&r->l1), s); -} - /* * Extract the blockcount field from an on disk bmap extent record. */ @@ -816,6 +806,16 @@ xfs_bmbt_trace_key( *l1 = 0; } +/* Endian flipping versions of the bmbt extraction functions */ +STATIC void +xfs_bmbt_disk_get_all( + xfs_bmbt_rec_t *r, + xfs_bmbt_irec_t *s) +{ + __xfs_bmbt_get_all(get_unaligned_be64(&r->l0), + get_unaligned_be64(&r->l1), s); +} + STATIC void xfs_bmbt_trace_record( struct xfs_btree_cur *cur, diff --git a/fs/xfs/xfs_bmap_btree.h b/fs/xfs/xfs_bmap_btree.h index 0e8df00..5549d49 100644 --- a/fs/xfs/xfs_bmap_btree.h +++ b/fs/xfs/xfs_bmap_btree.h @@ -220,7 +220,6 @@ extern xfs_fsblock_t xfs_bmbt_get_startblock(xfs_bmbt_rec_host_t *r); extern xfs_fileoff_t xfs_bmbt_get_startoff(xfs_bmbt_rec_host_t *r); extern xfs_exntst_t xfs_bmbt_get_state(xfs_bmbt_rec_host_t *r); -extern void xfs_bmbt_disk_get_all(xfs_bmbt_rec_t *r, xfs_bmbt_irec_t *s); extern xfs_filblks_t xfs_bmbt_disk_get_blockcount(xfs_bmbt_rec_t *r); extern xfs_fileoff_t xfs_bmbt_disk_get_startoff(xfs_bmbt_rec_t *r); diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index e9df995..cde5a26 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -646,46 +646,6 @@ xfs_btree_read_bufl( } /* - * Get a buffer for the block, return it read in. - * Short-form addressing. - */ -int /* error */ -xfs_btree_read_bufs( - xfs_mount_t *mp, /* file system mount point */ - xfs_trans_t *tp, /* transaction pointer */ - xfs_agnumber_t agno, /* allocation group number */ - xfs_agblock_t agbno, /* allocation group block number */ - uint lock, /* lock flags for read_buf */ - xfs_buf_t **bpp, /* buffer for agno/agbno */ - int refval) /* ref count value for buffer */ -{ - xfs_buf_t *bp; /* return value */ - xfs_daddr_t d; /* real disk block address */ - int error; - - ASSERT(agno != NULLAGNUMBER); - ASSERT(agbno != NULLAGBLOCK); - d = XFS_AGB_TO_DADDR(mp, agno, agbno); - if ((error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, d, - mp->m_bsize, lock, &bp))) { - return error; - } - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); - if (bp != NULL) { - switch (refval) { - case XFS_ALLOC_BTREE_REF: - XFS_BUF_SET_VTYPE_REF(bp, B_FS_MAP, refval); - break; - case XFS_INO_BTREE_REF: - XFS_BUF_SET_VTYPE_REF(bp, B_FS_INOMAP, refval); - break; - } - } - *bpp = bp; - return 0; -} - -/* * Read-ahead the block, don't wait for it, don't return a buffer. * Long-form addressing. */ @@ -2951,7 +2911,7 @@ error0: * inode we have to copy the single block it was pointing to into the * inode. */ -int +STATIC int xfs_btree_kill_iroot( struct xfs_btree_cur *cur) { diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h index 4f852b7..7fa0706 100644 --- a/fs/xfs/xfs_btree.h +++ b/fs/xfs/xfs_btree.h @@ -379,20 +379,6 @@ xfs_btree_read_bufl( int refval);/* ref count value for buffer */ /* - * Get a buffer for the block, return it read in. - * Short-form addressing. - */ -int /* error */ -xfs_btree_read_bufs( - struct xfs_mount *mp, /* file system mount point */ - struct xfs_trans *tp, /* transaction pointer */ - xfs_agnumber_t agno, /* allocation group number */ - xfs_agblock_t agbno, /* allocation group block number */ - uint lock, /* lock flags for read_buf */ - struct xfs_buf **bpp, /* buffer for agno/agbno */ - int refval);/* ref count value for buffer */ - -/* * Read-ahead the block, don't wait for it, don't return a buffer. * Long-form addressing. */ @@ -432,7 +418,6 @@ int xfs_btree_decrement(struct xfs_btree_cur *, int, int *); int xfs_btree_lookup(struct xfs_btree_cur *, xfs_lookup_t, int *); int xfs_btree_update(struct xfs_btree_cur *, union xfs_btree_rec *); int xfs_btree_new_iroot(struct xfs_btree_cur *, int *, int *); -int xfs_btree_kill_iroot(struct xfs_btree_cur *); int xfs_btree_insert(struct xfs_btree_cur *, int *); int xfs_btree_delete(struct xfs_btree_cur *, int *); int xfs_btree_get_rec(struct xfs_btree_cur *, union xfs_btree_rec **, int *); diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 1f22d65..2dcb3d7 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -641,7 +641,7 @@ xfs_iformat_btree( return 0; } -void +STATIC void xfs_dinode_from_disk( xfs_icdinode_t *to, xfs_dinode_t *from) @@ -1237,7 +1237,7 @@ xfs_isize_check( * In that case the pages will still be in memory, but the inode size * will never have been updated. */ -xfs_fsize_t +STATIC xfs_fsize_t xfs_file_last_byte( xfs_inode_t *ip) { @@ -3827,7 +3827,7 @@ xfs_iext_inline_to_direct( /* * Resize an extent indirection array to new_size bytes. */ -void +STATIC void xfs_iext_realloc_indirect( xfs_ifork_t *ifp, /* inode fork pointer */ int new_size) /* new indirection array size */ @@ -3852,7 +3852,7 @@ xfs_iext_realloc_indirect( /* * Switch from indirection array to linear (direct) extent allocations. */ -void +STATIC void xfs_iext_indirect_to_direct( xfs_ifork_t *ifp) /* inode fork pointer */ { diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index 1804f86..5104dae 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -521,7 +521,6 @@ void xfs_ipin(xfs_inode_t *); void xfs_iunpin(xfs_inode_t *); int xfs_iflush(xfs_inode_t *, uint); void xfs_ichgtime(xfs_inode_t *, int); -xfs_fsize_t xfs_file_last_byte(xfs_inode_t *); void xfs_lock_inodes(xfs_inode_t **, int, uint); void xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint); @@ -589,8 +588,6 @@ int xfs_itobp(struct xfs_mount *, struct xfs_trans *, struct xfs_buf **, uint); int xfs_iread(struct xfs_mount *, struct xfs_trans *, struct xfs_inode *, xfs_daddr_t, uint); -void xfs_dinode_from_disk(struct xfs_icdinode *, - struct xfs_dinode *); void xfs_dinode_to_disk(struct xfs_dinode *, struct xfs_icdinode *); void xfs_idestroy_fork(struct xfs_inode *, int); @@ -609,8 +606,6 @@ void xfs_iext_remove_inline(xfs_ifork_t *, xfs_extnum_t, int); void xfs_iext_remove_direct(xfs_ifork_t *, xfs_extnum_t, int); void xfs_iext_remove_indirect(xfs_ifork_t *, xfs_extnum_t, int); void xfs_iext_realloc_direct(xfs_ifork_t *, int); -void xfs_iext_realloc_indirect(xfs_ifork_t *, int); -void xfs_iext_indirect_to_direct(xfs_ifork_t *); void xfs_iext_direct_to_inline(xfs_ifork_t *, xfs_extnum_t); void xfs_iext_inline_to_direct(xfs_ifork_t *, int); void xfs_iext_destroy(xfs_ifork_t *); diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index aeb2d22..c471122 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -39,7 +39,7 @@ #include "xfs_error.h" #include "xfs_btree.h" -int +STATIC int xfs_internal_inum( xfs_mount_t *mp, xfs_ino_t ino) diff --git a/fs/xfs/xfs_itable.h b/fs/xfs/xfs_itable.h index 1fb04e7..20792bf 100644 --- a/fs/xfs/xfs_itable.h +++ b/fs/xfs/xfs_itable.h @@ -99,11 +99,6 @@ xfs_bulkstat_one( void *dibuff, int *stat); -int -xfs_internal_inum( - xfs_mount_t *mp, - xfs_ino_t ino); - typedef int (*inumbers_fmt_pf)( void __user *ubuffer, /* buffer to write to */ const xfs_inogrp_t *buffer, /* buffer to read from */ diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index bcad5f4..679c7c4 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -451,8 +451,6 @@ extern int xlog_find_tail(xlog_t *log, extern int xlog_recover(xlog_t *log); extern int xlog_recover_finish(xlog_t *log); extern void xlog_pack_data(xlog_t *log, xlog_in_core_t *iclog, int); -extern void xlog_recover_process_iunlinks(xlog_t *log); - extern struct xfs_buf *xlog_get_bp(xlog_t *, int); extern void xlog_put_bp(struct xfs_buf *); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 47da2fb..1099395 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -3263,7 +3263,7 @@ xlog_recover_process_one_iunlink( * freeing of the inode and its removal from the list must be * atomic. */ -void +STATIC void xlog_recover_process_iunlinks( xlog_t *log) { diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 5c6f092..8b6c9e8 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1568,7 +1568,7 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields) * * The m_sb_lock must be held when this routine is called. */ -int +STATIC int xfs_mod_incore_sb_unlocked( xfs_mount_t *mp, xfs_sb_field_t field, diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index a512238..a6c023b 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -414,13 +414,10 @@ typedef struct xfs_mod_sb { extern int xfs_log_sbcount(xfs_mount_t *, uint); extern int xfs_mountfs(xfs_mount_t *mp); -extern void xfs_mountfs_check_barriers(xfs_mount_t *mp); extern void xfs_unmountfs(xfs_mount_t *); extern int xfs_unmountfs_writesb(xfs_mount_t *); extern int xfs_mod_incore_sb(xfs_mount_t *, xfs_sb_field_t, int64_t, int); -extern int xfs_mod_incore_sb_unlocked(xfs_mount_t *, xfs_sb_field_t, - int64_t, int); extern int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *, uint, int); extern int xfs_mount_log_sb(xfs_mount_t *, __int64_t); diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c index afee7eb..4b0613d 100644 --- a/fs/xfs/xfs_mru_cache.c +++ b/fs/xfs/xfs_mru_cache.c @@ -564,35 +564,6 @@ xfs_mru_cache_lookup( } /* - * To look up an element using its key, but leave its location in the internal - * lists alone, call xfs_mru_cache_peek(). If the element isn't found, this - * function returns NULL. - * - * See the comments above the declaration of the xfs_mru_cache_lookup() function - * for important locking information pertaining to this call. - */ -void * -xfs_mru_cache_peek( - xfs_mru_cache_t *mru, - unsigned long key) -{ - xfs_mru_cache_elem_t *elem; - - ASSERT(mru && mru->lists); - if (!mru || !mru->lists) - return NULL; - - spin_lock(&mru->lock); - elem = radix_tree_lookup(&mru->store, key); - if (!elem) - spin_unlock(&mru->lock); - else - __release(mru_lock); /* help sparse not be stupid */ - - return elem ? elem->value : NULL; -} - -/* * To release the internal data structure spinlock after having performed an * xfs_mru_cache_lookup() or an xfs_mru_cache_peek(), call xfs_mru_cache_done() * with the data store pointer. diff --git a/fs/xfs/xfs_mru_cache.h b/fs/xfs/xfs_mru_cache.h index dd58ea1..5d439f3 100644 --- a/fs/xfs/xfs_mru_cache.h +++ b/fs/xfs/xfs_mru_cache.h @@ -49,7 +49,6 @@ int xfs_mru_cache_insert(struct xfs_mru_cache *mru, unsigned long key, void * xfs_mru_cache_remove(struct xfs_mru_cache *mru, unsigned long key); void xfs_mru_cache_delete(struct xfs_mru_cache *mru, unsigned long key); void *xfs_mru_cache_lookup(struct xfs_mru_cache *mru, unsigned long key); -void *xfs_mru_cache_peek(struct xfs_mru_cache *mru, unsigned long key); void xfs_mru_cache_done(struct xfs_mru_cache *mru); #endif /* __XFS_MRU_CACHE_H__ */ diff --git a/fs/xfs/xfs_rw.h b/fs/xfs/xfs_rw.h index f76c003..ae65f0d 100644 --- a/fs/xfs/xfs_rw.h +++ b/fs/xfs/xfs_rw.h @@ -78,10 +78,4 @@ extern int xfs_read_buf(struct xfs_mount *mp, xfs_buftarg_t *btp, extern void xfs_ioerror_alert(char *func, struct xfs_mount *mp, xfs_buf_t *bp, xfs_daddr_t blkno); -/* - * Prototypes for functions in xfs_vnodeops.c. - */ -extern int xfs_free_eofblocks(struct xfs_mount *mp, struct xfs_inode *ip, - int flags); - #endif /* __XFS_RW_H__ */ diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index c4eca5e..1dd7068 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -716,7 +716,7 @@ xfs_fsync( * when the link count isn't zero and by xfs_dm_punch_hole() when * punching a hole to EOF. */ -int +STATIC int xfs_free_eofblocks( xfs_mount_t *mp, xfs_inode_t *ip, From felixb@sgi.com Thu Jul 2 00:24:03 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n625O3B4067890 for ; Thu, 2 Jul 2009 00:24:03 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5A86A30407B for ; Wed, 1 Jul 2009 22:24:33 -0700 (PDT) Received: from [IPv6???1] (sshgate.corp.sgi.com [198.149.20.12]) by estes.americas.sgi.com (Postfix) with ESMTP id EC5807000103; Thu, 2 Jul 2009 00:24:32 -0500 (CDT) Cc: xfs-oss , Jesse Stroik Message-Id: From: Felix Blyakher To: Eric Sandeen In-Reply-To: <4A4C3407.60501@sandeen.net> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: [PATCH V3] xfs_repair: fix agcount*agblocks overflows Date: Thu, 2 Jul 2009 00:24:31 -0500 References: <4A4BC7FF.6050004@sandeen.net> <4A4BE005.3000102@sandeen.net> <4A4C3407.60501@sandeen.net> X-Mailer: Apple Mail (2.930.3) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Jul 1, 2009, at 11:13 PM, Eric Sandeen wrote: > (V3: found another spot with this problem) > > The last test in verify_ag_bno() may overflow: > > return (agbno >= (sbp->sb_dblocks - > ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); > > because sb_agcount & sb_agblocks are 32-bit integers; this > may then miss corrupt agbnos for the last ag, which can in > turn lead to out of bounds memory accesses later, for example > when the block nr is used to offset in set_agbno_state(): > > addr = ba_bmap[(agno)] + (ag_blockno)/XR_BB_NUM; > > Similar problems in mk_incore_fstree > > Reported-by: Jesse Stroik > Signed-off-by: Eric Sandeen Reviewed-by: Felix Blyakher > > --- > > diff --git a/repair/dinode.c b/repair/dinode.c > index fdf52db..84e1d05 100644 > --- a/repair/dinode.c > +++ b/repair/dinode.c > @@ -319,7 +319,8 @@ verify_ag_bno(xfs_sb_t *sbp, > return (agbno >= sbp->sb_agblocks); > if (agno == (sbp->sb_agcount - 1)) > return (agbno >= (sbp->sb_dblocks - > - ((sbp->sb_agcount - 1) * sbp->sb_agblocks))); > + ((xfs_drfsbno_t)(sbp->sb_agcount - 1) * > + sbp->sb_agblocks))); > return 1; > } > > diff --git a/repair/phase5.c b/repair/phase5.c > index 2c243b6..77c7363 100644 > --- a/repair/phase5.c > +++ b/repair/phase5.c > @@ -113,7 +113,8 @@ mk_incore_fstree(xfs_mount_t *mp, xfs_agnumber_t > agno) > ag_end = mp->m_sb.sb_agblocks; > else > ag_end = mp->m_sb.sb_dblocks - > - mp->m_sb.sb_agblocks * (mp->m_sb.sb_agcount - 1); > + (xfs_drfsbno_t)mp->m_sb.sb_agblocks * > + (mp->m_sb.sb_agcount - 1); > > /* > * ok, now find the number of extents, keep track of the > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From felixb@oss.sgi.com Thu Jul 2 00:27:57 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n625Rvs7068256 for ; Thu, 2 Jul 2009 00:27:57 -0500 Received: (from felixb@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id n625RpbI068086; Thu, 2 Jul 2009 00:27:51 -0500 Date: Thu, 2 Jul 2009 00:27:51 -0500 Message-Id: <200907020527.n625RpbI068086@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, mainline, updated. v2.6.30-rc4-7941-g1d89b30 X-Git-Refname: refs/heads/mainline X-Git-Reftype: branch X-Git-Oldrev: 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 X-Git-Newrev: 1d89b30cc9be41af87881682ec82e2c107849dbe This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, mainline has been updated fd40261 Merge branch 'master' of git://oss.sgi.com/xfs/xfs into for-linus e83f1eb xfs: fix small mismerge in xfs_vn_mknod 493b87e xfs: fix warnings with CONFIG_XFS_QUOTA disabled 7747a0b xfs: fix freeing memory in xfs_getbmap() f950221 xfs: remove ->write_super and stop maintaining ->s_dirt 35fd035 Merge branch 'master' of git://git.kernel.org/pub/scm/fs/xfs/xfs c905959 Merge branch 'for-2.6.31' of git://git.kernel.dk/linux-2.6-block ef14f0c xfs: use generic Posix ACL code 8b5403a xfs: remove SYNC_BDFLUSH b0710cc xfs: remove SYNC_IOWAIT 075fe10 xfs: split xfs_sync_inodes fe588ed xfs: use generic inode iterator in xfs_qm_dqrele_all_inodes 75f3cb1 xfs: introduce a per-ag inode iterator abc1064 xfs: remove unused parameter from xfs_reclaim_inodes 1da8eec xfs: factor out inode validation for sync 845b6d0 xfs: split inode flushing from xfs_sync_inodes_ag 5a34d5c xfs: split inode data writeback from xfs_sync_inodes_ag 7d09525 xfs: kill xfs_qmops 0c5e1ce xfs: validate quota log items during log recovery e169683 xfs: update max log size 4156e73 xfs: prevent deadlock in xfs_qm_shake() 0963248 xfs: fix overflow in xfs_growfs_data_private e1defc4 block: Do away with the notion of hardsect_size ec91d13 xfs: fix double unlock in xfs_swap_extents() 6321e3e xfs: fix getbmap vs mmap deadlock 4be4a00 xfs: a couple getbmap cleanups 2ac00af xfs: add more checks to superblock validation f25181f xfs_file_last_byte() needs to acquire ilock from 07a2039b8eb0af4ff464efd3dfd95de5c02648c6 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- ----------------------------------------------------------------------- Summary of changes: fs/xfs/Kconfig | 1 + fs/xfs/Makefile | 5 +- fs/xfs/linux-2.6/xfs_acl.c | 523 +++++++++++++++++++++++ fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_ioctl.c | 25 +- fs/xfs/linux-2.6/xfs_iops.c | 53 +-- fs/xfs/linux-2.6/xfs_lrw.c | 1 - fs/xfs/linux-2.6/xfs_quotaops.c | 4 +- fs/xfs/linux-2.6/xfs_super.c | 61 ++-- fs/xfs/linux-2.6/xfs_sync.c | 479 +++++++++++---------- fs/xfs/linux-2.6/xfs_sync.h | 19 +- fs/xfs/linux-2.6/xfs_xattr.c | 67 +--- fs/xfs/quota/xfs_dquot.c | 5 +- fs/xfs/quota/xfs_dquot.h | 1 - fs/xfs/quota/xfs_dquot_item.c | 1 - fs/xfs/quota/xfs_qm.c | 168 ++++---- fs/xfs/quota/xfs_qm.h | 21 - fs/xfs/quota/xfs_qm_bhv.c | 77 +---- fs/xfs/quota/xfs_qm_stats.c | 1 - fs/xfs/quota/xfs_qm_syscalls.c | 113 ++---- fs/xfs/quota/xfs_trans_dquot.c | 66 ++-- fs/xfs/xfs_acl.c | 874 --------------------------------------- fs/xfs/xfs_acl.h | 97 ++--- fs/xfs/xfs_ag.h | 2 + fs/xfs/xfs_arch.h | 32 -- fs/xfs/xfs_attr.c | 13 +- fs/xfs/xfs_bmap.c | 34 +- fs/xfs/xfs_bmap_btree.c | 4 +- fs/xfs/xfs_filestream.c | 6 +- fs/xfs/xfs_fs.h | 11 +- fs/xfs/xfs_iget.c | 8 +- fs/xfs/xfs_inode.c | 1 - fs/xfs/xfs_inode.h | 6 + fs/xfs/xfs_iomap.c | 13 +- fs/xfs/xfs_log_recover.c | 38 ++- fs/xfs/xfs_mount.c | 105 ++++- fs/xfs/xfs_mount.h | 84 +---- fs/xfs/xfs_qmops.c | 152 ------- fs/xfs/xfs_quota.h | 129 +++--- fs/xfs/xfs_rename.c | 3 +- fs/xfs/xfs_rw.c | 1 - fs/xfs/xfs_trans.c | 17 +- fs/xfs/xfs_utils.c | 2 +- fs/xfs/xfs_vnodeops.c | 114 +++--- fs/xfs/xfs_vnodeops.h | 1 + 45 files changed, 1342 insertions(+), 2098 deletions(-) create mode 100644 fs/xfs/linux-2.6/xfs_acl.c delete mode 100644 fs/xfs/xfs_acl.c delete mode 100644 fs/xfs/xfs_qmops.c hooks/post-receive -- XFS development tree From felixb@oss.sgi.com Thu Jul 2 00:27:58 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n625RwwD068294 for ; Thu, 2 Jul 2009 00:27:58 -0500 Received: (from felixb@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id n625RvoR068262; Thu, 2 Jul 2009 00:27:57 -0500 Date: Thu, 2 Jul 2009 00:27:57 -0500 Message-Id: <200907020527.n625RvoR068262@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.30-rc4-1242-g370f048 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3 X-Git-Newrev: 370f048214b4e9aa2102fa3c454ae1374da287c5 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 370f048 xfs: add more statics & drop some unused functions from e83f1eb6bfc4004c19a99ee5f5aa65bd3fbecec3 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 370f048214b4e9aa2102fa3c454ae1374da287c5 Author: Eric Sandeen Date: Thu Jul 2 00:09:33 2009 -0500 xfs: add more statics & drop some unused functions A lot more functions could be made static, but they need forward declarations; this does some easy ones, and also found a few unused functions in the process. Signed-off-by: Eric Sandeen Reviewed-by: Christoph Hellwig Signed-off-by: Felix Blyakher ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_super.c | 2 +- fs/xfs/linux-2.6/xfs_sync.c | 15 --------------- fs/xfs/linux-2.6/xfs_sync.h | 1 - fs/xfs/xfs_ag.h | 3 --- fs/xfs/xfs_alloc.c | 2 +- fs/xfs/xfs_bmap.c | 2 +- fs/xfs/xfs_bmap.h | 11 ----------- fs/xfs/xfs_bmap_btree.c | 20 ++++++++++---------- fs/xfs/xfs_bmap_btree.h | 1 - fs/xfs/xfs_btree.c | 42 +----------------------------------------- fs/xfs/xfs_btree.h | 15 --------------- fs/xfs/xfs_inode.c | 8 ++++---- fs/xfs/xfs_inode.h | 5 ----- fs/xfs/xfs_itable.c | 2 +- fs/xfs/xfs_itable.h | 5 ----- fs/xfs/xfs_log_priv.h | 2 -- fs/xfs/xfs_log_recover.c | 2 +- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_mount.h | 3 --- fs/xfs/xfs_mru_cache.c | 29 ----------------------------- fs/xfs/xfs_mru_cache.h | 1 - fs/xfs/xfs_rw.h | 6 ------ fs/xfs/xfs_vnodeops.c | 2 +- 23 files changed, 22 insertions(+), 159 deletions(-) hooks/post-receive -- XFS development tree From felixb@sgi.com Thu Jul 2 00:28:38 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,J_CHICKENPOX_65 autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n625Sck7068345 for ; Thu, 2 Jul 2009 00:28:38 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay3.corp.sgi.com (Postfix) with ESMTP id 88ADEAC016 for ; Wed, 1 Jul 2009 22:29:07 -0700 (PDT) Received: from [IPv6???1] (sshgate.corp.sgi.com [198.149.20.12]) by estes.americas.sgi.com (Postfix) with ESMTP id E1BE07000103; Thu, 2 Jul 2009 00:29:06 -0500 (CDT) Cc: Christoph Hellwig , xfs mailing list Message-Id: From: Felix Blyakher To: Eric Sandeen In-Reply-To: <4A4C410D.5040205@sandeen.net> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: [PATCH] add more statics & drop some unused functions Date: Thu, 2 Jul 2009 00:29:06 -0500 References: <4A1C3D65.4020306@sandeen.net> <20090527102319.GA28274@infradead.org> <4A48D218.5050208@sandeen.net> <6E6C2EFA-9893-4585-AA36-CDE866C7CE45@sgi.com> <4A4C410D.5040205@sandeen.net> X-Mailer: Apple Mail (2.930.3) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Jul 2, 2009, at 12:09 AM, Eric Sandeen wrote: > Felix Blyakher wrote: >> On Jun 29, 2009, at 9:39 AM, Eric Sandeen wrote: >> >> >>> Christoph Hellwig wrote: >>> >>>> On Tue, May 26, 2009 at 02:05:09PM -0500, Eric Sandeen wrote: >>>> >>>>> A lot more functions could be made static, but they need >>>>> forward declarations; this does some easy ones, and also >>>>> found a few unused functions in the process. >>>>> >>>> Looks good to me. >>>> >>>> >>> Felix, do you plan to merge this one? >>> >> >> Eric, this patch doesn't apply cleanly now: >> >> Applying xfs: add more statics & drop some unused functions >> error: patch failed: fs/xfs/linux-2.6/xfs_sync.c:640 >> error: fs/xfs/linux-2.6/xfs_sync.c: patch does not apply >> error: patch failed: fs/xfs/linux-2.6/xfs_sync.h:51 >> error: fs/xfs/linux-2.6/xfs_sync.h: patch does not apply >> Patch failed at 0002. >> >> Can you rebase and repost it? >> >> Thanks, >> Felix >> >> > This one applies to linus' tree ok.... It does. Applied. Thanks. Felix > > > -Eric > > diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/ > xfs_super.c > index a220d36..c709ed6 100644 > --- a/fs/xfs/linux-2.6/xfs_super.c > +++ b/fs/xfs/linux-2.6/xfs_super.c > @@ -687,7 +687,7 @@ xfs_barrier_test( > return error; > } > > -void > +STATIC void > xfs_mountfs_check_barriers(xfs_mount_t *mp) > { > int error; > diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c > index b619d6b..fbf3e02 100644 > --- a/fs/xfs/linux-2.6/xfs_sync.c > +++ b/fs/xfs/linux-2.6/xfs_sync.c > @@ -740,21 +740,6 @@ __xfs_inode_clear_reclaim_tag( > XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); > } > > -void > -xfs_inode_clear_reclaim_tag( > - xfs_inode_t *ip) > -{ > - xfs_mount_t *mp = ip->i_mount; > - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); > - > - read_lock(&pag->pag_ici_lock); > - spin_lock(&ip->i_flags_lock); > - __xfs_inode_clear_reclaim_tag(mp, pag, ip); > - spin_unlock(&ip->i_flags_lock); > - read_unlock(&pag->pag_ici_lock); > - xfs_put_perag(mp, pag); > -} > - > STATIC int > xfs_reclaim_inode_now( > struct xfs_inode *ip, > diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h > index 2a10301..23e7e7e 100644 > --- a/fs/xfs/linux-2.6/xfs_sync.h > +++ b/fs/xfs/linux-2.6/xfs_sync.h > @@ -48,7 +48,6 @@ int xfs_reclaim_inode(struct xfs_inode *ip, int > locked, int sync_mode); > int xfs_reclaim_inodes(struct xfs_mount *mp, int mode); > > void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); > -void xfs_inode_clear_reclaim_tag(struct xfs_inode *ip); > void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct > xfs_perag *pag, > struct xfs_inode *ip); > > diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h > index f24b50b..af3cfeb 100644 > --- a/fs/xfs/xfs_ag.h > +++ b/fs/xfs/xfs_ag.h > @@ -91,9 +91,6 @@ typedef struct xfs_agf { > #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) > #define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) > > -extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, > - xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); > - > /* > * Size of the unlinked inode hash table in the agi. > */ > diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c > index 2cf944e..6316004 100644 > --- a/fs/xfs/xfs_alloc.c > +++ b/fs/xfs/xfs_alloc.c > @@ -2248,7 +2248,7 @@ xfs_alloc_put_freelist( > /* > * Read in the allocation group header (free/alloc section). > */ > -int /* error */ > +STATIC int /* error */ > xfs_read_agf( > struct xfs_mount *mp, /* mount point structure */ > struct xfs_trans *tp, /* transaction pointer */ > diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c > index 7928b99..9759724 100644 > --- a/fs/xfs/xfs_bmap.c > +++ b/fs/xfs/xfs_bmap.c > @@ -3713,7 +3713,7 @@ done: > * entry (null if none). Else, *lastxp will be set to the index > * of the found entry; *gotp will contain the entry. > */ > -xfs_bmbt_rec_host_t * /* pointer to found extent entry */ > +STATIC xfs_bmbt_rec_host_t * /* pointer to found extent entry */ > xfs_bmap_search_multi_extents( > xfs_ifork_t *ifp, /* inode fork pointer */ > xfs_fileoff_t bno, /* block number searched for */ > diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h > index 1b8ff92..56f62d2 100644 > --- a/fs/xfs/xfs_bmap.h > +++ b/fs/xfs/xfs_bmap.h > @@ -392,17 +392,6 @@ xfs_bmap_count_blocks( > int whichfork, > int *count); > > -/* > - * Search the extent records for the entry containing block bno. > - * If bno lies in a hole, point to the next entry. If bno lies > - * past eof, *eofp will be set, and *prevp will contain the last > - * entry (null if none). Else, *lastxp will be set to the index > - * of the found entry; *gotp will contain the entry. > - */ > -xfs_bmbt_rec_host_t * > -xfs_bmap_search_multi_extents(struct xfs_ifork *, xfs_fileoff_t, > int *, > - xfs_extnum_t *, xfs_bmbt_irec_t *, xfs_bmbt_irec_t *); > - > #endif /* __KERNEL__ */ > > #endif /* __XFS_BMAP_H__ */ > diff --git a/fs/xfs/xfs_bmap_btree.c b/fs/xfs/xfs_bmap_btree.c > index 5c1ade0..eb7b702 100644 > --- a/fs/xfs/xfs_bmap_btree.c > +++ b/fs/xfs/xfs_bmap_btree.c > @@ -202,16 +202,6 @@ xfs_bmbt_get_state( > ext_flag); > } > > -/* Endian flipping versions of the bmbt extraction functions */ > -void > -xfs_bmbt_disk_get_all( > - xfs_bmbt_rec_t *r, > - xfs_bmbt_irec_t *s) > -{ > - __xfs_bmbt_get_all(get_unaligned_be64(&r->l0), > - get_unaligned_be64(&r->l1), s); > -} > - > /* > * Extract the blockcount field from an on disk bmap extent record. > */ > @@ -816,6 +806,16 @@ xfs_bmbt_trace_key( > *l1 = 0; > } > > +/* Endian flipping versions of the bmbt extraction functions */ > +STATIC void > +xfs_bmbt_disk_get_all( > + xfs_bmbt_rec_t *r, > + xfs_bmbt_irec_t *s) > +{ > + __xfs_bmbt_get_all(get_unaligned_be64(&r->l0), > + get_unaligned_be64(&r->l1), s); > +} > + > STATIC void > xfs_bmbt_trace_record( > struct xfs_btree_cur *cur, > diff --git a/fs/xfs/xfs_bmap_btree.h b/fs/xfs/xfs_bmap_btree.h > index 0e8df00..5549d49 100644 > --- a/fs/xfs/xfs_bmap_btree.h > +++ b/fs/xfs/xfs_bmap_btree.h > @@ -220,7 +220,6 @@ extern xfs_fsblock_t > xfs_bmbt_get_startblock(xfs_bmbt_rec_host_t *r); > extern xfs_fileoff_t xfs_bmbt_get_startoff(xfs_bmbt_rec_host_t *r); > extern xfs_exntst_t xfs_bmbt_get_state(xfs_bmbt_rec_host_t *r); > > -extern void xfs_bmbt_disk_get_all(xfs_bmbt_rec_t *r, > xfs_bmbt_irec_t *s); > extern xfs_filblks_t xfs_bmbt_disk_get_blockcount(xfs_bmbt_rec_t *r); > extern xfs_fileoff_t xfs_bmbt_disk_get_startoff(xfs_bmbt_rec_t *r); > > diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c > index e9df995..cde5a26 100644 > --- a/fs/xfs/xfs_btree.c > +++ b/fs/xfs/xfs_btree.c > @@ -646,46 +646,6 @@ xfs_btree_read_bufl( > } > > /* > - * Get a buffer for the block, return it read in. > - * Short-form addressing. > - */ > -int /* error */ > -xfs_btree_read_bufs( > - xfs_mount_t *mp, /* file system mount point */ > - xfs_trans_t *tp, /* transaction pointer */ > - xfs_agnumber_t agno, /* allocation group number */ > - xfs_agblock_t agbno, /* allocation group block number */ > - uint lock, /* lock flags for read_buf */ > - xfs_buf_t **bpp, /* buffer for agno/agbno */ > - int refval) /* ref count value for buffer */ > -{ > - xfs_buf_t *bp; /* return value */ > - xfs_daddr_t d; /* real disk block address */ > - int error; > - > - ASSERT(agno != NULLAGNUMBER); > - ASSERT(agbno != NULLAGBLOCK); > - d = XFS_AGB_TO_DADDR(mp, agno, agbno); > - if ((error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp, d, > - mp->m_bsize, lock, &bp))) { > - return error; > - } > - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); > - if (bp != NULL) { > - switch (refval) { > - case XFS_ALLOC_BTREE_REF: > - XFS_BUF_SET_VTYPE_REF(bp, B_FS_MAP, refval); > - break; > - case XFS_INO_BTREE_REF: > - XFS_BUF_SET_VTYPE_REF(bp, B_FS_INOMAP, refval); > - break; > - } > - } > - *bpp = bp; > - return 0; > -} > - > -/* > * Read-ahead the block, don't wait for it, don't return a buffer. > * Long-form addressing. > */ > @@ -2951,7 +2911,7 @@ error0: > * inode we have to copy the single block it was pointing to into the > * inode. > */ > -int > +STATIC int > xfs_btree_kill_iroot( > struct xfs_btree_cur *cur) > { > diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h > index 4f852b7..7fa0706 100644 > --- a/fs/xfs/xfs_btree.h > +++ b/fs/xfs/xfs_btree.h > @@ -379,20 +379,6 @@ xfs_btree_read_bufl( > int refval);/* ref count value for buffer */ > > /* > - * Get a buffer for the block, return it read in. > - * Short-form addressing. > - */ > -int /* error */ > -xfs_btree_read_bufs( > - struct xfs_mount *mp, /* file system mount point */ > - struct xfs_trans *tp, /* transaction pointer */ > - xfs_agnumber_t agno, /* allocation group number */ > - xfs_agblock_t agbno, /* allocation group block number */ > - uint lock, /* lock flags for read_buf */ > - struct xfs_buf **bpp, /* buffer for agno/agbno */ > - int refval);/* ref count value for buffer */ > - > -/* > * Read-ahead the block, don't wait for it, don't return a buffer. > * Long-form addressing. > */ > @@ -432,7 +418,6 @@ int xfs_btree_decrement(struct xfs_btree_cur *, > int, int *); > int xfs_btree_lookup(struct xfs_btree_cur *, xfs_lookup_t, int *); > int xfs_btree_update(struct xfs_btree_cur *, union xfs_btree_rec *); > int xfs_btree_new_iroot(struct xfs_btree_cur *, int *, int *); > -int xfs_btree_kill_iroot(struct xfs_btree_cur *); > int xfs_btree_insert(struct xfs_btree_cur *, int *); > int xfs_btree_delete(struct xfs_btree_cur *, int *); > int xfs_btree_get_rec(struct xfs_btree_cur *, union xfs_btree_rec > **, int *); > diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c > index 1f22d65..2dcb3d7 100644 > --- a/fs/xfs/xfs_inode.c > +++ b/fs/xfs/xfs_inode.c > @@ -641,7 +641,7 @@ xfs_iformat_btree( > return 0; > } > > -void > +STATIC void > xfs_dinode_from_disk( > xfs_icdinode_t *to, > xfs_dinode_t *from) > @@ -1237,7 +1237,7 @@ xfs_isize_check( > * In that case the pages will still be in memory, but the inode size > * will never have been updated. > */ > -xfs_fsize_t > +STATIC xfs_fsize_t > xfs_file_last_byte( > xfs_inode_t *ip) > { > @@ -3827,7 +3827,7 @@ xfs_iext_inline_to_direct( > /* > * Resize an extent indirection array to new_size bytes. > */ > -void > +STATIC void > xfs_iext_realloc_indirect( > xfs_ifork_t *ifp, /* inode fork pointer */ > int new_size) /* new indirection array size */ > @@ -3852,7 +3852,7 @@ xfs_iext_realloc_indirect( > /* > * Switch from indirection array to linear (direct) extent > allocations. > */ > -void > +STATIC void > xfs_iext_indirect_to_direct( > xfs_ifork_t *ifp) /* inode fork pointer */ > { > diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h > index 1804f86..5104dae 100644 > --- a/fs/xfs/xfs_inode.h > +++ b/fs/xfs/xfs_inode.h > @@ -521,7 +521,6 @@ void xfs_ipin(xfs_inode_t *); > void xfs_iunpin(xfs_inode_t *); > int xfs_iflush(xfs_inode_t *, uint); > void xfs_ichgtime(xfs_inode_t *, int); > -xfs_fsize_t xfs_file_last_byte(xfs_inode_t *); > void xfs_lock_inodes(xfs_inode_t **, int, uint); > void xfs_lock_two_inodes(xfs_inode_t *, xfs_inode_t *, uint); > > @@ -589,8 +588,6 @@ int xfs_itobp(struct xfs_mount *, struct > xfs_trans *, > struct xfs_buf **, uint); > int xfs_iread(struct xfs_mount *, struct xfs_trans *, > struct xfs_inode *, xfs_daddr_t, uint); > -void xfs_dinode_from_disk(struct xfs_icdinode *, > - struct xfs_dinode *); > void xfs_dinode_to_disk(struct xfs_dinode *, > struct xfs_icdinode *); > void xfs_idestroy_fork(struct xfs_inode *, int); > @@ -609,8 +606,6 @@ void xfs_iext_remove_inline(xfs_ifork_t *, > xfs_extnum_t, int); > void xfs_iext_remove_direct(xfs_ifork_t *, xfs_extnum_t, int); > void xfs_iext_remove_indirect(xfs_ifork_t *, xfs_extnum_t, int); > void xfs_iext_realloc_direct(xfs_ifork_t *, int); > -void xfs_iext_realloc_indirect(xfs_ifork_t *, int); > -void xfs_iext_indirect_to_direct(xfs_ifork_t *); > void xfs_iext_direct_to_inline(xfs_ifork_t *, xfs_extnum_t); > void xfs_iext_inline_to_direct(xfs_ifork_t *, int); > void xfs_iext_destroy(xfs_ifork_t *); > diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c > index aeb2d22..c471122 100644 > --- a/fs/xfs/xfs_itable.c > +++ b/fs/xfs/xfs_itable.c > @@ -39,7 +39,7 @@ > #include "xfs_error.h" > #include "xfs_btree.h" > > -int > +STATIC int > xfs_internal_inum( > xfs_mount_t *mp, > xfs_ino_t ino) > diff --git a/fs/xfs/xfs_itable.h b/fs/xfs/xfs_itable.h > index 1fb04e7..20792bf 100644 > --- a/fs/xfs/xfs_itable.h > +++ b/fs/xfs/xfs_itable.h > @@ -99,11 +99,6 @@ xfs_bulkstat_one( > void *dibuff, > int *stat); > > -int > -xfs_internal_inum( > - xfs_mount_t *mp, > - xfs_ino_t ino); > - > typedef int (*inumbers_fmt_pf)( > void __user *ubuffer, /* buffer to write to */ > const xfs_inogrp_t *buffer, /* buffer to read from */ > diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h > index bcad5f4..679c7c4 100644 > --- a/fs/xfs/xfs_log_priv.h > +++ b/fs/xfs/xfs_log_priv.h > @@ -451,8 +451,6 @@ extern int xlog_find_tail(xlog_t *log, > extern int xlog_recover(xlog_t *log); > extern int xlog_recover_finish(xlog_t *log); > extern void xlog_pack_data(xlog_t *log, xlog_in_core_t *iclog, int); > -extern void xlog_recover_process_iunlinks(xlog_t *log); > - > extern struct xfs_buf *xlog_get_bp(xlog_t *, int); > extern void xlog_put_bp(struct xfs_buf *); > > diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c > index 47da2fb..1099395 100644 > --- a/fs/xfs/xfs_log_recover.c > +++ b/fs/xfs/xfs_log_recover.c > @@ -3263,7 +3263,7 @@ xlog_recover_process_one_iunlink( > * freeing of the inode and its removal from the list must be > * atomic. > */ > -void > +STATIC void > xlog_recover_process_iunlinks( > xlog_t *log) > { > diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c > index 5c6f092..8b6c9e8 100644 > --- a/fs/xfs/xfs_mount.c > +++ b/fs/xfs/xfs_mount.c > @@ -1568,7 +1568,7 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fields) > * > * The m_sb_lock must be held when this routine is called. > */ > -int > +STATIC int > xfs_mod_incore_sb_unlocked( > xfs_mount_t *mp, > xfs_sb_field_t field, > diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h > index a512238..a6c023b 100644 > --- a/fs/xfs/xfs_mount.h > +++ b/fs/xfs/xfs_mount.h > @@ -414,13 +414,10 @@ typedef struct xfs_mod_sb { > > extern int xfs_log_sbcount(xfs_mount_t *, uint); > extern int xfs_mountfs(xfs_mount_t *mp); > -extern void xfs_mountfs_check_barriers(xfs_mount_t *mp); > > extern void xfs_unmountfs(xfs_mount_t *); > extern int xfs_unmountfs_writesb(xfs_mount_t *); > extern int xfs_mod_incore_sb(xfs_mount_t *, xfs_sb_field_t, int64_t, > int); > -extern int xfs_mod_incore_sb_unlocked(xfs_mount_t *, xfs_sb_field_t, > - int64_t, int); > extern int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *, > uint, int); > extern int xfs_mount_log_sb(xfs_mount_t *, __int64_t); > diff --git a/fs/xfs/xfs_mru_cache.c b/fs/xfs/xfs_mru_cache.c > index afee7eb..4b0613d 100644 > --- a/fs/xfs/xfs_mru_cache.c > +++ b/fs/xfs/xfs_mru_cache.c > @@ -564,35 +564,6 @@ xfs_mru_cache_lookup( > } > > /* > - * To look up an element using its key, but leave its location in > the internal > - * lists alone, call xfs_mru_cache_peek(). If the element isn't > found, this > - * function returns NULL. > - * > - * See the comments above the declaration of the > xfs_mru_cache_lookup() function > - * for important locking information pertaining to this call. > - */ > -void * > -xfs_mru_cache_peek( > - xfs_mru_cache_t *mru, > - unsigned long key) > -{ > - xfs_mru_cache_elem_t *elem; > - > - ASSERT(mru && mru->lists); > - if (!mru || !mru->lists) > - return NULL; > - > - spin_lock(&mru->lock); > - elem = radix_tree_lookup(&mru->store, key); > - if (!elem) > - spin_unlock(&mru->lock); > - else > - __release(mru_lock); /* help sparse not be stupid */ > - > - return elem ? elem->value : NULL; > -} > - > -/* > * To release the internal data structure spinlock after having > performed an > * xfs_mru_cache_lookup() or an xfs_mru_cache_peek(), call > xfs_mru_cache_done() > * with the data store pointer. > diff --git a/fs/xfs/xfs_mru_cache.h b/fs/xfs/xfs_mru_cache.h > index dd58ea1..5d439f3 100644 > --- a/fs/xfs/xfs_mru_cache.h > +++ b/fs/xfs/xfs_mru_cache.h > @@ -49,7 +49,6 @@ int xfs_mru_cache_insert(struct xfs_mru_cache > *mru, unsigned long key, > void * xfs_mru_cache_remove(struct xfs_mru_cache *mru, unsigned long > key); > void xfs_mru_cache_delete(struct xfs_mru_cache *mru, unsigned long > key); > void *xfs_mru_cache_lookup(struct xfs_mru_cache *mru, unsigned long > key); > -void *xfs_mru_cache_peek(struct xfs_mru_cache *mru, unsigned long > key); > void xfs_mru_cache_done(struct xfs_mru_cache *mru); > > #endif /* __XFS_MRU_CACHE_H__ */ > diff --git a/fs/xfs/xfs_rw.h b/fs/xfs/xfs_rw.h > index f76c003..ae65f0d 100644 > --- a/fs/xfs/xfs_rw.h > +++ b/fs/xfs/xfs_rw.h > @@ -78,10 +78,4 @@ extern int xfs_read_buf(struct xfs_mount *mp, > xfs_buftarg_t *btp, > extern void xfs_ioerror_alert(char *func, struct xfs_mount *mp, > xfs_buf_t *bp, xfs_daddr_t blkno); > > -/* > - * Prototypes for functions in xfs_vnodeops.c. > - */ > -extern int xfs_free_eofblocks(struct xfs_mount *mp, struct > xfs_inode *ip, > - int flags); > - > #endif /* __XFS_RW_H__ */ > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > index c4eca5e..1dd7068 100644 > --- a/fs/xfs/xfs_vnodeops.c > +++ b/fs/xfs/xfs_vnodeops.c > @@ -716,7 +716,7 @@ xfs_fsync( > * when the link count isn't zero and by xfs_dm_punch_hole() when > * punching a hole to EOF. > */ > -int > +STATIC int > xfs_free_eofblocks( > xfs_mount_t *mp, > xfs_inode_t *ip, > > From chiparus@gmail.com Thu Jul 2 02:08:48 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6278m9N072588 for ; Thu, 2 Jul 2009 02:08:48 -0500 X-ASG-Debug-ID: 1246518560-79d200e30000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f209.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C4C5933A611 for ; Thu, 2 Jul 2009 00:09:20 -0700 (PDT) Received: from mail-fx0-f209.google.com (mail-fx0-f209.google.com [209.85.220.209]) by cuda.sgi.com with ESMTP id SstTVStLS0iLpYPV for ; Thu, 02 Jul 2009 00:09:20 -0700 (PDT) Received: by fxm5 with SMTP id 5so1222425fxm.20 for ; Thu, 02 Jul 2009 00:09:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:received:in-reply-to :references:date:x-google-sender-auth:message-id:subject:from:to:cc :content-type:content-transfer-encoding; bh=NjWHplbuDMQLniZm6/omEAII5eAER8ez5Sk8MWmOsGg=; b=T6Qfjnor5ZHXVKLNcL2bkC+DUWJNyT2LR1uC9LBGtsN7s1SlIC9v7+sXCVonKewVK6 mlBPBBbvlvhPWlrxJcp7hxujEwK1IqyzS7dVLZkb6DZ4K5PZJ9w6CC4iFs41ldgdTDGJ 4+VPngwLC7t02k13YC5vJwuAjxZrALRrCd8tI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=AQYw1HCAOjqSVax4g2y2Q1/73+AG4y+Dvv8R9bKwwxnPEEIDUR8EpXdmw2ILO6yQNs C+NWmoY6OMoi7Np3/SUDSe/WCbOUgy4+DHy6/MUy55GLEhSiH/vqrgRUFU4Q1Nh1xYNE wbwVsprRqy+KmzhLX73XQXoYAw3eAcWKJizeY= MIME-Version: 1.0 Sender: chiparus@gmail.com Received: by 10.204.117.141 with SMTP id r13mr3021130bkq.181.1246518559102; Thu, 02 Jul 2009 00:09:19 -0700 (PDT) In-Reply-To: <20090701124441.GA12844@infradead.org> References: <4A408316.2070903@news-service.com> <1587994907.388291245745033392.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> <20090623171305.GB23971@infradead.org> <4A4A7205.6010101@news-service.com> <20090701124441.GA12844@infradead.org> Date: Thu, 2 Jul 2009 09:09:19 +0200 X-Google-Sender-Auth: 0bd9f6ad3869360a Message-ID: <89c4f90c0907020009n3b321c71s49a54501b146e0cb@mail.gmail.com> X-ASG-Orig-Subj: Re: 2.6.30 panic - xfs_fs_destroy_inode Subject: Re: 2.6.30 panic - xfs_fs_destroy_inode From: Tommy van Leeuwen To: Christoph Hellwig Cc: Patrick Schreurs , linux-xfs@oss.sgi.com, Lachlan McIlroy , Eric Sandeen Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-fx0-f209.google.com[209.85.220.209] X-Barracuda-Start-Time: 1246518560 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0977 1.0000 -1.4065 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.41 X-Barracuda-Spam-Status: No, SCORE=-1.41 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2324 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 1, 2009 at 2:44 PM, Christoph Hellwig wrote: > Actually you might want to give this patch a try which fixes a race > affecting the reclaim tag in iget: Thanks Christoph, we'll try this out in the next couple of days and let you know. Tommy From a.beregalov@gmail.com Thu Jul 2 05:38:07 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62Ac65X081583 for ; Thu, 2 Jul 2009 05:38:07 -0500 X-ASG-Debug-ID: 1246531117-1bc002e70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f214.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 94C6033A941 for ; Thu, 2 Jul 2009 03:38:37 -0700 (PDT) Received: from mail-bw0-f214.google.com (mail-bw0-f214.google.com [209.85.218.214]) by cuda.sgi.com with ESMTP id Oo3ZNDpq8OpckOyb for ; Thu, 02 Jul 2009 03:38:37 -0700 (PDT) Received: by bwz10 with SMTP id 10so1317372bwz.20 for ; Thu, 02 Jul 2009 03:38:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=jy/C2emQ0Qgea5exsm+EmC/dfAAWjyrnO9jSkz/MoQA=; b=Tjp3E/c0Jk/bSfPZlr7Ja6G4/UmpqbOOE9uR0JaIpSH+2zMdVgrphDkzgi+6buyiZu aO0VVNpzxuNQtGScF+g2DfLqe16GBBXMMItXURP4XSTy9xswikIdzy9Xxe57yepYt35Q 1+afWJpm7lVvHJjzlAjen4Sr57hjJ992rIVgw= 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:content-transfer-encoding; b=L/8mWpAY/BGawr+kJDsRRlCLJtOl6S3XFbsqbXWlId0idUdXFZbg6HLlqcOXf5Xise DqrzHu7FEKnl//nhhtp4e4D4lln/IDJ/IzEi8y+0BNcRpKyZDXd2UWkybTcICJnE/20g kip+EFRBHJsSq7+bUwU/O0/8WhK4ONPtI+uMU= MIME-Version: 1.0 Received: by 10.204.71.15 with SMTP id f15mr10642365bkj.42.1246531117024; Thu, 02 Jul 2009 03:38:37 -0700 (PDT) In-Reply-To: <584076313.830951246499556455.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> References: <824092896.830901246499419777.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> <584076313.830951246499556455.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> Date: Thu, 2 Jul 2009 14:38:36 +0400 Message-ID: X-ASG-Orig-Subj: Re: 2.6.30-rc6: BUG at fs/xfs/support/debug.c:109! Subject: Re: 2.6.30-rc6: BUG at fs/xfs/support/debug.c:109! From: Alexander Beregalov To: Lachlan McIlroy Cc: Kernel Testers List , xfs@oss.sgi.com, Dave Chinner Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-bw0-f214.google.com[209.85.218.214] X-Barracuda-Start-Time: 1246531118 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2334 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean 2009/7/2 Lachlan McIlroy : > Alexander, > > Are you running with this fix? > > http://git.kernel.org/?p=3Dlinux/kernel/git/stable/linux-2.6.29.y.git;a= =3Dcommitdiff;h=3Dd415867e0abc35e3b2f0d4196e98c339d6fe29a2 Yes, I use 2.6.31-rc1-git and it contains this fix. > > I've seen this assertion before and the above patch fixed it > for me. =C2=A0Hmmm, looks like you're running a recent kernel so > you should have this fix - maybe the fix wasn't quite right. > > Lachlan > > > ----- "Alexander Beregalov" wrote: > >> 2009/6/5 Alexander Beregalov : >> > 2009/6/4 Dave Chinner : >> >> On Mon, Jun 01, 2009 at 07:22:56PM +0400, Alexander Beregalov >> wrote: >> >>> Hi >> >>> >> >>> Assertion failed: *nmap >=3D 1, file: fs/xfs/xfs_bmap.c, line: 4846 >> >> ..... >> >>> Call Trace: >> >>> =C2=A0[] xfs_bmapi+0xad/0x1ad0 >> >>> =C2=A0[] xfs_dir2_leaf_getdents+0x640/0x7b0 >> >>> =C2=A0[] xfs_readdir+0x12c/0x140 >> >>> =C2=A0[] xfs_file_readdir+0x47/0x70 >> >>> =C2=A0[] vfs_readdir+0xd0/0xf0 >> >>> =C2=A0[] sys_getdents+0x96/0x110 >> >>> =C2=A0[] system_call_fastpath+0x16/0x1b >> >> >> >> I'd say this indicates a corrupted directory. =C2=A0Can you run >> >> 'xfs_repair -n' over the filesystem and see if it finds a bad >> >> directory? >> >> Still cannot fix the filesystem. After repairing all corruptions from >> LiveCD it still fails on the same workload. >> >> Do you need metadump or anything else? >> >> _______________________________________________ >> xfs mailing list >> xfs@oss.sgi.com >> http://oss.sgi.com/mailman/listinfo/xfs > From sandeen@sandeen.net Thu Jul 2 12:02:53 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62H2r1b101436 for ; Thu, 2 Jul 2009 12:02:53 -0500 X-ASG-Debug-ID: 1246554205-3c8501390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A2A01AEB026 for ; Thu, 2 Jul 2009 10:03:25 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id 29i9vHKBECB75wOS for ; Thu, 02 Jul 2009 10:03:25 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n62H3Plp018097 for ; Thu, 2 Jul 2009 13:03:25 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n62H3OMm005661 for ; Thu, 2 Jul 2009 13:03:24 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n62H3NGc015500 for ; Thu, 2 Jul 2009 13:03:23 -0400 Message-ID: <4A4CE85B.1030102@sandeen.net> Date: Thu, 02 Jul 2009 12:03:23 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.21 (X11/20090320) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH] xfs_metadump: agcount*agblocks overflow Subject: [PATCH] xfs_metadump: agcount*agblocks overflow Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1246554206 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0200 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2356 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Found another potential overflow in xfs_metadump, similar to those just fixed in repair. Signed-off-by: Eric Sandeen -- diff --git a/db/metadump.c b/db/metadump.c index 19aed4f..ef6e571 100644 --- a/db/metadump.c +++ b/db/metadump.c @@ -222,7 +222,8 @@ valid_bno( return 1; if (agno == (mp->m_sb.sb_agcount - 1) && agbno > 0 && agbno <= (mp->m_sb.sb_dblocks - - (mp->m_sb.sb_agcount - 1) * mp->m_sb.sb_agblocks)) + (xfs_drfsbno_t)(mp->m_sb.sb_agcount - 1) * + mp->m_sb.sb_agblocks)) return 1; return 0; From patrick@news-service.com Thu Jul 2 12:31:18 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62HVBBE102888 for ; Thu, 2 Jul 2009 12:31:17 -0500 X-ASG-Debug-ID: 1246555901-6a4801910000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from pu01.news-service.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BB2D633C154 for ; Thu, 2 Jul 2009 10:31:41 -0700 (PDT) Received: from pu01.news-service.com (ns1.news-service.com [195.114.240.3]) by cuda.sgi.com with ESMTP id 3GM6bYMwtLRnpmRR for ; Thu, 02 Jul 2009 10:31:41 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by pu01.news-service.com (Postfix) with ESMTP id A8BF8971FA; Thu, 2 Jul 2009 19:31:40 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at pu01.news-service.com Received: from pu01.news-service.com ([127.0.0.1]) by localhost (pu01.nse [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5AowfNcTe+Al; Thu, 2 Jul 2009 19:31:32 +0200 (CEST) Received: from [172.25.4.6] (unknown [172.25.8.1]) by pu01.news-service.com (Postfix) with ESMTP id 82DE5971EF; Thu, 2 Jul 2009 19:31:32 +0200 (CEST) Message-ID: <4A4CEEF2.7040101@news-service.com> Date: Thu, 02 Jul 2009 19:31:30 +0200 From: Patrick Schreurs Organization: News-Service.com User-Agent: Thunderbird 2.0.0.22 (Windows/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: linux-xfs@oss.sgi.com, Tommy van Leeuwen , Lachlan McIlroy , Eric Sandeen X-ASG-Orig-Subj: Re: 2.6.30 panic - xfs_fs_destroy_inode Subject: Re: 2.6.30 panic - xfs_fs_destroy_inode References: <4A408316.2070903@news-service.com> <1587994907.388291245745033392.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com> <20090623171305.GB23971@infradead.org> <4A4A7205.6010101@news-service.com> <20090701124441.GA12844@infradead.org> In-Reply-To: <20090701124441.GA12844@infradead.org> Content-Type: multipart/mixed; boundary="------------000709030702090209080603" X-Barracuda-Connect: ns1.news-service.com[195.114.240.3] X-Barracuda-Start-Time: 1246555902 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2357 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Status: Clean This is a multi-part message in MIME format. --------------000709030702090209080603 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi Christoph, With this patch we see the following: kernel BUG at fs/inode.c:1288! invalid opcode: 0000 [#2] SMP last sysfs file: /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map CPU 1 Modules linked in: acpi_cpufreq cpufreq_ondemand ipmi_si ipmi_devintf ipmi_msghandler bonding mptspi 8250_pnp rng_core scsi_transport_spi thermal serio_raw processor 8250 serial_core bnx2 thermal_sys Pid: 8048, comm: diablo Tainted: G D 2.6.30xfspatch #1 PowerEdge 1950 RIP: 0010:[] [] iput+0x13/0x60 RSP: 0018:ffff88007ec6db58 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff88022cbef5c0 RCX: ffff88017d1edd30 RDX: ffff88022cbef5f0 RSI: ffff88017d1edcc8 RDI: ffff88022cbef5c0 RBP: ffff8801383ae788 R08: ffff88007ec6db98 R09: 0000000000000246 R10: ffff88008c2156a0 R11: ffffffff8028b7a8 R12: ffff88022e831c00 R13: ffff88007ec6db98 R14: ffff88022e831d18 R15: ffff88007ec6dc0c FS: 0000000001495860(0063) GS:ffff88002804d000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 00007fa14f9fa000 CR3: 000000007ee5c000 CR4: 00000000000006a0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process diablo (pid: 8048, threadinfo ffff88007ec6c000, task ffff8800855926f0) Stack: ffff88017d1edcc0 ffffffff802884f7 ffff88008c2156a0 ffff88017d1edcc0 ffff88022e831c00 ffffffff80288783 00000000000000c0 0000000000000008 ffff8800b9ad5a00 ffff880138304ac0 ffff88007ec6dba8 ffff88007ec6dba8 Call Trace: [] ? d_kill+0x34/0x55 [] ? __shrink_dcache_sb+0x26b/0x301 [] ? shrink_dcache_memory+0xdf/0x16e [] ? shrink_slab+0xe0/0x153 [] ? try_to_free_pages+0x22e/0x31b [] ? isolate_pages_global+0x0/0x231 [] ? __alloc_pages_internal+0x25f/0x3ff [] ? __do_page_cache_readahead+0xab/0x1b1 [] ? force_page_cache_readahead+0x57/0x7e [] ? sys_madvise+0x394/0x4e0 [] ? system_call_fastpath+0x16/0x1b Code: 4b 70 be 01 00 00 00 48 89 df e8 f8 86 00 00 eb db 48 83 c4 28 5b 5d c3 53 48 85 ff 48 89 fb 74 55 48 83 bf f8 01 00 00 40 75 04 <0f> 0b eb fe 48 8d 7f 48 48 c7 c6 f0 aa 5b 80 e8 51 4b 0a 00 85 RIP [] iput+0x13/0x60 RSP ---[ end trace 06a9d5e318d14bf7 ]--- This server also crahed twice. Unfortunately i don't have a complete logging of this event. See attachment for a partial log. Thanks for looking into this. Patrick Schreurs Christoph Hellwig wrote: > Actually you might want to give this patch a try which fixes a race > affecting the reclaim tag in iget: > > > Index: xfs/fs/xfs/xfs_iget.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_iget.c 2009-06-04 13:27:41.901946950 +0200 > +++ xfs/fs/xfs/xfs_iget.c 2009-06-04 14:08:08.837816707 +0200 > @@ -132,80 +132,89 @@ xfs_iget_cache_hit( > int flags, > int lock_flags) __releases(pag->pag_ici_lock) > { > + struct inode *inode = VFS_I(ip); > struct xfs_mount *mp = ip->i_mount; > - int error = EAGAIN; > + int error; > + > + spin_lock(&ip->i_flags_lock); > > /* > - * If INEW is set this inode is being set up > - * If IRECLAIM is set this inode is being torn down > - * Pause and try again. > + * This inode is being torn down, pause and try again. > */ > - if (xfs_iflags_test(ip, (XFS_INEW|XFS_IRECLAIM))) { > + if (ip->i_flags & XFS_IRECLAIM) { > XFS_STATS_INC(xs_ig_frecycle); > + error = EAGAIN; > goto out_error; > } > > - /* If IRECLAIMABLE is set, we've torn down the vfs inode part */ > - if (xfs_iflags_test(ip, XFS_IRECLAIMABLE)) { > + /* > + * If we are racing with another cache hit that is currently recycling > + * this inode out of the XFS_IRECLAIMABLE state, wait for the > + * initialisation to complete before continuing. > + */ > + if (ip->i_flags & XFS_INEW) { > + spin_unlock(&ip->i_flags_lock); > + read_unlock(&pag->pag_ici_lock); > > - /* > - * If lookup is racing with unlink, then we should return an > - * error immediately so we don't remove it from the reclaim > - * list and potentially leak the inode. > - */ > - if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { > - error = ENOENT; > - goto out_error; > - } > + XFS_STATS_INC(xs_ig_frecycle); > + wait_on_inode(inode); > + return EAGAIN; > + } > > + /* > + * If lookup is racing with unlink, then we should return an > + * error immediately so we don't remove it from the reclaim > + * list and potentially leak the inode. > + */ > + if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { > + error = ENOENT; > + goto out_error; > + } > + > + /* > + * If IRECLAIMABLE is set, we've torn down the vfs inode part already. > + * Need to carefully get it back into useable state. > + */ > + if (ip->i_flags & XFS_IRECLAIMABLE) { > xfs_itrace_exit_tag(ip, "xfs_iget.alloc"); > > /* > - * We need to re-initialise the VFS inode as it has been > - * 'freed' by the VFS. Do this here so we can deal with > - * errors cleanly, then tag it so it can be set up correctly > - * later. > + * We need to set XFS_INEW atomically with clearing the > + * reclaimable tag so that we do have an indicator of the > + * inode still being initialized. > */ > - if (!inode_init_always(mp->m_super, VFS_I(ip))) { > + ip->i_flags |= XFS_INEW; > + __xfs_inode_clear_reclaim_tag(pag, ip); > + > + spin_unlock(&ip->i_flags_lock); > + read_unlock(&pag->pag_ici_lock); > + > + if (unlikely(!inode_init_always(mp->m_super, inode))) { > + printk("node_init_always failed!!\n"); > + > + /* > + * Re-initializing the inode failed, and we are in deep > + * trouble. Try to re-add it to the reclaim list. > + */ > + read_lock(&pag->pag_ici_lock); > + spin_lock(&ip->i_flags_lock); > + > + ip->i_flags &= ~XFS_INEW; > + __xfs_inode_set_reclaim_tag(pag, ip); > + > error = ENOMEM; > goto out_error; > } > - > - /* > - * We must set the XFS_INEW flag before clearing the > - * XFS_IRECLAIMABLE flag so that if a racing lookup does > - * not find the XFS_IRECLAIMABLE above but has the igrab() > - * below succeed we can safely check XFS_INEW to detect > - * that this inode is still being initialised. > - */ > - xfs_iflags_set(ip, XFS_INEW); > - xfs_iflags_clear(ip, XFS_IRECLAIMABLE); > - > - /* clear the radix tree reclaim flag as well. */ > - __xfs_inode_clear_reclaim_tag(mp, pag, ip); > - } else if (!igrab(VFS_I(ip))) { > + } else { > /* If the VFS inode is being torn down, pause and try again. */ > - XFS_STATS_INC(xs_ig_frecycle); > - goto out_error; > - } else if (xfs_iflags_test(ip, XFS_INEW)) { > - /* > - * We are racing with another cache hit that is > - * currently recycling this inode out of the XFS_IRECLAIMABLE > - * state. Wait for the initialisation to complete before > - * continuing. > - */ > - wait_on_inode(VFS_I(ip)); > - } > + if (!igrab(inode)) > + goto out_error; > > - if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { > - error = ENOENT; > - iput(VFS_I(ip)); > - goto out_error; > + /* We've got a live one. */ > + spin_unlock(&ip->i_flags_lock); > + read_unlock(&pag->pag_ici_lock); > } > > - /* We've got a live one. */ > - read_unlock(&pag->pag_ici_lock); > - > if (lock_flags != 0) > xfs_ilock(ip, lock_flags); > > @@ -215,6 +224,7 @@ xfs_iget_cache_hit( > return 0; > > out_error: > + spin_unlock(&ip->i_flags_lock); > read_unlock(&pag->pag_ici_lock); > return error; > } > Index: xfs/fs/xfs/linux-2.6/xfs_sync.c > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c 2009-06-04 13:40:09.135939715 +0200 > +++ xfs/fs/xfs/linux-2.6/xfs_sync.c 2009-06-04 13:59:17.978816696 +0200 > @@ -607,6 +607,17 @@ xfs_reclaim_inode( > return 0; > } > > +void > +__xfs_inode_set_reclaim_tag( > + struct xfs_perag *pag, > + struct xfs_inode *ip) > +{ > + xfs_agino_t agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino); > + > + radix_tree_tag_set(&pag->pag_ici_root, agino, XFS_ICI_RECLAIM_TAG); > + __xfs_iflags_set(ip, XFS_IRECLAIMABLE); > +} > + > /* > * We set the inode flag atomically with the radix tree tag. > * Once we get tag lookups on the radix tree, this inode flag > @@ -621,9 +632,7 @@ xfs_inode_set_reclaim_tag( > > read_lock(&pag->pag_ici_lock); > spin_lock(&ip->i_flags_lock); > - radix_tree_tag_set(&pag->pag_ici_root, > - XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); > - __xfs_iflags_set(ip, XFS_IRECLAIMABLE); > + __xfs_inode_set_reclaim_tag(pag, ip); > spin_unlock(&ip->i_flags_lock); > read_unlock(&pag->pag_ici_lock); > xfs_put_perag(mp, pag); > @@ -631,30 +640,15 @@ xfs_inode_set_reclaim_tag( > > void > __xfs_inode_clear_reclaim_tag( > - xfs_mount_t *mp, > - xfs_perag_t *pag, > - xfs_inode_t *ip) > -{ > - radix_tree_tag_clear(&pag->pag_ici_root, > - XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); > -} > - > -void > -xfs_inode_clear_reclaim_tag( > - xfs_inode_t *ip) > + struct xfs_perag *pag, > + struct xfs_inode *ip) > { > - xfs_mount_t *mp = ip->i_mount; > - xfs_perag_t *pag = xfs_get_perag(mp, ip->i_ino); > + xfs_agino_t agino = XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino); > > - read_lock(&pag->pag_ici_lock); > - spin_lock(&ip->i_flags_lock); > - __xfs_inode_clear_reclaim_tag(mp, pag, ip); > - spin_unlock(&ip->i_flags_lock); > - read_unlock(&pag->pag_ici_lock); > - xfs_put_perag(mp, pag); > + ip->i_flags &= ~XFS_IRECLAIMABLE; > + radix_tree_tag_clear(&pag->pag_ici_root, agino, XFS_ICI_RECLAIM_TAG); > } > > - > STATIC void > xfs_reclaim_inodes_ag( > xfs_mount_t *mp, > Index: xfs/fs/xfs/linux-2.6/xfs_sync.h > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.h 2009-06-04 13:53:32.994814723 +0200 > +++ xfs/fs/xfs/linux-2.6/xfs_sync.h 2009-06-04 13:58:54.746942001 +0200 > @@ -51,7 +51,6 @@ int xfs_reclaim_inode(struct xfs_inode * > int xfs_reclaim_inodes(struct xfs_mount *mp, int noblock, int mode); > > void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); > -void xfs_inode_clear_reclaim_tag(struct xfs_inode *ip); > -void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, > - struct xfs_inode *ip); > +void __xfs_inode_set_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); > +void __xfs_inode_clear_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); > #endif > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs --------------000709030702090209080603 Content-Type: image/jpeg; name="sb02-20090702.jpg" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="sb02-20090702.jpg" /9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRof Hh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwh MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAAR CAGQAtADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl 5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA AgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk 5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5/ro4LOxi8Ayam9lHNePqJtRJI7jYhi3Z AVgMg+oP41zlbMGtQL4Vk0SezkfN0bqOaOcJtfZsAKlTkd+oz7UAM0jSI7qKTUNQla20q3YC WVRl5G6iKMHq5/JRyffU8P6Xp8+j63rNxZrcxWTR+TbTXYT5S/zbipU7tvCnABJOATwMbSNX k0uWRWiW5srhQl1ayHCTL/Rh1DDkH8QbVnrdpZ6Jq+mLYzsuoMuHNyMxhDuQY2fMc9TxkdMU AXfDWjWGralq8ix+baWdrNPbxXM6xlyPueZgg4xySCADjJAPJ4e0vS/EPjaG2hgkh018ytBJ MNwwmSgPVhu44+bbzxyRQ8P61Bo39oedZyXH2y1a1OycR7Ub7x5VsngY9OevZnhrWY/D+txa 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 ZEtYZ1mjtftGSCOQN5XpkemccZzzQBcufDks/izU9LtY2gWCWRo0aGWQiMN8vCKzYwQQSMY7 8jOXq2l3OjapPp92FE8LYbY2QQRkEH0IIPrzWufE0Dza4klhIbPV3WWSNbgCSN1ffw+wjGS3 G3pjnjkuvFf2jxBLrg0+MXzwKql23pFMAq+aq47AcK2cE5ycYoAtaH4UibxLpGnatJ+9ud8k 9mpIeJAm5A57FsHK9QMdCeJdZ8Ow2/hW01C4tbbTb170QSRxySMscbJuHmqxdlYYzgc4YZGe mDo2uT6R4gg1gr9pmR2dxKxzJuBDZPXJBPPPPrVq81+C40pNMS0ufs7Xpvbh57oSSyOV2nDb ABxnkhuT+BAGXXhXULKK7numghtYFBS5ZyY7ktyoiIB3lhzxwB1xXTah4c0qGTWLdLKNLe00 4T286zsboybUIMkW4lQSxzmNQB6da5698TR6hZS2E+mQLYxr/oEcR2taH1D4JcN/EG+8eflN WrrxjHcXWpX66cyahqNn9kmc3GYgCqqxVNoIOF4yxxnvQBLP4ai1Dwrot5psMEeoTRXDSQCR y9yI3C5QHILAZYgEE5OAcYHIV1WmeMY9NstJUac0l1pa3HkSG4wjGXOSybckDPQMK5WgAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAorqP+EL/wCpm8Of+B//ANjXOXMH2a6mg82O XynZPMibcj4OMqe4PY0ARUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9k= --------------000709030702090209080603-- From BATV+c12987dc4489b9b8aed6+2139+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 2 14:28:33 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62JSVcr108066 for ; Thu, 2 Jul 2009 14:28:33 -0500 X-ASG-Debug-ID: 1246562944-6a3303bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A234233CB8D for ; Thu, 2 Jul 2009 12:29:04 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id hZKw8xCZO4TDAqK3 for ; Thu, 02 Jul 2009 12:29:04 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MMRxw-0002JI-2l; Thu, 02 Jul 2009 19:29:04 +0000 Date: Thu, 2 Jul 2009 15:29:04 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH] xfs_metadump: agcount*agblocks overflow Subject: Re: [PATCH] xfs_metadump: agcount*agblocks overflow Message-ID: <20090702192903.GA13919@infradead.org> References: <4A4CE85B.1030102@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A4CE85B.1030102@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246562944 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 02, 2009 at 12:03:23PM -0500, Eric Sandeen wrote: > Found another potential overflow in xfs_metadump, > similar to those just fixed in repair. > > Signed-off-by: Eric Sandeen > -- > > diff --git a/db/metadump.c b/db/metadump.c > index 19aed4f..ef6e571 100644 > --- a/db/metadump.c > +++ b/db/metadump.c > @@ -222,7 +222,8 @@ valid_bno( > return 1; > if (agno == (mp->m_sb.sb_agcount - 1) && agbno > 0 && > agbno <= (mp->m_sb.sb_dblocks - > - (mp->m_sb.sb_agcount - 1) * mp->m_sb.sb_agblocks)) > + (xfs_drfsbno_t)(mp->m_sb.sb_agcount - 1) * > + mp->m_sb.sb_agblocks)) > return 1; > > return 0; I have a really hard time reading the function (both before and after your patch). It's a real mess and no wonder we have these overflow problems here. What about the following instead: static int valid_bno( xfs_agnumber_t agno, xfs_agblock_t agbno) { xfs_agnumber_t last_agno = mp->m_sb.sb_agcount - 1; xfs_drfsbno_t nblocks; /* * The first block in every AG contains a backups superblock, * and is copied separately, and we can skip it early as an * optimization. */ if (agbno == 0) return 0; /* * An invalid AG number is never okay. */ if (agno > last_agno) return 0; if (agno == last_agno) { nblocks = mp->m_sb.sb_dblocks - ((xfs_drfsbno_t)mp->m_sb.sb_agblocks * (mp->m_sb.sb_agcount - 1)); } else { nblocks = mp->m_sb.sb_agblocks); } if (agbno > nblocks) return 0; return 1; } and with that form I wonder if we don't still have an off-by-one in the last if clause - shouldn't the agblocks be the count of blocks while agbno is an indes and thus 0-based? Btw, do you have a testcase for this? From sandeen@sandeen.net Thu Jul 2 14:56:13 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62JuCwC109019 for ; Thu, 2 Jul 2009 14:56:12 -0500 X-ASG-Debug-ID: 1246564988-59ce02610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 099D89CB404 for ; Thu, 2 Jul 2009 13:03:08 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id ZgW98gxKm9WN49cs for ; Thu, 02 Jul 2009 13:03:08 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n62JuVrV002212; Thu, 2 Jul 2009 15:56:31 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n62JuUFh022652; Thu, 2 Jul 2009 15:56:30 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n62JuUNK014131; Thu, 2 Jul 2009 15:56:30 -0400 Message-ID: <4A4D10ED.70506@sandeen.net> Date: Thu, 02 Jul 2009 14:56:29 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.21 (X11/20090320) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH] xfs_metadump: agcount*agblocks overflow Subject: Re: [PATCH] xfs_metadump: agcount*agblocks overflow References: <4A4CE85B.1030102@sandeen.net> <20090702192903.GA13919@infradead.org> In-Reply-To: <20090702192903.GA13919@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1246564992 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2361 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > On Thu, Jul 02, 2009 at 12:03:23PM -0500, Eric Sandeen wrote: >> Found another potential overflow in xfs_metadump, >> similar to those just fixed in repair. >> >> Signed-off-by: Eric Sandeen >> -- >> >> diff --git a/db/metadump.c b/db/metadump.c >> index 19aed4f..ef6e571 100644 >> --- a/db/metadump.c >> +++ b/db/metadump.c >> @@ -222,7 +222,8 @@ valid_bno( >> return 1; >> if (agno == (mp->m_sb.sb_agcount - 1) && agbno > 0 && >> agbno <= (mp->m_sb.sb_dblocks - >> - (mp->m_sb.sb_agcount - 1) * mp->m_sb.sb_agblocks)) >> + (xfs_drfsbno_t)(mp->m_sb.sb_agcount - 1) * >> + mp->m_sb.sb_agblocks)) >> return 1; >> >> return 0; > > I have a really hard time reading the function (both before and after > your patch). It's a real mess and no wonder we have these overflow > problems here. What about the following instead: well, I think the original goal was to make it efficient for the common case. How muchthis matters, not really sure. (at least that's the comment in the xfs_repair counterpart) > static int > valid_bno( > xfs_agnumber_t agno, > xfs_agblock_t agbno) > { > xfs_agnumber_t last_agno = mp->m_sb.sb_agcount - 1; > xfs_drfsbno_t nblocks; > > /* > * The first block in every AG contains a backups superblock, > * and is copied separately, and we can skip it early as an > * optimization. > */ > if (agbno == 0) > return 0; > > /* > * An invalid AG number is never okay. > */ > if (agno > last_agno) > return 0; > > if (agno == last_agno) { > nblocks = mp->m_sb.sb_dblocks - > ((xfs_drfsbno_t)mp->m_sb.sb_agblocks * > (mp->m_sb.sb_agcount - 1)); > } else { > nblocks = mp->m_sb.sb_agblocks); > } > > if (agbno > nblocks) > return 0; > return 1; > } > > and with that form I wonder if we don't still have an off-by-one > in the last if clause - shouldn't the agblocks be the count of blocks > while agbno is an indes and thus 0-based? > > Btw, do you have a testcase for this? no testcase here, though could craft one. I discovered it on Jesse's corruptd fs (very big metadump image) -Eric From sandeen@redhat.com Thu Jul 2 16:29:25 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n62LTOoV118133 for ; Thu, 2 Jul 2009 16:29:25 -0500 X-ASG-Debug-ID: 1246570196-2d7b03b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B2161D489A6 for ; Thu, 2 Jul 2009 14:29:56 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id KkBjruQIpOEoyC5k for ; Thu, 02 Jul 2009 14:29:56 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n62LTgNH024695; Thu, 2 Jul 2009 17:29:43 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n62LTg84011666; Thu, 2 Jul 2009 17:29:42 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n62LTfIf027452; Thu, 2 Jul 2009 17:29:41 -0400 Message-ID: <4A4D26C5.9070606@redhat.com> Date: Thu, 02 Jul 2009 16:29:41 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.21 (X11/20090320) MIME-Version: 1.0 To: xfs mailing list CC: linux-mm@kvack.org, Christoph Hellwig , "MASON,CHRISTOPHER" X-ASG-Orig-Subj: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: [PATCH] bump up nr_to_write in xfs_vm_writepage Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1246570197 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2366 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Talking w/ someone who had a raid6 of 15 drives on an areca controller, he wondered why he could only get 300MB/s or so out of a streaming buffered write to xfs like so: dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920 10737418240 bytes (11 GB) copied, 34.294 s, 313 MB/s when the same write directly to the device was going closer to 700MB/s... With the following change things get moving again for xfs: dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920 10737418240 bytes (11 GB) copied, 16.2938 s, 659 MB/s Chris had sent out something similar at Christoph's suggestion, and Christoph reminded me of it, and I tested it a variant of it, and it seems to help shockingly well. Feels like a bandaid though; thoughts? Other tests to do? Thanks, -Eric Signed-off-by: Christoph Hellwig Signed-off-by: Eric Sandeen Cc: Chris Mason --- Index: linux-2.6/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_aops.c +++ linux-2.6/fs/xfs/linux-2.6/xfs_aops.c @@ -1268,6 +1268,13 @@ xfs_vm_writepage( if (!page_has_buffers(page)) create_empty_buffers(page, 1 << inode->i_blkbits, 0); + + /* + * VM calculation for nr_to_write seems off. Bump it way + * up, this gets simple streaming writes zippy again. + */ + wbc->nr_to_write *= 4; + /* * Convert delayed allocate, unwritten or unmapped space * to real space and flush out to disk. From michael.monnerie@is.it-management.at Fri Jul 3 06:20:21 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63BKKxj161591 for ; Fri, 3 Jul 2009 06:20:20 -0500 X-ASG-Debug-ID: 1246620049-0f0100b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv1.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 801B133ECEC for ; Fri, 3 Jul 2009 04:20:50 -0700 (PDT) Received: from mailsrv1.zmi.at (mailsrv1.zmi.at [212.69.162.198]) by cuda.sgi.com with ESMTP id n3cd6hTmUgFYpg1a for ; Fri, 03 Jul 2009 04:20:50 -0700 (PDT) Received: from mailsrv2.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv1.zmi.at (Postfix) with ESMTP id C4DB65380 for ; Fri, 3 Jul 2009 13:22:26 +0200 (CEST) Received: from saturn.localnet (unknown [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv2.i.zmi.at (Postfix) with ESMTPSA id BAD3D400155 for ; Fri, 3 Jul 2009 13:20:48 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs mailing list X-ASG-Orig-Subj: bad fs - xfs_repair 3.01 crashes on it Subject: bad fs - xfs_repair 3.01 crashes on it Date: Fri, 3 Jul 2009 13:20:43 +0200 User-Agent: KMail/1.10.3 (Linux/2.6.30-ZMI; KDE/4.1.3; x86_64; ; ) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart3171997.tSlmBtre28"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <200907031320.48358@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.162.198] X-Barracuda-Start-Time: 1246620051 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2420 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart3171997.tSlmBtre28 Content-Type: multipart/mixed; boundary="Boundary-01=_MmeTKaJHscv+BOH" Content-Transfer-Encoding: 7bit Content-Disposition: inline --Boundary-01=_MmeTKaJHscv+BOH Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Tonight our server rebooted, and I found in /var/log/warn that he was cryin= g=20 a lot about xfs since June 7 already: Jun 7 03:06:31 orion.i.zmi.at kernel: Filesystem "dm-0": corrupt inode 385= 7051697 ((a)extents =3D 5). Unmount and run xfs_repair. Jun 7 03:06:31 orion.i.zmi.at kernel: Pid: 23230, comm: xfs_fsr Tainted: G= 2.6.27.21-0.1-xen #1 Jun 7 03:06:31 orion.i.zmi.at kernel: Jun 7 03:06:31 orion.i.zmi.at kernel: Call Trace: Jun 7 03:06:31 orion.i.zmi.at kernel: [] show_trace_log= _lvl+0x41/0x58 Jun 7 03:06:31 orion.i.zmi.at kernel: [] dump_stack+0x6= 9/0x6f Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_iformat_ex= tents+0xc9/0x1c5 [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_iformat+0x= 2b0/0x3f6 [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_iread+0xe7= /0x1ed [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_iget_core+= 0x3a5/0x63a [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_iget+0xe2/= 0x187 [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_vget_fsop_= handlereq+0xc2/0x11b [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_open_by_ha= ndle+0x60/0x1cb [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_ioctl+0x3c= a/0x680 [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] xfs_file_ioctl= +0x25/0x69 [xfs] Jun 7 03:06:31 orion.i.zmi.at kernel: [] vfs_ioctl+0x21= /0x6c Jun 7 03:06:31 orion.i.zmi.at kernel: [] do_vfs_ioctl+0= x222/0x231 Jun 7 03:06:31 orion.i.zmi.at kernel: [] sys_ioctl+0x51= /0x73 Jun 7 03:06:31 orion.i.zmi.at kernel: [] system_call_fa= stpath+0x16/0x1b Jun 7 03:06:31 orion.i.zmi.at kernel: [<00007f7231d6cb77>] 0x7f7231d6cb77 But XFS didn't go offline, so nobody found this messages. There are a lot o= f them. They obviously are generated by the nightly "xfs_fsr -v -t 7200" which we r= un since then. It would have been nice if xfs_fsr could have displayed a message, so we would have received the cron mail. (But it got killed by the kernel, that's a good excuse) Anyway, so I went to xfs_repair (3.01) and got this: Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... [snip] - agno =3D 14 local inode 3857051697 attr too small (size =3D 3, min size =3D 4) bad attribute fork in inode 3857051697, clearing attr fork clearing inode 3857051697 attributes cleared inode 3857051697 [snip] Phase 4 - check for duplicate blocks... [snip] - agno =3D 15 data fork in regular inode 3857051697 claims used block 537147998 xfs_repair: dinode.c:2108: process_inode_data_fork: Assertion `err =3D=3D 0= ' failed. And then xfs_repair crashes out, without having repaired. I attached the fu= ll=20 xfs_repair log here, and http://zmi.at/x/xfs.metadump.data1.bz2 the metadump. I'll not be here for a week now, I hope the problem is not very serious. mfg zmi =2D-=20 // Michael Monnerie, Ing.BSc ----- http://it-management.at // Tel: 0660 / 415 65 31 .network.your.ideas. // PGP Key: "curl -s http://zmi.at/zmi.asc | gpg --import" // Fingerprint: AC19 F9D5 36ED CD8A EF38 500E CE14 91F7 1C12 09B4 // Keyserver: wwwkeys.eu.pgp.net Key-ID: 1C1209B4 --Boundary-01=_MmeTKaJHscv+BOH Content-Type: text/plain; charset="UTF-8"; name="xfsrepair.data1" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xfsrepair.data1" Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 - agno = 6 - agno = 7 - agno = 8 - agno = 9 - agno = 10 - agno = 11 - agno = 12 - agno = 13 - agno = 14 local inode 3857051697 attr too small (size = 3, min size = 4) bad attribute fork in inode 3857051697, clearing attr fork clearing inode 3857051697 attributes cleared inode 3857051697 - agno = 15 - agno = 16 - agno = 17 - agno = 18 - agno = 19 - agno = 20 - agno = 21 - agno = 22 - agno = 23 - agno = 24 - agno = 25 - agno = 26 - agno = 27 - agno = 28 - agno = 29 - agno = 30 - agno = 31 - agno = 32 - agno = 33 - agno = 34 - agno = 35 - agno = 36 - agno = 37 - agno = 38 - agno = 39 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - agno = 4 - agno = 5 - agno = 6 - agno = 7 - agno = 8 - agno = 9 - agno = 10 - agno = 11 - agno = 12 - agno = 13 - agno = 14 - agno = 15 data fork in regular inode 3857051697 claims used block 537147998 xfs_repair: dinode.c:2108: process_inode_data_fork: Assertion `err == 0' failed. --Boundary-01=_MmeTKaJHscv+BOH-- --nextPart3171997.tSlmBtre28 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) iEYEABECAAYFAkpN6ZAACgkQzhSR9xwSCbSOdACg7aZ5elczWsWNvZjXok3e7cL6 aSsAn0rUX84zVftmgrdr/sg7QEYNOqnH =Z88E -----END PGP SIGNATURE----- --nextPart3171997.tSlmBtre28-- From sentstory@gmail.com Fri Jul 3 07:56:33 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63CuWh8167569 for ; Fri, 3 Jul 2009 07:56:33 -0500 X-ASG-Debug-ID: 1246625825-1bd500b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-yx0-f203.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0AEBD1D48B89 for ; Fri, 3 Jul 2009 05:57:05 -0700 (PDT) Received: from mail-yx0-f203.google.com (mail-yx0-f203.google.com [209.85.210.203]) by cuda.sgi.com with ESMTP id GEszB6By3o3AvsHg for ; Fri, 03 Jul 2009 05:57:05 -0700 (PDT) Received: by yxe41 with SMTP id 41so3121348yxe.20 for ; Fri, 03 Jul 2009 05:57:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received:date :x-google-sender-auth:message-id:subject:from:to:content-type :content-transfer-encoding; bh=YxMBPROjQZMBfhZK5dTCCWPOpbi+bzGxGW1UGI5ibJU=; b=r55O0pDsOdxRcFF4p0zQzN5IJoNjORRt444VnbvESCTVHibC9/ZWYyXOtbc1RSuqo8 GjNqZHWAg/6DX9EPC2DSk1iMzwujKfQFutxKTKRIOSCP5jO6kB/eU3DR1GcXu9vH6U3C ZeuD/dGMKiIXKN1trmtk1uNjCntrtQ8ry5dAQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:date:x-google-sender-auth:message-id :subject:from:to:content-type:content-transfer-encoding; b=fIzBm539SQ155tsRHjNZlUGHuDNreVD7sm8uJq28IR8bnVM4tc2joM2Ggd6BEUiqqE UxRbXls9o3QcdnTMQ4B1KJUFDlDXYHYJ6oJogS2mJ3hUdlxKEEYT0aB4wDK7CCC2Cb0d dMEk2zABYjHZD4+BvZxfkA2IY98IauJKIy5rk= MIME-Version: 1.0 Sender: sentstory@gmail.com Reply-To: tharindu@sentstory.com Received: by 10.100.43.10 with SMTP id q10mr2078617anq.125.1246625825077; Fri, 03 Jul 2009 05:57:05 -0700 (PDT) Date: Fri, 3 Jul 2009 18:27:05 +0530 X-Google-Sender-Auth: d1f6e77f9926d99d Message-ID: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> X-ASG-Orig-Subj: Clustered version of XFS Subject: Clustered version of XFS From: Tharindu Rukshan Bamunuarachchi To: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-yx0-f203.google.com[209.85.210.203] X-Barracuda-Start-Time: 1246625826 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3428 1.0000 -0.1788 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.18 X-Barracuda-Spam-Status: No, SCORE=-0.18 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2426 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean we are using XFS high speed transaction processing system. we are very happy with XFS performance compared to ZFS, EXT3, JFS etc. i have two questions regarding XFS ... 1. Is there any cluster version of XFS. (e.g. like GFS, Luste, GPFS) 2. I am currently using my root partition as XFS. but i need to modify XFS source code and reload module without rebooting machine. Is there anyway to play with XFS source/module while using XFS module for mounted file system ....? cheers __ tharindu From felixb@oss.sgi.com Fri Jul 3 09:15:54 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63EFsqL171052 for ; Fri, 3 Jul 2009 09:15:54 -0500 Received: (from felixb@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id n63EFsJP171024; Fri, 3 Jul 2009 09:15:54 -0500 Date: Fri, 3 Jul 2009 09:15:54 -0500 Message-Id: <200907031415.n63EFsJP171024@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.30-rc4-1243-gab8b9ba X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 370f048214b4e9aa2102fa3c454ae1374da287c5 X-Git-Newrev: ab8b9baac3f48fb3fc3d47790950c0eec134e678 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated ab8b9ba un-static xfs_read_agf from 370f048214b4e9aa2102fa3c454ae1374da287c5 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit ab8b9baac3f48fb3fc3d47790950c0eec134e678 Author: Eric Sandeen Date: Thu Jul 2 21:35:43 2009 -0500 un-static xfs_read_agf CONFIG_XFS_DEBUG builds still need xfs_read_agf to be non-static, oops. Signed-off-by: Eric Sandeen Reviewed-by: Felix Blyakher Signed-off-by: Felix Blyakher ----------------------------------------------------------------------- Summary of changes: fs/xfs/xfs_ag.h | 3 +++ fs/xfs/xfs_alloc.c | 2 +- 2 files changed, 4 insertions(+), 1 deletions(-) hooks/post-receive -- XFS development tree From sandeen@sandeen.net Fri Jul 3 09:37:27 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63EbQoM172078 for ; Fri, 3 Jul 2009 09:37:27 -0500 X-ASG-Debug-ID: 1246631878-1bd303170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5CCC91AECFBD for ; Fri, 3 Jul 2009 07:37:58 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id D3pkZ5lR0qCfm26T for ; Fri, 03 Jul 2009 07:37:58 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 37CA9A9ABC2; Fri, 3 Jul 2009 09:37:58 -0500 (CDT) Message-ID: <4A4E17C5.8020105@sandeen.net> Date: Fri, 03 Jul 2009 09:37:57 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: tharindu@sentstory.com CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Clustered version of XFS Subject: Re: Clustered version of XFS References: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> In-Reply-To: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246631879 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2431 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Tharindu Rukshan Bamunuarachchi wrote: > we are using XFS high speed transaction processing system. > > we are very happy with XFS performance compared to ZFS, EXT3, JFS etc. > > i have two questions regarding XFS ... > > 1. Is there any cluster version of XFS. (e.g. like GFS, Luste, GPFS) SGI sells a product called CXFS (http://lmgtfy.com/?q=clustered+xfs) ;) > 2. I am currently using my root partition as XFS. but i need to modify > XFS source code and reload module without rebooting machine. > Is there anyway to play with XFS source/module while using XFS > module for mounted file system ....? In general no, but you might look into KSplice. -Eric > > cheers > __ > tharindu From vitaly.v.ch@gmail.com Fri Jul 3 09:40:30 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,URIBL_RHS_DOB autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63EeTKm172234 for ; Fri, 3 Jul 2009 09:40:30 -0500 X-ASG-Debug-ID: 1246632452-17ca00ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f209.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1F09B9D6A5C for ; Fri, 3 Jul 2009 07:47:33 -0700 (PDT) Received: from mail-fx0-f209.google.com (mail-fx0-f209.google.com [209.85.220.209]) by cuda.sgi.com with ESMTP id SRF1OzJFv5mFEtQZ for ; Fri, 03 Jul 2009 07:47:33 -0700 (PDT) Received: by fxm5 with SMTP id 5so2068546fxm.20 for ; Fri, 03 Jul 2009 07:41:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=0v55HZ8l3vfZCdHrJzM3dtlqVmYLCZ43rT9tAlHIVqQ=; b=dkA0RrNSaqFYy1A75n2/LAyEMuYdK4h5haRovrp8+HXag3LfO1MGEXiR3GA08qrkOm jJCXaZWu4ACshEmEBig0uYtl7quxJ7HgG4i9+8TTB582i8M7R9S9b5saNd69hlTGTd8G UDVRL4pFH57x2Lk/o88ow6t9lCPz+MPzLF6hk= 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:content-transfer-encoding; b=uR4k96RWc4UbKc8RZ4QC1CXxBWk1WVL68rbF+BhoxoR8HjutukS025PUopP+KCMeci 2TSLzjopr7vWMAzK7Q+TFkgYEB0HMK5vXgb2Y2iv8kQsElxhnhVQOWWnhDGXT+CFHshG rs4s3KLvCvjQHW2avprS6yKzmi2RcPrAkVc5w= MIME-Version: 1.0 Received: by 10.204.53.143 with SMTP id m15mr1322030bkg.112.1246632060504; Fri, 03 Jul 2009 07:41:00 -0700 (PDT) In-Reply-To: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> References: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> Date: Fri, 3 Jul 2009 17:41:00 +0300 Message-ID: <6efe08af0907030741q3befbfc5m8c208249dd5cad15@mail.gmail.com> X-ASG-Orig-Subj: Re: Clustered version of XFS Subject: Re: Clustered version of XFS From: "Vitaly V. Ch" To: tharindu@sentstory.com Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-fx0-f209.google.com[209.85.220.209] X-Barracuda-Start-Time: 1246632454 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1465 1.0000 -1.1212 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.12 X-Barracuda-Spam-Status: No, SCORE=-1.12 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2432 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 3, 2009 at 3:57 PM, Tharindu Rukshan Bamunuarachchi wrote: > we are using XFS high speed transaction processing system. > > we are very happy with XFS performance compared to ZFS, EXT3, JFS etc. > > i have two questions regarding XFS ... > > 1. Is there any cluster version of XFS. (e.g. like GFS, Luste, GPFS) Yes. Your need cxfs. > 2. I am currently using my root partition as XFS. but i need to modify > XFS source code and reload module without rebooting machine. > =A0 =A0Is there anyway to play with XFS source/module while using XFS > module for mounted file system ....? Yes. duplicate Your code and use non-reloadable copy for root fs and reloadable under other name ("my_xfs" for example) for other partitions. > > > cheers > __ > tharindu > \\wbr Vitaly Chernookiy > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From sentstory@gmail.com Fri Jul 3 10:23:55 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,URIBL_RHS_DOB autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63FNswN175173 for ; Fri, 3 Jul 2009 10:23:54 -0500 X-ASG-Debug-ID: 1246635057-06f003150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-yx0-f203.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5717B9DA7F7 for ; Fri, 3 Jul 2009 08:30:57 -0700 (PDT) Received: from mail-yx0-f203.google.com (mail-yx0-f203.google.com [209.85.210.203]) by cuda.sgi.com with ESMTP id L8ia3ItgCYqvIDFO for ; Fri, 03 Jul 2009 08:30:57 -0700 (PDT) Received: by yxe41 with SMTP id 41so3235337yxe.20 for ; Fri, 03 Jul 2009 08:24:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=EBREtgB9AWHugKVYWn+qtSkacg0xj2ByPzBBhug0O0A=; b=CXLqHtzB+5W3ZtS7kAnpzowS3c7Z/dpxuI/kxiJq1LUFj8c0ojE05CpQKM0U2SXjaq MI6bqaxaFEuoBlk8oiDE2LmAo7Kktx9uQfdxdV4GwT8QUpreEJX0CMikei5Xhdn42c5l A9U/yxjPt6WD2THYJ/FE/s6j2F/ZkWTZ8E92I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=Dln+CgDY0nneYQbz8Cf6Yv7ulRsaqOwYtd/6Aoj6/F93jej3L4BgEyK3t74PfMSQvV pg045GM7j4zb2AfPaG96IweCt2Wz23y/iF+a8MojKTng5nfUhlLR4AqRwpMZfevK25+n mRyULFMdRPaRG/HH65/AV3wEv6+71z3QtT9qU= MIME-Version: 1.0 Sender: sentstory@gmail.com Reply-To: tharindu@sentstory.com Received: by 10.100.41.9 with SMTP id o9mr2241436ano.155.1246634665288; Fri, 03 Jul 2009 08:24:25 -0700 (PDT) In-Reply-To: <6efe08af0907030741q3befbfc5m8c208249dd5cad15@mail.gmail.com> References: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> <6efe08af0907030741q3befbfc5m8c208249dd5cad15@mail.gmail.com> Date: Fri, 3 Jul 2009 20:54:24 +0530 X-Google-Sender-Auth: c6eaa6def742e8b8 Message-ID: <7778c60e0907030824k723c4ddetdead0a1d43835476@mail.gmail.com> X-ASG-Orig-Subj: Re: Clustered version of XFS Subject: Re: Clustered version of XFS From: Tharindu Rukshan Bamunuarachchi To: "Vitaly V. Ch" , sandeen@sandeen.net Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-yx0-f203.google.com[209.85.210.203] X-Barracuda-Start-Time: 1246635059 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0281 1.0000 -1.8388 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.84 X-Barracuda-Spam-Status: No, SCORE=-1.84 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2434 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thankx lot for your responses. I recently send inqury over SGI website. Still no-reply. If there is someone related to SGI's CXFS in this list, please be kind enough to provide contact details. one of the world largest stock market likes to try out CXFS .... __ tharindu On Fri, Jul 3, 2009 at 8:11 PM, Vitaly V. Ch wrote: > On Fri, Jul 3, 2009 at 3:57 PM, Tharindu Rukshan > Bamunuarachchi wrote: >> we are using XFS high speed transaction processing system. >> >> we are very happy with XFS performance compared to ZFS, EXT3, JFS etc. >> >> i have two questions regarding XFS ... >> >> 1. Is there any cluster version of XFS. (e.g. like GFS, Luste, GPFS) > > Yes. Your need cxfs. > >> 2. I am currently using my root partition as XFS. but i need to modify >> XFS source code and reload module without rebooting machine. >> =A0 =A0Is there anyway to play with XFS source/module while using XFS >> module for mounted file system ....? > > Yes. duplicate Your code and use non-reloadable copy for root fs and > reloadable under other name ("my_xfs" for example) for other > partitions. > >> >> >> cheers >> __ >> tharindu >> > > \\wbr Vitaly Chernookiy > >> _______________________________________________ >> xfs mailing list >> xfs@oss.sgi.com >> http://oss.sgi.com/mailman/listinfo/xfs >> > From sandeen@sandeen.net Fri Jul 3 13:34:19 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63IYJek183436 for ; Fri, 3 Jul 2009 13:34:19 -0500 X-ASG-Debug-ID: 1246646090-5e2a02b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4CD71AEF77D for ; Fri, 3 Jul 2009 11:34:50 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id Kj8BjQmAAxGZfBaH for ; Fri, 03 Jul 2009 11:34:50 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 1FC0BA9ABC2; Fri, 3 Jul 2009 13:34:49 -0500 (CDT) Message-ID: <4A4E4F48.4030507@sandeen.net> Date: Fri, 03 Jul 2009 13:34:48 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Michael Monnerie CC: xfs mailing list X-ASG-Orig-Subj: Re: bad fs - xfs_repair 3.01 crashes on it Subject: Re: bad fs - xfs_repair 3.01 crashes on it References: <200907031320.48358@zmi.at> In-Reply-To: <200907031320.48358@zmi.at> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246646091 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2446 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie wrote: > Tonight our server rebooted, and I found in /var/log/warn that he was crying > a lot about xfs since June 7 already: > > Jun 7 03:06:31 orion.i.zmi.at kernel: Filesystem "dm-0": corrupt inode 3857051697 ((a)extents = 5). Unmount and run xfs_repair. ... > But XFS didn't go offline, so nobody found this messages. There are a lot of them. > They obviously are generated by the nightly "xfs_fsr -v -t 7200" which we run > since then. It would have been nice if xfs_fsr could have displayed > a message, so we would have received the cron mail. (But it got killed > by the kernel, that's a good excuse) I'll have to think about why this didn't shut down the fs. There are just a few that don't. > Anyway, so I went to xfs_repair (3.01) and got this: > > Phase 3 - for each AG... > - scan and clear agi unlinked lists... > - process known inodes and perform inode discovery... > [snip] > - agno = 14 > local inode 3857051697 attr too small (size = 3, min size = 4) > bad attribute fork in inode 3857051697, clearing attr fork > clearing inode 3857051697 attributes > cleared inode 3857051697 > [snip] > Phase 4 - check for duplicate blocks... > [snip] > - agno = 15 > data fork in regular inode 3857051697 claims used block 537147998 > xfs_repair: dinode.c:2108: process_inode_data_fork: Assertion `err == 0' failed. > > And then xfs_repair crashes out, without having repaired. I attached the full > xfs_repair log here, and http://zmi.at/x/xfs.metadump.data1.bz2 > the metadump. Thanks for the metadump image, I'll try to take a look. -Eric From michael.monnerie@is.it-management.at Fri Jul 3 18:50:55 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_33 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n63NosSj199493 for ; Fri, 3 Jul 2009 18:50:55 -0500 X-ASG-Debug-ID: 1246665085-6982007b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv1.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E8F121AEFDE5 for ; Fri, 3 Jul 2009 16:51:26 -0700 (PDT) Received: from mailsrv1.zmi.at (mailsrv1.zmi.at [212.69.162.198]) by cuda.sgi.com with ESMTP id ibyb3BdZYqJDZ2xP for ; Fri, 03 Jul 2009 16:51:26 -0700 (PDT) Received: from mailsrv2.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv1.zmi.at (Postfix) with ESMTP id 29C78445E for ; Sat, 4 Jul 2009 01:52:29 +0200 (CEST) Received: from saturn.localnet (unknown [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv2.i.zmi.at (Postfix) with ESMTPSA id 72907400155 for ; Sat, 4 Jul 2009 01:51:24 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Date: Sat, 4 Jul 2009 01:51:19 +0200 User-Agent: KMail/1.10.3 (Linux/2.6.30-ZMI; KDE/4.1.3; x86_64; ; ) References: <4A4D26C5.9070606@redhat.com> In-Reply-To: <4A4D26C5.9070606@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200907040151.21013@zmi.at> X-Barracuda-Connect: mailsrv1.zmi.at[212.69.162.198] X-Barracuda-Start-Time: 1246665086 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2467 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Donnerstag 02 Juli 2009 Eric Sandeen wrote: > With the following change things get moving again for xfs: Amazeing, more than double speed with a one-liner. Do you have more such lines? ;-) > + /* > + * VM calculation for nr_to_write seems off. Bump it way > + * up, this gets simple streaming writes zippy again. > + */ > + wbc->nr_to_write *= 4; Could this be helpful here also: I've just transfered a copy of a directory from our server to a Linux desktop. Nothing else running, just an rsync from server to client, where the client has a Seagate 1TB ES.2 SATA disk, whhic can do about 80MB/s on large writes. But it did this, measured on large files (>20MB each, no small files): Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq- sz avgqu-sz await svctm %util sdb 0,00 584,00 0,00 368,00 0,00 7448,00 40,48 148,64 401,40 2,72 100,00 All the time around 300+ IOps, which is OK, but only 7-10MB/s? That can't be true. Then I killed the rsync process on the server, and the writes on the client jumped up: sdb 0,00 4543,40 0,00 333,40 0,00 44965,60 269,74 144,66 384,98 3,00 100,00 45MB/s is OK. I investigated a bit further: Seems the /proc/sys/vm values are strange, clients kernel is # uname -a Linux saturn 2.6.30-ZMI #1 SMP PREEMPT Wed Jun 10 20:07:31 CEST 2009 x86_64 x86_64 x86_64 GNU/Linux This makes rsync slow: cat /proc/sys/vm/dirty_* 0 5 0 8000 50 100 This fast: cat /proc/sys/vm/dirty_* cat dirty_* 16123456 0 524123456 8000 0 100 Seems more like a kernel related stuff, but do others see the same thing? So, I'm really out for a 1 week vacation now, have fun! mfg zmi -- // Michael Monnerie, Ing.BSc ----- http://it-management.at // Tel: 0660 / 415 65 31 .network.your.ideas. // PGP Key: "curl -s http://zmi.at/zmi.asc | gpg --import" // Fingerprint: AC19 F9D5 36ED CD8A EF38 500E CE14 91F7 1C12 09B4 // Keyserver: wwwkeys.eu.pgp.net Key-ID: 1C1209B4 From sandeen@sandeen.net Sat Jul 4 00:42:31 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n645gUMT216914 for ; Sat, 4 Jul 2009 00:42:31 -0500 X-ASG-Debug-ID: 1246686183-7e0d03140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 44D271AF0658 for ; Fri, 3 Jul 2009 22:43:03 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id rXGg1OE59DahFwQs for ; Fri, 03 Jul 2009 22:43:03 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 672C8A9BF33; Sat, 4 Jul 2009 00:43:02 -0500 (CDT) Message-ID: <4A4EEBE6.6060909@sandeen.net> Date: Sat, 04 Jul 2009 00:43:02 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Michael Monnerie CC: xfs mailing list X-ASG-Orig-Subj: Re: bad fs - xfs_repair 3.01 crashes on it Subject: Re: bad fs - xfs_repair 3.01 crashes on it References: <200907031320.48358@zmi.at> In-Reply-To: <200907031320.48358@zmi.at> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246686184 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2479 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Michael Monnerie wrote: > Tonight our server rebooted, and I found in /var/log/warn that he was crying > a lot about xfs since June 7 already: ... > But XFS didn't go offline, so nobody found this messages. There are a lot of them. > They obviously are generated by the nightly "xfs_fsr -v -t 7200" which we run > since then. It would have been nice if xfs_fsr could have displayed > a message, so we would have received the cron mail. (But it got killed > by the kernel, that's a good excuse) ok yeah we should see why fsr didn't print anything ... > Anyway, so I went to xfs_repair (3.01) and got this: > > Phase 3 - for each AG... > - scan and clear agi unlinked lists... > - process known inodes and perform inode discovery... > [snip] > - agno = 14 > local inode 3857051697 attr too small (size = 3, min size = 4) > bad attribute fork in inode 3857051697, clearing attr fork > clearing inode 3857051697 attributes > cleared inode 3857051697 > [snip] > Phase 4 - check for duplicate blocks... > [snip] > - agno = 15 > data fork in regular inode 3857051697 claims used block 537147998 > xfs_repair: dinode.c:2108: process_inode_data_fork: Assertion `err == 0' failed. Ok, so this is essentially some code which first does a scan; if it finds an error it bails out and clears the inode, but if not, it calls essentially the same function again, comments say "set bitmaps this time" - but on the 2nd call it finds an error, which isn't handled well. The ASSERT(err == 0) bit is presumably because if the first scan didn't find anything, the 2nd call shouldn't either, but ... not the case here :( There are more checks that can go wrong -after- the scan-only portion. So either the caller needs to cope w/ the error at this point, or the scan only business needs do all the checks, I think. Where's Barry when you need him .... Also I need to look at when the ASSERTs are active and when they should be; the Fedora packaged xfsprogs doesn't have the ASSERT active, and so this doesn't trip. After 2 calls to xfs_repair on Fedora, w/o the ASSERTs active, it checks clean on the 3rd (!). Not great. Not sure how much was cleared out in the process either... -Eric From BATV+602ac5bf566934fa39d3+2141+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 4 13:27:12 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n64IR9c6243601 for ; Sat, 4 Jul 2009 13:27:12 -0500 X-ASG-Debug-ID: 1246732062-45b6009c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 012153418DF for ; Sat, 4 Jul 2009 11:27:42 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 5W4jaVGXp43gTSBk for ; Sat, 04 Jul 2009 11:27:42 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MN9xe-00031C-7h for xfs@oss.sgi.com; Sat, 04 Jul 2009 18:27:42 +0000 Date: Sat, 4 Jul 2009 14:27:42 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Subject: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Message-ID: <20090704182742.GA11083@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246732063 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Check that we correctly update the timestamps when writing to a file through an mmap mapping. Currently fails for XFS due a VFS bug but succeeds for many other filesystems. Signed-off-by: Christoph Hellwig Index: xfstests-dev/215 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfstests-dev/215 2009-07-04 18:25:43.000000000 +0000 @@ -0,0 +1,87 @@ +#! /bin/sh +# FS QA Test No. 215 +# +# Test out c/mtime updates after mapped writes. +# +# Based on the testcase in http://bugzilla.kernel.org/show_bug.cgi?id=2645 +# +#----------------------------------------------------------------------- +# Copyright (c) 2009 Christoph Hellwig. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# +# creator +owner=hch@lst.de + +seq=`basename $0` +echo "QA output created by $seq" + +_cleanup() +{ + cd / + rm -f $testfile +} + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here +_supported_fs generic +_supported_os Linux + +testfile=$TEST_DIR/tst.mmap + +echo +echo "creating test file" +dd if=/dev/zero of=$testfile count=4096 + +mtime1=`stat --printf="%Y" $testfile` +ctime1=`stat --printf="%Z" $testfile` + +sleep 1 + +echo +echo "writing via mmap" +$XFS_IO_PROG -F -f \ + -c 'mmap 0 4096' \ + -c 'mwrite 0 4096' \ + $testfile | _filter_xfs_io_unique + +mtime2=`stat --printf="%Y" $testfile` +ctime2=`stat --printf="%Z" $testfile` + +let mtime_diff=$mtime2-$mtime1 +let ctime_diff=$ctime2-$ctime1 + +if [ "$mtime_diff" -eq "0" ]; then + echo "FAIL: mtime not update after mapped write" + status=1 +fi + +if [ "$ctime_diff" -eq "0" ]; then + echo "FAIL: ctime not update after mapped write" + status=1 +fi + +# success, all done +echo "*** done" +rm -f $seq.full +status=0 Index: xfstests-dev/group =================================================================== --- xfstests-dev.orig/group 2009-07-04 18:07:40.000000000 +0000 +++ xfstests-dev/group 2009-07-04 18:07:55.000000000 +0000 @@ -323,3 +323,4 @@ 212 auto aio quick 213 rw auto prealloc quick 214 rw auto prealloc quick +215 auto metadata quick From felixb@sgi.com Sat Jul 4 23:00:25 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=AWL,BAYES_00,URIBL_RHS_DOB autolearn=no version=3.3.0-rupdated Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6540Oew006590 for ; Sat, 4 Jul 2009 23:00:24 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay2.corp.sgi.com (Postfix) with ESMTP id 0482B3040C8 for ; Sat, 4 Jul 2009 21:00:56 -0700 (PDT) Received: from [IPv6???1] (sshgate.corp.sgi.com [198.149.20.12]) by estes.americas.sgi.com (Postfix) with ESMTP id BB333700016A; Sat, 4 Jul 2009 23:00:55 -0500 (CDT) Cc: "Vitaly V. Ch" , sandeen@sandeen.net, xfs@oss.sgi.com Message-Id: <8B9C6BFA-0092-4AEA-9552-59A9291B68D9@sgi.com> From: Felix Blyakher To: tharindu@sentstory.com In-Reply-To: <7778c60e0907030824k723c4ddetdead0a1d43835476@mail.gmail.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: Clustered version of XFS Date: Sat, 4 Jul 2009 23:00:54 -0500 References: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> <6efe08af0907030741q3befbfc5m8c208249dd5cad15@mail.gmail.com> <7778c60e0907030824k723c4ddetdead0a1d43835476@mail.gmail.com> X-Mailer: Apple Mail (2.930.3) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Jul 3, 2009, at 10:24 AM, Tharindu Rukshan Bamunuarachchi wrote: > Thankx lot for your responses. > > > I recently send inqury over SGI website. Still no-reply. Today is a national holiday in US, and SGI was closed yesterday. I'm sure somebody will get back to you on Monday. > If there is someone related to SGI's CXFS in this list, please be kind > enough to provide contact details. I forwarded you inquiry to right channels. You should hear from SGI soon. > one of the world largest stock market likes to try out CXFS .... Hope you will like CXFS. Felix > __ > tharindu > > > > On Fri, Jul 3, 2009 at 8:11 PM, Vitaly V. Ch > wrote: >> On Fri, Jul 3, 2009 at 3:57 PM, Tharindu Rukshan >> Bamunuarachchi wrote: >>> we are using XFS high speed transaction processing system. >>> >>> we are very happy with XFS performance compared to ZFS, EXT3, JFS >>> etc. >>> >>> i have two questions regarding XFS ... >>> >>> 1. Is there any cluster version of XFS. (e.g. like GFS, Luste, GPFS) >> >> Yes. Your need cxfs. >> >>> 2. I am currently using my root partition as XFS. but i need to >>> modify >>> XFS source code and reload module without rebooting machine. >>> Is there anyway to play with XFS source/module while using XFS >>> module for mounted file system ....? >> >> Yes. duplicate Your code and use non-reloadable copy for root fs and >> reloadable under other name ("my_xfs" for example) for other >> partitions. >> >>> >>> >>> cheers >>> __ >>> tharindu >>> >> >> \\wbr Vitaly Chernookiy >> >>> _______________________________________________ >>> 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 From sentstory@gmail.com Sun Jul 5 04:52:23 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,URIBL_RHS_DOB autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n659qMfs019509 for ; Sun, 5 Jul 2009 04:52:23 -0500 X-ASG-Debug-ID: 1246787976-08d9026a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-yx0-f203.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BC2959E0371 for ; Sun, 5 Jul 2009 02:59:36 -0700 (PDT) Received: from mail-yx0-f203.google.com (mail-yx0-f203.google.com [209.85.210.203]) by cuda.sgi.com with ESMTP id eLG3XHW5skVx85mt for ; Sun, 05 Jul 2009 02:59:36 -0700 (PDT) Received: by yxe41 with SMTP id 41so4408848yxe.20 for ; Sun, 05 Jul 2009 02:52:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:reply-to:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=RjknxGa9GaF8deEIP2u3fV8/vHEca4gwCY4ImpFwWnA=; b=r0CbbbxL8zZjSqnK/btmDZ81NgyfHlh71+/jVzm09dofSGfNwerjN+1zJDuDGivuB1 SgN+Y1CJ5OSbFGj9F+fUQ/NOphWXLeuuAInCkvmR0tqZ5cmjOHgLvs0hEbgdP6qGyR9N mL55oGPuKDqJ7SZ65lWaoNV1xM+oL6bimRa3w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:reply-to:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=M8F/jry66fQbdecsmEhnmQlQmrL3gg4OpnOxtgAQb1T5qNE5n7yElPkm0oRVkcKs6a buTGQsFuzOu3a9tOBCgEVbXK25NPTGHIq+HQDZjXPnP/El/UQqO+gUMPxFBHAfCwS96o XrU/M/59cCvpvUVODD+3oLySC7b6zDxYwYyrw= MIME-Version: 1.0 Sender: sentstory@gmail.com Reply-To: tharindu@sentstory.com Received: by 10.100.132.4 with SMTP id f4mr6034283and.109.1246787574625; Sun, 05 Jul 2009 02:52:54 -0700 (PDT) In-Reply-To: <8B9C6BFA-0092-4AEA-9552-59A9291B68D9@sgi.com> References: <7778c60e0907030557j357f88e5g4ab3ce0d3377bb41@mail.gmail.com> <6efe08af0907030741q3befbfc5m8c208249dd5cad15@mail.gmail.com> <7778c60e0907030824k723c4ddetdead0a1d43835476@mail.gmail.com> <8B9C6BFA-0092-4AEA-9552-59A9291B68D9@sgi.com> Date: Sun, 5 Jul 2009 15:22:54 +0530 X-Google-Sender-Auth: 6448430bf964428a Message-ID: <7778c60e0907050252x4ca88f51vca131ce05be47f01@mail.gmail.com> X-ASG-Orig-Subj: Re: Clustered version of XFS Subject: Re: Clustered version of XFS From: Tharindu Rukshan Bamunuarachchi To: Felix Blyakher Cc: "Vitaly V. Ch" , sandeen@sandeen.net, xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-yx0-f203.google.com[209.85.210.203] X-Barracuda-Start-Time: 1246787977 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2585 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean thankx, i want to believe that CXFS will perform same or better than XFS. __ tharindu On Sun, Jul 5, 2009 at 9:30 AM, Felix Blyakher wrote: > > On Jul 3, 2009, at 10:24 AM, Tharindu Rukshan Bamunuarachchi wrote: > >> Thankx lot for your responses. >> >> >> I recently send inqury over SGI website. Still no-reply. > > Today is a national holiday in US, and SGI was closed yesterday. > I'm sure somebody will get back to you on Monday. > >> If there is someone related to SGI's CXFS in this list, please be kind >> enough to provide contact details. > > I forwarded you inquiry to right channels. You should hear from > SGI soon. > >> one of the world largest stock market likes to try out CXFS .... > > Hope you will like CXFS. > > Felix > >> __ >> tharindu >> >> >> >> On Fri, Jul 3, 2009 at 8:11 PM, Vitaly V. Ch wrot= e: >>> >>> On Fri, Jul 3, 2009 at 3:57 PM, Tharindu Rukshan >>> Bamunuarachchi wrote: >>>> >>>> we are using XFS high speed transaction processing system. >>>> >>>> we are very happy with XFS performance compared to ZFS, EXT3, JFS etc. >>>> >>>> i have two questions regarding XFS ... >>>> >>>> 1. Is there any cluster version of XFS. (e.g. like GFS, Luste, GPFS) >>> >>> Yes. Your need cxfs. >>> >>>> 2. I am currently using my root partition as XFS. but i need to modify >>>> XFS source code and reload module without rebooting machine. >>>> =A0 Is there anyway to play with XFS source/module while using XFS >>>> module for mounted file system ....? >>> >>> Yes. duplicate Your code and use non-reloadable copy for root fs and >>> reloadable under other name ("my_xfs" for example) for other >>> partitions. >>> >>>> >>>> >>>> cheers >>>> __ >>>> tharindu >>>> >>> >>> \\wbr Vitaly Chernookiy >>> >>>> _______________________________________________ >>>> 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 > > From sandeen@sandeen.net Sun Jul 5 12:23:07 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n65HN5P3038539 for ; Sun, 5 Jul 2009 12:23:06 -0500 X-ASG-Debug-ID: 1246815020-115e01fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7162B1309523 for ; Sun, 5 Jul 2009 10:30:20 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id w2NtNZHNJY7CdvQY for ; Sun, 05 Jul 2009 10:30:20 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id D6EF38D78C5 for ; Sun, 5 Jul 2009 12:23:35 -0500 (CDT) Message-ID: <4A50E197.3070209@sandeen.net> Date: Sun, 05 Jul 2009 12:23:35 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH (trivial)] remove XFS_INO64_OFFSET Subject: [PATCH (trivial)] remove XFS_INO64_OFFSET Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246815022 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2615 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Commit a19d9f887d81106d52cacbc9930207b487e07e0e removed the ino64 option but left the XFS_INO64_OFFSET define it used in place - just remove it. Signed-off-by: Eric Sandeen --- diff --git a/fs/xfs/xfs_inum.h b/fs/xfs/xfs_inum.h index 7a28191..b8e4ee4 100644 --- a/fs/xfs/xfs_inum.h +++ b/fs/xfs/xfs_inum.h @@ -72,7 +72,6 @@ struct xfs_mount; #if XFS_BIG_INUMS #define XFS_MAXINUMBER ((xfs_ino_t)((1ULL << 56) - 1ULL)) -#define XFS_INO64_OFFSET ((xfs_ino_t)(1ULL << 32)) #else #define XFS_MAXINUMBER ((xfs_ino_t)((1ULL << 32) - 1ULL)) #endif From egcdcgis@nb.aibn.com Sun Jul 5 13:23:00 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.9 required=5.0 tests=BAYES_50,MIME_8BIT_HEADER, SUBJ_ALL_CAPS,URIBL_SBL autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n65IN05x041434 for ; Sun, 5 Jul 2009 13:23:00 -0500 X-ASG-Debug-ID: 1246818213-2c6f00860000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from tomts35-srv.bellnexxia.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 48F15342C59 for ; Sun, 5 Jul 2009 11:23:33 -0700 (PDT) Received: from tomts35-srv.bellnexxia.net (tomts35-srv.bellnexxia.net [209.226.175.109]) by cuda.sgi.com with ESMTP id Yu9j5kYaKproxZ0t for ; Sun, 05 Jul 2009 11:23:33 -0700 (PDT) Received: from toip35-bus.srvr.bell.ca ([67.69.240.36]) by tomts35-srv.bellnexxia.net (InterMail vM.5.01.06.13 201-253-122-130-113-20050324) with ESMTP id <20090705182333.OWYF8518.tomts35-srv.bellnexxia.net@toip35-bus.srvr.bell.ca>; Sun, 5 Jul 2009 14:23:33 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkUJAJ+MUErR4q/5/2dsb2JhbACBMIo6gxSJFoFeozaMOII2GgeBJgU Received: from tofep1.bellnexxia.net (HELO smtp.bellnexxia.net) ([209.226.175.249]) by toip35-bus.srvr.bell.ca with SMTP; 05 Jul 2009 14:23:32 -0400 X-Mailer: Openwave WebEngine, version 2.8.11 (webedge20-101-194-20030622) X-Originating-IP: [65.120.57.68] From: Reply-To: cgnlcenter@9.cn To: X-ASG-Orig-Subj: =?ISO-8859-1?B?KioqSkFDS1BPVEpPWaMxLDIzMCw=?= =?ISO-8859-1?B?MzEw?= GBP*** Subject: =?ISO-8859-1?B?KioqSkFDS1BPVEpPWaMxLDIzMCw=?= =?ISO-8859-1?B?MzEw?= GBP*** Date: Sun, 5 Jul 2009 14:23:32 -0400 MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-Id: <20090705182333.OWYF8518.tomts35-srv.bellnexxia.net@toip35-bus.srvr.bell.ca> X-Barracuda-Connect: tomts35-srv.bellnexxia.net[209.226.175.109] X-Barracuda-Start-Time: 1246818214 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7575 1.0000 1.8374 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.84 X-Barracuda-Spam-Status: No, SCORE=1.84 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2620 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean You have won congratulation,Please Verify this mail by sending your name, address, age, phone number Occuption etc to cgnlcenter@9.cn From BATV+2656bd01c2aa4c7de599+2142+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 5 14:38:21 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n65JcFvs045012 for ; Sun, 5 Jul 2009 14:38:21 -0500 X-ASG-Debug-ID: 1246822728-2f5501980000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8BE29342DDF for ; Sun, 5 Jul 2009 12:38:48 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id NwSl991HZV5W3ySu for ; Sun, 05 Jul 2009 12:38:48 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MNXY0-0000oM-AF; Sun, 05 Jul 2009 19:38:48 +0000 Date: Sun, 5 Jul 2009 15:38:48 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH (trivial)] remove XFS_INO64_OFFSET Subject: Re: [PATCH (trivial)] remove XFS_INO64_OFFSET Message-ID: <20090705193848.GA1330@infradead.org> References: <4A50E197.3070209@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A50E197.3070209@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246822729 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 05, 2009 at 12:23:35PM -0500, Eric Sandeen wrote: > Commit a19d9f887d81106d52cacbc9930207b487e07e0e removed the > ino64 option but left the XFS_INO64_OFFSET define it used > in place - just remove it. Looks good to me. From BATV+2656bd01c2aa4c7de599+2142+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 5 14:40:38 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.1 required=5.0 tests=AWL,BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n65JecHZ045184 for ; Sun, 5 Jul 2009 14:40:38 -0500 X-ASG-Debug-ID: 1246822871-1d4301a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7FF371AF22F1 for ; Sun, 5 Jul 2009 12:41:11 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id xFd1umf4Aa7GRZFh for ; Sun, 05 Jul 2009 12:41:11 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MNXaJ-0007JZ-6T for xfs@oss.sgi.com; Sun, 05 Jul 2009 19:41:11 +0000 Date: Sun, 5 Jul 2009 15:41:11 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: add tests to check log size scaling Subject: [PATCH] xfstests: add tests to check log size scaling Message-ID: <20090705194111.GA3834@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246822872 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean XFS-QA test to check that log size scaling works correctly for old and new maximum log sizes. [hch: split into two testcases for old "small" log scaling and the large logs that require recent xfsprogs, and reduce the maximum size by 1GB to make it possible to run the test on 32 bit platforms] Signed-off-by: Dave Chinner Signed-off-by: Christoph Hellwig Index: xfstests-dev/216 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfstests-dev/216 2009-07-05 09:11:49.000000000 +0000 @@ -0,0 +1,79 @@ +#! /bin/sh +# FS QA Test No. 216 +# +# log size mkfs test - ensure the log size scaling works for small filesystems +# +#----------------------------------------------------------------------- +# Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# +# creator +owner=dgc@sgi.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* + _cleanup_testdir +} + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +_setup_testdir +_require_scratch +_scratch_mkfs_xfs >/dev/null 2>&1 +_scratch_mount + +_require_loop +LOOP_DEV=$SCRATCH_MNT/test_fs +LOOP_MNT=$SCRATCH_MNT/test_fs_dir + +_do_mkfs() +{ + for i in $*; do + echo -n "fssize=${i}g " + $MKFS_XFS_PROG -f -b size=4096 -l version=2 \ + -d name=$LOOP_DEV,size=${i}g |grep log + mount -o loop -t xfs $LOOP_DEV $LOOP_MNT + echo "test write" > $LOOP_MNT/test + umount $LOOP_MNT + done +} +# make large holey file +$XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV + +#make loopback mount dir +mkdir $LOOP_MNT + +# walk over standard sizes (up to 256GB) +_do_mkfs 1 2 4 8 16 32 64 128 256 + +status=0 +exit Index: xfstests-dev/216.out =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfstests-dev/216.out 2009-07-05 09:07:36.000000000 +0000 @@ -0,0 +1,10 @@ +QA output created by 216 +fssize=1g log =internal log bsize=4096 blocks=2560, version=2 +fssize=2g log =internal log bsize=4096 blocks=2560, version=2 +fssize=4g log =internal log bsize=4096 blocks=2560, version=2 +fssize=8g log =internal log bsize=4096 blocks=2560, version=2 +fssize=16g log =internal log bsize=4096 blocks=2560, version=2 +fssize=32g log =internal log bsize=4096 blocks=4096, version=2 +fssize=64g log =internal log bsize=4096 blocks=8192, version=2 +fssize=128g log =internal log bsize=4096 blocks=16384, version=2 +fssize=256g log =internal log bsize=4096 blocks=32768, version=2 Index: xfstests-dev/group =================================================================== --- xfstests-dev.orig/group 2009-07-04 18:07:55.000000000 +0000 +++ xfstests-dev/group 2009-07-05 09:16:04.000000000 +0000 @@ -324,3 +324,5 @@ 213 rw auto prealloc quick 214 rw auto prealloc quick 215 auto metadata quick +216 log metadata auto quick +217 log metadata auto Index: xfstests-dev/217 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfstests-dev/217 2009-07-05 09:26:57.000000000 +0000 @@ -0,0 +1,89 @@ +#! /bin/sh +# FS QA Test No. 217 +# +# large log size mkfs test - ensure the log size scaling works +# +#----------------------------------------------------------------------- +# Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# +# creator +owner=dgc@sgi.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* + _cleanup_testdir +} + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +_setup_testdir +_require_scratch +_scratch_mkfs_xfs >/dev/null 2>&1 +_scratch_mount + +_require_loop +LOOP_DEV=$SCRATCH_MNT/test_fs +LOOP_MNT=$SCRATCH_MNT/test_fs_dir + +_do_mkfs() +{ + for i in $*; do + echo -n "fssize=${i}g " + $MKFS_XFS_PROG -f -b size=4096 -l version=2 \ + -d name=$LOOP_DEV,size=${i}g |grep log + mount -o loop -t xfs $LOOP_DEV $LOOP_MNT + echo "test write" > $LOOP_MNT/test + umount $LOOP_MNT + done +} +# make large holey file +$XFS_IO_PROG -f -c "truncate 16383g" $LOOP_DEV + +#make loopback mount dir +mkdir $LOOP_MNT + +# test if large logs are supported +$MKFS_XFS_PROG -f -l size=256m -d name=$LOOP_DEV,size=10g > /dev/null 2>&1 +if [ $? -ne 0 ]; then + _notrun "large log sizes not supported by mkfs" +fi + +# +# walk over "new" sizes supported by recent xfsprogs. +# Note that the last test is for 16TB-1GB as 32bit platforms only support +# device slightly smaller than 16TB. +# +_do_mkfs 512 1024 2048 4096 8192 16383 + +status=0 +exit Index: xfstests-dev/217.out =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfstests-dev/217.out 2009-07-05 09:20:17.000000000 +0000 @@ -0,0 +1,7 @@ +QA output created by 217 +fssize=512g log =internal log bsize=4096 blocks=65536, version=2 +fssize=1024g log =internal log bsize=4096 blocks=131072, version=2 +fssize=2048g log =internal log bsize=4096 blocks=262144, version=2 +fssize=4096g log =internal log bsize=4096 blocks=521728, version=2 +fssize=8192g log =internal log bsize=4096 blocks=521728, version=2 +fssize=16383g log =internal log bsize=4096 blocks=521728, version=2 From felixb@sgi.com Sun Jul 5 15:20:42 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n65KKg0K047328 for ; Sun, 5 Jul 2009 15:20:42 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id A983A8F8035 for ; Sun, 5 Jul 2009 13:21:13 -0700 (PDT) Received: from [IPv6???1] (sshgate.corp.sgi.com [198.149.20.12]) by estes.americas.sgi.com (Postfix) with ESMTP id 3CEBE7000103; Sun, 5 Jul 2009 15:21:13 -0500 (CDT) Cc: xfs-oss Message-Id: From: Felix Blyakher To: Eric Sandeen In-Reply-To: <4A50E197.3070209@sandeen.net> Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: Re: [PATCH (trivial)] remove XFS_INO64_OFFSET Date: Sun, 5 Jul 2009 15:21:11 -0500 References: <4A50E197.3070209@sandeen.net> X-Mailer: Apple Mail (2.930.3) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Jul 5, 2009, at 12:23 PM, Eric Sandeen wrote: > Commit a19d9f887d81106d52cacbc9930207b487e07e0e removed the > ino64 option but left the XFS_INO64_OFFSET define it used > in place - just remove it. > > Signed-off-by: Eric Sandeen Reviewed-by: Felix Blyakher > > --- > > diff --git a/fs/xfs/xfs_inum.h b/fs/xfs/xfs_inum.h > index 7a28191..b8e4ee4 100644 > --- a/fs/xfs/xfs_inum.h > +++ b/fs/xfs/xfs_inum.h > @@ -72,7 +72,6 @@ struct xfs_mount; > > #if XFS_BIG_INUMS > #define XFS_MAXINUMBER ((xfs_ino_t)((1ULL << 56) - 1ULL)) > -#define XFS_INO64_OFFSET ((xfs_ino_t)(1ULL << 32)) > #else > #define XFS_MAXINUMBER ((xfs_ino_t)((1ULL << 32) - 1ULL)) > #endif > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From felixb@oss.sgi.com Sun Jul 5 20:16:06 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n661G6eV058815 for ; Sun, 5 Jul 2009 20:16:06 -0500 Received: (from felixb@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id n661G5ij058786; Sun, 5 Jul 2009 20:16:05 -0500 Date: Sun, 5 Jul 2009 20:16:05 -0500 Message-Id: <200907060116.n661G5ij058786@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.30-rc4-1244-gb560634 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: ab8b9baac3f48fb3fc3d47790950c0eec134e678 X-Git-Newrev: b56063453881a6d94cf5718c6769de6e35e67753 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated b560634 xfs: remove XFS_INO64_OFFSET from ab8b9baac3f48fb3fc3d47790950c0eec134e678 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b56063453881a6d94cf5718c6769de6e35e67753 Author: Eric Sandeen Date: Sun Jul 5 12:23:35 2009 -0500 xfs: remove XFS_INO64_OFFSET Commit a19d9f887d81106d52cacbc9930207b487e07e0e removed the ino64 option but left the XFS_INO64_OFFSET define it used in place - just remove it. Signed-off-by: Eric Sandeen Reviewed-by: Christoph Hellwig Reviewed-by: Felix Blyakher Signed-off-by: Felix Blyakher ----------------------------------------------------------------------- Summary of changes: fs/xfs/xfs_inum.h | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) hooks/post-receive -- XFS development tree From felixb@sgi.com Mon Jul 6 00:32:18 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n665WHvt071522 for ; Mon, 6 Jul 2009 00:32:17 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id 944388F8096 for ; Sun, 5 Jul 2009 22:32:49 -0700 (PDT) Received: from [IPv6???1] (sshgate.corp.sgi.com [198.149.20.12]) by estes.americas.sgi.com (Postfix) with ESMTP id 32B947000103 for ; Mon, 6 Jul 2009 00:32:49 -0500 (CDT) Message-Id: From: Felix Blyakher To: xfs-oss list Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Mime-Version: 1.0 (Apple Message framework v930.3) Subject: maintainer on vacation, backup from sgi Date: Mon, 6 Jul 2009 00:32:47 -0500 X-Mailer: Apple Mail (2.930.3) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, I'm going to be on vacation and not reachable till July 20. The whole xfs SGI team will be backing me up for the maintainership tasks. The point man for this, though, will be Olaf Weber . See you all in two weeks. Felix From sandeen@sandeen.net Mon Jul 6 13:25:03 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n66IP3dR102914 for ; Mon, 6 Jul 2009 13:25:03 -0500 X-ASG-Debug-ID: 1246905145-7ebb01360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3692A9E798C for ; Mon, 6 Jul 2009 11:32:25 -0700 (PDT) Received: from mx2.redhat.com (mx2.redhat.com [66.187.237.31]) by cuda.sgi.com with ESMTP id LuyRK26nHQnObAnG for ; Mon, 06 Jul 2009 11:32:25 -0700 (PDT) Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n66IPaZX018178 for ; Mon, 6 Jul 2009 14:25:36 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n66IPZOZ005312 for ; Mon, 6 Jul 2009 14:25:35 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n66IPYDQ013176 for ; Mon, 6 Jul 2009 14:25:34 -0400 Message-ID: <4A52419E.5020301@sandeen.net> Date: Mon, 06 Jul 2009 13:25:34 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.21 (X11/20090320) MIME-Version: 1.0 To: xfs mailing list X-ASG-Orig-Subj: [PATCH, RFC] default to inode64 on 64-bit systems Subject: [PATCH, RFC] default to inode64 on 64-bit systems Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.58 on 172.16.27.26 X-Barracuda-Connect: mx2.redhat.com[66.187.237.31] X-Barracuda-Start-Time: 1246905146 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2705 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'm tiring of telling people to use the inode64 mount option when they are experiencing bad performance on large xfs filesystems... 32-bit userspace is still largely broken when it comes to still using 32-bit stat calls, but on 64-bit systems this should be safe. The only problem here is moving the disk onto a 32-bit system, or using 32-bit apps. But I think it's a small risk. What do we think about the following? Thanks, -Eric Signed-off-by: Eric Sandeen --- diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index a220d36..5d134fd 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -195,7 +195,9 @@ xfs_parseargs( */ mp->m_flags |= XFS_MOUNT_BARRIER; mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; +#if BITS_PER_LONG == 32 mp->m_flags |= XFS_MOUNT_SMALL_INUMS; +#endif /* * These can be overridden by the mount option parsing. From BATV+5a26e7b33d6d7fac9e67+2143+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 6 13:47:25 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n66IlNGB103947 for ; Mon, 6 Jul 2009 13:47:25 -0500 X-ASG-Debug-ID: 1246906486-7e4c01630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 38282603586 for ; Mon, 6 Jul 2009 11:54:47 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id F749aTZiNLQ6fATs for ; Mon, 06 Jul 2009 11:54:47 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MNt9V-0004n6-MJ; Mon, 06 Jul 2009 18:42:57 +0000 Date: Mon, 6 Jul 2009 14:42:57 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH, RFC] default to inode64 on 64-bit systems Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems Message-ID: <20090706184257.GA18107@infradead.org> References: <4A52419E.5020301@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A52419E.5020301@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246906487 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 06, 2009 at 01:25:34PM -0500, Eric Sandeen wrote: > I'm tiring of telling people to use the inode64 mount option > when they are experiencing bad performance on large xfs > filesystems... > > 32-bit userspace is still largely broken when it comes to still > using 32-bit stat calls, but on 64-bit systems this should be > safe. > > The only problem here is moving the disk onto a 32-bit system, or using > 32-bit apps. But I think it's a small risk. > > What do we think about the following? Looks good to me, but it could use a comment in the code explaining why we do this. From sandeen@sandeen.net Mon Jul 6 23:00:45 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6740jTV124053 for ; Mon, 6 Jul 2009 23:00:45 -0500 X-ASG-Debug-ID: 1246939277-184e03280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3263C1AFCDC6 for ; Mon, 6 Jul 2009 21:01:18 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id WTTbgsbyjGiyp35T for ; Mon, 06 Jul 2009 21:01:18 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 7A98DA9BE20; Mon, 6 Jul 2009 23:01:16 -0500 (CDT) Message-ID: <4A52C88C.2040600@sandeen.net> Date: Mon, 06 Jul 2009 23:01:16 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Subject: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes References: <20090704182742.GA11083@infradead.org> In-Reply-To: <20090704182742.GA11083@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246939279 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2740 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > Check that we correctly update the timestamps when writing to a file > through an mmap mapping. Currently fails for XFS due a VFS bug but > succeeds for many other filesystems. > > > Signed-off-by: Christoph Hellwig Test seems mostly ok, but aren't you missing 215.out in the patch? couple comments below > Index: xfstests-dev/215 > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ xfstests-dev/215 2009-07-04 18:25:43.000000000 +0000 > @@ -0,0 +1,87 @@ > +#! /bin/sh > +# FS QA Test No. 215 > +# > +# Test out c/mtime updates after mapped writes. > +# > +# Based on the testcase in http://bugzilla.kernel.org/show_bug.cgi?id=2645 > +# > +#----------------------------------------------------------------------- > +# Copyright (c) 2009 Christoph Hellwig. > +# > +# This program is free software; you can redistribute it and/or > +# modify it under the terms of the GNU General Public License as > +# published by the Free Software Foundation. > +# > +# This program is distributed in the hope that it would be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write the Free Software Foundation, > +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > +#----------------------------------------------------------------------- > +# > +# creator > +owner=hch@lst.de > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +_cleanup() > +{ > + cd / > + rm -f $testfile > +} > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +# get standard environment, filters and checks > +. ./common.rc > +. ./common.filter > + > +# real QA test starts here > +_supported_fs generic > +_supported_os Linux > + > +testfile=$TEST_DIR/tst.mmap > + > +echo > +echo "creating test file" > +dd if=/dev/zero of=$testfile count=4096 > + > +mtime1=`stat --printf="%Y" $testfile` > +ctime1=`stat --printf="%Z" $testfile` > + > +sleep 1 Is there any slight chance a sleep 1 won't catch it? Would sleep 2 do better to be sure? > +echo > +echo "writing via mmap" > +$XFS_IO_PROG -F -f \ > + -c 'mmap 0 4096' \ > + -c 'mwrite 0 4096' \ > + $testfile | _filter_xfs_io_unique > + > +mtime2=`stat --printf="%Y" $testfile` > +ctime2=`stat --printf="%Z" $testfile` > + > +let mtime_diff=$mtime2-$mtime1 > +let ctime_diff=$ctime2-$ctime1 > + > +if [ "$mtime_diff" -eq "0" ]; then > + echo "FAIL: mtime not update after mapped write" > + status=1 > +fi > + > +if [ "$ctime_diff" -eq "0" ]; then > + echo "FAIL: ctime not update after mapped write" > + status=1 > +fi Should these just be _fail calls? Otherwise... > +# success, all done > +echo "*** done" > +rm -f $seq.full > +status=0 don't you always exit w/ status 0 and remove the full output? I guess i'm not sure when to use _fail and when to let the golden output difference kill the test, I suppose it doesn't much matter, it should pass & fail correctly either way. -Eric > Index: xfstests-dev/group > =================================================================== > --- xfstests-dev.orig/group 2009-07-04 18:07:40.000000000 +0000 > +++ xfstests-dev/group 2009-07-04 18:07:55.000000000 +0000 > @@ -323,3 +323,4 @@ > 212 auto aio quick > 213 rw auto prealloc quick > 214 rw auto prealloc quick > +215 auto metadata quick > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From sandeen@sandeen.net Mon Jul 6 23:10:29 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n674ATtI124290 for ; Mon, 6 Jul 2009 23:10:29 -0500 X-ASG-Debug-ID: 1246939863-4ac1016b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E255D347997 for ; Mon, 6 Jul 2009 21:11:03 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id RNHy0V5CwW65hsHE for ; Mon, 06 Jul 2009 21:11:03 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id C9646A9B0A7; Mon, 6 Jul 2009 23:11:02 -0500 (CDT) Message-ID: <4A52CAD6.1070807@sandeen.net> Date: Mon, 06 Jul 2009 23:11:02 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add tests to check log size scaling Subject: Re: [PATCH] xfstests: add tests to check log size scaling References: <20090705194111.GA3834@infradead.org> In-Reply-To: <20090705194111.GA3834@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246939863 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2740 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > XFS-QA test to check that log size scaling works correctly > for old and new maximum log sizes. > > [hch: split into two testcases for old "small" log scaling and the > large logs that require recent xfsprogs, and reduce the maximum > size by 1GB to make it possible to run the test on 32 bit platforms] > > Signed-off-by: Dave Chinner > Signed-off-by: Christoph Hellwig minor question below > > Index: xfstests-dev/216 > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ xfstests-dev/216 2009-07-05 09:11:49.000000000 +0000 > @@ -0,0 +1,79 @@ > +#! /bin/sh > +# FS QA Test No. 216 > +# > +# log size mkfs test - ensure the log size scaling works for small filesystems > +# > +#----------------------------------------------------------------------- > +# Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. > +# > +# This program is free software; you can redistribute it and/or > +# modify it under the terms of the GNU General Public License as > +# published by the Free Software Foundation. > +# > +# This program is distributed in the hope that it would be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write the Free Software Foundation, > +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > +#----------------------------------------------------------------------- > +# > +# creator > +owner=dgc@sgi.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > + _cleanup_testdir > +} > + > +# get standard environment, filters and checks > +. ./common.rc > +. ./common.filter > + > +# real QA test starts here > +_supported_fs xfs > +_supported_os Linux > + > +_setup_testdir > +_require_scratch > +_scratch_mkfs_xfs >/dev/null 2>&1 > +_scratch_mount Any reason to do this on the scratch dir vs. the test dir? (Since scratch dir became optional, I figure stuff that can go on the test dev instead, probably should?) not a big deal, it looks fine otherwise. -Eric > +_require_loop > +LOOP_DEV=$SCRATCH_MNT/test_fs > +LOOP_MNT=$SCRATCH_MNT/test_fs_dir > + > +_do_mkfs() > +{ > + for i in $*; do > + echo -n "fssize=${i}g " > + $MKFS_XFS_PROG -f -b size=4096 -l version=2 \ > + -d name=$LOOP_DEV,size=${i}g |grep log > + mount -o loop -t xfs $LOOP_DEV $LOOP_MNT > + echo "test write" > $LOOP_MNT/test > + umount $LOOP_MNT > + done > +} > +# make large holey file > +$XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV > + > +#make loopback mount dir > +mkdir $LOOP_MNT > + > +# walk over standard sizes (up to 256GB) > +_do_mkfs 1 2 4 8 16 32 64 128 256 > + > +status=0 > +exit > Index: xfstests-dev/216.out > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ xfstests-dev/216.out 2009-07-05 09:07:36.000000000 +0000 > @@ -0,0 +1,10 @@ > +QA output created by 216 > +fssize=1g log =internal log bsize=4096 blocks=2560, version=2 > +fssize=2g log =internal log bsize=4096 blocks=2560, version=2 > +fssize=4g log =internal log bsize=4096 blocks=2560, version=2 > +fssize=8g log =internal log bsize=4096 blocks=2560, version=2 > +fssize=16g log =internal log bsize=4096 blocks=2560, version=2 > +fssize=32g log =internal log bsize=4096 blocks=4096, version=2 > +fssize=64g log =internal log bsize=4096 blocks=8192, version=2 > +fssize=128g log =internal log bsize=4096 blocks=16384, version=2 > +fssize=256g log =internal log bsize=4096 blocks=32768, version=2 > Index: xfstests-dev/group > =================================================================== > --- xfstests-dev.orig/group 2009-07-04 18:07:55.000000000 +0000 > +++ xfstests-dev/group 2009-07-05 09:16:04.000000000 +0000 > @@ -324,3 +324,5 @@ > 213 rw auto prealloc quick > 214 rw auto prealloc quick > 215 auto metadata quick > +216 log metadata auto quick > +217 log metadata auto > Index: xfstests-dev/217 > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ xfstests-dev/217 2009-07-05 09:26:57.000000000 +0000 > @@ -0,0 +1,89 @@ > +#! /bin/sh > +# FS QA Test No. 217 > +# > +# large log size mkfs test - ensure the log size scaling works > +# > +#----------------------------------------------------------------------- > +# Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. > +# > +# This program is free software; you can redistribute it and/or > +# modify it under the terms of the GNU General Public License as > +# published by the Free Software Foundation. > +# > +# This program is distributed in the hope that it would be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write the Free Software Foundation, > +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > +#----------------------------------------------------------------------- > +# > +# creator > +owner=dgc@sgi.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > + _cleanup_testdir > +} > + > +# get standard environment, filters and checks > +. ./common.rc > +. ./common.filter > + > +# real QA test starts here > +_supported_fs xfs > +_supported_os Linux > + > +_setup_testdir > +_require_scratch > +_scratch_mkfs_xfs >/dev/null 2>&1 > +_scratch_mount > + > +_require_loop > +LOOP_DEV=$SCRATCH_MNT/test_fs > +LOOP_MNT=$SCRATCH_MNT/test_fs_dir > + > +_do_mkfs() > +{ > + for i in $*; do > + echo -n "fssize=${i}g " > + $MKFS_XFS_PROG -f -b size=4096 -l version=2 \ > + -d name=$LOOP_DEV,size=${i}g |grep log > + mount -o loop -t xfs $LOOP_DEV $LOOP_MNT > + echo "test write" > $LOOP_MNT/test > + umount $LOOP_MNT > + done > +} > +# make large holey file > +$XFS_IO_PROG -f -c "truncate 16383g" $LOOP_DEV > + > +#make loopback mount dir > +mkdir $LOOP_MNT > + > +# test if large logs are supported > +$MKFS_XFS_PROG -f -l size=256m -d name=$LOOP_DEV,size=10g > /dev/null 2>&1 > +if [ $? -ne 0 ]; then > + _notrun "large log sizes not supported by mkfs" > +fi > + > +# > +# walk over "new" sizes supported by recent xfsprogs. > +# Note that the last test is for 16TB-1GB as 32bit platforms only support > +# device slightly smaller than 16TB. > +# > +_do_mkfs 512 1024 2048 4096 8192 16383 > + > +status=0 > +exit > Index: xfstests-dev/217.out > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ xfstests-dev/217.out 2009-07-05 09:20:17.000000000 +0000 > @@ -0,0 +1,7 @@ > +QA output created by 217 > +fssize=512g log =internal log bsize=4096 blocks=65536, version=2 > +fssize=1024g log =internal log bsize=4096 blocks=131072, version=2 > +fssize=2048g log =internal log bsize=4096 blocks=262144, version=2 > +fssize=4096g log =internal log bsize=4096 blocks=521728, version=2 > +fssize=8192g log =internal log bsize=4096 blocks=521728, version=2 > +fssize=16383g log =internal log bsize=4096 blocks=521728, version=2 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From SEMA-CR-1-58SIH9@ptcmarketing.com Tue Jul 7 01:13:21 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.5 required=5.0 tests=AWL,BAYES_50,HTML_MESSAGE, MIME_QP_LONG_LINE autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n676DK20130010 for ; Tue, 7 Jul 2009 01:13:20 -0500 X-ASG-Debug-ID: 1246947233-4ab203670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from relay2.ptc.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2196B347B4A for ; Mon, 6 Jul 2009 23:13:53 -0700 (PDT) Received: from relay2.ptc.com (relay2.ptc.com [12.11.148.122]) by cuda.sgi.com with ESMTP id oYnKAFeNQ4AePMMG for ; Mon, 06 Jul 2009 23:13:53 -0700 (PDT) X-IronPort-AV: E=Sophos;i="4.42,361,1243828800"; d="scan'208,217";a="305349706" Received: from hqcrmprdint18.ptcnet.ptc.com ([132.253.201.206]) by crmmaxx.ptc.com with ESMTP; 07 Jul 2009 02:12:44 -0400 To: MIME-Version: 1.0 Reply-To: noreply@ptc.com From: "PTC Info" X-ASG-Orig-Subj: Upgrade to ProductView Professional - Now Available at the PTC Web Store Subject: Upgrade to ProductView Professional - Now Available at the PTC Web Store Sender: "PTC Info" Message-ID: Content-Type: multipart/alternative; boundary=BF_1246946970080_2118487217 X-Barracuda-Connect: relay2.ptc.com[12.11.148.122] X-Barracuda-Start-Time: 1246947234 Date: Mon, 6 Jul 2009 23:13:53 -0700 (PDT) X-Barracuda-Bayes: INNOCENT GLOBAL 0.3864 1.0000 -0.0363 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.78 X-Barracuda-Spam-Status: No, SCORE=0.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e, HTML_MESSAGE, MIME_QP_LONG_LINE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2747 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.82 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --BF_1246946970080_2118487217 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable Now Available at the PTC Web Store =E2=80=93 ProductView Lite to MCAD Profes= sional Upgrade (http://www.ptc.com/read?&u=3D= 1-5LWLN-2077= &c=3D= 1-4AOWXZ= &o=3D= 1-50D7OL= &w=3D= 2354034= &t=3Dhttp%3A%2F%2Fwww.ptc.com%2Fgo%2Fviewupgrade) ProductView MCAD Professional =E2=80=93 Ultra Scalable Visual Collaboration ProductView MCAD Professional is a universal viewer that brings 3D MCAD prod= uct models, assemblies, drawings, images and documents to everyone=E2=80=99s= desktop for comprehensive interrogation and visual collaboration=E2=80=93al= l without the need for native authoring applications. Key Benefits: =E2=80=A2 Accelerate the Design Process =E2=80=93 By offering comprehensive = view, markup and annotation tools, and market-leading performance, ProductVi= ew MCAD Professional can accelerate the important design reviews that occur = throughout the product development process. Now people around the world can = simultaneously be involved in the design process. And, with its ultrascalabi= lity, ProductView MCAD Professional supports a full range of visualization, = spanning from simple desktop viewing of single CAD models to the interaction with your most massi= ve digital models of over one million parts. =E2=80=A2 Reduce IT Infrastructure to Overhead =E2=80=93 Having a single too= l toview many types of detailed product data lowers the amount of overhead r= equiredfrom the IT department. A common, consistent interface that can acces= s digitalproduct definition data across the enterprise lowers expenses assoc= iated withsoftware maintenance, product upgrades and internal training. Elim= inating datainteroperability issues translates into lower overhead and highe= r productivity. =E2=80=A2 Improve Efficiency =E2=80=93 Productivity improves by allowing eng= ineersto easily share visual information across the enterprise, while still = permitting users to accurately measure dimensions. Not only can ProductView = MCAD Professional accelerate time-to-market, but its visual collaboration an= d markup capabilities can also help reduce costs. =E2=80=A2 Increase Control and Security =E2=80=93 ProductView MCAD Professio= nal allows critical business documents (both drawings and 2D documents) to b= e securely managed when collaborating on projects both within and beyond the= enterprise.Now, you can view more information and easily and instantly purc= hase ProductView products from the PTC Web Store. To upgrade to ProductView MCAD Professional or to visit the PTC Web Store, g= o to: http://www.ptc.com/read?&u=3D= 1-5LWLN-2077= &c=3D= 1-4AOWXZ= &o=3D= 1-50D7OL= &w=3D= 2354034= &t=3Dhttp%3A%2F%2Fwww.ptc.com%2Fgo%2Fviewupgrade =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D contact PTC http://www.ptc.com/company/contacts/index.htm privacy policy http://www.ptc.com/company/policies/index.htm unsubscribe http://www.ptc.com/appserver/mkt/mail/preferences.jsp?&offd=3D= 1-50D7OL= &campd=3D= 1-4AOWXZ= &conud=3D= 1-5LWLN-2077= &mailkey=3D= 2354034= &email=3D= xfs@oss.sgi.com= change email preferences http://www.ptc.com/appserver/mkt/mail/preferences.jsp?&offd=3D= 1-50D7OL= &campd=3D= 1-4AOWXZ= &conud=3D= 1-5LWLN-2077= &mailkey=3D= 2354034= &email=3D= xfs@oss.sgi.com= edit profile http://www.ptc.com/read?&w=3D= 2354034= &t=3D/common/account/index.htm ----------------------------------------------------------------------------= --- This email was sent to: = xfs@oss.sgi.com= PTC, 140 Kendrick Street, Needham, MA 02494 USA If you wish to unsubscribe from all PTC Emails, please send a blank email to= . --BF_1246946970080_2118487217 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable Upgrade System Notice Email Q309 NA SMB DR - ProductView
3D"PTC.com"

Now Available = at the PTC Web Store – ProductView Lite to MCAD Professional Upgrade=20

ProductView MCAD Professional – Ultra Scalable Visual Colla= boration

ProductView MCAD Professional is a universal viewer that brings 3D MCAD p= roduct models, assemblies, drawings, images and documents to everyone’= s desktop for comprehensive interrogation and visual collaboration–all= without the need for native authoring applications.

Key Benefits:

•       Accelerate the Design= Process – By offering comprehensive view, markup and annotat= ion tools, and market-leading performance, ProductView MCAD Professional can= accelerate the important design reviews that occur throughout the product d= evelopment process. Now people around the world can simultaneously be involv= ed in the design process. And, with its ultrascalability, ProductView MCAD P= rofessional supports a full range of visualization, spanning from simple des= ktop viewing of single CAD models to the interaction with your most massive = digital models of over one million parts.

•       Reduce IT Infrastruct= ure to Overhead – Having a single tool to view many types of = detailed product data lowers the amount of overhead required from the IT dep= artment. A common, consistent interface that can access digital product defi= nition data across the enterprise lowers expenses associated with software m= aintenance, product upgrades and internal training. Eliminating data interop= erability issues translates into lower overhead and higher productivity.

•       Improve Efficiency &#= 8211; Productivity improves by allowing engineers to easily share v= isual information across the enterprise, while still permitting users to acc= urately measure dimensions. Not only can ProductView MCAD Professional accel= erate time-to-market, but its visual collaboration and markup capabilities c= an also help reduce costs.

•       Increase Control and = Security – ProductView MCAD Professional allows critical busi= ness documents (both drawings and 2D documents) to be securely managed when = collaborating on projects both within and beyond the enterprise.Now, you can= view more information and easily and instantly purchase ProductView product= s from the PTC Web Store.

To upgrade to ProductView MCAD Professional or to visit the PTC W= eb Store, go to: www.ptc.com/go= /viewupgrade

3D""

contact PTC | privacy policy | edit profile
This email was sent to: = xfs@oss.sgi.com=     PTC, 140 Kendrick Street, Needham, MA 02494 USA
If you wish to unsubscribe from all PTC Emails, please send a blank ema= il to unsubscribe@ptc.com.
--BF_1246946970080_2118487217-- From info@uio.no Tue Jul 7 03:42:45 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.3 required=5.0 tests=BAYES_20,SUBJ_ATTENTION autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n678gjxA133918 for ; Tue, 7 Jul 2009 03:42:45 -0500 X-ASG-Debug-ID: 1246956199-666a004b0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from olc-14.verat.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3B50A34820B for ; Tue, 7 Jul 2009 01:43:19 -0700 (PDT) Received: from olc-14.verat.net (olc-14.verat.net [62.108.127.40]) by cuda.sgi.com with ESMTP id vyaIp9g5x7ai009t for ; Tue, 07 Jul 2009 01:43:19 -0700 (PDT) Received: from webmail.verat.net (webmail.verat.net [85.222.160.153]) by olc-14.verat.net (Postfix) with ESMTP id 56409C0827; Tue, 7 Jul 2009 10:38:21 +0200 (CEST) Received: from 41.220.75.3 (SquirrelMail authenticated user chuch) by webmail.verat.net with HTTP; Tue, 7 Jul 2009 10:43:16 +0200 (CEST) Message-ID: <47552.41.220.75.3.1246956196.squirrel@webmail.verat.net> Date: Tue, 7 Jul 2009 10:43:16 +0200 (CEST) X-ASG-Orig-Subj: ATTENTION: Subject: ATTENTION: From: "Universitetet i Oslo (UiO)" Reply-To: account.unitq12@gmail.com User-Agent: SquirrelMail/1.4.13 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal To: undisclosed-recipients:; X-Barracuda-Connect: olc-14.verat.net[62.108.127.40] X-Barracuda-Start-Time: 1246956200 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3970 1.0000 -0.0077 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.01 X-Barracuda-Spam-Status: No, SCORE=-0.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2756 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ATTENTION: Denne posten er å informere alle våre [Uio.no] brukere at webmail konto har blitt kompromittert av spammere ved å få tilgang til din webmail konto og har brukt den til ulovlige internett-aktiviteter. Du er bedt om å gi din nåværende påloggings-IDen for at vi nullstiller din webpostkontoen passord umiddelbart å aviod misbruk av kontoen. * E-postadresse: * Gjeldende passord: * Future Passord: Du skal bli kontaktet med et nytt passord ved ferdigstillelse, og du er anbefales å gi informasjonen ovenfor eller kontoen din vil bli avbrutt av misbruk team. Takk for at du bruker Uio.no Webmail! Uio.no Vedlikehold Team. From olaf@sgi.com Tue Jul 7 03:59:08 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from fransum.emea.sgi.com (fransum.emea.sgi.com [144.253.208.10]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n678x6wU134291 for ; Tue, 7 Jul 2009 03:59:07 -0500 Received: from fransum.emea.sgi.com (localhost [127.0.0.1]) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11) with ESMTP id n678xdK6275740; Tue, 7 Jul 2009 10:59:39 +0200 (MEST) Received: (from olaf@localhost) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11/Submit) id n678xdwx275743; Tue, 7 Jul 2009 10:59:39 +0200 (MEST) To: Christoph Hellwig Cc: Eric Sandeen , xfs mailing list Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems References: <4A52419E.5020301@sandeen.net> <20090706184257.GA18107@infradead.org> From: Olaf Weber Date: Tue, 07 Jul 2009 10:59:37 +0200 In-Reply-To: <20090706184257.GA18107@infradead.org> (Christoph Hellwig's message of "Mon, 6 Jul 2009 14:42:57 -0400") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.3 (irix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig writes: > On Mon, Jul 06, 2009 at 01:25:34PM -0500, Eric Sandeen wrote: >> I'm tiring of telling people to use the inode64 mount option >> when they are experiencing bad performance on large xfs >> filesystems... >> >> 32-bit userspace is still largely broken when it comes to still >> using 32-bit stat calls, but on 64-bit systems this should be >> safe. >> >> The only problem here is moving the disk onto a 32-bit system, or using >> 32-bit apps. But I think it's a small risk. >> >> What do we think about the following? > Looks good to me, but it could use a comment in the code explaining why > we do this. Making inode64 the default on 64 bit systems seems like a good idea to me. But would it not be advisable to have a mount option that forces the old behaviour, just in case? Something like "broken32bituserspace" (or maybe "inode32"). -- Olaf Weber SGI Phone: +31(0)30-6696752 Veldzigt 2b Fax: +31(0)30-6696799 Technical Lead 3454 PW de Meern Vnet: 955-7151 Storage Software The Netherlands Email: olaf@sgi.com From olaf@sgi.com Tue Jul 7 04:07:00 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from fransum.emea.sgi.com (fransum.emea.sgi.com [144.253.208.10]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6796xXZ134507 for ; Tue, 7 Jul 2009 04:07:00 -0500 Received: from fransum.emea.sgi.com (localhost [127.0.0.1]) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11) with ESMTP id n6797VDe275899; Tue, 7 Jul 2009 11:07:32 +0200 (MEST) Received: (from olaf@localhost) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11/Submit) id n6797Uk1275913; Tue, 7 Jul 2009 11:07:30 +0200 (MEST) To: Eric Sandeen Cc: xfs mailing list , Christoph Hellwig , linux-mm@kvack.org, "MASON, CHRISTOPHER" Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage References: <4A4D26C5.9070606@redhat.com> From: Olaf Weber Date: Tue, 07 Jul 2009 11:07:30 +0200 In-Reply-To: <4A4D26C5.9070606@redhat.com> (Eric Sandeen's message of "Thu, 02 Jul 2009 16:29:41 -0500") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.3 (irix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eric Sandeen writes: > Talking w/ someone who had a raid6 of 15 drives on an areca > controller, he wondered why he could only get 300MB/s or so > out of a streaming buffered write to xfs like so: > dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920 > 10737418240 bytes (11 GB) copied, 34.294 s, 313 MB/s > when the same write directly to the device was going closer > to 700MB/s... > With the following change things get moving again for xfs: > dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920 > 10737418240 bytes (11 GB) copied, 16.2938 s, 659 MB/s > Chris had sent out something similar at Christoph's suggestion, > and Christoph reminded me of it, and I tested it a variant of > it, and it seems to help shockingly well. > Feels like a bandaid though; thoughts? Other tests to do? If the nr_to_write calculation really yields a value that is too small, shouldn't it be fixed elsewhere? Otherwise it might make sense to make the fudge factor tunable. > + > + /* > + * VM calculation for nr_to_write seems off. Bump it way > + * up, this gets simple streaming writes zippy again. > + */ > + wbc->nr_to_write *= 4; > + -- Olaf Weber SGI Phone: +31(0)30-6696752 Veldzigt 2b Fax: +31(0)30-6696799 Technical Lead 3454 PW de Meern Vnet: 955-7151 Storage Software The Netherlands Email: olaf@sgi.com From ms@citd.de Tue Jul 7 04:37:54 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n679br9i135713 for ; Tue, 7 Jul 2009 04:37:53 -0500 X-ASG-Debug-ID: 1246959911-3f1a01510000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from enyo.dsw2k3.info (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 43E719F20AE for ; Tue, 7 Jul 2009 02:45:11 -0700 (PDT) Received: from enyo.dsw2k3.info (enyo.dsw2k3.info [195.71.86.239]) by cuda.sgi.com with ESMTP id 5lnjPOsbiLbYIFxQ for ; Tue, 07 Jul 2009 02:45:11 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by enyo.dsw2k3.info (Postfix) with ESMTP id BF0842BCAC; Tue, 7 Jul 2009 11:38:18 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at enyo.dsw2k3.info Received: from enyo.dsw2k3.info ([127.0.0.1]) by localhost (enyo.dsw2k3.info [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 4GDdm3NdT1Qy; Tue, 7 Jul 2009 11:38:06 +0200 (CEST) Received: from citd.de (p4FC4D1F7.dip.t-dialin.net [79.196.209.247]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by enyo.dsw2k3.info (Postfix) with ESMTP id 246A62BC77; Tue, 7 Jul 2009 11:38:05 +0200 (CEST) Date: Tue, 7 Jul 2009 11:38:02 +0200 From: Matthias Schniedermeyer To: Eric Sandeen Cc: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH, RFC] default to inode64 on 64-bit systems Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems Message-ID: <20090707093802.GA32125@citd.de> References: <4A52419E.5020301@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A52419E.5020301@sandeen.net> User-Agent: Mutt/1.5.19 (2009-01-05) X-Barracuda-Connect: enyo.dsw2k3.info[195.71.86.239] X-Barracuda-Start-Time: 1246959913 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Whitelist: HEADER (^X-Barracuda-Connect: [^ ]+\.dsw2k3\.info\[) X-Virus-Status: Clean On 06.07.2009 13:25, Eric Sandeen wrote: > I'm tiring of telling people to use the inode64 mount option > when they are experiencing bad performance on large xfs > filesystems... > > 32-bit userspace is still largely broken when it comes to still > using 32-bit stat calls, but on 64-bit systems this should be > safe. > > The only problem here is moving the disk onto a 32-bit system, or using > 32-bit apps. But I think it's a small risk. > > What do we think about the following? What is with people running 64bit kernel but 32bit Userspace? Bis denn -- Real Programmers consider "what you see is what you get" to be just as bad a concept in Text Editors as it is in women. No, the Real Programmer wants a "you asked for it, you got it" text editor -- complicated, cryptic, powerful, unforgiving, dangerous. From mw@dermichi.com Tue Jul 7 05:12:30 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67ACTdT138193 for ; Tue, 7 Jul 2009 05:12:30 -0500 X-ASG-Debug-ID: 1246961995-71f503400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D6825129A68C; Tue, 7 Jul 2009 03:19:56 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [83.64.48.195]) by cuda.sgi.com with ESMTP id fm6PNvrZ9VZhtZdb; Tue, 07 Jul 2009 03:19:56 -0700 (PDT) Received: from cerberus.net4you.net ([194.177.153.130] helo=[192.168.200.110]) by firestarter.dermichi.com with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1MO7fa-0004g2-9y; Tue, 07 Jul 2009 12:13:02 +0200 Message-ID: <4A531FAB.3050406@dermichi.com> Date: Tue, 07 Jul 2009 12:12:59 +0200 From: Michael Weissenbacher User-Agent: Thunderbird 2.0.0.22 (X11/20090608) MIME-Version: 1.0 To: Olaf Weber CC: Christoph Hellwig , Eric Sandeen , xfs mailing list X-ASG-Orig-Subj: Re: [PATCH, RFC] default to inode64 on 64-bit systems Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems References: <4A52419E.5020301@sandeen.net> <20090706184257.GA18107@infradead.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[83.64.48.195] X-Barracuda-Start-Time: 1246961996 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1341 1.0000 -1.1918 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.59 X-Barracuda-Spam-Status: No, SCORE=-0.59 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2763 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi! > Making inode64 the default on 64 bit systems seems like a good idea to > me. But would it not be advisable to have a mount option that forces > the old behaviour, just in case? Something like "broken32bituserspace" > (or maybe "inode32"). > I think such a mount option would be a must. There is lots of 32-bit Software that cannot cope with 64-bit inodes. Unfortunately there are closed-source 32-bit apps (which can be run on 64 bit systems) where nothing can be done for 64-bit inode compatiblity in the short term. Had this problem very recently with the Zmanda Enterprise Backup Software, which forced me to remove the inode64 option. regards, Michael From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:17:04 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AH2pd138418 for ; Tue, 7 Jul 2009 05:17:04 -0500 X-ASG-Debug-ID: 1246961857-666d03770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2606D34864C for ; Tue, 7 Jul 2009 03:17:37 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id nehaQs40YZiDGbhb for ; Tue, 07 Jul 2009 03:17:37 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO7k1-0002Jh-BO; Tue, 07 Jul 2009 10:17:37 +0000 Date: Tue, 7 Jul 2009 06:17:37 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Subject: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Message-ID: <20090707101737.GA1934@infradead.org> References: <20090704182742.GA11083@infradead.org> <4A52C88C.2040600@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A52C88C.2040600@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246961858 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 06, 2009 at 11:01:16PM -0500, Eric Sandeen wrote: > Christoph Hellwig wrote: > > Check that we correctly update the timestamps when writing to a file > > through an mmap mapping. Currently fails for XFS due a VFS bug but > > succeeds for many other filesystems. > > > > > > Signed-off-by: Christoph Hellwig > > Test seems mostly ok, but aren't you missing 215.out in the patch? Yeah, looks like it. It's in my local tree, though :) > > +sleep 1 > > Is there any slight chance a sleep 1 won't catch it? Would sleep 2 do > better to be sure? A one second sleep should always increase the wall time by one second, shouldn't it? We can do the sleep 2 to be double safe in case of rounging issues, though. > > + echo "FAIL: mtime not update after mapped write" > > + status=1 > > +fi > > + > > +if [ "$ctime_diff" -eq "0" ]; then > > + echo "FAIL: ctime not update after mapped write" > > + status=1 > > +fi > > Should these just be _fail calls? Otherwise... > > > +# success, all done > > +echo "*** done" > > +rm -f $seq.full > > +status=0 > > don't you always exit w/ status 0 and remove the full output? > > I guess i'm not sure when to use _fail and when to let the golden output > difference kill the test, I suppose it doesn't much matter, it should > pass & fail correctly either way. You're right, the status=1 is overrident currently and it only fails due to the golden output difference. I'll respin it to just kill the superflous status assignment. From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:19:37 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AJaBR138519 for ; Tue, 7 Jul 2009 05:19:37 -0500 X-ASG-Debug-ID: 1246962007-6669037f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B0AD9348256; Tue, 7 Jul 2009 03:20:07 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id farTyuekZL14028d; Tue, 07 Jul 2009 03:20:07 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO7m6-0007pV-4l; Tue, 07 Jul 2009 10:19:46 +0000 Date: Tue, 7 Jul 2009 06:19:46 -0400 From: Christoph Hellwig To: Olaf Weber Cc: Eric Sandeen , xfs mailing list , Christoph Hellwig , linux-mm@kvack.org, "MASON, CHRISTOPHER" X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Message-ID: <20090707101946.GB1934@infradead.org> References: <4A4D26C5.9070606@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246962007 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 07, 2009 at 11:07:30AM +0200, Olaf Weber wrote: > If the nr_to_write calculation really yields a value that is too > small, shouldn't it be fixed elsewhere? In theory it should. But given the amazing feedback of the VM people on this I'd rather make sure we do get the full HW bandwith on large arrays instead of sucking badly and not just wait forever. From kosaki.motohiro@jp.fujitsu.com Tue Jul 7 05:32:37 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AWaxr138929 for ; Tue, 7 Jul 2009 05:32:37 -0500 X-ASG-Debug-ID: 1246962790-4d4203020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fgwmail7.fujitsu.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C536F1AFE2C0 for ; Tue, 7 Jul 2009 03:33:10 -0700 (PDT) Received: from fgwmail7.fujitsu.co.jp (fgwmail7.fujitsu.co.jp [192.51.44.37]) by cuda.sgi.com with ESMTP id oQ88IXO5Q4pzcWgM for ; Tue, 07 Jul 2009 03:33:10 -0700 (PDT) Received: from m4.gw.fujitsu.co.jp ([10.0.50.74]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n67AX9UK001663 for (envelope-from kosaki.motohiro@jp.fujitsu.com); Tue, 7 Jul 2009 19:33:09 +0900 Received: from smail (m4 [127.0.0.1]) by outgoing.m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 3D2E145DE6E for ; Tue, 7 Jul 2009 19:33:09 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (s4.gw.fujitsu.co.jp [10.0.50.94]) by m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 12FEB45DE60 for ; Tue, 7 Jul 2009 19:33:09 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id E6AB81DB8037 for ; Tue, 7 Jul 2009 19:33:08 +0900 (JST) Received: from m108.s.css.fujitsu.com (m108.s.css.fujitsu.com [10.249.87.108]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 97C941DB803F for ; Tue, 7 Jul 2009 19:33:05 +0900 (JST) Received: from m108.css.fujitsu.com (m108 [127.0.0.1]) by m108.s.css.fujitsu.com (Postfix) with ESMTP id 6D0FA428058; Tue, 7 Jul 2009 19:33:05 +0900 (JST) Received: from [127.0.0.1] (unknown [10.124.100.179]) by m108.s.css.fujitsu.com (Postfix) with ESMTP id BF4FB428052; Tue, 7 Jul 2009 19:33:04 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from KOSANOTE2[10.124.100.179] by KOSANOTE2 (FujitsuOutboundMailChecker v1.3.1/9992[10.124.100.179]); Tue, 07 Jul 2009 19:33:03 +0900 (JST) From: KOSAKI Motohiro To: Christoph Hellwig X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Cc: kosaki.motohiro@jp.fujitsu.com, Olaf Weber , Eric Sandeen , xfs mailing list , linux-mm@kvack.org, "MASON, CHRISTOPHER" In-Reply-To: <20090707101946.GB1934@infradead.org> References: <20090707101946.GB1934@infradead.org> Message-Id: <20090707193015.7DCD.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.50.07 [ja] Date: Tue, 7 Jul 2009 19:33:04 +0900 (JST) X-Barracuda-Connect: fgwmail7.fujitsu.co.jp[192.51.44.37] X-Barracuda-Start-Time: 1246962791 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3017 1.0000 -0.3410 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.34 X-Barracuda-Spam-Status: No, SCORE=-0.34 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2764 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > On Tue, Jul 07, 2009 at 11:07:30AM +0200, Olaf Weber wrote: > > If the nr_to_write calculation really yields a value that is too > > small, shouldn't it be fixed elsewhere? > > In theory it should. But given the amazing feedback of the VM people > on this I'd rather make sure we do get the full HW bandwith on large > arrays instead of sucking badly and not just wait forever. At least, I agree with Olaf. if you got someone's NAK in past thread, Could you please tell me its url? From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:32:43 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AWgmW138938 for ; Tue, 7 Jul 2009 05:32:42 -0500 X-ASG-Debug-ID: 1246962797-4d4402fe0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 11D451AFE2CA for ; Tue, 7 Jul 2009 03:33:17 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id eo0SDpdN6vjzEVVQ for ; Tue, 07 Jul 2009 03:33:17 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO7zB-0005Xb-CL; Tue, 07 Jul 2009 10:33:17 +0000 Date: Tue, 7 Jul 2009 06:33:17 -0400 From: Christoph Hellwig To: Jan Engelhardt Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: A rescue tool: xfs_irecover Subject: Re: A rescue tool: xfs_irecover Message-ID: <20090707103317.GA20410@infradead.org> References: <20090204082816.GA9111@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246962798 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jun 29, 2009 at 03:25:22PM +0200, Jan Engelhardt wrote: > Just wanted to check back????? did you finalize this idea of using > libxfs and/or importing it into xfsprogs? I started converting it to libxfs, but I got a bit distracted. It's still on my TODO list to finish it. From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:32:58 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_54 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AWv0j138961 for ; Tue, 7 Jul 2009 05:32:58 -0500 X-ASG-Debug-ID: 1246962813-048900870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 37A961AFE2D7 for ; Tue, 7 Jul 2009 03:33:33 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id IHYX4DHX8W5Y8dkQ for ; Tue, 07 Jul 2009 03:33:33 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO7zQ-0005aB-UQ for xfs@oss.sgi.com; Tue, 07 Jul 2009 10:33:32 +0000 Date: Tue, 7 Jul 2009 06:33:32 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: don't print scratch mkfs and mount options without scratch device Subject: Re: [PATCH] xfstests: don't print scratch mkfs and mount options without scratch device Message-ID: <20090707103332.GB20410@infradead.org> References: <20090620173554.GA26470@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090620173554.GA26470@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246962813 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ping? On Sat, Jun 20, 2009 at 01:35:54PM -0400, Christoph Hellwig wrote: > Also clean up the way the test configuration is printed. > > > Signed-off-by: Christoph Hellwig > > Index: xfstests-dev/check > =================================================================== > --- xfstests-dev.orig/check 2009-06-20 17:31:00.000000000 +0000 > +++ xfstests-dev/check 2009-06-20 17:33:46.000000000 +0000 > @@ -161,18 +161,15 @@ > > [ -f check.time ] || touch check.time > > -FULL_FSTYP_DETAILS=`_full_fstyp_details` > -FULL_HOST_DETAILS=`_full_platform_details` > -FULL_MKFS_OPTIONS=`_scratch_mkfs_options` > -FULL_MOUNT_OPTIONS=`_scratch_mount_options` > - > -cat < -FSTYP -- $FULL_FSTYP_DETAILS > -PLATFORM -- $FULL_HOST_DETAILS > -MKFS_OPTIONS -- $FULL_MKFS_OPTIONS > -MOUNT_OPTIONS -- $FULL_MOUNT_OPTIONS > +# print out our test configuration > +echo "FSTYP -- `_full_fstyp_details`" > +echo "PLATFORM -- `_full_platform_details`" > +if [ ! -z "$SCRATCH_DEV" ]; then > + echo "MKFS_OPTIONS -- `_scratch_mkfs_options`" > + echo "MOUNT_OPTIONS -- `_scratch_mount_options`" > +fi > +echo > > -EOF > > if [ ! -z "$SCRATCH_DEV" ]; then > umount $SCRATCH_DEV 2>/dev/null > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs ---end quoted text--- From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:33:04 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AX3BY138982 for ; Tue, 7 Jul 2009 05:33:04 -0500 X-ASG-Debug-ID: 1246962819-423a00430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 465FD3483EC for ; Tue, 7 Jul 2009 03:33:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 9bgBC1toEFJtHpLV for ; Tue, 07 Jul 2009 03:33:39 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO7zX-0005aq-02 for xfs@oss.sgi.com; Tue, 07 Jul 2009 10:33:39 +0000 Date: Tue, 7 Jul 2009 06:33:38 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: small common.config cleanup Subject: Re: [PATCH] xfstests: small common.config cleanup Message-ID: <20090707103338.GC20410@infradead.org> References: <20090620173818.GA26809@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090620173818.GA26809@infradead.org> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246962819 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ping? On Sat, Jun 20, 2009 at 01:38:18PM -0400, Christoph Hellwig wrote: > Don't list various non-mandatory options near the check for the > mandatory ones, and make the test for the mandatory ones a proper if > statements. > > > Signed-off-by: Christoph Hellwig > > Index: xfstests-dev/common.config > =================================================================== > --- xfstests-dev.orig/common.config 2009-06-20 19:15:14.576805079 +0200 > +++ xfstests-dev/common.config 2009-06-20 19:16:48.956930262 +0200 > @@ -191,27 +191,18 @@ known_hosts() > [ -f $HOST_CONFIG_DIR/$HOST ] && . $HOST_CONFIG_DIR/$HOST > [ -f $HOST_CONFIG_DIR/$HOST.config ] && . $HOST_CONFIG_DIR/$HOST.config > > + # Mandatory Config values. > MC="" > -# Non-Mandatory Config values. > -# [ -z "$MODULAR" ] && MC="$MC MODULAR" > -# [ -z "$TEST_LOGDEV" ] && MC="$MC TEST_LOGDEV" > -# [ -z "$SCRATCH_LOGDEV" ] && MC="$MC SCRATCH_LOGDEV" > -# [ -z "$SCRATCH_RTDEV" ] && MC="$MC SCRATCH_RTDEV" > -# [ -z "$SCRATCH_MNT" ] && MC="$MC SCRATCH_MNT" > -# [ -z "$SCRATCH_DEV" ] && MC="$MC SCRATCH_DEV" > - > [ -z "$EMAIL" ] && MC="$MC EMAIL" > [ -z "$TEST_DIR" ] && MC="$MC TEST_DIR" > [ -z "$TEST_DEV" ] && MC="$MC TEST_DEV" > > - [ "$MC" ] && (echo "Warning: need to define parameters for host $HOST";\ > - echo " or set variables:"; \ > - echo " $MC") > -# if [ -e configs/$HOST.config ] > -# then echo "Not carring, we have a configfile ($HOST_CONFIG_DIR/$HOST)" > -# else > - [ "$MC" ] && exit 1 > -# fi > + if [ -n "$MC" ]; then > + echo "Warning: need to define parameters for host $HOST" > + echo " or set variables:" > + echo " $MC" > + exit 1 > + fi > } > > if [ -f "$HOST_OPTIONS" ]; then > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs ---end quoted text--- From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:43:28 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67AhSoO139652 for ; Tue, 7 Jul 2009 05:43:28 -0500 X-ASG-Debug-ID: 1246963443-044d00bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D8DC11AFE537 for ; Tue, 7 Jul 2009 03:44:03 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id 9FHzLxG4rYMybQb3 for ; Tue, 07 Jul 2009 03:44:03 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO89b-0000go-7I; Tue, 07 Jul 2009 10:44:03 +0000 Date: Tue, 7 Jul 2009 06:44:03 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add tests to check log size scaling Subject: Re: [PATCH] xfstests: add tests to check log size scaling Message-ID: <20090707104403.GA21747@infradead.org> References: <20090705194111.GA3834@infradead.org> <4A52CAD6.1070807@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A52CAD6.1070807@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246963443 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 06, 2009 at 11:11:02PM -0500, Eric Sandeen wrote: > Any reason to do this on the scratch dir vs. the test dir? (Since > scratch dir became optional, I figure stuff that can go on the test dev > instead, probably should?) > > not a big deal, it looks fine otherwise. The test should work just fine using the test dir, and given that these bits all cam from Dave I can't speak for his reason to use the scratch dir. But given that even creating an empty 16TB filesystem uses up a lot of space I'd rather have as much as possible free space available instead of sharing it with an aged filesystem. From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 05:44:08 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67Ai8fL139676 for ; Tue, 7 Jul 2009 05:44:08 -0500 X-ASG-Debug-ID: 1246963483-2248022b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BCB8834877A; Tue, 7 Jul 2009 03:44:43 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id CRQFwdKWzUphqF2R; Tue, 07 Jul 2009 03:44:43 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MO8AC-00081I-HS; Tue, 07 Jul 2009 10:44:40 +0000 Date: Tue, 7 Jul 2009 06:44:40 -0400 From: Christoph Hellwig To: KOSAKI Motohiro Cc: Christoph Hellwig , Eric Sandeen , xfs mailing list , linux-mm@kvack.org, Olaf Weber , "MASON, CHRISTOPHER" X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Message-ID: <20090707104440.GB21747@infradead.org> References: <20090707101946.GB1934@infradead.org> <20090707193015.7DCD.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090707193015.7DCD.A69D9226@jp.fujitsu.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246963483 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 07, 2009 at 07:33:04PM +0900, KOSAKI Motohiro wrote: > At least, I agree with Olaf. if you got someone's NAK in past thread, > Could you please tell me its url? The previous thread was simply dead-ended and nothing happened. From olaf@sgi.com Tue Jul 7 06:36:35 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from fransum.emea.sgi.com (fransum.emea.sgi.com [144.253.208.10]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67BaXNW142072 for ; Tue, 7 Jul 2009 06:36:34 -0500 Received: from fransum.emea.sgi.com (localhost [127.0.0.1]) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11) with ESMTP id n67Bb6b2277062; Tue, 7 Jul 2009 13:37:07 +0200 (MEST) Received: (from olaf@localhost) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11/Submit) id n67Bb5NY276867; Tue, 7 Jul 2009 13:37:05 +0200 (MEST) To: Christoph Hellwig Cc: Eric Sandeen , linux-mm@kvack.org, "MASON, CHRISTOPHER" , xfs mailing list Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage References: <4A4D26C5.9070606@redhat.com> <20090707101946.GB1934@infradead.org> From: Olaf Weber Date: Tue, 07 Jul 2009 13:37:05 +0200 In-Reply-To: <20090707101946.GB1934@infradead.org> (Christoph Hellwig's message of "Tue, 7 Jul 2009 06:19:46 -0400") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.3 (irix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig writes: > On Tue, Jul 07, 2009 at 11:07:30AM +0200, Olaf Weber wrote: >> If the nr_to_write calculation really yields a value that is too >> small, shouldn't it be fixed elsewhere? > In theory it should. But given the amazing feedback of the VM people > on this I'd rather make sure we do get the full HW bandwith on large > arrays instead of sucking badly and not just wait forever. So how do you feel about making the fudge factor tunable? I don't have a good sense myself of what the value should be, whether the hard-coded 4 is good enough in general. -- Olaf Weber SGI Phone: +31(0)30-6696752 Veldzigt 2b Fax: +31(0)30-6696799 Technical Lead 3454 PW de Meern Vnet: 955-7151 Storage Software The Netherlands Email: olaf@sgi.com From sandeen@sandeen.net Tue Jul 7 08:54:59 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67Dswmm147654 for ; Tue, 7 Jul 2009 08:54:58 -0500 X-ASG-Debug-ID: 1246975344-5b8102c50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7A98E9F5D26 for ; Tue, 7 Jul 2009 07:02:25 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id zYeFYhfUADuCdz84 for ; Tue, 07 Jul 2009 07:02:25 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 90702A9BE23; Tue, 7 Jul 2009 08:55:30 -0500 (CDT) Message-ID: <4A5353D2.7010508@sandeen.net> Date: Tue, 07 Jul 2009 08:55:30 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add tests to check log size scaling Subject: Re: [PATCH] xfstests: add tests to check log size scaling References: <20090705194111.GA3834@infradead.org> <4A52CAD6.1070807@sandeen.net> <20090707104403.GA21747@infradead.org> In-Reply-To: <20090707104403.GA21747@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246975346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2777 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > On Mon, Jul 06, 2009 at 11:11:02PM -0500, Eric Sandeen wrote: >> Any reason to do this on the scratch dir vs. the test dir? (Since >> scratch dir became optional, I figure stuff that can go on the test dev >> instead, probably should?) >> >> not a big deal, it looks fine otherwise. > > The test should work just fine using the test dir, and given that these > bits all cam from Dave I can't speak for his reason to use the scratch > dir. But given that even creating an empty 16TB filesystem uses up a > lot of space I'd rather have as much as possible free space available > instead of sharing it with an aged filesystem. Ok, it's fine by me as posted then, consider it reviewed. -Eric From sandeen@sandeen.net Tue Jul 7 08:57:58 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_54 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67Dvv2L147740 for ; Tue, 7 Jul 2009 08:57:57 -0500 X-ASG-Debug-ID: 1246975110-329e02fa0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CCD13490EC for ; Tue, 7 Jul 2009 06:58:31 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id CrQC7KEuvJnF5xis for ; Tue, 07 Jul 2009 06:58:31 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id AC476A9BE23; Tue, 7 Jul 2009 08:58:29 -0500 (CDT) Message-ID: <4A535485.8050901@sandeen.net> Date: Tue, 07 Jul 2009 08:58:29 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: don't print scratch mkfs and mount options without scratch device Subject: Re: [PATCH] xfstests: don't print scratch mkfs and mount options without scratch device References: <20090620173554.GA26470@infradead.org> In-Reply-To: <20090620173554.GA26470@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246975112 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2778 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > Also clean up the way the test configuration is printed. > > > Signed-off-by: Christoph Hellwig Reviewed-by: Eric Sandeen > Index: xfstests-dev/check > =================================================================== > --- xfstests-dev.orig/check 2009-06-20 17:31:00.000000000 +0000 > +++ xfstests-dev/check 2009-06-20 17:33:46.000000000 +0000 > @@ -161,18 +161,15 @@ > > [ -f check.time ] || touch check.time > > -FULL_FSTYP_DETAILS=`_full_fstyp_details` > -FULL_HOST_DETAILS=`_full_platform_details` > -FULL_MKFS_OPTIONS=`_scratch_mkfs_options` > -FULL_MOUNT_OPTIONS=`_scratch_mount_options` > - > -cat < -FSTYP -- $FULL_FSTYP_DETAILS > -PLATFORM -- $FULL_HOST_DETAILS > -MKFS_OPTIONS -- $FULL_MKFS_OPTIONS > -MOUNT_OPTIONS -- $FULL_MOUNT_OPTIONS > +# print out our test configuration > +echo "FSTYP -- `_full_fstyp_details`" > +echo "PLATFORM -- `_full_platform_details`" > +if [ ! -z "$SCRATCH_DEV" ]; then > + echo "MKFS_OPTIONS -- `_scratch_mkfs_options`" > + echo "MOUNT_OPTIONS -- `_scratch_mount_options`" > +fi > +echo > > -EOF > > if [ ! -z "$SCRATCH_DEV" ]; then > umount $SCRATCH_DEV 2>/dev/null > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From sandeen@sandeen.net Tue Jul 7 09:04:27 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67E4RP2147956 for ; Tue, 7 Jul 2009 09:04:27 -0500 X-ASG-Debug-ID: 1246975502-398303200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C63B1348DA7 for ; Tue, 7 Jul 2009 07:05:02 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id kJb2A680AZ1Iul63 for ; Tue, 07 Jul 2009 07:05:02 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 07A33A9BF30; Tue, 7 Jul 2009 09:05:02 -0500 (CDT) Message-ID: <4A53560D.5080409@sandeen.net> Date: Tue, 07 Jul 2009 09:05:01 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: small common.config cleanup Subject: Re: [PATCH] xfstests: small common.config cleanup References: <20090620173818.GA26809@infradead.org> In-Reply-To: <20090620173818.GA26809@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246975502 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2778 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > Don't list various non-mandatory options near the check for the > mandatory ones, and make the test for the mandatory ones a proper if > statements. > > > Signed-off-by: Christoph Hellwig Looks ok to me: Reviewed-by: Eric Sandeen > Index: xfstests-dev/common.config > =================================================================== > --- xfstests-dev.orig/common.config 2009-06-20 19:15:14.576805079 +0200 > +++ xfstests-dev/common.config 2009-06-20 19:16:48.956930262 +0200 > @@ -191,27 +191,18 @@ known_hosts() > [ -f $HOST_CONFIG_DIR/$HOST ] && . $HOST_CONFIG_DIR/$HOST > [ -f $HOST_CONFIG_DIR/$HOST.config ] && . $HOST_CONFIG_DIR/$HOST.config > > + # Mandatory Config values. > MC="" > -# Non-Mandatory Config values. > -# [ -z "$MODULAR" ] && MC="$MC MODULAR" > -# [ -z "$TEST_LOGDEV" ] && MC="$MC TEST_LOGDEV" > -# [ -z "$SCRATCH_LOGDEV" ] && MC="$MC SCRATCH_LOGDEV" > -# [ -z "$SCRATCH_RTDEV" ] && MC="$MC SCRATCH_RTDEV" > -# [ -z "$SCRATCH_MNT" ] && MC="$MC SCRATCH_MNT" > -# [ -z "$SCRATCH_DEV" ] && MC="$MC SCRATCH_DEV" > - > [ -z "$EMAIL" ] && MC="$MC EMAIL" > [ -z "$TEST_DIR" ] && MC="$MC TEST_DIR" > [ -z "$TEST_DEV" ] && MC="$MC TEST_DEV" > > - [ "$MC" ] && (echo "Warning: need to define parameters for host $HOST";\ > - echo " or set variables:"; \ > - echo " $MC") > -# if [ -e configs/$HOST.config ] > -# then echo "Not carring, we have a configfile ($HOST_CONFIG_DIR/$HOST)" > -# else > - [ "$MC" ] && exit 1 > -# fi > + if [ -n "$MC" ]; then > + echo "Warning: need to define parameters for host $HOST" > + echo " or set variables:" > + echo " $MC" > + exit 1 > + fi > } > > if [ -f "$HOST_OPTIONS" ]; then > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From sandeen@sandeen.net Tue Jul 7 09:05:34 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67E5YPh147997 for ; Tue, 7 Jul 2009 09:05:34 -0500 X-ASG-Debug-ID: 1246975569-3298034b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7B660349147 for ; Tue, 7 Jul 2009 07:06:09 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id VKCHSocrRgRbDxdL for ; Tue, 07 Jul 2009 07:06:09 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 0644CA9C9A9; Tue, 7 Jul 2009 09:06:09 -0500 (CDT) Message-ID: <4A535650.7020309@sandeen.net> Date: Tue, 07 Jul 2009 09:06:08 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Matthias Schniedermeyer CC: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH, RFC] default to inode64 on 64-bit systems Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems References: <4A52419E.5020301@sandeen.net> <20090707093802.GA32125@citd.de> In-Reply-To: <20090707093802.GA32125@citd.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246975569 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2778 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Matthias Schniedermeyer wrote: > On 06.07.2009 13:25, Eric Sandeen wrote: >> I'm tiring of telling people to use the inode64 mount option >> when they are experiencing bad performance on large xfs >> filesystems... >> >> 32-bit userspace is still largely broken when it comes to still >> using 32-bit stat calls, but on 64-bit systems this should be >> safe. >> >> The only problem here is moving the disk onto a 32-bit system, or using >> 32-bit apps. But I think it's a small risk. >> >> What do we think about the following? > > What is with people running 64bit kernel but 32bit Userspace? > Good point. I wonder how many do that... hrm. -Eric From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 09:45:28 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67EjSBv149558 for ; Tue, 7 Jul 2009 09:45:28 -0500 X-ASG-Debug-ID: 1246977962-170c01440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 765E31AFF99E; Tue, 7 Jul 2009 07:46:02 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id KFIE6lghN8R78ttI; Tue, 07 Jul 2009 07:46:02 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MOBvl-0000x3-IG; Tue, 07 Jul 2009 14:46:01 +0000 Date: Tue, 7 Jul 2009 10:46:01 -0400 From: Christoph Hellwig To: Olaf Weber Cc: Christoph Hellwig , Eric Sandeen , linux-mm@kvack.org, "MASON, CHRISTOPHER" , xfs mailing list X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Message-ID: <20090707144601.GA705@infradead.org> References: <4A4D26C5.9070606@redhat.com> <20090707101946.GB1934@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246977963 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 07, 2009 at 01:37:05PM +0200, Olaf Weber wrote: > > In theory it should. But given the amazing feedback of the VM people > > on this I'd rather make sure we do get the full HW bandwith on large > > arrays instead of sucking badly and not just wait forever. > > So how do you feel about making the fudge factor tunable? I don't > have a good sense myself of what the value should be, whether the > hard-coded 4 is good enough in general. A tunable means exposing an ABI, which I'd rather not do for a hack like this. If you don't like the number feel free to experiment around with it, SGI should have enough large systems that can be used to test this out. From chris.mason@oracle.com Tue Jul 7 10:17:01 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00, UNPARSEABLE_RELAY autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67FH0WR151716 for ; Tue, 7 Jul 2009 10:17:00 -0500 X-ASG-Debug-ID: 1246979855-218e02170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from acsinet12.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BD3531AFFC77 for ; Tue, 7 Jul 2009 08:17:35 -0700 (PDT) Received: from acsinet12.oracle.com (acsinet12.oracle.com [141.146.126.234]) by cuda.sgi.com with ESMTP id KDlGwF6fR6GAEzDU for ; Tue, 07 Jul 2009 08:17:35 -0700 (PDT) Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227]) by acsinet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n67FHE8D007003 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 7 Jul 2009 15:17:15 GMT Received: from abhmt008.oracle.com (abhmt008.oracle.com [141.146.116.17]) by acsinet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n67FJ9JJ010745; Tue, 7 Jul 2009 15:19:10 GMT Received: from localhost (/72.225.47.21) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 07 Jul 2009 08:17:22 -0700 Date: Tue, 7 Jul 2009 11:17:20 -0400 From: Chris Mason To: Eric Sandeen Cc: xfs mailing list , linux-mm@kvack.org, Christoph Hellwig , jens.axboe@oracle.com X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Message-ID: <20090707151720.GA4159@think> References: <4A4D26C5.9070606@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A4D26C5.9070606@redhat.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Source-IP: abhmt008.oracle.com [141.146.116.17] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090207.4A536703.0064:SCFSTAT5015188,ss=1,fgs=0 X-Barracuda-Connect: acsinet12.oracle.com[141.146.126.234] X-Barracuda-Start-Time: 1246979855 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2782 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 02, 2009 at 04:29:41PM -0500, Eric Sandeen wrote: > Talking w/ someone who had a raid6 of 15 drives on an areca > controller, he wondered why he could only get 300MB/s or so > out of a streaming buffered write to xfs like so: > > dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920 > 10737418240 bytes (11 GB) copied, 34.294 s, 313 MB/s I did some quick tests and found some unhappy things ;) On my 5 drive sata array (configured via LVM in a stripeset), dd with O_DIRECT to the block device can stream writes at a healthy 550MB/s. On 2.6.30, XFS does O_DIRECT at the exact same 550MB/s, and buffered writes at 370MB/s. Btrfs does a little better on buffered and a little worse on O_DIRECT. Ext4 splits the middle and does 400MB/s on both buffered and O_DIRECT. 2.6.31-rc2 gave similar results. One thing I noticed was that pdflush and friends aren't using the right flag in congestion_wait after it was updated to do congestion based on sync/async instead of read/write. I'm always happy when I get to blame bugs on Jens, but fixing the congestion flag usage actually made the runs slower (he still promises to send a patch for the congestion). A little while ago, Jan Kara sent seekwatcher changes that let it graph per-process info about IO submission, so I cooked up a graph of the IO done by pdflush, dd, and others during an XFS buffered streaming write. http://oss.oracle.com/~mason/seekwatcher/xfs-dd-2.6.30.png The dark blue dots are dd doing writes and the light green dots are pdflush. The graph shows that pdflush spends almost the entire run sitting around doing nothing, and sysrq-w shows all the pdflush threads waiting around in congestion_wait. Just to make sure the graphing wasn't hiding work done by pdflush, I filtered out all the dd IO: http://oss.oracle.com/~mason/seekwatcher/xfs-dd-2.6.30-filtered.png With all of this in mind, I think the reason why the nr_to_write change is helping is because dd is doing all the IO during balance_dirty_pages, and the higher nr_to_write number is making sure that more IO goes out at a time. Once dd starts doing IO in balance_dirty_pages, our queues get congested. From that moment on, the bdi_congested checks in the writeback path make pdflush sit down. I doubt the queue every really leaves congestion because we get over the dirty high water mark and dd is jumping in and sending IO down the pipe without waiting for congestion to clear. sysrq-w supports this. dd is always in get_request_wait and pdflush is always in congestion_wait. This bad interaction between pdflush and congestion was one of the motivations for Jens' new writeback work, so I was really hoping to git pull and post a fantastic new benchmark result. With Jens' code the graph ends up completely inverted, with roughly the same performance. Instead of dd doing all the work, the flusher thread is doing all the work (horray!) and dd is almost always in congestion_wait (boo). I think the cause is a little different, it seems that with Jens' code, dd finds the flusher thread has the inode locked, and so balance_dirty_pages doesn't find any work to do. It waits on congestion_wait(). If I replace the balance_dirty_pages() congestion_wait() with schedule_timeout(1) in Jens' writeback branch, xfs buffered writes go from 370MB/s to 520MB/s. There are still some big peaks and valleys, but it at least shows where we need to think harder about congestion flags, IO waiting and other issues. All of this is a long way of saying that until Jens' new code goes in, (with additional tuning) the nr_to_write change makes sense to me. I don't see a 2.6.31 suitable way to tune things without his work. -chris From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 11:40:05 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67Ge4Mh155908 for ; Tue, 7 Jul 2009 11:40:04 -0500 X-ASG-Debug-ID: 1246984839-194301520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CEAAB1B00567 for ; Tue, 7 Jul 2009 09:40:39 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id j90KOTNS6FkRfsHj for ; Tue, 07 Jul 2009 09:40:39 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MODig-0003Hx-Ue for xfs@oss.sgi.com; Tue, 07 Jul 2009 16:40:39 +0000 Date: Tue, 7 Jul 2009 12:40:38 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: fix trivial typo in test 204 description Subject: [PATCH] xfstests: fix trivial typo in test 204 description Message-ID: <20090707164038.GA9609@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246984839 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfstests-dev/204 =================================================================== --- xfstests-dev.orig/204 2009-07-04 18:07:47.000000000 +0000 +++ xfstests-dev/204 2009-07-04 18:07:51.000000000 +0000 @@ -1,7 +1,7 @@ #! /bin/sh # FS QA Test No. 204 # -# Test out ENOSPC flushiung on small filesystems. +# Test out ENOSPC flushing on small filesystems. # #----------------------------------------------------------------------- # Copyright (c) 2009 Christoph Hellwig. From sandeen@sandeen.net Tue Jul 7 12:09:10 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67H9965156892 for ; Tue, 7 Jul 2009 12:09:10 -0500 X-ASG-Debug-ID: 1246986583-3c87013f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 043C81B00475 for ; Tue, 7 Jul 2009 10:09:43 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id adcWsAUuoZ4vFRvU for ; Tue, 07 Jul 2009 10:09:43 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 2DE03A9DADB; Tue, 7 Jul 2009 12:09:43 -0500 (CDT) Message-ID: <4A538157.8000704@sandeen.net> Date: Tue, 07 Jul 2009 12:09:43 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix trivial typo in test 204 description Subject: Re: [PATCH] xfstests: fix trivial typo in test 204 description References: <20090707164038.GA9609@infradead.org> In-Reply-To: <20090707164038.GA9609@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246986585 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig > > Index: xfstests-dev/204 > =================================================================== > --- xfstests-dev.orig/204 2009-07-04 18:07:47.000000000 +0000 > +++ xfstests-dev/204 2009-07-04 18:07:51.000000000 +0000 > @@ -1,7 +1,7 @@ > #! /bin/sh > # FS QA Test No. 204 > # > -# Test out ENOSPC flushiung on small filesystems. > +# Test out ENOSPC flushing on small filesystems. > # > #----------------------------------------------------------------------- > # Copyright (c) 2009 Christoph Hellwig. > Reviewed! ;) (that always bugged me!) -Eric From ms@citd.de Tue Jul 7 13:13:32 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67IDVEL159584 for ; Tue, 7 Jul 2009 13:13:31 -0500 X-ASG-Debug-ID: 1246990859-77cb020e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from enyo.dsw2k3.info (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1D819F8EDE for ; Tue, 7 Jul 2009 11:21:00 -0700 (PDT) Received: from enyo.dsw2k3.info (enyo.dsw2k3.info [195.71.86.239]) by cuda.sgi.com with ESMTP id ANgMiRJqsVjM8XgQ for ; Tue, 07 Jul 2009 11:21:00 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by enyo.dsw2k3.info (Postfix) with ESMTP id 6B5F12BCAC; Tue, 7 Jul 2009 20:14:05 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at enyo.dsw2k3.info Received: from enyo.dsw2k3.info ([127.0.0.1]) by localhost (enyo.dsw2k3.info [127.0.0.1]) (amavisd-new, port 10024) with LMTP id fkpvhg+REVhq; Tue, 7 Jul 2009 20:13:56 +0200 (CEST) Received: from citd.de (p4FC4D1F7.dip.t-dialin.net [79.196.209.247]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by enyo.dsw2k3.info (Postfix) with ESMTP id 70B192BC77; Tue, 7 Jul 2009 20:13:55 +0200 (CEST) Date: Tue, 7 Jul 2009 20:13:52 +0200 From: Matthias Schniedermeyer To: Eric Sandeen Cc: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH, RFC] default to inode64 on 64-bit systems Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems Message-ID: <20090707181352.GA3357@citd.de> References: <4A52419E.5020301@sandeen.net> <20090707093802.GA32125@citd.de> <4A535650.7020309@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A535650.7020309@sandeen.net> User-Agent: Mutt/1.5.19 (2009-01-05) X-Barracuda-Connect: enyo.dsw2k3.info[195.71.86.239] X-Barracuda-Start-Time: 1246990860 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Whitelist: HEADER (^X-Barracuda-Connect: [^ ]+\.dsw2k3\.info\[) X-Virus-Status: Clean On 07.07.2009 09:06, Eric Sandeen wrote: > Matthias Schniedermeyer wrote: > > On 06.07.2009 13:25, Eric Sandeen wrote: > >> I'm tiring of telling people to use the inode64 mount option > >> when they are experiencing bad performance on large xfs > >> filesystems... > >> > >> 32-bit userspace is still largely broken when it comes to still > >> using 32-bit stat calls, but on 64-bit systems this should be > >> safe. > >> > >> The only problem here is moving the disk onto a 32-bit system, or using > >> 32-bit apps. But I think it's a small risk. > >> > >> What do we think about the following? > > > > What is with people running 64bit kernel but 32bit Userspace? > > Good point. I wonder how many do that... hrm. I'd guess pretty much anybody who what's to utilize the amount of RAM you can have nowadays, but doesn't have any single program that needs that amount of memory. Or, like in my case, just needs it for tmpfs/buffer cache. Throw in some "i don't want to reinstall" or "my Distribution isn't biarch" and you have someone who justs recompils their kernel and be done with it. It took me only a few minutes (rotating my hardware around that day took way longer) Bis denn -- Real Programmers consider "what you see is what you get" to be just as bad a concept in Text Editors as it is in women. No, the Real Programmer wants a "you asked for it, you got it" text editor -- complicated, cryptic, powerful, unforgiving, dangerous. From sandeen@sandeen.net Tue Jul 7 13:16:48 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67IGmmO159806 for ; Tue, 7 Jul 2009 13:16:48 -0500 X-ASG-Debug-ID: 1246990642-55f501960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 406C31B00C36 for ; Tue, 7 Jul 2009 11:17:22 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id AXZk44lE63mQjGQH for ; Tue, 07 Jul 2009 11:17:22 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 63E07A9DADB; Tue, 7 Jul 2009 13:17:22 -0500 (CDT) Message-ID: <4A539132.40907@sandeen.net> Date: Tue, 07 Jul 2009 13:17:22 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Matthias Schniedermeyer CC: xfs mailing list X-ASG-Orig-Subj: Re: [PATCH, RFC] default to inode64 on 64-bit systems Subject: Re: [PATCH, RFC] default to inode64 on 64-bit systems References: <4A52419E.5020301@sandeen.net> <20090707093802.GA32125@citd.de> <4A535650.7020309@sandeen.net> <20090707181352.GA3357@citd.de> In-Reply-To: <20090707181352.GA3357@citd.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1246990643 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2792 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Matthias Schniedermeyer wrote: > On 07.07.2009 09:06, Eric Sandeen wrote: >> Matthias Schniedermeyer wrote: >>> On 06.07.2009 13:25, Eric Sandeen wrote: >>>> I'm tiring of telling people to use the inode64 mount option >>>> when they are experiencing bad performance on large xfs >>>> filesystems... >>>> >>>> 32-bit userspace is still largely broken when it comes to still >>>> using 32-bit stat calls, but on 64-bit systems this should be >>>> safe. >>>> >>>> The only problem here is moving the disk onto a 32-bit system, or using >>>> 32-bit apps. But I think it's a small risk. >>>> >>>> What do we think about the following? >>> What is with people running 64bit kernel but 32bit Userspace? >> Good point. I wonder how many do that... hrm. > > I'd guess pretty much anybody who what's to utilize the amount of RAM > you can have nowadays, but doesn't have any single program that needs > that amount of memory. Or, like in my case, just needs it for > tmpfs/buffer cache. > > Throw in some "i don't want to reinstall" or "my Distribution isn't > biarch" and you have someone who justs recompils their kernel and be > done with it. It took me only a few minutes (rotating my hardware around > that day took way longer) > *nod* I waved hands about the mount path checking whether the "mount" command that started it was a 32-bit binary, and making a decision based on that... and Christoph pointed out that it'd be easy ... and then he gave me a dirty look for even thinking about it ;) -Eric From paul@mad-scientist.net Tue Jul 7 13:42:59 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_23 autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67Igx5c161359 for ; Tue, 7 Jul 2009 13:42:59 -0500 X-ASG-Debug-ID: 1246992626-4789015c0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from netezza.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3FF8A129B2C5 for ; Tue, 7 Jul 2009 11:50:26 -0700 (PDT) Received: from netezza.com (mta.netezza.com [12.148.248.132]) by cuda.sgi.com with ESMTP id Ta3eQYM7pqDMCJ7W for ; Tue, 07 Jul 2009 11:50:26 -0700 (PDT) Received: from ([172.29.50.72]) by mta.netezza.com with SMTP id 4441227.13730409; Tue, 07 Jul 2009 14:42:16 -0400 Received: from [172.29.82.111] ([172.29.82.111]) by mail1.netezza.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 7 Jul 2009 14:42:16 -0400 X-ASG-Orig-Subj: [2.6.27.25] assfail in xfs_attr_quiesce() during umount Subject: [2.6.27.25] assfail in xfs_attr_quiesce() during umount From: Paul Smith Reply-To: paul@mad-scientist.net To: Linux XFS , christoph hellwig , david chinner , linux-kernel@vger.kernel.org References: 20080307104918.GA20000@infradead.org In-Reply-To: 20080307104918.GA20000@infradead.org mp->m_active_trans)%20: = 0, file: Message-ID: X-OriginalArrivalTime: 07 Jul 2009 18:42:16.0380 (UTC) FILETIME=[A682AFC0:01C9FF32] Date: 7 Jul 2009 14:42:16 -0400 X-Barracuda-Connect: mta.netezza.com[12.148.248.132] X-Barracuda-Start-Time: 1246992628 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-ASG-Whitelist: BODY (http://marc\.info/\?) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > fs/xfs/xfs_vfsops.c, line: 708 > kernel BUG at fs/xfs/support/debug.c: 82! > infalid opcode: 0000 [#1] > Modules lined in: nvidia(P) xt_multiport iptable_filter ip_tables x_tables > Pid: 25313, comm: mount Tainted: P (2.6.24.3-686-initrd-crk1 #1) > EIP: 0060:[>f8a67a3f>] EFLAGS: 00010292 CPU: 0 > EAX: 00000061 EBX: f7faa400 ECX: ffffffff EDX: c034bda0 > ESI: dfc97000 EDI: f7faa400 EBP: db175e14 ESP: db175dcc > DS: 007b ES: 007b FS: 0000 GS: 033 SS: 0068 > Process mount (pid: 25313, ti=db174000 task=f7c32560 task.ti=db174000) > Stack: f8a6cc60 f8a6c6b0 f8a6a135 000002c4 f8a57e38 f7faa400 f8a57ee7 00000000 > Call Trace: > Code: d7 6b c7 83 c3 08 81 fb c8 02 a8 f8 75 ee 5b c3 83 ec 10 89 4c 24 0c 89 > EIP: [] assfail+0x1b/0x1f [xfs] SS:ESP 0068:db175dcc > WARNING: at kernel/exit.c:917 do_exit() > Pid: 25313, comm: mount Tainted: P D 2.6.24.3-686-initrd-crk1 #1 > /etc/rc6.d/S60umountroot: line17: 25313 Segmentation fault mount Content-Type: text/plain Organization: GNU's Not Unix! Date: Tue, 07 Jul 2009 14:42:15 -0400 Message-Id: <1246992135.9022.7291.camel@psmith-ubeta.netezza.com> Mime-Version: 1.0 X-Mailer: Evolution 2.24.3 Content-Transfer-Encoding: 7bit Hi all. I've seen this failure (only once so far, but even one kernel panic is not good!) in my 2.6.27.25 kernel. Output below. This was seen before, in earlier kernels; see (2.6.23): http://marc.info/?l=linux-kernel&m=120106649923499&w=2 And also (2.6.24): http://archives.free.net.ph/message/20080307.104918.4ea41ede.en.html According to the thread for the former, it was intended to be resolved by "proper per-vfsmount write count in 2.6.25 as part of the per-mount r/o patches" (C.Hellwig) Did those fixes indeed go into 2.6.25 (or 2.6.27 or below)? Was there something else that needed to be done for XFS to be able take advantage of that enhancement? And, is the patch posted by DavidC here: http://marc.info/?l=linux-kernel&m=120106649923499&w=2 still appropriate to work around this issue for 2.5.27.25? Thanks! =================================== umount: cannot remount /dev/md110 read-only Assertion failed: atomic_read(&mp->m_active_trans) == 0, file: /home/psmith/build/linux/fs/xfs/xfs_vfsops.c, line: 105 ------------[ cut here ]------------ Kernel BUG at ffffffffa02340ca [verbose debug info unavailable] invalid opcode: 0000 [1] PREEMPT SMP CPU 7 Modules linked in: rng_core dock scsi_mod libata ata_piix zlib_inflate bnx2 libphy tg3 ipmi_msghandler ipmi_si ipmi_devintf bonding sd_mod sg scsi_transport_sas mptbase mptscsih mptsas mptctl md_mod raid1 raid10 raid0 linear dm_mod dm_multipath dm_round_robin jbd ext3 dm_ioband xfs disklog xxds(P) Pid: 8546, comm: umount Tainted: P 2.6.27.25 #1 RIP: 0010:[] [] assfail+0x1a/0x20 [xfs] RSP: 0000:ffff8801a357fd38 EFLAGS: 00010292 RAX: 00000000000000a5 RBX: ffff880462188000 RCX: ffff88046bcebef0 RDX: ffffffff8054dfc8 RSI: 0000000000000096 RDI: 0000000000000001 RBP: ffff8801a357fd60 R08: ffff88046f84db38 R09: 001c90dd7a1c63bb R10: 0000000000000000 R11: 0000000000000001 R12: ffff8801a357fd68 R13: ffff8801a357fdcc R14: 0000000000000000 R15: 0000000000000040 FS: 0000000000000000(0000) GS:ffff88046f819280(0063) knlGS:00000000f7f9c6c0 CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b CR2: 000000004d8800e1 CR3: 0000000322097000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process umount (pid: 8546, threadinfo ffff8801a357e000, task ffff880390a7f1c0) Stack: ffff8801a357fd60 ffffffffa022178e ffff880462188000 ffffffffa023332c ffff88046cbb7000 0000000000000000 0000000000000000 0000000000000001 0000000000000000 7fffffffffffffff 0000000000000000 0000000000000000 Call Trace: [] ? xfs_attr_quiesce+0x4e/0x90 [xfs] [] ? xfs_fs_remount+0x10c/0x130 [xfs] [] ? do_remount_sb+0x131/0x1d0 [] ? do_remount+0x195/0x1b0 [] ? do_mount+0x1ba/0x230 [] ? __get_free_pages+0x1e/0x50 [] ? compat_sys_mount+0x11f/0x260 [] ? ia32_syscall_done+0x0/0x21 Code: c7 96 69 23 a0 e8 57 66 13 e0 48 83 c4 18 c3 66 90 89 d1 48 83 ec 08 48 89 f2 31 c0 48 89 fe 48 c7 c7 a0 9e 23 a0 e8 a5 6e 25 e0 <0f> 0b eb fe 66 90 41 55 41 54 49 89 f4 55 89 fd 53 48 c7 c7 a0 RIP [] assfail+0x1a/0x20 [xfs] RSP Kernel panic - not syncing: Fatal exception From BATV+db511ab59ecd249fa4d1+2144+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 7 14:06:12 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67J69ea162999 for ; Tue, 7 Jul 2009 14:06:11 -0500 X-ASG-Debug-ID: 1246994018-296b022a0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B96529F9735 for ; Tue, 7 Jul 2009 12:13:38 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id Suh1dJIsFapL8cbM for ; Tue, 07 Jul 2009 12:13:38 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MOG03-00065z-Eb; Tue, 07 Jul 2009 19:06:43 +0000 Date: Tue, 7 Jul 2009 15:06:43 -0400 From: Christoph Hellwig To: Paul Smith Cc: Linux XFS , christoph hellwig , david chinner , linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: [2.6.27.25] assfail in xfs_attr_quiesce() during umount Subject: Re: [2.6.27.25] assfail in xfs_attr_quiesce() during umount Message-ID: <20090707190643.GA32467@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1246994018 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 07, 2009 at 02:42:16PM -0400, Paul Smith wrote: > According to the thread for the former, it was intended to be resolved > by "proper per-vfsmount write count in 2.6.25 as part of the per-mount > r/o patches" (C.Hellwig) > > Did those fixes indeed go into 2.6.25 (or 2.6.27 or below)? Was there > something else that needed to be done for XFS to be able take advantage > of that enhancement? We haven't fixed the VFS issues yet. In some later kernel we just changed the assert to a warn on for now until the issue is sorted out. > And, is the patch posted by DavidC here: > http://marc.info/?l=linux-kernel&m=120106649923499&w=2 It looks somehwat dangerous for me. For now I would just comment out the assert or change it to a WARN_ON as in the newer kernels. I've recently started looking at that area in the VFS again and I'll hopefully make progress on a solution that sets MS_RDONLY at the correct time. From paul@mad-scientist.net Tue Jul 7 15:19:57 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n67KJuec171954 for ; Tue, 7 Jul 2009 15:19:56 -0500 X-ASG-Debug-ID: 1246998030-390501b60000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from netezza.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 11B2934AF29 for ; Tue, 7 Jul 2009 13:20:30 -0700 (PDT) Received: from netezza.com (mta.netezza.com [12.148.248.132]) by cuda.sgi.com with ESMTP id qWdMH5VVSE2QeaW9 for ; Tue, 07 Jul 2009 13:20:30 -0700 (PDT) Received: from ([172.29.50.72]) by mta.netezza.com with SMTP id 4441227.13733111; Tue, 07 Jul 2009 16:18:51 -0400 Received: from [172.29.82.111] ([172.29.82.111]) by mail1.netezza.com with Microsoft SMTPSVC(6.0.3790.3959); Tue, 7 Jul 2009 16:18:51 -0400 X-ASG-Orig-Subj: Re: [2.6.27.25] assfail in xfs_attr_quiesce() during umount Subject: Re: [2.6.27.25] assfail in xfs_attr_quiesce() during umount From: Paul Smith Reply-To: paul@mad-scientist.net To: Christoph Hellwig Cc: Linux XFS , christoph hellwig , david chinner , linux-kernel@vger.kernel.org In-Reply-To: <20090707190643.GA32467@infradead.org> References: <20090707190643.GA32467@infradead.org> Content-Type: text/plain Organization: GNU's Not Unix! Date: Tue, 07 Jul 2009 16:18:43 -0400 Message-Id: <1246997925.2984.1.camel@psmith-ubeta.netezza.com> Mime-Version: 1.0 X-Mailer: Evolution 2.24.3 Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 07 Jul 2009 20:18:51.0728 (UTC) FILETIME=[24CE9D00:01C9FF40] X-Barracuda-Connect: mta.netezza.com[12.148.248.132] X-Barracuda-Start-Time: 1246998031 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1182 1.0000 -1.2845 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.28 X-Barracuda-Spam-Status: No, SCORE=-1.28 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2800 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2009-07-07 at 15:06 -0400, Christoph Hellwig wrote: > It looks somehwat dangerous for me. For now I would just comment > out the assert or change it to a WARN_ON as in the newer kernels. Hah! :-). OK, that works for me. Thanks Christoph. From news@studiokappa.it Tue Jul 7 22:02:40 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.7 required=5.0 tests=AWL,BAYES_50,HTML_MESSAGE autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n6832d21198048 for ; Tue, 7 Jul 2009 22:02:39 -0500 X-ASG-Debug-ID: 1247022192-60c501a90000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpsmart3.aruba.it (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 13FD934BD36 for ; Tue, 7 Jul 2009 20:03:12 -0700 (PDT) Received: from smtpsmart3.aruba.it (smtpweb101.aruba.it [62.149.158.101]) by cuda.sgi.com with SMTP id 03Bfj0RZe6laOIAC for ; Tue, 07 Jul 2009 20:03:12 -0700 (PDT) Received: (qmail 8732 invoked by uid 89); 8 Jul 2009 03:03:08 -0000 Received: by simscan 1.2.0 ppid: 8619, pid: 8621, t: 2.2601s scanners: clamav: 0.88.4/m:40/d:1945 spam: 3.1.4 Received: from unknown (HELO webxc08s08.ad.aruba.it) (62.149.141.100) by smtpsmart3.fe.aruba.it with SMTP; 8 Jul 2009 03:03:05 -0000 Received: (qmail 23688 invoked by uid 18002703); 8 Jul 2009 03:03:08 -0000 To: linux-xfs@oss.sgi.com X-ASG-Orig-Subj: Promozione della salute ed empowerment della comunita' Subject: Promozione della salute ed empowerment della comunita' Date: Wed, 8 Jul 2009 05:03:08 +0200 From: news@studiokappa.it Message-ID: <1744c47eb79505c180988a12c8d0b27b@www.studiokappa.it> X-Priority: 3 X-Mailer: PHPMailer [version 1.73] X-Mailer: phplist v2.10.4 X-MessageID: 102 X-ListMember: linux-xfs@oss.sgi.com Precedence: bulk Errors-To: news@studiokappa.it MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_1744c47eb79505c180988a12c8d0b27b" X-Barracuda-Connect: smtpweb101.aruba.it[62.149.158.101] X-Barracuda-Start-Time: 1247022194 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5151 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.95 X-Barracuda-Spam-Status: No, SCORE=0.95 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA038b, HTML_MESSAGE, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2824 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 HTML_MESSAGE BODY: HTML included in message 0.20 BSF_SC0_SA038b RAW: Custom Rule SA038b X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --b1_1744c47eb79505c180988a12c8d0b27b Content-Type: text/plain; charset = "UTF-8" Content-Transfer-Encoding: 8bit Sperando di far cosa gradita, segnaliamo le iniziative del nostro partner MartiniAssociati: Promozione della salute ed empowerment della comunita'. Fiducia partecipazione e responsabilità. 23-27 Agosto 2009 Certosa di Pontignano (SI) Cordialmente. -- Per cancellarti da questa lista clicca su http://www.studiokappa.it/lists/?p=unsubscribe&uid=f95d79661173a656ad12f819a35cc5d5 Per aggiornare le tue preferenze clicca su http://www.studiokappa.it/lists/?p=preferences&uid=f95d79661173a656ad12f819a35cc5d5 -- Powered by PHPlist, www.phplist.com -- --b1_1744c47eb79505c180988a12c8d0b27b Content-Type: text/html; charset = "UTF-8" Content-Transfer-Encoding: 8bit prova template kappa



Sperando di far cosa gradita, segnaliamo le iniziative del nostro partner MartiniAssociati:



Clicca per scaricare la locandina
Cordialmente.

 

Studio Kappa

Segreteria

cell. +39 347.867.24.67

info@studiokappa.it

www.studiokappa.it

 

© Studio Kappa - Via Duca d'Aosta, 14 - 14100 Asti - Tel. 347.8672467
info@studiokappa.it - Part. IVA 01411460056 - Cod. Fiscale 92049850057



--
Per cancellarti da questa lista clicca su questo link
Per aggiornare le tue preferenze clicca su questo link
--b1_1744c47eb79505c180988a12c8d0b27b-- From jaswinder@kernel.org Wed Jul 8 11:04:38 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,RCVD_IN_BRBL autolearn=no version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n68G4bxa235609 for ; Wed, 8 Jul 2009 11:04:37 -0500 X-ASG-Debug-ID: 1247069111-4dca039f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from hera.kernel.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F20C134E7DA; Wed, 8 Jul 2009 09:05:11 -0700 (PDT) Received: from hera.kernel.org (hera.kernel.org [140.211.167.34]) by cuda.sgi.com with ESMTP id bvr0w6B9yLI6FLNA; Wed, 08 Jul 2009 09:05:11 -0700 (PDT) Received: from [192.168.1.220] (triband-del-59.180.9.101.bol.net.in [59.180.9.101] (may be forged)) (authenticated bits=0) by hera.kernel.org (8.14.2/8.13.8) with ESMTP id n68G550w026877 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Wed, 8 Jul 2009 16:05:09 GMT X-ASG-Orig-Subj: [PATCH 34/44] includecheck fix: fs/xfs, xfs_iops.c Subject: [PATCH 34/44] includecheck fix: fs/xfs, xfs_iops.c From: Jaswinder Singh Rajput To: felixb@sgi.com, xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Sam Ravnborg , LKML In-Reply-To: <1247063308.4382.12.camel@ht.satnam> References: <1247063308.4382.12.camel@ht.satnam> Content-Type: text/plain Date: Wed, 08 Jul 2009 21:16:11 +0530 Message-Id: <1247067971.4382.94.camel@ht.satnam> Mime-Version: 1.0 X-Mailer: Evolution 2.24.5 (2.24.5-2.fc10) Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: ClamAV 0.93.3/9546/Wed Jul 8 11:39:15 2009 on hera.kernel.org X-Virus-Status: Clean X-Barracuda-Connect: hera.kernel.org[140.211.167.34] X-Barracuda-Start-Time: 1247069112 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2872 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- fix the following 'make includecheck' warning: fs/xfs/linux-2.6/xfs_iops.c: xfs_acl.h is included more than once. Signed-off-by: Jaswinder Singh Rajput --- fs/xfs/linux-2.6/xfs_iops.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 58973bb..793a146 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -43,7 +43,6 @@ #include "xfs_error.h" #include "xfs_itable.h" #include "xfs_rw.h" -#include "xfs_acl.h" #include "xfs_attr.h" #include "xfs_buf_item.h" #include "xfs_utils.h" -- 1.6.0.6 From sandeen@sandeen.net Wed Jul 8 11:38:24 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n68GcOJB237053 for ; Wed, 8 Jul 2009 11:38:24 -0500 X-ASG-Debug-ID: 1247071555-31c202af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 85A5472B67E for ; Wed, 8 Jul 2009 09:45:55 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id V7mDLaUFwSwGD5y7 for ; Wed, 08 Jul 2009 09:45:55 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id C4E18A9BF32; Wed, 8 Jul 2009 11:38:53 -0500 (CDT) Message-ID: <4A54CB9D.9030005@sandeen.net> Date: Wed, 08 Jul 2009 11:38:53 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Subject: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes References: <20090704182742.GA11083@infradead.org> <4A52C88C.2040600@sandeen.net> <20090707101737.GA1934@infradead.org> In-Reply-To: <20090707101737.GA1934@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1247071558 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2875 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph Hellwig wrote: > On Mon, Jul 06, 2009 at 11:01:16PM -0500, Eric Sandeen wrote: >> Christoph Hellwig wrote: >>> Check that we correctly update the timestamps when writing to a file >>> through an mmap mapping. Currently fails for XFS due a VFS bug but >>> succeeds for many other filesystems. >>> >>> >>> Signed-off-by: Christoph Hellwig >> Test seems mostly ok, but aren't you missing 215.out in the patch? > > Yeah, looks like it. It's in my local tree, though :) ah, but it didn't get committed, yet ;) -Eric From BATV+89ee0b3c752fae473647+2145+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 8 12:14:55 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n68HEpv1238643 for ; Wed, 8 Jul 2009 12:14:55 -0500 X-ASG-Debug-ID: 1247073326-3f6e02420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A34834ECBB for ; Wed, 8 Jul 2009 10:15:26 -0700 (PDT) Received: from bombadil.infradead.org (bombadil.infradead.org [18.85.46.34]) by cuda.sgi.com with ESMTP id FjTEkStx86qf2EsH for ; Wed, 08 Jul 2009 10:15:26 -0700 (PDT) X-ASG-Whitelist: Client Received: from hch by bombadil.infradead.org with local (Exim 4.69 #1 (Red Hat Linux)) id 1MOaju-0006Xm-In; Wed, 08 Jul 2009 17:15:26 +0000 Date: Wed, 8 Jul 2009 13:15:26 -0400 From: Christoph Hellwig To: Eric Sandeen Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Subject: Re: [PATCH] xfstests: add test 215: c/mtime updates through mapped writes Message-ID: <20090708171526.GA15011@infradead.org> References: <20090704182742.GA11083@infradead.org> <4A52C88C.2040600@sandeen.net> <20090707101737.GA1934@infradead.org> <4A54CB9D.9030005@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4A54CB9D.9030005@sandeen.net> User-Agent: Mutt/1.5.18 (2008-05-17) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[18.85.46.34] X-Barracuda-Start-Time: 1247073327 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 08, 2009 at 11:38:53AM -0500, Eric Sandeen wrote: > ah, but it didn't get committed, yet ;) Sorry, it's in now. From kosaki.motohiro@jp.fujitsu.com Wed Jul 8 21:04:02 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69242bR000346 for ; Wed, 8 Jul 2009 21:04:02 -0500 X-ASG-Debug-ID: 1247105075-440200090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fgwmail7.fujitsu.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EDD2F1B4C16D for ; Wed, 8 Jul 2009 19:04:36 -0700 (PDT) Received: from fgwmail7.fujitsu.co.jp (fgwmail7.fujitsu.co.jp [192.51.44.37]) by cuda.sgi.com with ESMTP id xqXE2Fpllrjb4AqV for ; Wed, 08 Jul 2009 19:04:36 -0700 (PDT) Received: from m4.gw.fujitsu.co.jp ([10.0.50.74]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n6924ZRr014807 for (envelope-from kosaki.motohiro@jp.fujitsu.com); Thu, 9 Jul 2009 11:04:35 +0900 Received: from smail (m4 [127.0.0.1]) by outgoing.m4.gw.fujitsu.co.jp (Postfix) with ESMTP id B068845DE7D for ; Thu, 9 Jul 2009 11:04:34 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (s4.gw.fujitsu.co.jp [10.0.50.94]) by m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 8124B45DE60 for ; Thu, 9 Jul 2009 11:04:34 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 3C613E08001 for ; Thu, 9 Jul 2009 11:04:34 +0900 (JST) Received: from ml14.s.css.fujitsu.com (ml14.s.css.fujitsu.com [10.249.87.104]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id D5917E08003 for ; Thu, 9 Jul 2009 11:04:33 +0900 (JST) Received: from ml14.css.fujitsu.com (ml14 [127.0.0.1]) by ml14.s.css.fujitsu.com (Postfix) with ESMTP id 667769F61EF; Thu, 9 Jul 2009 11:04:33 +0900 (JST) Received: from [127.0.0.1] (unknown [10.124.100.179]) by ml14.s.css.fujitsu.com (Postfix) with ESMTP id A96C39F61EE; Thu, 9 Jul 2009 11:04:32 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from KOSANOTE2[10.124.100.179] by KOSANOTE2 (FujitsuOutboundMailChecker v1.3.1/9992[10.124.100.179]); Thu, 09 Jul 2009 11:04:31 +0900 (JST) From: KOSAKI Motohiro To: Christoph Hellwig X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Cc: kosaki.motohiro@jp.fujitsu.com, Eric Sandeen , xfs mailing list , linux-mm@kvack.org, Olaf Weber , "MASON, CHRISTOPHER" In-Reply-To: <20090707104440.GB21747@infradead.org> References: <20090707193015.7DCD.A69D9226@jp.fujitsu.com> <20090707104440.GB21747@infradead.org> Message-Id: <20090709110342.2386.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit X-Mailer: Becky! ver. 2.50.07 [ja] Date: Thu, 9 Jul 2009 11:04:32 +0900 (JST) X-Barracuda-Connect: fgwmail7.fujitsu.co.jp[192.51.44.37] X-Barracuda-Start-Time: 1247105077 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0484 1.0000 -1.7101 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.71 X-Barracuda-Spam-Status: No, SCORE=-1.71 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2910 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > On Tue, Jul 07, 2009 at 07:33:04PM +0900, KOSAKI Motohiro wrote: > > At least, I agree with Olaf. if you got someone's NAK in past thread, > > Could you please tell me its url? > > The previous thread was simply dead-ended and nothing happened. > Can you remember this thread subject? sorry, I haven't remember it. From chris.mason@oracle.com Thu Jul 9 08:01:19 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00, UNPARSEABLE_RELAY autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69D1IsO028956 for ; Thu, 9 Jul 2009 08:01:19 -0500 X-ASG-Debug-ID: 1247144936-50b103160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from acsinet12.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD4E2149B832 for ; Thu, 9 Jul 2009 06:08:56 -0700 (PDT) Received: from acsinet12.oracle.com (acsinet12.oracle.com [141.146.126.234]) by cuda.sgi.com with ESMTP id HEbXQtV5VAosvxIk for ; Thu, 09 Jul 2009 06:08:56 -0700 (PDT) Received: from rgminet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by acsinet12.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n69D1RQA008310 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 9 Jul 2009 13:01:29 GMT Received: from abhmt003.oracle.com (abhmt003.oracle.com [141.146.116.12]) by rgminet15.oracle.com (Switch-3.3.1/Switch-3.3.1) with ESMTP id n69D1i31015254; Thu, 9 Jul 2009 13:01:45 GMT Received: from localhost (/72.225.47.21) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 Jul 2009 06:01:35 -0700 Date: Thu, 9 Jul 2009 09:01:34 -0400 From: Chris Mason To: KOSAKI Motohiro Cc: Christoph Hellwig , Eric Sandeen , xfs mailing list , linux-mm@kvack.org, Olaf Weber X-ASG-Orig-Subj: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage Message-ID: <20090709130134.GH18008@think> References: <20090707193015.7DCD.A69D9226@jp.fujitsu.com> <20090707104440.GB21747@infradead.org> <20090709110342.2386.A69D9226@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090709110342.2386.A69D9226@jp.fujitsu.com> User-Agent: Mutt/1.5.18 (2008-05-17) X-Source-IP: abhmt003.oracle.com [141.146.116.12] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A010206.4A55EA31.00B5:SCFSTAT5015188,ss=1,fgs=0 X-Barracuda-Connect: acsinet12.oracle.com[141.146.126.234] X-Barracuda-Start-Time: 1247144937 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0200 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=UNPARSEABLE_RELAY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2954 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 UNPARSEABLE_RELAY Informational: message has unparseable relay lines X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 09, 2009 at 11:04:32AM +0900, KOSAKI Motohiro wrote: > > On Tue, Jul 07, 2009 at 07:33:04PM +0900, KOSAKI Motohiro wrote: > > > At least, I agree with Olaf. if you got someone's NAK in past thread, > > > Could you please tell me its url? > > > > The previous thread was simply dead-ended and nothing happened. > > > > Can you remember this thread subject? sorry, I haven't remember it. This is the original thread, it did lead to a few different patches going in, but the nr_to_write change wasn't one of them. http://kerneltrap.org/mailarchive/linux-kernel/2008/10/1/3472704/thread -chris From bloodyscarion@gmail.com Thu Jul 9 09:12:48 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69ECls5032219 for ; Thu, 9 Jul 2009 09:12:47 -0500 X-ASG-Debug-ID: 1247148803-586202010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f214.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E57A352592 for ; Thu, 9 Jul 2009 07:13:23 -0700 (PDT) Received: from mail-bw0-f214.google.com (mail-bw0-f214.google.com [209.85.218.214]) by cuda.sgi.com with ESMTP id qXHML4VkG5isvI6O for ; Thu, 09 Jul 2009 07:13:23 -0700 (PDT) Received: by bwz10 with SMTP id 10so174823bwz.20 for ; Thu, 09 Jul 2009 07:13:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:content-type :content-transfer-encoding; bh=IxJWGWpqeJ0YDedFt1Q8WkZOWzmB204oojOGQ+LFokE=; b=Vui2J7a8SOBzmo84ZP+6DiiBHWubA+c7DR1SnfNRim1u3N8ZHgba9UChNJFSoK7IDO eah5zRVrrNHQIQJozJi7xW3bnk/iYzmY0+DlmvRKMBAkZF1ECDxR4nfuXJ+T+UQ8sD5P wp9D9sBGeZoNnX9YbAhSWO4eOnE/2mHdTDA5k= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; b=YFGEOXxmPo8NFMlSQgcrOSsjR3zpGxD+bXWNBy/m91cmWW7J0czXn2/32FlxzbSIjx NNzhhWKjORSOF1HwAPWi5BFsCK+x+w6rh0nzpbhUwjzVYqudzV2i1RzxYWTmOcLa4PMO E1U1b6lwlUrn9qle+JRLyib1lLJJ/cqnezRIg= Received: by 10.204.67.141 with SMTP id r13mr751628bki.166.1247148802190; Thu, 09 Jul 2009 07:13:22 -0700 (PDT) Received: from ?10.3.1.176? (proxy.platige.com [193.192.62.134]) by mx.google.com with ESMTPS id g28sm18230185fkg.15.2009.07.09.07.13.21 (version=SSLv3 cipher=RC4-MD5); Thu, 09 Jul 2009 07:13:21 -0700 (PDT) Message-ID: <4A55FAF7.5040908@gmail.com> Date: Thu, 09 Jul 2009 16:13:11 +0200 From: Tomek Kruszona User-Agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfs_repair stops on "traversing filesystem..." Subject: xfs_repair stops on "traversing filesystem..." Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-bw0-f214.google.com[209.85.218.214] X-Barracuda-Start-Time: 1247148804 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2956 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello! I have a little problem with XFS filesystem that I have on one of my machines. I try to make xfs_repair that was not making any problems before, but xfs_repair stops on: Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... CPU usage grows up to 100%. I left it in the night hoping it will finish job till morning, but the situation hasn't changed... System is Debian Lenny with current updates and custom 2.6.30.1 kernel xfsprogs-2.9.8. Filesysystem is placed on LVM2 Logical Volume. I upgraded xfsprogs to 3.0.2 version and the problem still persists. Then I reverted to 2.9.8 package from Debian Lenny. Switching back to debian default 2.6.26 kernel doesn't help too. I can mount this filesystem and operate on it. Data on this system is not so crucial, because it's backup/testing machine, but it would be great to keep this data, because synchronizing 14TB of data will take some time. Output from xfs_info: # xfs_info /mnt/storage/ meta-data=/dev/mapper/p02bvg-p02blv isize=256 agcount=32, agsize=268435455 blks = sectsz=512 attr=2 data = bsize=4096 blocks=8410889216, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 log =internal bsize=4096 blocks=32768, version=2 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 Any ideas how to make xfs_repair working again? Best regards, Tomasz Kruszona From olaf@sgi.com Thu Jul 9 09:52:18 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=AWL,BAYES_00 autolearn=unavailable version=3.3.0-rupdated Received: from fransum.emea.sgi.com (fransum.emea.sgi.com [144.253.208.10]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69EqHCI035045; Thu, 9 Jul 2009 09:52:18 -0500 Received: from fransum.emea.sgi.com (localhost [127.0.0.1]) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11) with ESMTP id n69EqnBQ300103; Thu, 9 Jul 2009 16:52:49 +0200 (MEST) Received: (from olaf@localhost) by fransum.emea.sgi.com (SGI-8.12.11.20060308/8.12.11/Submit) id n69EqnWF299759; Thu, 9 Jul 2009 16:52:49 +0200 (MEST) To: Jaswinder Singh Rajput Cc: felixb@sgi.com, xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Sam Ravnborg , LKML Subject: Re: [PATCH 34/44] includecheck fix: fs/xfs, xfs_iops.c References: <1247063308.4382.12.camel@ht.satnam> <1247067971.4382.94.camel@ht.satnam> From: Olaf Weber Date: Thu, 09 Jul 2009 16:52:48 +0200 In-Reply-To: <1247067971.4382.94.camel@ht.satnam> (Jaswinder Singh Rajput's message of "Wed, 08 Jul 2009 21:16:11 +0530") Message-ID: User-Agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.3 (irix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Jaswinder Singh Rajput writes: > fix the following 'make includecheck' warning: > fs/xfs/linux-2.6/xfs_iops.c: xfs_acl.h is included more than once. > Signed-off-by: Jaswinder Singh Rajput Acked-By: Olaf Weber > --- > fs/xfs/linux-2.6/xfs_iops.c | 1 - > 1 files changed, 0 insertions(+), 1 deletions(-) > diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c > index 58973bb..793a146 100644 > --- a/fs/xfs/linux-2.6/xfs_iops.c > +++ b/fs/xfs/linux-2.6/xfs_iops.c > @@ -43,7 +43,6 @@ > #include "xfs_error.h" > #include "xfs_itable.h" > #include "xfs_rw.h" > -#include "xfs_acl.h" > #include "xfs_attr.h" > #include "xfs_buf_item.h" > #include "xfs_utils.h" > -- > 1.6.0.6 -- Olaf Weber SGI Phone: +31(0)30-6696752 Veldzigt 2b Fax: +31(0)30-6696799 Technical Lead 3454 PW de Meern Vnet: 955-7151 Storage Software The Netherlands Email: olaf@sgi.com From sandeen@sandeen.net Thu Jul 9 09:53:43 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69ErgCH035115 for ; Thu, 9 Jul 2009 09:53:43 -0500 X-ASG-Debug-ID: 1247151681-344900d90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE906A14B33 for ; Thu, 9 Jul 2009 08:01:21 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [209.173.210.139]) by cuda.sgi.com with ESMTP id 3pravGHEnPOENKEa for ; Thu, 09 Jul 2009 08:01:21 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 3C5CDA9C9A9; Thu, 9 Jul 2009 09:54:16 -0500 (CDT) Message-ID: <4A560497.7@sandeen.net> Date: Thu, 09 Jul 2009 09:54:15 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.22 (Macintosh/20090605) MIME-Version: 1.0 To: Tomek Kruszona CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_repair stops on "traversing filesystem..." Subject: Re: xfs_repair stops on "traversing filesystem..." References: <4A55FAF7.5040908@gmail.com> In-Reply-To: <4A55FAF7.5040908@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[209.173.210.139] X-Barracuda-Start-Time: 1247151681 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2959 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Tomek Kruszona wrote: > Hello! > > I have a little problem with XFS filesystem that I have on one of my > machines. I try to make xfs_repair that was not making any problems > before, but xfs_repair stops on: > > Phase 6 - check inode connectivity... > - resetting contents of realtime bitmap and summary inodes > - traversing filesystem ... > > CPU usage grows up to 100%. I left it in the night hoping it will finish > job till morning, but the situation hasn't changed... ... > Any ideas how to make xfs_repair working again? You might try running with -P, though I doubt that's the issue. If that doesn't help, you could provide an xfs_metadump image (in public or to me in private) and I'll take a look to see what's going on. -Eric From bloodyscarion@gmail.com Thu Jul 9 10:02:37 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69F2a3n035469 for ; Thu, 9 Jul 2009 10:02:36 -0500 X-ASG-Debug-ID: 1247151791-3509013f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fg-out-1718.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C32B3133A73D for ; Thu, 9 Jul 2009 08:03:12 -0700 (PDT) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.154]) by cuda.sgi.com with ESMTP id GU3weSDmjcBST87g for ; Thu, 09 Jul 2009 08:03:12 -0700 (PDT) Received: by fg-out-1718.google.com with SMTP id l27so1320168fgb.8 for ; Thu, 09 Jul 2009 08:03:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=VJvp4Q4pCzi3tdY3WNi+Y66JUQLkaempfsshTjkcLzw=; b=A2dcUECAsVWB9oTgTCcOwlEbnInb5rfRyaOrao9bXwBJEAc6JXVhpLkxSbTwGZT32B /C6TRK1XkgNy9N8uw3aqlu8omRIvve1mXrw3Tp6lLpPD1LP69D2RK30/Fag2Nonnwxqn RSLzp9vPkTiUyrz5n4LY1YIBwkIAW7EDTRlyE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; b=qP0Kh17iZfofWY46gkhK4pBACk6ppdGiFL+OSSfuM4kjZ1S6VDNwudqhys7QPdliI1 BakFjostf3KRPQD/bBD3f3phoA/Z3/3hjdyMO47SlyYmdyN5vpU9wm4y8tShS2QDRzIk 9XEKuHFvrrE22KRSt9JL6wrxey+kllKbYIv30= Received: by 10.86.76.4 with SMTP id y4mr254199fga.22.1247151791507; Thu, 09 Jul 2009 08:03:11 -0700 (PDT) Received: from ?10.3.1.176? (proxy.platige.com [193.192.62.134]) by mx.google.com with ESMTPS id 3sm80093fge.3.2009.07.09.08.03.10 (version=SSLv3 cipher=RC4-MD5); Thu, 09 Jul 2009 08:03:10 -0700 (PDT) Message-ID: <4A5606A7.7070109@gmail.com> Date: Thu, 09 Jul 2009 17:03:03 +0200 From: Tomek Kruszona User-Agent: Mozilla-Thunderbird 2.0.0.19 (X11/20090103) MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_repair stops on "traversing filesystem..." Subject: Re: xfs_repair stops on "traversing filesystem..." References: <4A55FAF7.5040908@gmail.com> <4A560497.7@sandeen.net> In-Reply-To: <4A560497.7@sandeen.net> Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: fg-out-1718.google.com[72.14.220.154] X-Barracuda-Start-Time: 1247151792 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4025 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2960 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Eric Sandeen wrote: > You might try running with -P, though I doubt that's the issue. > > If that doesn't help, you could provide an xfs_metadump image (in public > or to me in private) and I'll take a look to see what's going on. Thank you! I will just left xfs_repair -P to do the job and let you know if it helps. Otherwise, I'll send you metadump image in private. Best regards, Tomasz Kruszona From Frederic.Patrault@exane.com Thu Jul 9 10:32:08 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69FW7ZW036827 for ; Thu, 9 Jul 2009 10:32:08 -0500 X-ASG-Debug-ID: 1247153983-42e801340000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail6.exane.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B1D2A1571D for ; Thu, 9 Jul 2009 08:39:44 -0700 (PDT) Received: from mail6.exane.com (mail6.exane.com [195.13.36.55]) by cuda.sgi.com with ESMTP id N0PCuKnrA6HReAmM for ; Thu, 09 Jul 2009 08:39:44 -0700 (PDT) Received: from mail6.exane.com (mail6.exane.com [127.0.0.1]) by localhost (MailServerExane-9) with SMTP id 6ECECF8188 for ; Thu, 9 Jul 2009 17:32:38 +0200 (CEST) Received: from spl-nothu-002.insitu.ad.exane.com (spl-nothu-002 [10.176.12.1]) by mail6.exane.com (MailServerExane-9) with ESMTP id 60414F8184 for ; Thu, 9 Jul 2009 17:32:38 +0200 (CEST) X-ASG-Orig-Subj: Growfs 10Tb extension corrupted FS Subject: Growfs 10Tb extension corrupted FS X-KeepSent: D6EDBDC1:E3DD344B-C12575EE:0054FDE0; type=4; name=$KeepSent To: xfs@oss.sgi.com X-Mailer: Lotus Notes Release 8.5 December 05, 2008 Message-ID: <17646_1247153558_4A560D96_17646_249626_1_OFD6EDBDC1.E3DD344B-ONC12575EE.0054FDE0-C12575EE.00556215@exane.com> From: Frederic Patrault Date: Thu, 9 Jul 2009 17:32:27 +0200 X-MIMETrack: Serialize by Router on spl-nothu-002/Exane(Release 8.5|December 05, 2008) at 07/09/2009 05:32:38 PM MIME-Version: 1.0 Content-type: text/plain; charset=US-ASCII X-Barracuda-Connect: mail6.exane.com[195.13.36.55] X-Barracuda-Start-Time: 1247153985 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2963 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello, i ran into the bug http://oss.sgi.com/archives/xfs/2007-01/msg00053.html on Centos 5.2 x64 TAKE 959978 - growing an XFS filesystem by more than 2TB is broken XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1588 of file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_alloc.c. Caller 0xffffffff8859056b Call Trace: [] :xfs:xfs_free_ag_extent+0x19f/0x67f [] :xfs:xfs_free_extent+0xa9/0xc9 [] :xfs:xfs_growfs_data+0x7b3/0x999 [] :xfs:xfs_ioctl+0x11ec/0x137c [] n_tty_receive_buf+0xd45/0xdc5 [] n_tty_receive_buf+0xd45/0xdc5 [] pty_write+0x32/0x3a [] __wake_up+0x38/0x4f [] default_wake_function+0x0/0xe [] :xfs:xfs_file_ioctl+0x2f/0x57 [] do_ioctl+0x21/0x6b [] vfs_ioctl+0x248/0x261 [] sys_ioctl+0x59/0x78 [] tracesys+0xd5/0xe0 Filesystem "dm-10": XFS internal error xfs_trans_cancel at line 1138 of file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_trans.c. Caller 0xffffffff885b30a4 Call Trace: [] :xfs:xfs_trans_cancel+0x5b/0xfe [] :xfs:xfs_growfs_data+0x949/0x999 [] :xfs:xfs_ioctl+0x11ec/0x137c [] n_tty_receive_buf+0xd45/0xdc5 [] n_tty_receive_buf+0xd45/0xdc5 [] pty_write+0x32/0x3a [] __wake_up+0x38/0x4f [] default_wake_function+0x0/0xe [] :xfs:xfs_file_ioctl+0x2f/0x57 [] do_ioctl+0x21/0x6b [] vfs_ioctl+0x248/0x261 [] sys_ioctl+0x59/0x78 [] tracesys+0xd5/0xe0 xfs_force_shutdown(dm-10,0x8) called from line 1139 of file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_trans.c. Return address = 0xffffffff885ca941 Filesystem "dm-10": Corruption of in-memory data detected. Shutting down filesystem: dm-10 Please umount the filesystem, and rectify the problem(s) xfs_force_shutdown(dm-10,0x1) called from line 424 of file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_rw.c. Return address = 0xffffffff885d47f1 xfs_force_shutdown(dm-10,0x1) called from line 424 of file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_rw.c. Return address = 0xffffffff885d47f1 Filesystem "dm-10": Disabling barriers, not supported by the underlying device attempt to access beyond end of device dm-10: rw=0, want=71676493824, limit=49392123904 I/O error in filesystem ("dm-10") meta-data dev dm-10 block 0x10b0407fff ("xfs_read_buf") error 5 buf count 512 XFS: size check 2 failed Filesystem "dm-10": Disabling barriers, not supported by the underlying device attempt to access beyond end of device dm-10: rw=0, want=71676493824, limit=49392123904 I/O error in filesystem ("dm-10") meta-data dev dm-10 block 0x10b0407fff ("xfs_read_buf") error 5 buf count 512 XFS: size check 2 failed Filesystem "dm-10": Disabling barriers, not supported by the underlying device attempt to access beyond end of device dm-10: rw=0, want=71676493824, limit=49392123904 I/O error in filesystem ("dm-10") meta-data dev dm-10 block 0x10b0407fff ("xfs_read_buf") error 5 buf count 512 XFS: size check 2 failed i'm trying to sort out to get the situation back before the extension but i did not manage please advise on how i could : Original FS was ~13Tb i added ~10Tb then XFS failed to growfs because of the bug Now i xfs_repair it is a success but when i mount the FS i have a ~35Tb FS umount the trying to mount it give an error same problem, 1st magic number can't be found i don't know how to fix it ;-( xfs_db -r /dev/VG_SAN_DATA01/VDL_DATA01 xfs_db> sb 0 xfs_db> p magicnum = 0x58465342 blocksize = 4096 dblocks = 8959561728 rblocks = 0 rextents = 0 uuid = cc4a679f-5153-4b6b-8620-8a12546845ef logstart = 2147483652 rootino = 128 rbmino = 129 rsumino = 130 rextsize = 1 agblocks = 75112352 agcount = 120 rbmblocks = 0 logblocks = 32768 versionnum = 0x3084 sectsize = 512 inodesize = 256 inopblock = 16 fname = "\000\000\000\000\000\000\000\000\000\000\000\000" blocklog = 12 sectlog = 9 inodelog = 8 inopblog = 4 agblklog = 27 rextslog = 0 inprogress = 0 imax_pct = 25 icount = 768 ifree = 49 fdblocks = 5599584628 frextents = 0 uquotino = 0 gquotino = 0 qflags = 0 flags = 0 shared_vn = 0 inoalignmt = 2 unit = 0 width = 0 dirblklog = 0 logsectlog = 0 logsectsize = 0 logsunit = 0 features2 = 0 #cat /proc/partitions 253 10 24696061952 dm-10 kind regards Frederic Patrault ___________________________________ The integrity of this message cannot be guaranteed on the internet .Therefore EXANE cannot be considered responsible for the contents. If you are not the intended recipient of this message ,please delete it and notify the sender. This message is provided for information purposes only and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments Although it may contain some elements from publications produced by Exane's research department ,this message is not research. Please consult our web site for important disclaimers and disclosures concerning Exane's research (http://www.exane.com) ___________________________________ From cattelan@thebarn.com Thu Jul 9 17:15:25 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69MFOfx056124 for ; Thu, 9 Jul 2009 17:15:25 -0500 X-ASG-Debug-ID: 1247177759-14ca01890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from slurp.thebarn.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A403354743 for ; Thu, 9 Jul 2009 15:16:00 -0700 (PDT) Received: from slurp.thebarn.com (mail.thebarn.com [208.42.117.202]) by cuda.sgi.com with ESMTP id Wz00Gv1eh5UEWX47 for ; Thu, 09 Jul 2009 15:16:00 -0700 (PDT) Received: from funky.x.thebarn.com (slurp.x.thebarn.com [10.0.0.11]) (authenticated bits=0) by slurp.thebarn.com (8.14.3/8.14.0) with ESMTP id n69MFa85099917; Thu, 9 Jul 2009 17:15:52 -0500 (CDT) (envelope-from cattelan@xfs.org) Message-ID: <4A566C08.6070302@xfs.org> Date: Thu, 09 Jul 2009 17:15:36 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Frederic Patrault CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Growfs 10Tb extension corrupted FS Subject: Re: Growfs 10Tb extension corrupted FS References: <17646_1247153558_4A560D96_17646_249626_1_OFD6EDBDC1.E3DD344B-ONC12575EE.0054FDE0-C12575EE.00556215@exane.com> In-Reply-To: <17646_1247153558_4A560D96_17646_249626_1_OFD6EDBDC1.E3DD344B-ONC12575EE.0054FDE0-C12575EE.00556215@exane.com> X-Enigmail-Version: 0.95.7 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail.thebarn.com[208.42.117.202] X-Barracuda-Start-Time: 1247177761 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1812 1.0000 -0.9282 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.93 X-Barracuda-Spam-Status: No, SCORE=-0.93 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2982 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Frederic Patrault wrote: > Hello, > > > > i ran into the bug http://oss.sgi.com/archives/xfs/2007-01/msg00053.html on > Centos 5.2 x64 > TAKE 959978 - growing an XFS filesystem by more than 2TB is broken > > Heh ya our old friend. I do have experience with trying to back out from this issue, but the amount of data depends on how much the fs was mucked with. Basically what you will need to do is with xfs_db reset the the FS size and ag count back to what is was before the grow cmd messed it up. The last ag will still potentially be wrong since the grow cmd try to convert it from a partial ag a full ag and those numbers are probably wrong as well. If repair was run that is a different story and may or may not have made big mess of things. > > XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1588 of > file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_alloc.c. > Caller 0xffffffff8859056b > > Call Trace: > [] :xfs:xfs_free_ag_extent+0x19f/0x67f > [] :xfs:xfs_free_extent+0xa9/0xc9 > [] :xfs:xfs_growfs_data+0x7b3/0x999 > [] :xfs:xfs_ioctl+0x11ec/0x137c > [] n_tty_receive_buf+0xd45/0xdc5 > [] n_tty_receive_buf+0xd45/0xdc5 > [] pty_write+0x32/0x3a > [] __wake_up+0x38/0x4f > [] default_wake_function+0x0/0xe > [] :xfs:xfs_file_ioctl+0x2f/0x57 > [] do_ioctl+0x21/0x6b > [] vfs_ioctl+0x248/0x261 > [] sys_ioctl+0x59/0x78 > [] tracesys+0xd5/0xe0 > > Filesystem "dm-10": XFS internal error xfs_trans_cancel at line 1138 of > file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_trans.c. > Caller 0xffffffff885b30a4 > > Call Trace: > [] :xfs:xfs_trans_cancel+0x5b/0xfe > [] :xfs:xfs_growfs_data+0x949/0x999 > [] :xfs:xfs_ioctl+0x11ec/0x137c > [] n_tty_receive_buf+0xd45/0xdc5 > [] n_tty_receive_buf+0xd45/0xdc5 > [] pty_write+0x32/0x3a > [] __wake_up+0x38/0x4f > [] default_wake_function+0x0/0xe > [] :xfs:xfs_file_ioctl+0x2f/0x57 > [] do_ioctl+0x21/0x6b > [] vfs_ioctl+0x248/0x261 > [] sys_ioctl+0x59/0x78 > [] tracesys+0xd5/0xe0 > > xfs_force_shutdown(dm-10,0x8) called from line 1139 of > file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_trans.c. > Return address = 0xffffffff885ca941 > Filesystem "dm-10": Corruption of in-memory data detected. Shutting down > filesystem: dm-10 > Please umount the filesystem, and rectify the problem(s) > xfs_force_shutdown(dm-10,0x1) called from line 424 of > file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_rw.c. > Return address = 0xffffffff885d47f1 > xfs_force_shutdown(dm-10,0x1) called from line 424 of > file /home/buildsvn/rpmbuild/BUILD/xfs-kmod-0.4/_kmod_build_/xfs_rw.c. > Return address = 0xffffffff885d47f1 > Filesystem "dm-10": Disabling barriers, not supported by the underlying > device > attempt to access beyond end of device > dm-10: rw=0, want=71676493824, limit=49392123904 > I/O error in filesystem ("dm-10") meta-data dev dm-10 block 0x10b0407fff > ("xfs_read_buf") error 5 buf count 512 > XFS: size check 2 failed > Filesystem "dm-10": Disabling barriers, not supported by the underlying > device > attempt to access beyond end of device > dm-10: rw=0, want=71676493824, limit=49392123904 > I/O error in filesystem ("dm-10") meta-data dev dm-10 block 0x10b0407fff > ("xfs_read_buf") error 5 buf count 512 > XFS: size check 2 failed > Filesystem "dm-10": Disabling barriers, not supported by the underlying > device > attempt to access beyond end of device > dm-10: rw=0, want=71676493824, limit=49392123904 > I/O error in filesystem ("dm-10") meta-data dev dm-10 block 0x10b0407fff > ("xfs_read_buf") error 5 buf count 512 > XFS: size check 2 failed > > > > > i'm trying to sort out to get the situation back before the extension but i > did not manage > please advise on how i could : > > Original FS was ~13Tb i added ~10Tb then XFS failed to growfs because of > the bug > Now i xfs_repair it is a success but when i mount the FS i have a ~35Tb FS > > umount the trying to mount it give an error same problem, 1st magic number > can't be found > > > i don't know how to fix it ;-( > > xfs_db -r /dev/VG_SAN_DATA01/VDL_DATA01 > xfs_db> sb 0 > xfs_db> p > magicnum = 0x58465342 > blocksize = 4096 > dblocks = 8959561728 > rblocks = 0 > rextents = 0 > uuid = cc4a679f-5153-4b6b-8620-8a12546845ef > logstart = 2147483652 > rootino = 128 > rbmino = 129 > rsumino = 130 > rextsize = 1 > agblocks = 75112352 > agcount = 120 > rbmblocks = 0 > logblocks = 32768 > versionnum = 0x3084 > sectsize = 512 > inodesize = 256 > inopblock = 16 > fname = "\000\000\000\000\000\000\000\000\000\000\000\000" > blocklog = 12 > sectlog = 9 > inodelog = 8 > inopblog = 4 > agblklog = 27 > rextslog = 0 > inprogress = 0 > imax_pct = 25 > icount = 768 > ifree = 49 > fdblocks = 5599584628 > frextents = 0 > uquotino = 0 > gquotino = 0 > qflags = 0 > flags = 0 > shared_vn = 0 > inoalignmt = 2 > unit = 0 > width = 0 > dirblklog = 0 > logsectlog = 0 > logsectsize = 0 > logsunit = 0 > features2 = 0 > > #cat /proc/partitions > 253 10 24696061952 dm-10 > > kind regards > Frederic Patrault > > > > ___________________________________ > > The integrity of this message cannot be guaranteed on the internet .Therefore EXANE cannot be considered responsible for the contents. > If you are not the intended recipient of this message ,please delete it and notify the sender. > > This message is provided for information purposes only and should not be construed as a solicitation or offer to buy or sell any securities or related financial instruments > Although it may contain some elements from publications produced by Exane's research department ,this message is not research. > Please consult our web site for important disclaimers and disclosures concerning Exane's research (http://www.exane.com) > ___________________________________ > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > > From christopher.walker@gmail.com Thu Jul 9 18:23:44 2009 X-Spam-Checker-Version: SpamAssassin 3.3.0-rupdated (updated) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.0-rupdated Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id n69NNhQ4059397 for ; Thu, 9 Jul 2009 18:23:44 -0500 X-ASG-Debug-ID: 1247182284-084201230000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from an-out-0708.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D338A24B57 for ; Thu, 9 Jul 2009 16:31:25 -0700 (PDT) Received: from an-out-0708.google.com (an-out-0708.google.com [209.85.132.241]) by cuda.sgi.com with ESMTP id k2NMzE3lXituxodH for ; Thu, 09 Jul 2009 16:31:25 -0700 (PDT) Received: by an-out-0708.google.com with SMTP id b2so301276ana.32 for ; Thu, 09 Jul 2009 16:24:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:date:message-id:subject :from:to:content-type:content-transfer-encoding; bh=D2xplzGJSh4nkkdIcqJCCxyfyCCtL2bq1VEbEzva4KE=; b=SoBEvY6Gpu4ci+m25y3JBcSUiMp7BkLiIEsiJPCwkaVSsd2zO0TL+bubPZlhp5p3Zz g81FXv09T9fIzrmNEo6Lwzw5gDy8pm78LjRzA5ao+RIjZYRJ37dQj98EW4CDj/7kAIjI 5C2c8XGMZOSbVKp0beOHKD27xswy9Kr1EfhKg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type :content-transfer-encoding; b=Ht6xfyAqHtn/3u4FD9qg2VTVuj2chOKJoWhc1UKOFDQHgWgsNpYdcmyPQA+WFkacPq bF0txJblR2mrasZ9jNT/6lKITFZKYmAs2hJHCxSdOwytjSdAdMlNwPmLVWYsDz9IjuFi IDe8g3jPrl5ql1QML7cdkFot9Hf59o0jkupkA= MIME-Version: 1.0 Received: by 10.100.242.11 with SMTP id p11mr1856702anh.113.1247181858850; Thu, 09 Jul 2009 16:24:18 -0700 (PDT) Date: Thu, 9 Jul 2009 19:24:18 -0400 Message-ID: <554e24be0907091624s2dd439b2vfd7062f6b866c7f@mail.gmail.com> X-ASG-Orig-Subj: kernel BUG with xfs_quota Subject: kernel BUG with xfs_quota From: Chris Walker To: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: an-out-0708.google.com[209.85.132.241] X-Barracuda-Start-Time: 1247182285 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.2987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello, I ran an xfs_quota command earlier (xfs_quota -x -c 'limit -g bsoft=2048g bhard=2148g hepl' /seltzer_lab), which triggered a kernel BUG: Assertion failed: dst->d_btimer != 0, file: fs/xfs/quota/xfs_qm_syscalls.c, line: 927 ------------[ cut here ]------------ kernel BUG at fs/xfs/support/debug.c:108! invalid opcode: 0000 [#1] SMP last sysfs file: /sys/devices/system/cpu/cpu3/cache/index2/shared_cpu_map CPU 3 Modules linked in: hidp rfcomm l2cap bluetooth bonding ipv6 xfs nfsd lockd nfs_acl auth_rpcgss exportfs sunrpc dm_mirror dm_region_hash dm_log dm_multipath dm_mod sbs sbshc battery acpi_memhotplug ac parport_pc lp parport sr_mod cdrom sg joydev usb_storage e1000 button serio_raw rtc_cmos rtc_core rtc_lib amd_rng i2c_amd756 k8temp pata_acpi i2c_amd8111 hwmon shpchp i2c_core pcspkr raid456 async_xor async_memcpy async_tx xor sata_mv libata sd_mod scsi_mod raid1 ext3 jbd ehci_hcd ohci_hcd uhci_hcd Pid: 7826, comm: xfs_quota Not tainted 2.6.29.4 #1 Sun Fire X4500 RIP: 0010:[] [] assfail+0x1a/0x1e [xfs] RSP: 0018:ffff8803ed811e48 EFLAGS: 00010292 RAX: 0000000000000059 RBX: ffff8803ed811ec8 RCX: 000000000001b4e7 RDX: ffff8802869c8000 RSI: 0000000000000046 RDI: ffffffff80893f74 RBP: ffff8803f4cbcbd8 R08: 0000000000000000 R09: ffff880028083080 R10: ffff880028083080 R11: 0000010000000296 R12: ffff8803fdc96000 R13: 0000000000000000 R14: ffff8803fdc93c00 R15: 0000000000004e39 FS: 00007fb60e5596f0(0000) GS:ffff8803fe8220c0(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 00000000008c58d0 CR3: 00000001f98a8000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process xfs_quota (pid: 7826, threadinfo ffff8803ed810000, task ffff8803fd23a7c0) Stack: ffff8803ed811ec8 ffffffffa02c2fde 0000000000000000 ffff8803fdc96000 ffff8803ed811ec8 ffffffffa02c30bf 0000000000005803 ffff8803f4cbcb60 0000000000000000 ffff8803ed811ec8 0000000000005803 ffffffffa0329d25 Call Trace: [] ? xfs_qm_export_dquot+0x1af/0x1e4 [xfs] [] ? xfs_qm_scall_getquota+0xac/0xc0 [xfs] [] ? xfs_fs_getxquota+0x37/0x3b [xfs] [] ? sys_quotactl+0x574/0x604 [] ? system_call_fastpath+0x16/0x1b Code: 44 24 08 01 00 00 00 e8 4e c7 00 e0 48 83 c4 18 c3 89 d1 48 83 ec 08 48 89 f2 31 c0 48 89 fe 48 c7 c7 2b 03 34 a0 e8 2c bd f0 df <0f> 0b eb fe 41 56 83 e7 07 83 ff 07 41 55 49 89 d5 41 54 49 89 RIP [] assfail+0x1a/0x1e [xfs] RSP ---[ end trace 1c72dd68c3f985d1 ]--- This rendered the filesystem increasingly unstable until a hard re