From owner-xfs@oss.sgi.com Mon Oct 1 00:24:02 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 00:24:07 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=AWL,BAYES_00,WEIRD_PORT autolearn=no version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l917NuWJ029549 for ; Mon, 1 Oct 2007 00:24:00 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA20859; Mon, 1 Oct 2007 17:23:51 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 1116) id DF61C58C4C0A; Mon, 1 Oct 2007 17:23:50 +1000 (EST) Date: Mon, 01 Oct 2007 17:23:50 +1000 To: torvalds@linux-foundation.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org Subject: [GIT PULL] XFS update for 2.6.23 - revert a commit User-Agent: nail 11.25 7/29/05 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> From: tes@sgi.com (Tim Shimmin) X-Virus-Scanned: ClamAV 0.91.2/4443/Sun Sep 30 15:16:01 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13190 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: tes@sgi.com Precedence: bulk X-list: xfs Hi Linus, A problem has been found for the XFS commit b394e43e995d08821588a22561c6a71a63b4ff27 and it needs to be reverted. It has the potential for worse corruption than what it is meant to fix. Please pull from the for-linus branch: git pull git://oss.sgi.com:8090/xfs/xfs-2.6.git for-linus Lachlan's description: This fix is for a problem that has been in XFS since day one. [XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer. It tries to fix an issue where log replay is replaying an inode cluster initialisation transaction that should not be replayed because the inode cluster on disk is more up to date. Since we don't log file sizes (we rely on inode flushing to get them to disk) then we can't just replay all the transations in the log and expect the inode to be completely restored. We lose file size updates. Unfortunately this fix is causing more (serious) problems than it is fixing so please don't push this one back just yet. This will update the following files: fs/xfs/xfs_buf_item.h | 5 ---- fs/xfs/xfs_log_recover.c | 51 ++------------------------------------------- fs/xfs/xfs_trans_buf.c | 1 - 3 files changed, 3 insertions(+), 54 deletions(-) through these commits: commit 053c59a0a7234bac669992f5b8b933b7d7fc189d Author: Tim Shimmin Date: Mon Oct 1 16:39:37 2007 +1000 Revert "[XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer." This reverts commit b394e43e995d08821588a22561c6a71a63b4ff27. SGI-PV: 969656 SGI-Modid: xfs-linux-melb:xfs-kern:29804a Signed-off-by: Lachlan McIlroy Signed-off-by: Tim Shimmin --Tim From owner-xfs@oss.sgi.com Mon Oct 1 00:49:44 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 00:49:50 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l917nd9b000545 for ; Mon, 1 Oct 2007 00:49:43 -0700 Received: from cxfsmac10.melbourne.sgi.com (cxfsmac10.melbourne.sgi.com [134.14.55.100]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA21432; Mon, 1 Oct 2007 17:49:31 +1000 Message-ID: <4700A68A.8070609@sgi.com> Date: Mon, 01 Oct 2007 17:49:30 +1000 From: Donald Douwsma User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Eric Sandeen CC: Christoph Hellwig , xfs-oss Subject: Re: [PATCH V2] refactor xfs_mountfs for clarity & stack savings References: <46D37A82.2080608@sandeen.net> <20070828195221.GA7237@infradead.org> <46D48BDE.5000903@sandeen.net> In-Reply-To: <46D48BDE.5000903@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4443/Sun Sep 30 15:16:01 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13191 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: donaldd@sgi.com Precedence: bulk X-list: xfs Eric Sandeen wrote: > Refactoring xfs_mountfs() to call sub-functions for logical > chunks can help save a bit of stack, and can make it easier to > read this long function. Finally got around to reviewing this one, sorry for the delay. I think we've lost something in the refactoring. > Index: linux-2.6-xfs/fs/xfs/xfs_mount.c ... > - /* > - * XFS uses the uuid from the superblock as the unique > - * identifier for fsid. We can not use the uuid from the volume > - * since a single partition filesystem is identical to a single > - * partition volume/filesystem. > - */ > - if ((mfsi_flags & XFS_MFSI_SECOND) == 0 && > - (mp->m_flags & XFS_MOUNT_NOUUID) == 0) { > - if (xfs_uuid_mount(mp)) { > - error = XFS_ERROR(EINVAL); > - goto error1; > - } > - uuid_mounted=1; The patch removes uuid_mounted=1, but doesn't put it back in anywhere. I think we need that bit for error handling :) Don From owner-xfs@oss.sgi.com Mon Oct 1 02:43:13 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 02:43:17 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_55, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.0-r574664 Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l919hCHV014146 for ; Mon, 1 Oct 2007 02:43:13 -0700 Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 58CF122DDD; Mon, 1 Oct 2007 11:30:01 +0200 (CEST) To: Timothy Shimmin Cc: Martin Steigerwald , xfs@oss.sgi.com Subject: Re: Creation time in XFS References: <200709302124.38164.Martin@lichtvoll.de> <470042DC.2040009@sgi.com> From: Andi Kleen Date: 01 Oct 2007 11:30:01 +0200 In-Reply-To: <470042DC.2040009@sgi.com> Message-ID: Lines: 26 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Virus-Scanned: ClamAV 0.91.2/4444/Mon Oct 1 00:57:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13192 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: andi@firstfloor.org Precedence: bulk X-list: xfs Timothy Shimmin writes: > No XFS does not support creation time. It just has the regular > atime,mtime and ctime. > There are no plans that I've heard to support it. > Not much involved to support it AFAICT but it would either involve > changing the ondisk format of the inode or storing it in an EA. If you ever change the on disk format adding a file type similar to ext3 to directories could also greatly speed up find in many cases. > I wonder how this creation time is being exported currently? I don't think it is at all currently: % gid i_crtime fs/udf/udf_i.h:21:#define UDF_I_CRTIME(X) ( UDF_I(X)->i_crtime ) include/linux/ext4_fs.h:344: __le32 i_crtime; /* File Creation time */ include/linux/ext4_fs_i.h:160: struct timespec i_crtime; include/linux/udf_fs_i.h:20: struct timespec i_crtime; fs/ext4/ialloc.c:566: inode->i_mtime = inode->i_atime = inode->i_ctime = ei->i_crtime = fs/ext4/inode.c:2705: EXT4_EINODE_GET_XTIME(i_crtime, ei, raw_inode); fs/ext4/inode.c:2792: EXT4_EINODE_SET_XTIME(i_crtime, ei, raw_inode); -Andi From owner-xfs@oss.sgi.com Mon Oct 1 05:39:50 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 05:39:53 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.0-r574664 Received: from sandeen.net (sandeen.net [209.173.210.139]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l91Cdmfu016554 for ; Mon, 1 Oct 2007 05:39:50 -0700 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 sandeen.net (Postfix) with ESMTP id 1AB911807A967; Mon, 1 Oct 2007 07:39:47 -0500 (CDT) Message-ID: <4700EA92.1030004@sandeen.net> Date: Mon, 01 Oct 2007 07:39:46 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Donald Douwsma CC: Christoph Hellwig , xfs-oss Subject: Re: [PATCH V2] refactor xfs_mountfs for clarity & stack savings References: <46D37A82.2080608@sandeen.net> <20070828195221.GA7237@infradead.org> <46D48BDE.5000903@sandeen.net> <4700A68A.8070609@sgi.com> In-Reply-To: <4700A68A.8070609@sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4445/Mon Oct 1 01:32:46 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13193 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: sandeen@sandeen.net Precedence: bulk X-list: xfs Donald Douwsma wrote: > Eric Sandeen wrote: >> Refactoring xfs_mountfs() to call sub-functions for logical >> chunks can help save a bit of stack, and can make it easier to >> read this long function. > > Finally got around to reviewing this one, sorry for the delay. > > I think we've lost something in the refactoring. > >> Index: linux-2.6-xfs/fs/xfs/xfs_mount.c > ... >> - /* >> - * XFS uses the uuid from the superblock as the unique >> - * identifier for fsid. We can not use the uuid from the volume >> - * since a single partition filesystem is identical to a single >> - * partition volume/filesystem. >> - */ >> - if ((mfsi_flags & XFS_MFSI_SECOND) == 0 && >> - (mp->m_flags & XFS_MOUNT_NOUUID) == 0) { >> - if (xfs_uuid_mount(mp)) { >> - error = XFS_ERROR(EINVAL); >> - goto error1; >> - } >> - uuid_mounted=1; > > The patch removes uuid_mounted=1, but doesn't put it back in anywhere. > I think we need that bit for error handling :) Hm, no idea how I lost that... maybe in bouncing from cvs to kernel.org version. Sorry, will look this evening & fix it up. -Eric From owner-xfs@oss.sgi.com Mon Oct 1 05:55:07 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 05:55:11 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.0-r574664 Received: from sandeen.net (sandeen.net [209.173.210.139]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l91Ct6M3018659 for ; Mon, 1 Oct 2007 05:55:07 -0700 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 sandeen.net (Postfix) with ESMTP id B414A1807A968; Mon, 1 Oct 2007 07:55:06 -0500 (CDT) Message-ID: <4700EE2A.1020304@sandeen.net> Date: Mon, 01 Oct 2007 07:55:06 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Tim Shimmin CC: xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> In-Reply-To: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4445/Mon Oct 1 01:32:46 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13194 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: sandeen@sandeen.net Precedence: bulk X-list: xfs Tim Shimmin wrote: > Hi Linus, > > A problem has been found for the XFS commit b394e43e995d08821588a22561c6a71a63b4ff27 > and it needs to be reverted. > It has the potential for worse corruption than what it is meant to fix. Whoops... that's what I get for picking it up too soon for fedora I guess! Any background on the newly-found problem, for those of us in the peanut gallery? Thanks, -Eric From owner-xfs@oss.sgi.com Mon Oct 1 06:05:34 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 06:05:38 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.0-r574664 Received: from sandeen.net (sandeen.net [209.173.210.139]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l91D5WUC020140 for ; Mon, 1 Oct 2007 06:05:34 -0700 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 sandeen.net (Postfix) with ESMTP id A66A418015182; Mon, 1 Oct 2007 08:05:32 -0500 (CDT) Message-ID: <4700F09C.5080903@sandeen.net> Date: Mon, 01 Oct 2007 08:05:32 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Tim Shimmin CC: xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> In-Reply-To: <4700EE2A.1020304@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4445/Mon Oct 1 01:32:46 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13195 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: sandeen@sandeen.net Precedence: bulk X-list: xfs Eric Sandeen wrote: > Tim Shimmin wrote: >> Hi Linus, >> >> A problem has been found for the XFS commit b394e43e995d08821588a22561c6a71a63b4ff27 >> and it needs to be reverted. >> It has the potential for worse corruption than what it is meant to fix. > > > Whoops... that's what I get for picking it up too soon for fedora I guess! > > Any background on the newly-found problem, for those of us in the peanut > gallery? Oh, I'm sorry, the problem description is already there. I thought that was the original commit description when I first saw it. -Eric From owner-xfs@oss.sgi.com Mon Oct 1 06:12:20 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 06:12:22 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.0-r574664 Received: from sandeen.net (sandeen.net [209.173.210.139]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l91DCFsO021244 for ; Mon, 1 Oct 2007 06:12:20 -0700 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 sandeen.net (Postfix) with ESMTP id 65CC01807A96A; Mon, 1 Oct 2007 08:12:15 -0500 (CDT) Message-ID: <4700F22F.3070307@sandeen.net> Date: Mon, 01 Oct 2007 08:12:15 -0500 From: Eric Sandeen User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Tim Shimmin CC: xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4700F09C.5080903@sandeen.net> In-Reply-To: <4700F09C.5080903@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4445/Mon Oct 1 01:32:46 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13196 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: sandeen@sandeen.net Precedence: bulk X-list: xfs Eric Sandeen wrote: > Eric Sandeen wrote: >> Tim Shimmin wrote: >>> Hi Linus, >>> >>> A problem has been found for the XFS commit b394e43e995d08821588a22561c6a71a63b4ff27 >>> and it needs to be reverted. >>> It has the potential for worse corruption than what it is meant to fix. >> >> Whoops... that's what I get for picking it up too soon for fedora I guess! >> >> Any background on the newly-found problem, for those of us in the peanut >> gallery? > > Oh, I'm sorry, the problem description is already there. I thought that > was the original commit description when I first saw it. *sigh* or maybe not. ok, no more email 'til I've had my coffee. -Eric From owner-xfs@oss.sgi.com Mon Oct 1 08:18:18 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 08:18:22 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from smtp2.linux-foundation.org (smtp2.linux-foundation.org [207.189.120.14]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l91FIIa0009551 for ; Mon, 1 Oct 2007 08:18:18 -0700 Received: from imap1.linux-foundation.org (imap1.linux-foundation.org [207.189.120.55]) by smtp2.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id l91F2cmm023462 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 1 Oct 2007 08:02:39 -0700 Received: from localhost (localhost [127.0.0.1]) by imap1.linux-foundation.org (8.13.5.20060308/8.13.5/Debian-3ubuntu1.1) with ESMTP id l91F2bLE021934; Mon, 1 Oct 2007 08:02:37 -0700 Date: Mon, 1 Oct 2007 08:02:37 -0700 (PDT) From: Linus Torvalds To: Tim Shimmin cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit In-Reply-To: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> Message-ID: References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=us-ascii X-MIMEDefang-Filter: lf$Revision: 1.185 $ X-Scanned-By: MIMEDefang 2.53 on 207.189.120.14 X-Virus-Scanned: ClamAV 0.91.2/4445/Mon Oct 1 01:32:46 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13197 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: torvalds@linux-foundation.org Precedence: bulk X-list: xfs On Mon, 1 Oct 2007, Tim Shimmin wrote: > > Lachlan's description: > This fix is for a problem that has been in XFS since day one. > [XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer. ... Why wasn't this in the commit logs? Now it just says it was reverted, with no actual reasoning *why*. And it apparently wasn't so obvious that no such reasoning is needed. Gah. I ended up amending the commit and updating it with the comment. Linus From owner-xfs@oss.sgi.com Mon Oct 1 17:14:01 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 17:14:04 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l920DtFV029313 for ; Mon, 1 Oct 2007 17:14:00 -0700 Received: from timothy-shimmins-power-mac-g5.local (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA14481; Tue, 2 Oct 2007 10:13:48 +1000 Message-ID: <47018D3C.9070409@sgi.com> Date: Tue, 02 Oct 2007 10:13:48 +1000 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Linus Torvalds CC: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4447/Mon Oct 1 15:02:09 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13198 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: tes@sgi.com Precedence: bulk X-list: xfs Linus Torvalds wrote: > > On Mon, 1 Oct 2007, Tim Shimmin wrote: >> Lachlan's description: >> This fix is for a problem that has been in XFS since day one. >> [XFS] Avoid replaying inode buffer initialisation log items if on-disk version is newer. > ... > > Why wasn't this in the commit logs? Now it just says it was reverted, with > no actual reasoning *why*. And it apparently wasn't so obvious that no > such reasoning is needed. > > Gah. I ended up amending the commit and updating it with the comment. > > Linus Yeah, sorry about that. It occurred to me later on. I initially converted the sgi-mod (undo mod) to a git commit and then discovered git-revert and thought, hey I'll use that instead but then forgot to add all the text into it. D'oh. Thanks for the fixup. --Tim From owner-xfs@oss.sgi.com Mon Oct 1 18:41:45 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 18:41:49 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l921fghu012306 for ; Mon, 1 Oct 2007 18:41:44 -0700 Received: from timothy-shimmins-power-mac-g5.local (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA16027; Tue, 2 Oct 2007 11:41:37 +1000 Message-ID: <4701A1D0.5010709@sgi.com> Date: Tue, 02 Oct 2007 11:41:36 +1000 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Eric Sandeen CC: xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> In-Reply-To: <4700EE2A.1020304@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4447/Mon Oct 1 15:02:09 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13199 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: tes@sgi.com Precedence: bulk X-list: xfs Eric Sandeen wrote: > Tim Shimmin wrote: >> Hi Linus, >> >> A problem has been found for the XFS commit b394e43e995d08821588a22561c6a71a63b4ff27 >> and it needs to be reverted. >> It has the potential for worse corruption than what it is meant to fix. > > > Whoops... that's what I get for picking it up too soon for fedora I guess! > > Any background on the newly-found problem, for those of us in the peanut > gallery? > > Thanks, > > -Eric Hi Eric, Lachlan worked this problem so he can probably provide more details. My understanding is that we were having a problem with the log replay replaying newly allocated inodes (inodes from buffer items) over the top of buffers which were actually more up-to-date than what was logged. The code used a heuristic to determine if the buffer had been written to for the inode (by checking on magic#, mode and gen# - not going to comment on this). Anyway, it comes down to either copying over the inode buf data or not copying it over (doing or not doing the log replay). The change could cause the buffer to be not overwritten in replay where previously it would be. We want this to not happen as part of the fix and doing the right thing and not by mistake and failing to replay when we need it to be replayed. I presume the latter is what is happening. The symptoms of this is what Lachlan has discovered in QA on a debug kernel and he can provide the details. I believe this started from not logging the inode size changes (as is consistent with the logging model) for performance reasons, and so we can't rely on inode log items coming up on log replay to fix things up. BTW, we currently have 3 ways of logging an inode: 1. in an item buffer and marked as an inode 2. in an item buffer and not marked as an inode 3. in an inode item and 3 places where they get replayed: 1. xlog_recover_do_inode_buffer - for di_next_unlinked pointer recovery 2. xlog_recover_do_reg_buffer - for newly allocated inode recovery 3. xlog_recover_do_inode_trans - for general inode recovery The fix was in #2. Ughh. --Tim From owner-xfs@oss.sgi.com Mon Oct 1 20:10:20 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 20:10:25 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l923AETH031126 for ; Mon, 1 Oct 2007 20:10:18 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA18531; Tue, 2 Oct 2007 13:10:09 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 5372F58C38F1; Tue, 2 Oct 2007 13:10:09 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: PARTIAL TAKE 971186 - cleanup vnode useage in xfs_ioctl.c Message-Id: <20071002031009.5372F58C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 13:10:09 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4448/Mon Oct 1 18:32:14 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13200 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs cleanup vnode useage in xfs_ioctl.c xfs_ioctl.c passes around vnode pointers quite a lot, but all places already have the Linux inode which is identical to the vnode these days. Clean the code up to always use the Linux inode. Signed-off-by: Christoph Hellwig Date: Sun Sep 30 23:26:24 PDT 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-log Inspected by: Christoph Hellwig Author: lachlan.longdrop.melbourne.sgi.com The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29807a fs/xfs/linux-2.6/xfs_ioctl.c - 1.156 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ioctl.c.diff?r1=text&tr1=1.156&r2=text&tr2=1.155&f=h - cleanup vnode useage in xfs_ioctl.c From owner-xfs@oss.sgi.com Mon Oct 1 20:11:57 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 20:12:02 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l923BqhT031559 for ; Mon, 1 Oct 2007 20:11:56 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA18565; Tue, 2 Oct 2007 13:11:48 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id A310158C38F1; Tue, 2 Oct 2007 13:11:48 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: PARTIAL TAKE 971186 - cleanup vnode useage in xfs_iget.c Message-Id: <20071002031148.A310158C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 13:11:48 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4448/Mon Oct 1 18:32:14 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13201 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs cleanup vnode useage in xfs_iget.c Get rid of vnode useage in xfs_iget.c and pass Linux inode / xfs_inode where apropinquate. And kill some useless helpers while we're at it. Signed-off-by: Christoph Hellwig Date: Mon Oct 1 16:47:33 AEST 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-log Inspected by: Christoph Hellwig Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29808a fs/xfs/xfs_iget.c - 1.236 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.236&r2=text&tr2=1.235&f=h fs/xfs/xfs_inode.h - 1.236 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.236&r2=text&tr2=1.235&f=h fs/xfs/linux-2.6/xfs_vnode.c - 1.153 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vnode.c.diff?r1=text&tr1=1.153&r2=text&tr2=1.152&f=h fs/xfs/linux-2.6/xfs_vnode.h - 1.143 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_vnode.h.diff?r1=text&tr1=1.143&r2=text&tr2=1.142&f=h fs/xfs/linux-2.6/xfs_ksyms.c - 1.75 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.75&r2=text&tr2=1.74&f=h - cleanup vnode useage in xfs_iget.c From owner-xfs@oss.sgi.com Mon Oct 1 20:23:34 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 20:23:37 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l923NS9e005662 for ; Mon, 1 Oct 2007 20:23:32 -0700 Received: from linuxbuild.melbourne.sgi.com (linuxbuild.melbourne.sgi.com [134.14.54.115]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA18827; Tue, 2 Oct 2007 13:23:24 +1000 From: donaldd@sgi.com Received: by linuxbuild.melbourne.sgi.com (Postfix, from userid 16365) id D90EC30B55CE; Tue, 2 Oct 2007 13:23:23 +1000 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 971186 - kill xfs_freeze Message-Id: <20071002032323.D90EC30B55CE@linuxbuild.melbourne.sgi.com> Date: Tue, 2 Oct 2007 13:23:23 +1000 (EST) X-Virus-Scanned: ClamAV 0.91.2/4448/Mon Oct 1 18:32:14 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13202 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: donaldd@sgi.com Precedence: bulk X-list: xfs kill xfs_freeze. No need to have a wrapper just two call two more functions. Signed-off-by: Christoph Hellwig Date: Tue Oct 2 13:22:40 AEST 2007 Workarea: linuxbuild.melbourne.sgi.com:/home/donaldd/isms/2.6.x-xfs Inspected by: hch@lst.de The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29816a fs/xfs/xfs_vfsops.c - 1.545 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.c.diff?r1=text&tr1=1.545&r2=text&tr2=1.544&f=h - kill xfs_freeze. fs/xfs/linux-2.6/xfs_super.c - 1.400 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_super.c.diff?r1=text&tr1=1.400&r2=text&tr2=1.399&f=h - kill xfs_freeze. fs/xfs/xfs_vfsops.h - 1.5 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vfsops.h.diff?r1=text&tr1=1.5&r2=text&tr2=1.4&f=h - kill xfs_freeze. From owner-xfs@oss.sgi.com Mon Oct 1 20:26:49 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 20:26:53 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l923Qis7006699 for ; Mon, 1 Oct 2007 20:26:48 -0700 Received: from linuxbuild.melbourne.sgi.com (linuxbuild.melbourne.sgi.com [134.14.54.115]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id NAA18920; Tue, 2 Oct 2007 13:26:40 +1000 From: donaldd@sgi.com Received: by linuxbuild.melbourne.sgi.com (Postfix, from userid 16365) id 577F230CD1E8; Tue, 2 Oct 2007 13:26:40 +1000 (EST) To: xfs@oss.sgi.com, sgi.bugs.xfs@engr.sgi.com Subject: PARTIAL TAKE 971186 - kill probe_* sysctl leftovers Message-Id: <20071002032640.577F230CD1E8@linuxbuild.melbourne.sgi.com> Date: Tue, 2 Oct 2007 13:26:40 +1000 (EST) X-Virus-Scanned: ClamAV 0.91.2/4448/Mon Oct 1 18:32:14 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13203 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: donaldd@sgi.com Precedence: bulk X-list: xfs kill probe_* sysctl leftovers After my recent changes the probe_* sysctls are unused because we do a proper request_module now if we actually know that we need the quota or dmapi module. Kill the leftovers that have no function anymore. Signed-off-by: Christoph Hellwig Date: Tue Oct 2 13:26:11 AEST 2007 Workarea: linuxbuild.melbourne.sgi.com:/home/donaldd/isms/2.6.x-xfs Inspected by: hch@lst.de The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29817a fs/xfs/linux-2.6/xfs_globals.c - 1.73 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_globals.c.diff?r1=text&tr1=1.73&r2=text&tr2=1.72&f=h - kill probe_* sysctl leftovers. fs/xfs/linux-2.6/xfs_linux.h - 1.161 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_linux.h.diff?r1=text&tr1=1.161&r2=text&tr2=1.160&f=h - kill probe_* sysctl leftovers. fs/xfs/linux-2.6/xfs_sysctl.c - 1.43 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sysctl.c.diff?r1=text&tr1=1.43&r2=text&tr2=1.42&f=h - kill probe_* sysctl leftovers. fs/xfs/linux-2.6/xfs_sysctl.h - 1.28 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_sysctl.h.diff?r1=text&tr1=1.28&r2=text&tr2=1.27&f=h - kill probe_* sysctl leftovers. From owner-xfs@oss.sgi.com Mon Oct 1 21:51:21 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 21:51:26 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l924pG8Z021053 for ; Mon, 1 Oct 2007 21:51:19 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA20981; Tue, 2 Oct 2007 14:51:12 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 494EE58C38F1; Tue, 2 Oct 2007 14:51:12 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 971186 - clean up some xfs_log_priv.h macros Message-Id: <20071002045112.494EE58C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 14:51:12 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4451/Mon Oct 1 21:12:51 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13205 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs clean up some xfs_log_priv.h macros - the various assign lsn macros are replaced by a single inline, xlog_assign_lsn, which is equivalent to ASSIGN_ANY_LSN_HOST except for a more sane calling convention. ASSIGN_LSN_DISK is replaced by xlog_assign_lsn and a manual bytespap, and ASSIGN_LSN by the same, except we pass the cycle and block arguments explicitly instead of a log paramter. The latter two variants only had 2, respectively one user anyway. - the GET_CYCLE is replaced by a xlog_get_cycle inline with exactly the same calling conventions. - GET_CLIENT_ID is replaced by xlog_get_client_id which leaves away the unused arch argument. Instead of conditional defintions depending on host endianess we now do an unconditional swap and shift then, which generates equal code. - the unused XLOG_SET macro is removed. Signed-off-by: Christoph Hellwig Date: Tue Oct 2 14:47:44 AEST 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-oss Inspected by: Christoph Hellwig Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29820a fs/xfs/xfs_log.c - 1.341 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.341&r2=text&tr2=1.340&f=h fs/xfs/xfs_log_priv.h - 1.124 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_priv.h.diff?r1=text&tr1=1.124&r2=text&tr2=1.123&f=h fs/xfs/xfs_log_recover.c - 1.328 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.328&r2=text&tr2=1.327&f=h - clean up some xfs_log_priv.h macros From owner-xfs@oss.sgi.com Mon Oct 1 21:50:36 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 21:50:42 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l924oVCo020930 for ; Mon, 1 Oct 2007 21:50:34 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA20978; Tue, 2 Oct 2007 14:50:26 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id A77AF58C38F1; Tue, 2 Oct 2007 14:50:26 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 971186 - clean up some xfs_log_priv.h macros Message-Id: <20071002045026.A77AF58C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 14:50:26 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4451/Mon Oct 1 21:12:51 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13204 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs clean up some xfs_log_priv.h macros - the various assign lsn macros are replaced by a single inline, xlog_assign_lsn, which is equivalent to ASSIGN_ANY_LSN_HOST except for a more sane calling convention. ASSIGN_LSN_DISK is replaced by xlog_assign_lsn and a manual bytespap, and ASSIGN_LSN by the same, except we pass the cycle and block arguments explicitly instead of a log paramter. The latter two variants only had 2, respectively one user anyway. - the GET_CYCLE is replaced by a xlog_get_cycle inline with exactly the same calling conventions. - GET_CLIENT_ID is replaced by xlog_get_client_id which leaves away the unused arch argument. Instead of conditional defintions depending on host endianess we now do an unconditional swap and shift then, which generates equal code. - the unused XLOG_SET macro is removed. Signed-off-by: Christoph Hellwig Date: Tue Oct 2 14:34:49 AEST 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-oss Inspected by: Christoph Hellwig Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29819a fs/xfs/xfs_log.c - 1.340 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.340&r2=text&tr2=1.339&f=h fs/xfs/xfs_log_priv.h - 1.123 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_priv.h.diff?r1=text&tr1=1.123&r2=text&tr2=1.122&f=h fs/xfs/xfs_log_recover.c - 1.327 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.327&r2=text&tr2=1.326&f=h - clean up some xfs_log_priv.h macros From owner-xfs@oss.sgi.com Mon Oct 1 22:20:04 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 22:20:08 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l925Jxdw024520 for ; Mon, 1 Oct 2007 22:20:02 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA21697; Tue, 2 Oct 2007 15:19:55 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id 03B9E58C38F1; Tue, 2 Oct 2007 15:19:54 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: PARTIAL TAKE 971186 - xlog_rec_header/xlog_rec_ext_header endianess annotations Message-Id: <20071002051955.03B9E58C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 15:19:54 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4451/Mon Oct 1 21:12:51 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13206 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs xlog_rec_header/xlog_rec_ext_header endianess annotations Mostly trivial conversion with one exceptions: h_num_logops was kept in native endian previously and only converted to big endian in xlog_sync, but we always keep it big endian now. With todays cpus fast byteswap instructions that's not an issue but the new variant keeps the code clean and maintainable. Signed-off-by: Christoph Hellwig Date: Tue Oct 2 15:19:07 AEST 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-oss Inspected by: Signed-off-by: Christoph Hellwig Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29821a fs/xfs/xfsidbg.c - 1.338 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.338&r2=text&tr2=1.337&f=h fs/xfs/xfs_log.h - 1.80 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.h.diff?r1=text&tr1=1.80&r2=text&tr2=1.79&f=h fs/xfs/xfs_log.c - 1.342 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log.c.diff?r1=text&tr1=1.342&r2=text&tr2=1.341&f=h fs/xfs/xfs_log_priv.h - 1.125 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_priv.h.diff?r1=text&tr1=1.125&r2=text&tr2=1.124&f=h fs/xfs/xfs_log_recover.c - 1.329 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_log_recover.c.diff?r1=text&tr1=1.329&r2=text&tr2=1.328&f=h - xlog_rec_header/xlog_rec_ext_header endianess annotations From owner-xfs@oss.sgi.com Mon Oct 1 22:26:30 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 22:26:34 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l925QPFR025693 for ; Mon, 1 Oct 2007 22:26:28 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA21822; Tue, 2 Oct 2007 15:26:21 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id B4D1058C38F1; Tue, 2 Oct 2007 15:26:21 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 970852 - kill xfs_iocore_t Message-Id: <20071002052621.B4D1058C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 15:26:21 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4451/Mon Oct 1 21:12:51 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13207 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs kill xfs_iocore_t xfs_iocore_t is a structure embedded in xfs_inode. Except for one field it just duplicates fields already in xfs_inode, and there is nothing this abstraction buys us on XFS/Linux. This patch removes it and shrinks source and binary size of xfs aswell as shrinking the size of xfs_inode by 60/44 bytes in debug/non-debug builds. Signed-off-by: Christoph Hellwig Date: Fri Sep 21 17:16:44 AEST 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-hch Inspected by: Christoph Hellwig Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29754a fs/xfs/xfsidbg.c - 1.334 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfsidbg.c.diff?r1=text&tr1=1.334&r2=text&tr2=1.333&f=h fs/xfs/xfs_rw.h - 1.85 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_rw.h.diff?r1=text&tr1=1.85&r2=text&tr2=1.84&f=h fs/xfs/xfs_vnodeops.c - 1.723 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.723&r2=text&tr2=1.722&f=h fs/xfs/xfs_iocore.c - 1.55 - deleted http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iocore.c.diff?r1=text&tr1=1.55&r2=text&tr2=1.54&f=h fs/xfs/xfs_dfrag.c - 1.62 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_dfrag.c.diff?r1=text&tr1=1.62&r2=text&tr2=1.61&f=h fs/xfs/xfs_iget.c - 1.235 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iget.c.diff?r1=text&tr1=1.235&r2=text&tr2=1.234&f=h fs/xfs/xfs_mount.h - 1.255 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_mount.h.diff?r1=text&tr1=1.255&r2=text&tr2=1.254&f=h fs/xfs/xfs_inode.c - 1.482 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.c.diff?r1=text&tr1=1.482&r2=text&tr2=1.481&f=h fs/xfs/xfs_inode.h - 1.235 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_inode.h.diff?r1=text&tr1=1.235&r2=text&tr2=1.234&f=h fs/xfs/Makefile-linux-2.6 - 1.214 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/Makefile-linux-2.6.diff?r1=text&tr1=1.214&r2=text&tr2=1.213&f=h fs/xfs/xfs_iomap.c - 1.59 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_iomap.c.diff?r1=text&tr1=1.59&r2=text&tr2=1.58&f=h fs/xfs/linux-2.6/xfs_lrw.h - 1.62 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_lrw.h.diff?r1=text&tr1=1.62&r2=text&tr2=1.61&f=h fs/xfs/linux-2.6/xfs_lrw.c - 1.270 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_lrw.c.diff?r1=text&tr1=1.270&r2=text&tr2=1.269&f=h fs/xfs/linux-2.6/xfs_aops.c - 1.157 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_aops.c.diff?r1=text&tr1=1.157&r2=text&tr2=1.156&f=h fs/xfs/linux-2.6/xfs_ksyms.c - 1.74 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_ksyms.c.diff?r1=text&tr1=1.74&r2=text&tr2=1.73&f=h fs/xfs/dmapi/xfs_dm.c - 1.55 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/dmapi/xfs_dm.c.diff?r1=text&tr1=1.55&r2=text&tr2=1.54&f=h - kill xfs_iocore_t From owner-xfs@oss.sgi.com Mon Oct 1 22:27:39 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 22:27:43 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l925RYkh025863 for ; Mon, 1 Oct 2007 22:27:37 -0700 Received: from chook.melbourne.sgi.com (chook.melbourne.sgi.com [134.14.54.237]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA21836; Tue, 2 Oct 2007 15:27:29 +1000 Received: by chook.melbourne.sgi.com (Postfix, from userid 44625) id E0DD358C38F1; Tue, 2 Oct 2007 15:27:29 +1000 (EST) To: sgi.bugs.xfs@engr.sgi.com, xfs@oss.sgi.com Subject: TAKE 970980 - simplify xfs_vn_getattr Message-Id: <20071002052729.E0DD358C38F1@chook.melbourne.sgi.com> Date: Tue, 2 Oct 2007 15:27:29 +1000 (EST) From: lachlan@sgi.com (Lachlan McIlroy) X-Virus-Scanned: ClamAV 0.91.2/4451/Mon Oct 1 21:12:51 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13208 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs simplify xfs_vn_getattr Just fill in struct kstat directly from the xfs_inode instead of doing a detour through a bhv_vattr_t and xfs_getattr. Signed-off-by: Christoph Hellwig Date: Tue Sep 25 14:51:00 AEST 2007 Workarea: redback.melbourne.sgi.com:/home/lachlan/isms/2.6.x-hch Inspected by: Christoph Hellwig Author: lachlan The following file(s) were checked into: longdrop.melbourne.sgi.com:/isms/linux/2.6.x-xfs-melb Modid: xfs-linux-melb:xfs-kern:29770a fs/xfs/linux-2.6/xfs_iops.c - 1.265 - changed http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_iops.c.diff?r1=text&tr1=1.265&r2=text&tr2=1.264&f=h - simplify xfs_vn_getattr From owner-xfs@oss.sgi.com Mon Oct 1 22:55:22 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 22:55:26 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_55 autolearn=no version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l925tIxJ028639 for ; Mon, 1 Oct 2007 22:55:20 -0700 Received: from timothy-shimmins-power-mac-g5.local (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA22610; Tue, 2 Oct 2007 15:55:11 +1000 Message-ID: <4701DD3F.1000104@sgi.com> Date: Tue, 02 Oct 2007 15:55:11 +1000 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Andi Kleen CC: Martin Steigerwald , xfs@oss.sgi.com Subject: Re: Creation time in XFS References: <200709302124.38164.Martin@lichtvoll.de> <470042DC.2040009@sgi.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4451/Mon Oct 1 21:12:51 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13209 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: tes@sgi.com Precedence: bulk X-list: xfs Andi Kleen wrote: > Timothy Shimmin writes: > >> No XFS does not support creation time. It just has the regular >> atime,mtime and ctime. >> There are no plans that I've heard to support it. >> Not much involved to support it AFAICT but it would either involve >> changing the ondisk format of the inode or storing it in an EA. > > If you ever change the on disk format adding a file type similar to ext3 > to directories could also greatly speed up find in many cases. > Sounds a good idea. In that case a new ondisk directory format (at v2 at the moment). I think Dave (dgc) might have been mentioning something about that recently. --Tim From owner-xfs@oss.sgi.com Mon Oct 1 23:59:52 2007 Received: with ECARTIS (v1.0.0; list xfs); Mon, 01 Oct 2007 23:59:57 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) 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-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l926xlHN003067 for ; Mon, 1 Oct 2007 23:59:51 -0700 Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA23791; Tue, 2 Oct 2007 16:59:36 +1000 Message-ID: <4701ED51.8050706@sgi.com> Date: Tue, 02 Oct 2007 17:03:45 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.4 (X11/20070604) MIME-Version: 1.0 To: Timothy Shimmin CC: Eric Sandeen , xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4701A1D0.5010709@sgi.com> In-Reply-To: <4701A1D0.5010709@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13210 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs Timothy Shimmin wrote: > Eric Sandeen wrote: >> Tim Shimmin wrote: >>> Hi Linus, >>> >>> A problem has been found for the XFS commit >>> b394e43e995d08821588a22561c6a71a63b4ff27 >>> and it needs to be reverted. >>> It has the potential for worse corruption than what it is meant to fix. >> >> >> Whoops... that's what I get for picking it up too soon for fedora I >> guess! >> >> Any background on the newly-found problem, for those of us in the peanut >> gallery? >> >> Thanks, >> >> -Eric > > Hi Eric, > > Lachlan worked this problem so he can probably provide more details. > My understanding is that we were having a problem with the log replay > replaying newly allocated inodes (inodes from buffer items) over the top > of buffers which were actually more up-to-date than what was logged. > The code used a heuristic to determine if the buffer had been written > to for the inode (by checking on magic#, mode and gen# - not going to > comment on this). > Anyway, it comes down to either copying over the inode buf data or not > copying it over (doing or not doing the log replay). > The change could cause the buffer to be not overwritten in replay > where previously it would be. > We want this to not happen as part of the fix and doing the right thing > and not by mistake and failing to replay when we need it to be replayed. > I presume the latter is what is happening. > The symptoms of this is what Lachlan has discovered in QA on a debug > kernel and he can provide the details. > > I believe this started from not logging the inode size changes > (as is consistent with the logging model) for performance reasons, > and so we can't rely on inode log items coming up on log replay > to fix things up. > > BTW, we currently have 3 ways of logging an inode: > 1. in an item buffer and marked as an inode > 2. in an item buffer and not marked as an inode > 3. in an inode item > > and 3 places where they get replayed: > 1. xlog_recover_do_inode_buffer - for di_next_unlinked pointer recovery > 2. xlog_recover_do_reg_buffer - for newly allocated inode recovery > 3. xlog_recover_do_inode_trans - for general inode recovery > > The fix was in #2. > > > Ughh. Yeah that about sums it up. In an attempt to prevent log replay of inodes in cases when we shouldn't replay we also prevented log replay of inodes in cases when we should replay. We end up with directories that refer to inodes that were not replayed and we read existing data off disk. That existing data is usually previous instances of inodes. We had cases of regular files turning into directories and inode version mismatches. Lachlan From owner-xfs@oss.sgi.com Tue Oct 2 00:08:24 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 00:08:28 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9278IUp006241 for ; Tue, 2 Oct 2007 00:08:20 -0700 Received: from pc-bnaujok.melbourne.sgi.com (pc-bnaujok.melbourne.sgi.com [134.14.55.58]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id RAA24017; Tue, 2 Oct 2007 17:08:17 +1000 Date: Tue, 02 Oct 2007 17:08:59 +1000 To: "xfs@oss.sgi.com" , xfs-dev Subject: REVIEW: xfs_reno From: "Barry Naujok" Organization: SGI Content-Type: multipart/mixed; boundary=----------CjDhNP1TBpgHu0GSrkBaa0 MIME-Version: 1.0 Message-ID: User-Agent: Opera Mail/9.10 (Win32) X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13211 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: bnaujok@sgi.com Precedence: bulk X-list: xfs ------------CjDhNP1TBpgHu0GSrkBaa0 Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15 Content-Transfer-Encoding: 7bit The attached tool allows an inode64 filesystem to be converted to inode32. For this to work, the filesystem has to be mounted inode32 before it's run. I'm not sure if there is any packaging changes required. Barry. ------------CjDhNP1TBpgHu0GSrkBaa0 Content-Disposition: attachment; filename=xfs_reno.patch Content-Type: application/octet-stream; name=xfs_reno.patch Content-Transfer-Encoding: Base64 Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp4ZnNkdW1wL01ha2Vm aWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKLS0tIGEveGZz ZHVtcC9NYWtlZmlsZQkyMDA3LTEwLTAyIDE3OjA2OjI0LjAwMDAwMDAwMCAr MTAwMAorKysgYi94ZnNkdW1wL01ha2VmaWxlCTIwMDctMDktMTQgMTc6MzE6 MzEuOTE2NDM3MTQwICsxMDAwCkBAIC0xNiw3ICsxNiw3IEBACiAJTG9ncy8q IGJ1aWx0IC5jZW5zdXMgaW5zdGFsbC4qIGluc3RhbGwtZGV2LiogKi5negog CiBTVUJESVJTID0gaW5jbHVkZSBsaWJybXQgXAotCWNvbW1vbiBlc3RpbWF0 ZSBmc3IgaW52ZW50b3J5IGludnV0aWwgZHVtcCByZXN0b3JlIFwKKwljb21t b24gZXN0aW1hdGUgZnNyIGludmVudG9yeSBpbnZ1dGlsIGR1bXAgcmVubyBy ZXN0b3JlIFwKIAltNCBtYW4gZG9jIHBvIGRlYmlhbiBidWlsZAogCiBkZWZh dWx0OiAkKENPTkZJR1VSRSkKCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQp4ZnNkdW1wL3Jlbm8vTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CgotLS0gYS94ZnNkdW1wL3Jlbm8vTWFrZWZpbGUJMjAw Ni0wNi0xNyAwMDo1ODoyNC4wMDAwMDAwMDAgKzEwMDAKKysrIGIveGZzZHVt cC9yZW5vL01ha2VmaWxlCTIwMDctMTAtMDIgMTc6MDY6MTguNjU4MzIwNzM4 ICsxMDAwCkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAy MDA3IFNpbGljb24gR3JhcGhpY3MsIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2 ZWQuCisjCisKK1RPUERJUiA9IC4uCitpbmNsdWRlICQoVE9QRElSKS9pbmNs dWRlL2J1aWxkZGVmcworCitMVENPTU1BTkQgPSB4ZnNfcmVubworQ0ZJTEVT ID0geGZzX3Jlbm8uYworTExETElCUyA9ICQoTElCQVRUUikKKworZGVmYXVs dDogJChMVENPTU1BTkQpCisKK2luY2x1ZGUgJChCVUlMRFJVTEVTKQorCitp bnN0YWxsOiBkZWZhdWx0CisJJChJTlNUQUxMKSAtbSA3NTUgLWQgJChQS0df QklOX0RJUikKKwkkKExUSU5TVEFMTCkgLW0gNzU1ICQoTFRDT01NQU5EKSAk KFBLR19CSU5fRElSKQoraW5zdGFsbC1kZXY6Cgo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KeGZzZHVtcC9yZW5vL3hmc19yZW5vLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CgotLS0gYS94ZnNkdW1wL3Jlbm8v eGZzX3Jlbm8uYwkyMDA2LTA2LTE3IDAwOjU4OjI0LjAwMDAwMDAwMCArMTAw MAorKysgYi94ZnNkdW1wL3Jlbm8veGZzX3Jlbm8uYwkyMDA3LTEwLTAyIDE3 OjA1OjM4LjQwMzU1NjI2MCArMTAwMApAQCAtMCwwICsxLDE4NDEgQEAKKy8q CisgKiBDb3B5cmlnaHQgKGMpIDIwMDcgU2lsaWNvbiBHcmFwaGljcywgSW5j LgorICogQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd291 bGQgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UK KyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCisgKiBJbmMuLCAgNTEgRnJh bmtsaW4gU3QsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAx ICBVU0EKKyAqLworCisvKgorICogeGZzX3Jlbm8gLSByZW51bWJlciA2NC1i aXQgaW5vZGVzCisgKgorICogeGZzX3Jlbm8gWy1mXSBbLW5dIFstcF0gWy1x XSBbLXZdIFstUCBzZWNvbmRzXSBwYXRoIC4uLgorICogeGZzX3Jlbm8gWy1y XSBwYXRoIC4uLgorICoKKyAqIFJlbnVtYmVycyBhbGwgaW5vZGVzID4gMzIg Yml0cyBpbnRvIDMyIGJpdCBzcGFjZS4gUmVxdWlyZXMgdGhlIGZpbGVzeXRl bQorICogdG8gYmUgbW91bnRlZCB3aXRoIGlub2RlMzIuCisgKgorICoJLWYJ CWZvcmNlIGNvbnZlcnNpb24gb24gYWxsIGlub2RlcyByYXRoZXIgdGhhbiBq dXN0CisgKgkJCXRob3NlIHdpdGggYSA2NGJpdCBpbm9kZSBudW1iZXIuCisg KgktbgkJbm90aGluZywgZG8gbm90IHJlbnVtYmVyIGlub2RlcworICoJLXAJ CXNob3cgcHJvZ3Jlc3Mgc3RhdHVzLgorICoJLXEJCXF1aWV0LCBkbyBub3Qg cmVwb3J0IHByb2dyZXNzLCBvbmx5IGVycm9ycy4KKyAqCS12CQl2ZXJib3Nl LCBtb3JlIC12J3MgbW9yZSB2ZXJib3NlLgorICoJLVAgc2Vjb25kcwlzZXQg dGhlIGludGVydmFsIGZvciB0aGUgcHJvZ3Jlc3Mgc3RhdHVzIGluIHNlY29u ZHMuCisgKgktcgkJcmVjb3ZlciBmcm9tIGFuIGludGVycnVwdGVkIHJ1bi4K KyAqLworCisjaW5jbHVkZSA8eGZzL3hmcy5oPgorCisjaW5jbHVkZSA8ZGly ZW50Lmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5o PgorI2luY2x1ZGUgPGZ0dy5oPgorI2luY2x1ZGUgPGxpYmdlbi5oPgorI2lu Y2x1ZGUgPG1hbGxvYy5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1 ZGUgPHN0ZGludC5oPgorI2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1 ZGUgPGF0dHIvYXR0cmlidXRlcy5oPgorI2luY2x1ZGUgPHhmcy94ZnNfZGZy YWcuaD4KKyNpbmNsdWRlIDx4ZnMveGZzX2ludW0uaD4KKworI2RlZmluZSBB VFRSQlVGU0laRQkxMDI0CisKKyNkZWZpbmUgU0NBTl9QSEFTRQkweDAwCisj ZGVmaW5lIERJUl9QSEFTRQkweDEwCS8qIG5vdGhpbmcgZG9uZSBvciBhbGwg ZG9uZSAqLworI2RlZmluZSBESVJfUEhBU0VfMQkweDExCS8qIHRhcmdldCBk aXIgY3JlYXRlZCAqLworI2RlZmluZSBESVJfUEhBU0VfMgkweDEyCS8qIHRl bXAgZGlyIGNyZWF0ZWQgKi8KKyNkZWZpbmUgRElSX1BIQVNFXzMJMHgxMwkv KiBhdHRyaWJ1dGVzIGJhY2tlZCB1cCB0byB0ZW1wICovCisjZGVmaW5lIERJ Ul9QSEFTRV80CTB4MTQJLyogZGlyZW50cyBtb3ZlZCB0byB0YXJnZXQgZGly ICovCisjZGVmaW5lIERJUl9QSEFTRV81CTB4MTUJLyogYXR0cmlidXRlcyBh cHBsaWVkIHRvIHRhcmdldCBkaXIgKi8KKyNkZWZpbmUgRElSX1BIQVNFXzYJ MHgxNgkvKiBzcmMgZGlyIHJlbW92ZWQgKi8KKyNkZWZpbmUgRElSX1BIQVNF XzcJMHgxNwkvKiB0ZW1wIGRpciByZW1vdmVkICovCisjZGVmaW5lIERJUl9Q SEFTRV9NQVgJMHgxNworI2RlZmluZSBGSUxFX1BIQVNFCTB4MjAJLyogbm90 aGluZyBkb25lIG9yIGFsbCBkb25lICovCisjZGVmaW5lIEZJTEVfUEhBU0Vf MQkweDIxCS8qIHRlbXAgZmlsZSBjcmVhdGVkICovCisjZGVmaW5lIEZJTEVf UEhBU0VfMgkweDIyCS8qIHN3YXBwZWQgZXh0ZW50cyAqLworI2RlZmluZSBG SUxFX1BIQVNFXzMJMHgyMwkvKiB1bmxpbmtlZCBzb3VyY2UgKi8KKyNkZWZp bmUgRklMRV9QSEFTRV80CTB4MjQJLyogcmVuYW1lZCB0ZW1wIHRvIHNvdXJj ZSBuYW1lICovCisjZGVmaW5lIEZJTEVfUEhBU0VfTUFYCTB4MjQKKworc3Rh dGljIHZvaWQgdXBkYXRlX3JlY292ZXJmaWxlKHZvaWQpOworI2RlZmluZSBT RVRfUEhBU0UoeCkJKGN1cl9waGFzZSA9IHgsIHVwZGF0ZV9yZWNvdmVyZmls ZSgpKQorCisjZGVmaW5lIExPR19FUlIJCTAKKyNkZWZpbmUgTE9HX05PUk1B TAkxCisjZGVmaW5lIExPR19JTkZPCTIKKyNkZWZpbmUgTE9HX0RFQlVHCTMK KyNkZWZpbmUgTE9HX05JVFRZCTQKKworI2RlZmluZSBOSF9CVUNLRVRTCTY1 NTM2CisjZGVmaW5lIE5IX0hBU0goaW5vKQkobm9kZWhhc2ggKyAoKGlubykg JSBOSF9CVUNLRVRTKSkKKwordHlwZWRlZiBzdHJ1Y3QgeworCXhmc19pbm9f dAlpbm87CisJaW50CQlmdHdfZmxhZ3M7CisJbmxpbmtfdAkJbnVtcGF0aHM7 CisJY2hhcgkJKipwYXRoczsKK30gYmlnbm9kZV90OworCit0eXBlZGVmIHN0 cnVjdCB7CisJYmlnbm9kZV90CSpub2RlczsKKwl1aW50NjRfdAlsaXN0bGVu OworCXVpbnQ2NF90CWxhc3Rub2RlOworfSBub2RlbGlzdF90OworCitzdGF0 aWMgY29uc3QgY2hhcgkqY21kX3ByZWZpeCA9ICJ4ZnNfcmVub18iOworCitz dGF0aWMgY2hhcgkJKnByb2duYW1lOworc3RhdGljIGludAkJbG9nX2xldmVs ID0gTE9HX05PUk1BTDsKK3N0YXRpYyBpbnQJCWZvcmNlX2FsbDsKK3N0YXRp YyBub2RlbGlzdF90CSpub2RlaGFzaDsKK3N0YXRpYyBpbnQJCXJlYWx1aWQ7 CitzdGF0aWMgdWludDY0X3QJCW51bWRpcm5vZGVzOworc3RhdGljIHVpbnQ2 NF90CQludW1maWxlbm9kZXM7CitzdGF0aWMgdWludDY0X3QJCW51bWRpcnNk b25lOworc3RhdGljIHVpbnQ2NF90CQludW1maWxlc2RvbmU7CitzdGF0aWMg aW50CQlwb2xsX2ludGVydmFsOworc3RhdGljIHRpbWVfdAkJc3RhcnR0aW1l Oworc3RhdGljIGJpZ25vZGVfdAkqY3VyX25vZGU7CitzdGF0aWMgY2hhcgkJ KmN1cl90YXJnZXQ7CitzdGF0aWMgY2hhcgkJKmN1cl90ZW1wOworc3RhdGlj IGludAkJY3VyX3BoYXNlOworc3RhdGljIGludAkJaGlnaGVzdF9udW1wYXRo czsKK3N0YXRpYyBjaGFyCQkqcmVjb3Zlcl9maWxlOworc3RhdGljIGludAkJ cmVjb3Zlcl9mZDsKK3N0YXRpYyB2b2xhdGlsZSBpbnQJcG9sbF9vdXRwdXQ7 CitzdGF0aWMgaW50CQlnbG9iYWxfcnZhbDsKKworLyoKKyAqIG1lc3NhZ2Ug aGFuZGxpbmcKKyAqLworc3RhdGljIHZvaWQKK2xvZ19tZXNzYWdlKAorCWlu dAkJbGV2ZWwsCisJY2hhcgkJKmZtdCwgLi4uKQoreworCWNoYXIJCWJ1Zlsx MDI0XTsKKwl2YV9saXN0CQlhcDsKKworCWlmIChsb2dfbGV2ZWwgPCBsZXZl bCkKKwkJcmV0dXJuOworCisJdmFfc3RhcnQoYXAsIGZtdCk7CisJdnNucHJp bnRmKGJ1ZiwgMTAyNCwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKworCXBy aW50ZigiJWMlczogJXNcbiIsIHBvbGxfb3V0cHV0ID8gJ1xuJyA6ICdccics IHByb2duYW1lLCBidWYpOworCXBvbGxfb3V0cHV0ID0gMDsKK30KKworc3Rh dGljIHZvaWQKK2Vycl9tZXNzYWdlKAorCWNoYXIJCSpmbXQsIC4uLikKK3sK KwljaGFyCQlidWZbMTAyNF07CisJdmFfbGlzdAkJYXA7CisKKwl2YV9zdGFy dChhcCwgZm10KTsKKwl2c25wcmludGYoYnVmLCAxMDI0LCBmbXQsIGFwKTsK Kwl2YV9lbmQoYXApOworCisJZnByaW50ZihzdGRlcnIsICIlYyVzOiAlc1xu IiwgcG9sbF9vdXRwdXQgPyAnXG4nIDogJ1xyJywgcHJvZ25hbWUsIGJ1Zik7 CisJcG9sbF9vdXRwdXQgPSAwOworfQorCitzdGF0aWMgdm9pZAorZXJyX25v bWVtKHZvaWQpCit7CisJZXJyX21lc3NhZ2UoXygiT3V0IG9mIG1lbW9yeSIp KTsKK30KKworc3RhdGljIHZvaWQKK2Vycl9vcGVuKAorCWNvbnN0IGNoYXIJ KnMpCit7CisJZXJyX21lc3NhZ2UoXygiQ2Fubm90IG9wZW4gJXM6ICVzIiks IHMsIHN0cmVycm9yKGVycm5vKSk7Cit9CisKK3N0YXRpYyB2b2lkCitlcnJf bm90X3hmcygKKwljb25zdCBjaGFyIAkqcykKK3sKKwllcnJfbWVzc2FnZShf KCIlcyBpcyBub3Qgb24gYW4gWEZTIGZpbGVzeXN0ZW0iKSwgcyk7Cit9CisK K3N0YXRpYyB2b2lkCitlcnJfc3RhdCgKKwljb25zdCBjaGFyCSpzKQorewor CWVycl9tZXNzYWdlKF8oIkNhbm5vdCBzdGF0ICVzOiAlc1xuIiksIHMsIHN0 cmVycm9yKGVycm5vKSk7Cit9CisKKy8qCisgKiB1c2FnZSBtZXNzYWdlCisg Ki8KK3N0YXRpYyB2b2lkCit1c2FnZSh2b2lkKQoreworCWZwcmludGYoc3Rk ZXJyLCBfKCIlcyBbLWZucHF2XSBbLVAgPGludGVydmFsPl0gWy1yXSA8cGF0 aD5cbiIpLAorCQkJcHJvZ25hbWUpOworCWV4aXQoMSk7Cit9CisKKworLyoK KyAqIFhGUyBpbnRlcmZhY2UgZnVuY3Rpb25zCisgKi8KKworc3RhdGljIGlu dAoreGZzX2J1bGtzdGF0X3NpbmdsZShpbnQgZmQsIHhmc19pbm9fdCAqbGFz dGlwLCB4ZnNfYnN0YXRfdCAqdWJ1ZmZlcikKK3sKKwl4ZnNfZnNvcF9idWxr cmVxX3QgIGJ1bGtyZXE7CisKKwlidWxrcmVxLmxhc3RpcCA9IChfX3U2NCAq KWxhc3RpcDsKKwlidWxrcmVxLmljb3VudCA9IDE7CisJYnVsa3JlcS51YnVm ZmVyID0gdWJ1ZmZlcjsKKwlidWxrcmVxLm9jb3VudCA9IE5VTEw7CisJcmV0 dXJuIGlvY3RsKGZkLCBYRlNfSU9DX0ZTQlVMS1NUQVRfU0lOR0xFLCAmYnVs a3JlcSk7Cit9CisKK3N0YXRpYyBpbnQKK3hmc19zd2FwZXh0KGludCBmZCwg eGZzX3N3YXBleHRfdCAqc3gpCit7CisJcmV0dXJuIGlvY3RsKGZkLCBYRlNf SU9DX1NXQVBFWFQsIHN4KTsKK30KKworc3RhdGljIGludAoreGZzX2dldHhh dHRyKGludCBmZCwgc3RydWN0IGZzeGF0dHIgKmF0dHIpCit7CisJcmV0dXJu IGlvY3RsKGZkLCBYRlNfSU9DX0ZTR0VUWEFUVFIsIGF0dHIpOworfQorCitz dGF0aWMgaW50Cit4ZnNfc2V0eGF0dHIoaW50IGZkLCBzdHJ1Y3QgZnN4YXR0 ciAqYXR0cikKK3sKKwlyZXR1cm4gaW9jdGwoZmQsIFhGU19JT0NfRlNTRVRY QVRUUiwgYXR0cik7Cit9CisKKy8qCisgKiBBIGhhc2ggdGFibGUgb2YgaW5v ZGUgbnVtYmVycyBhbmQgYXNzb2NpYXRlZCBwYXRocy4KKyAqLworc3RhdGlj IG5vZGVsaXN0X3QgKgoraW5pdF9ub2RlaGFzaCh2b2lkKQoreworCWludAkJ aTsKKworCW5vZGVoYXNoID0gY2FsbG9jKE5IX0JVQ0tFVFMsIHNpemVvZihu b2RlbGlzdF90KSk7CisJaWYgKG5vZGVoYXNoID09IE5VTEwpIHsKKwkJZXJy X25vbWVtKCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWZvciAoaSA9IDA7 IGkgPCBOSF9CVUNLRVRTOyBpKyspIHsKKwkJbm9kZWhhc2hbaV0ubm9kZXMg PSBOVUxMOworCQlub2RlaGFzaFtpXS5sYXN0bm9kZSA9IDA7CisJCW5vZGVo YXNoW2ldLmxpc3RsZW4gPSAwOworCX0KKworCXJldHVybiBub2RlaGFzaDsK K30KKworc3RhdGljIHZvaWQKK2ZyZWVfbm9kZWhhc2godm9pZCkKK3sKKwlp bnQJCWksIGosIGs7CisKKwlmb3IgKGkgPSAwOyBpIDwgTkhfQlVDS0VUUzsg aSsrKSB7CisJCWJpZ25vZGVfdCAqbm9kZXMgPSBub2RlaGFzaFtpXS5ub2Rl czsKKworCQlmb3IgKGogPSAwOyBqIDwgbm9kZWhhc2hbaV0ubGFzdG5vZGU7 IGorKykgeworCQkJZm9yIChrID0gMDsgayA8IG5vZGVzW2pdLm51bXBhdGhz OyBrKyspIHsKKwkJCQlmcmVlKG5vZGVzW2pdLnBhdGhzW2tdKTsKKwkJCX0K KwkJCWZyZWUobm9kZXNbal0ucGF0aHMpOworCQl9CisKKwkJZnJlZShub2Rl cyk7CisJfQorCWZyZWUobm9kZWhhc2gpOworfQorCitzdGF0aWMgbmxpbmtf dAorYWRkX3BhdGgoCisJYmlnbm9kZV90CSpub2RlLAorCWNvbnN0IGNoYXIJ KnBhdGgpCit7CisJbm9kZS0+cGF0aHMgPSByZWFsbG9jKG5vZGUtPnBhdGhz LAorCQkJICAgICAgc2l6ZW9mKGNoYXIgKikgKiAobm9kZS0+bnVtcGF0aHMg KyAxKSk7CisJaWYgKG5vZGUtPnBhdGhzID09IE5VTEwpIHsKKwkJZXJyX25v bWVtKCk7CisJCWV4aXQoMSk7CisJfQorCisJbm9kZS0+cGF0aHNbbm9kZS0+ bnVtcGF0aHNdID0gc3RyZHVwKHBhdGgpOworCWlmIChub2RlLT5wYXRoc1tu b2RlLT5udW1wYXRoc10gPT0gTlVMTCkgeworCQllcnJfbm9tZW0oKTsKKwkJ ZXhpdCgxKTsKKwl9CisKKwlub2RlLT5udW1wYXRocysrOworCWlmIChub2Rl LT5udW1wYXRocyA+IGhpZ2hlc3RfbnVtcGF0aHMpCisJCWhpZ2hlc3RfbnVt cGF0aHMgPSBub2RlLT5udW1wYXRoczsKKworCXJldHVybiBub2RlLT5udW1w YXRoczsKK30KKworc3RhdGljIGJpZ25vZGVfdCAqCithZGRfbm9kZSgKKwlu b2RlbGlzdF90CSpsaXN0LAorCXhmc19pbm9fdAlpbm8sCisJaW50CQlmdHdf ZmxhZ3MsCisJY29uc3QgY2hhcgkqcGF0aCkKK3sKKwliaWdub2RlX3QJKm5v ZGU7CisKKwlpZiAobGlzdC0+bGFzdG5vZGUgPj0gbGlzdC0+bGlzdGxlbikg eworCQlsaXN0LT5saXN0bGVuICs9IDUwMDsKKwkJbGlzdC0+bm9kZXMgPSBy ZWFsbG9jKGxpc3QtPm5vZGVzLAorCQkJCQlzaXplb2YoYmlnbm9kZV90KSAq IGxpc3QtPmxpc3RsZW4pOworCQlpZiAobGlzdC0+bm9kZXMgPT0gTlVMTCkg eworCQkJZXJyX25vbWVtKCk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCX0K KworCW5vZGUgPSBsaXN0LT5ub2RlcyArIGxpc3QtPmxhc3Rub2RlOworCisJ bm9kZS0+aW5vID0gaW5vOworCW5vZGUtPmZ0d19mbGFncyA9IGZ0d19mbGFn czsKKwlub2RlLT5wYXRocyA9IE5VTEw7CisJbm9kZS0+bnVtcGF0aHMgPSAw OworCWFkZF9wYXRoKG5vZGUsIHBhdGgpOworCisJbGlzdC0+bGFzdG5vZGUr KzsKKworCXJldHVybiBub2RlOworfQorCitzdGF0aWMgYmlnbm9kZV90ICoK K2ZpbmRfbm9kZSgKKwl4ZnNfaW5vX3QJaW5vKQoreworCWludAkJaTsKKwlu b2RlbGlzdF90CSpub2RlbGlzdDsKKwliaWdub2RlX3QJKm5vZGVzOworCisJ bm9kZWxpc3QgPSBOSF9IQVNIKGlubyk7CisJbm9kZXMgPSBub2RlbGlzdC0+ bm9kZXM7CisKKwlmb3IoaSA9IDA7IGkgPCBub2RlbGlzdC0+bGFzdG5vZGU7 IGkrKykgeworCQlpZiAobm9kZXNbaV0uaW5vID09IGlubykgeworCQkJcmV0 dXJuICZub2Rlc1tpXTsKKwkJfQorCX0KKworCXJldHVybiBOVUxMOworfQor CitzdGF0aWMgYmlnbm9kZV90ICoKK2FkZF9ub2RlX3BhdGgoCisJeGZzX2lu b190CWlubywKKwlpbnQJCWZ0d19mbGFncywKKwljb25zdCBjaGFyCSpwYXRo KQoreworCW5vZGVsaXN0X3QJKm5vZGVsaXN0OworCWJpZ25vZGVfdAkqbm9k ZTsKKworCWxvZ19tZXNzYWdlKExPR19OSVRUWSwgImFkZF9ub2RlX3BhdGg6 IGlubyAlbGx1LCBwYXRoICVzIiwgaW5vLCBwYXRoKTsKKworCW5vZGUgPSBm aW5kX25vZGUoaW5vKTsKKwlpZiAobm9kZSA9PSBOVUxMKSB7CisJCW5vZGVs aXN0ID0gTkhfSEFTSChpbm8pOworCQlyZXR1cm4gYWRkX25vZGUobm9kZWxp c3QsIGlubywgZnR3X2ZsYWdzLCBwYXRoKTsKKwl9CisKKwlhZGRfcGF0aChu b2RlLCBwYXRoKTsKKwlyZXR1cm4gbm9kZTsKK30KKworc3RhdGljIHZvaWQK K2R1bXBfbm9kZSgKKwljaGFyCQkqbXNnLAorCWJpZ25vZGVfdAkqbm9kZSkK K3sKKwlpbnQJCWs7CisKKwlpZiAobG9nX2xldmVsIDwgTE9HX0RFQlVHKQor CQlyZXR1cm47CisKKwlsb2dfbWVzc2FnZShMT0dfREVCVUcsICIlczogJWxs dSAlbGx1ICVzIiwgbXNnLCBub2RlLT5pbm8sCisJCQlub2RlLT5udW1wYXRo cywgbm9kZS0+cGF0aHNbMF0pOworCisJZm9yIChrID0gMTsgayA8IG5vZGUt Pm51bXBhdGhzOyBrKyspCisJCWxvZ19tZXNzYWdlKExPR19ERUJVRywgIlx0 JXMiLCBub2RlLT5wYXRoc1trXSk7Cit9CisKK3N0YXRpYyB2b2lkCitkdW1w X25vZGVoYXNoKHZvaWQpCit7CisJaW50CQlpLCBqOworCisJaWYgKGxvZ19s ZXZlbCA8IExPR19OSVRUWSkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsg aSA8IE5IX0JVQ0tFVFM7IGkrKykgeworCQliaWdub2RlX3QJKm5vZGVzID0g bm9kZWhhc2hbaV0ubm9kZXM7CisJCWZvciAoaiA9IDA7IGogPCBub2RlaGFz aFtpXS5sYXN0bm9kZTsgaisrLCBub2RlcysrKQorCQkJZHVtcF9ub2RlKCJu b2RlaGFzaCIsIG5vZGVzKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK2Zvcl9h bGxfbm9kZXMoCisJaW50CQkoKmZuKShiaWdub2RlX3QgKm5vZGUpLAorCWlu dAkJZnR3X2ZsYWdzLAorCWludAkJcXVpdF9vbl9lcnJvcikKK3sKKwlpbnQJ CWk7CisJaW50CQlqOworCWludAkJcnZhbCA9IDA7CisKKwlmb3IgKGkgPSAw OyBpIDwgTkhfQlVDS0VUUzsgaSsrKSB7CisJCWJpZ25vZGVfdAkqbm9kZXMg PSBub2RlaGFzaFtpXS5ub2RlczsKKworCQlmb3IgKGogPSAwOyBqIDwgbm9k ZWhhc2hbaV0ubGFzdG5vZGU7IGorKywgbm9kZXMrKykgeworCQkJaWYgKG5v ZGVzLT5mdHdfZmxhZ3MgPT0gZnR3X2ZsYWdzKSB7CisJCQkJcnZhbCA9IGZu KG5vZGVzKTsKKwkJCQlpZiAocnZhbCAmJiBxdWl0X29uX2Vycm9yKQorCQkJ CQlnb3RvIHF1aXQ7CisJCQl9CisJCX0KKwl9CisKK3F1aXQ6CisJcmV0dXJu IHJ2YWw7Cit9CisKKy8qCisgKiBBZGRzIGFwcHJvcHJpYXRlIGZpbGVzIHRv IHRoZSBpbm9kZSBoYXNoIHRhYmxlCisgKi8KK3N0YXRpYyBpbnQKK25mdHdf YWRkbm9kZXMoCisJY29uc3QgY2hhcgkqcGF0aCwKKwljb25zdCBzdHJ1Y3Qg c3RhdDY0ICpzdCwKKwlpbnQJCWZsYWdzLAorCXN0cnVjdCBGVFcJKnNudGZ3 KQoreworCWlmIChzdC0+c3RfaW5vIDw9IFhGU19NQVhJTlVNQkVSXzMyICYm ICFmb3JjZV9hbGwpCisJCXJldHVybiAwOworCisJaWYgKGZsYWdzID09IEZU V19GKQorCQludW1maWxlbm9kZXMrKzsKKwllbHNlIGlmIChmbGFncyA9PSBG VFdfRCkKKwkJbnVtZGlybm9kZXMrKzsKKwllbHNlCisJCXJldHVybiAwOwor CisJYWRkX25vZGVfcGF0aChzdC0+c3RfaW5vLCBmbGFncywgcGF0aCk7CisK KwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEF0dHJpYnV0ZSBjbG9uaW5nIGNv ZGUgLSBtb3N0IG9mIHRoaXMgaXMgaGVyZSBiZWNhdXNlIGF0dHJfY29weSBk b2VzIG5vdAorICogbGV0IHVzIHBpY2sgYW5kIGNob29zZSB3aGljaCBhdHRy aWJ1dGVzIHdlIHdhbnQgdG8gY29weS4KKyAqLworCithdHRyX211bHRpb3Bf dAlhdHRyX29wc1tBVFRSX01BWF9NVUxUSU9QU107CisKKy8qCisgKiBHcmFi IGF0dHJpYnV0ZXMgc3BlY2lmaWVkIGluIGF0dHJfb3BzIGZyb20gc291cmNl IGZpbGUgYW5kIHdyaXRlIHRoZW0KKyAqIG91dCBvbiB0aGUgZGVzdGluYXRp b24gZmlsZS4KKyAqLworCitzdGF0aWMgaW50CithdHRyX3JlcGxpY2F0ZShp bnQgc3JjX2ZkLCBpbnQgZHN0X2ZkLCBpbnQgY291bnQpCit7CisJaW50CWos IGs7CisKKwlpZiAoYXR0cl9tdWx0aWYoc3JjX2ZkLCBhdHRyX29wcywgY291 bnQsIDApIDwgMCkKKwkJcmV0dXJuIC0xOworCisJZm9yIChrID0gMDsgayA8 IGNvdW50OyBrKyspIHsKKwkJaWYgKGF0dHJfb3BzW2tdLmFtX2Vycm9yKSB7 CisJCQllcnJfbWVzc2FnZShfKCJFcnJvciAlZCBnZXR0aW5nIGF0dHJpYnV0 ZSIpLAorCQkJCQlhdHRyX29wc1trXS5hbV9lcnJvcik7CisJCQlicmVhazsK KwkJfQorCQlhdHRyX29wc1trXS5hbV9vcGNvZGUgPSBBVFRSX09QX1NFVDsK Kwl9CisJaWYgKGF0dHJfbXVsdGlmKGRzdF9mZCwgYXR0cl9vcHMsIGssIDAp IDwgMCkKKwkJZXJyX21lc3NhZ2UoIm9uIGF0dHJfbXVsdGlmIHNldCIpOwor CWZvciAoaiA9IDA7IGogPCBrOyBqKyspIHsKKwkJaWYgKGF0dHJfb3BzW2pd LmFtX2Vycm9yKSB7CisJCQllcnJfbWVzc2FnZShfKCJFcnJvciAlZCBzZXR0 aW5nIGF0dHJpYnV0ZSIpLAorCQkJCQlhdHRyX29wc1tqXS5hbV9lcnJvcik7 CisJCQlyZXR1cm4gLTE7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKwor LyoKKyAqIENvcHkgYWxsIHRoZSBhdHRyaWJ1dGVzIHNwZWNpZmllZCBmcm9t IHNyYyB0byBkc3QuCisgKi8KKworc3RhdGljIGludAorYXR0cl9jbG9uZV9j b3B5KAorCWludAkJc3JjX2ZkLAorCWludAkJZHN0X2ZkLAorCWNoYXIJCSps aXN0X2J1ZiwKKwljaGFyCQkqYXR0cl9idWYsCisJaW50CQlidWZfbGVuLAor CWludAkJZmxhZ3MpCit7CisgICAgICAgIGF0dHJsaXN0X3QgCSphbGlzdDsK KyAgICAgICAgYXR0cmxpc3RfZW50X3QJKmF0dHI7CisgICAgICAgIGF0dHJs aXN0X2N1cnNvcl90IGN1cnNvcjsKKyAgICAgICAgaW50CQlzcGFjZSwgaSwg ajsKKwljaGFyCQkqcHRyOworCisgICAgICAgIGJ6ZXJvKChjaGFyICopJmN1 cnNvciwgc2l6ZW9mKGN1cnNvcikpOworICAgICAgICBkbyB7CisgICAgICAg ICAgICAgICAgaWYgKGF0dHJfbGlzdGYoc3JjX2ZkLCBsaXN0X2J1ZiwgQVRU UkJVRlNJWkUsIGZsYWdzLAorICAgICAgICAgICAgICAgIAkJJmN1cnNvcikg PCAwKSB7CisJCQllcnJfbWVzc2FnZSgib24gYXR0cl9saXN0ZiIpOworICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisJCX0KKworICAgICAg ICAgICAgICAgIGFsaXN0ID0gKGF0dHJsaXN0X3QgKilsaXN0X2J1ZjsKKwor CQlzcGFjZSA9IGJ1Zl9sZW47CisJCXB0ciA9IGF0dHJfYnVmOworICAgICAg ICAgICAgICAgIGZvciAoaiA9IDAsIGkgPSAwOyBpIDwgYWxpc3QtPmFsX2Nv dW50OyBpKyspIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIgPSBB VFRSX0VOVFJZKGxpc3RfYnVmLCBpKTsKKwkJCWlmIChzcGFjZSA8IGF0dHIt PmFfdmFsdWVsZW4pIHsKKwkJCQlhdHRyX3JlcGxpY2F0ZShzcmNfZmQsIGRz dF9mZCwgaik7CisJCQkJaiA9IDA7CisJCQkJc3BhY2UgPSBidWZfbGVuOwor CQkJCXB0ciA9IGF0dHJfYnVmOworCQkJfQorCQkJYXR0cl9vcHNbal0uYW1f b3Bjb2RlID0gQVRUUl9PUF9HRVQ7CisJCQlhdHRyX29wc1tqXS5hbV9hdHRy bmFtZSA9IGF0dHItPmFfbmFtZTsKKwkJCWF0dHJfb3BzW2pdLmFtX2F0dHJ2 YWx1ZSA9IHB0cjsKKwkJCWF0dHJfb3BzW2pdLmFtX2xlbmd0aCA9IChpbnQp IGF0dHItPmFfdmFsdWVsZW47CisJCQlhdHRyX29wc1tqXS5hbV9mbGFncyA9 IGZsYWdzOworCQkJYXR0cl9vcHNbal0uYW1fZXJyb3IgPSAwOworCQkJaisr OworCQkJcHRyICs9IGF0dHItPmFfdmFsdWVsZW47CisJCQlzcGFjZSAtPSBh dHRyLT5hX3ZhbHVlbGVuOworICAgICAgICAgICAgICAgIH0KKworCQlsb2df bWVzc2FnZShMT0dfTklUVFksICJjb3B5aW5nIGF0dHJpYnV0ZSAlZCIsIGkp OworCisJCWlmIChqKQorCQkJYXR0cl9yZXBsaWNhdGUoc3JjX2ZkLCBkc3Rf ZmQsIGopOworCisgICAgICAgIH0gd2hpbGUgKGFsaXN0LT5hbF9tb3JlKTsK KworICAgICAgICByZXR1cm4gMDsKK30KKworc3RhdGljIGludAorY2xvbmVf YXR0cmlicyhpbnQgaW5fZmQsIGludCBvdXRfZmQpCit7CisJY2hhcglsaXN0 X2J1ZltBVFRSQlVGU0laRV07CisJY2hhcgkqYXR0cl9idWY7CisKKwlhdHRy X2J1ZiA9IG1hbGxvYyhBVFRSX01BWF9WQUxVRUxFTiAqIDIpOworCWF0dHJf Y2xvbmVfY29weShpbl9mZCwgb3V0X2ZkLCBsaXN0X2J1ZiwKKwkJCWF0dHJf YnVmLCBBVFRSX01BWF9WQUxVRUxFTiAqIDIsIDApOworCWF0dHJfY2xvbmVf Y29weShpbl9mZCwgb3V0X2ZkLCBsaXN0X2J1ZiwKKwkJCWF0dHJfYnVmLCBB VFRSX01BWF9WQUxVRUxFTiAqIDIsIEFUVFJfUk9PVCk7CisJYXR0cl9jbG9u ZV9jb3B5KGluX2ZkLCBvdXRfZmQsIGxpc3RfYnVmLAorCQkJYXR0cl9idWYs IEFUVFJfTUFYX1ZBTFVFTEVOICogMiwgQVRUUl9TRUNVUkUpOworCWZyZWUo YXR0cl9idWYpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50CitkdXBf YXR0cmlidXRlcygKKwljaGFyCQkqc291cmNlLAorCWludAkJc2ZkLAorCWNo YXIJCSp0YXJnZXQsCisJaW50CQl0ZmQpCit7CisJc3RydWN0IHN0YXQ2NAlz dDsKKwlzdHJ1Y3QgdGltZXZhbAl0dlsyXTsKKwlzdHJ1Y3QgZnN4YXR0cglm c3g7CisKKwlpZiAobHN0YXQ2NChzb3VyY2UsICZzdCkgPCAwKSB7CisJCWVy cl9zdGF0KHNvdXJjZSk7CisJCXJldHVybiAxOworCX0KKworCWlmICh4ZnNf Z2V0eGF0dHIoc2ZkLCAmZnN4KSA8IDApIHsKKwkJZXJyX3N0YXQoc291cmNl KTsKKwkJcmV0dXJuIDE7CisJfQorCisJdHZbMF0udHZfc2VjID0gc3Quc3Rf YXRpbS50dl9zZWM7CisJdHZbMF0udHZfdXNlYyA9IHN0LnN0X2F0aW0udHZf bnNlYyAvIDEwMDA7CisJdHZbMV0udHZfc2VjID0gc3Quc3RfbXRpbS50dl9z ZWM7CisJdHZbMV0udHZfdXNlYyA9IHN0LnN0X210aW0udHZfbnNlYyAvIDEw MDA7CisKKwlpZiAodXRpbWVzKHRhcmdldCwgdHYpIDwgMCkKKwkJZXJyX21l c3NhZ2UoXygiJXM6IENhbm5vdCB1cGRhdGUgdGFyZ2V0IHRpbWVzIiksIHRh cmdldCk7CisKKwlpZiAoY2hvd24odGFyZ2V0LCBzdC5zdF91aWQsIHN0LnN0 X2dpZCkgPCAwKSB7CisJCWVycl9tZXNzYWdlKF8oIiVzOiBDYW5ub3QgY2hh bmdlIHRhcmdldCBvd25lcnNoaXAgdG8gIgorCQkJInVpZCglZCkgZ2lkKCVk KSIpLCB0YXJnZXQsIHN0LnN0X3VpZCwgc3Quc3RfZ2lkKTsKKworCQlpZiAo Y2htb2QodGFyZ2V0LCBzdC5zdF9tb2RlICYgfihTX0lTVUlEIHwgU19JU0dJ RCkpIDwgMCkKKwkJCWVycl9tZXNzYWdlKF8oIiVzOiBDYW5ub3QgY2hhbmdl IHRhcmdldCBtb2RlICIKKwkJCQkJInRvICglbykiKSwgdGFyZ2V0LCBzdC5z dF9tb2RlKTsKKwl9IGVsc2UgaWYgKGNobW9kKHRhcmdldCwgc3Quc3RfbW9k ZSkgPCAwKQorCQllcnJfbWVzc2FnZShfKCIlczogQ2Fubm90IGNoYW5nZSB0 YXJnZXQgbW9kZSB0byAoJW8pIiksCisJCQkJdGFyZ2V0LCBzdC5zdF9tb2Rl KTsKKworCWlmICh4ZnNfc2V0eGF0dHIodGZkLCAmZnN4KSA8IDApCisJCWVy cl9tZXNzYWdlKF8oIiVzOiBDYW5uZXQgc2V0IHRhcmdldCBleHRlbmRlZCBh dHRyaWJ1dGVzIiksCisJCQkJdGFyZ2V0KTsKKworCXJldHVybiBjbG9uZV9h dHRyaWJzKHNmZCwgdGZkKTsKK30KKworc3RhdGljIGludAorbW92ZV9kaXJl bnRzKAorCWNoYXIJCSpzcmNwYXRoLAorCWNoYXIJCSp0YXJnZXRwYXRoLAor CWludAkJKm1vdmVfY291bnQpCit7CisJaW50CQlydmFsID0gMDsKKwlESVIJ CSpzcmNkOworCXN0cnVjdCBkaXJlbnQ2NAkqZHA7CisJY2hhcgkJc3JjbmFt ZVtQQVRIX01BWF07CisJY2hhcgkJdGFyZ2V0bmFtZVtQQVRIX01BWF07CisK KwkqbW92ZV9jb3VudCA9IDA7CisKKwlzcmNkID0gb3BlbmRpcihzcmNwYXRo KTsKKwlpZiAoc3JjZCA9PSBOVUxMKSB7CisJCWVycl9vcGVuKHNyY3BhdGgp OworCQlyZXR1cm4gMTsKKwl9CisKKwl3aGlsZSAoKGRwID0gcmVhZGRpcjY0 KHNyY2QpKSAhPSBOVUxMKSB7CisJCWlmIChkcC0+ZF9pbm8gPT0gMCB8fCAh c3RyY21wKGRwLT5kX25hbWUsICIuIikgfHwKKwkJCQkhc3RyY21wKGRwLT5k X25hbWUsICIuLiIpKQorCQkJY29udGludWU7CisKKwkJaWYgKHN0cmxlbihz cmNwYXRoKSArIDEgKyBzdHJsZW4oZHAtPmRfbmFtZSkgPj0KKwkJCQlzaXpl b2Yoc3JjbmFtZSkgLSAxKSB7CisKKwkJCWVycl9tZXNzYWdlKF8oIiVzLyVz OiBOYW1lIHRvbyBsb25nIiksIHNyY3BhdGgsCisJCQkJCWRwLT5kX25hbWUp OworCQkJcnZhbCA9IDE7CisJCQlnb3RvIHF1aXQ7CisJCX0KKworCQlzcHJp bnRmKHNyY25hbWUsICIlcy8lcyIsIHNyY3BhdGgsIGRwLT5kX25hbWUpOwor CQlzcHJpbnRmKHRhcmdldG5hbWUsICIlcy8lcyIsIHRhcmdldHBhdGgsIGRw LT5kX25hbWUpOworCisJCXJ2YWwgPSByZW5hbWUoc3JjbmFtZSwgdGFyZ2V0 bmFtZSk7CisJCWlmIChydmFsICE9IDApIHsKKwkJCWVycl9tZXNzYWdlKF8o ImZhaWxlZCB0byByZW5hbWU6IFwnJXNcJyB0byBcJyVzXCciKSwKKwkJCQkJ c3JjbmFtZSwgdGFyZ2V0bmFtZSk7CisJCQlnb3RvIHF1aXQ7CisJCX0KKwor CQlsb2dfbWVzc2FnZShMT0dfREVCVUcsICJyZW5hbWUgJXMgLT4gJXMiLCBz cmNuYW1lLCB0YXJnZXRuYW1lKTsKKworCQkoKm1vdmVfY291bnQpKys7CisJ fQorCitxdWl0OgorCWNsb3NlZGlyKHNyY2QpOworCXJldHVybiBydmFsOwor fQorCitzdGF0aWMgaW50Citwcm9jZXNzX2RpcigKKwliaWdub2RlX3QJKm5v ZGUpCit7CisJaW50CQlzZmQgPSAtMTsKKwlpbnQJCXRmZCA9IC0xOworCWlu dAkJdGFyZ2V0ZmQgPSAtMTsKKwlpbnQJCXJ2YWwgPSAwOworCWludAkJbW92 ZV9jb3VudCA9IDA7CisJY2hhcgkJKnNyY25hbWUgPSBOVUxMOworCWNoYXIJ CSpwbmFtZSA9IE5VTEw7CisJc3RydWN0IHN0YXQ2NAlzMTsKKwlzdHJ1Y3Qg ZnN4YXR0ciAgZnN4OworCWNoYXIJCXRhcmdldFtQQVRIX01BWF0gPSAiIjsK KworCVNFVF9QSEFTRShESVJfUEhBU0UpOworCisJZHVtcF9ub2RlKCJkaXJl Y3RvcnkiLCBub2RlKTsKKworCWN1cl9ub2RlID0gbm9kZTsKKwlzcmNuYW1l ID0gbm9kZS0+cGF0aHNbMF07CisKKwlpZiAoc3RhdDY0KHNyY25hbWUsICZz MSkgPCAwKSB7CisJCWlmIChlcnJubyAhPSBFTk9FTlQpIHsKKwkJCWVycl9z dGF0KHNyY25hbWUpOworCQkJZ2xvYmFsX3J2YWwgfD0gMjsKKwkJfQorCQln b3RvIHF1aXQ7CisJfQorCWlmIChzMS5zdF9pbm8gPD0gWEZTX01BWElOVU1C RVJfMzIgJiYgIWZvcmNlX2FsbCkgeworCQkvKgorCQkgKiBUaGlzIGRpcmVj dG9yeSBoYXMgYWxyZWFkeSBjaGFuZ2VkIGlubydzLCBwcm9iYWJseSBkdWUK KwkJICogdG8gYmVpbmcgbW92ZWQgZHVyaW5nIHByb2Nlc3Npbmcgb2YgYSBw YXJlbnQgZGlyZWN0b3J5LgorCQkgKi8KKwkJbG9nX21lc3NhZ2UoTE9HX0RF QlVHLCAicHJvY2Vzc19kaXI6IHNraXBwaW5nICVzIiwgc3JjbmFtZSk7CisJ CWdvdG8gcXVpdDsKKwl9CisKKwlydmFsID0gMTsKKworCXNmZCA9IG9wZW4o c3JjbmFtZSwgT19SRE9OTFkpOworCWlmIChzZmQgPCAwKSB7CisJCWVycl9v cGVuKHNyY25hbWUpOworCQlnb3RvIHF1aXQ7CisJfQorCisJaWYgKCFwbGF0 Zm9ybV90ZXN0X3hmc19mZChzZmQpKSB7CisJCWVycl9ub3RfeGZzKHNyY25h bWUpOworCQlnb3RvIHF1aXQ7CisJfQorCisJaWYgKHhmc19nZXR4YXR0cihz ZmQsICZmc3gpIDwgMCkgeworCQllcnJfbWVzc2FnZShfKCJmYWlsZWQgdG8g Z2V0IGlub2RlIGF0dHJzOiAlcyIpLCBzcmNuYW1lKTsKKwkJZ290byBxdWl0 OworCX0KKwlpZiAoZnN4LmZzeF94ZmxhZ3MgJiAoWEZTX1hGTEFHX0lNTVVU QUJMRSB8IFhGU19YRkxBR19BUFBFTkQpKSB7CisJCWVycl9tZXNzYWdlKF8o IiVzOiBpbW11dGFibGUvYXBwZW5kLCBpZ25vcmluZyIpLCBzcmNuYW1lKTsK KwkJZ2xvYmFsX3J2YWwgfD0gMjsKKwkJcnZhbCA9IDA7CisJCWdvdG8gcXVp dDsKKwl9CisKKwkvKiBta2RpciBwYXJlbnQvdGFyZ2V0ICovCisJcG5hbWUg PSBzdHJkdXAoc3JjbmFtZSk7CisJaWYgKHBuYW1lID09IE5VTEwpIHsKKwkJ ZXJyX25vbWVtKCk7CisJCWdvdG8gcXVpdDsKKwl9CisJZGlybmFtZShwbmFt ZSk7CisJc3ByaW50Zih0YXJnZXQsICIlcy8lc1hYWFhYWCIsIHBuYW1lLCBj bWRfcHJlZml4KTsKKwlpZiAobWtkdGVtcCh0YXJnZXQpID09IE5VTEwpIHsK KwkJZXJyX21lc3NhZ2UoXygiVW5hYmxlIHRvIGNyZWF0ZSBkaXJlY3Rvcnkg Y29weTogJXMiKSwgc3JjbmFtZSk7CisJCWdvdG8gcXVpdDsKKwl9CisJU0VU X1BIQVNFKERJUl9QSEFTRV8xKTsKKworCWN1cl90YXJnZXQgPSBzdHJkdXAo dGFyZ2V0KTsKKwlpZiAoIWN1cl90YXJnZXQpIHsKKwkJZXJyX25vbWVtKCk7 CisJCWdvdG8gcXVpdDsKKwl9CisKKwlzcHJpbnRmKHRhcmdldCwgIiVzLyVz WFhYWFhYIiwgcG5hbWUsIGNtZF9wcmVmaXgpOworCWlmIChta2R0ZW1wKHRh cmdldCkgPT0gTlVMTCkgeworCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8g Y3JlYXRlIHRtcCBkaXJlY3RvcnkgY29weSIpKTsKKwkJZ290byBxdWl0Owor CX0KKwlTRVRfUEhBU0UoRElSX1BIQVNFXzIpOworCisJY3VyX3RlbXAgPSBz dHJkdXAodGFyZ2V0KTsKKwlpZiAoIWN1cl90ZW1wKSB7CisJCWVycl9ub21l bSgpOworCQlnb3RvIHF1aXQ7CisJfQorCisJdGZkID0gb3BlbihjdXJfdGVt cCwgT19SRE9OTFkpOworCWlmICh0ZmQgPCAwKSB7CisJCWVycl9vcGVuKGN1 cl90ZW1wKTsKKwkJZ290byBxdWl0OworCX0KKworCXRhcmdldGZkID0gb3Bl bihjdXJfdGFyZ2V0LCBPX1JET05MWSk7CisJaWYgKHRmZCA8IDApIHsKKwkJ ZXJyX29wZW4oY3VyX3RhcmdldCk7CisJCWdvdG8gcXVpdDsKKwl9CisKKwor CS8qIGNvcHkgdGltZXN0YW1wcywgYXR0cmlicyBhbmQgRUFzLCB0byBjdXJf dGVtcCAqLworCXJ2YWwgPSBkdXBfYXR0cmlidXRlcyhzcmNuYW1lLCBzZmQs IGN1cl90ZW1wLCB0ZmQpOworCWlmIChydmFsICE9IDApIHsKKwkJZXJyX21l c3NhZ2UoXygidW5hYmxlIHRvIGR1cGxpY2F0ZSBkaXJlY3RvcnkgYXR0cmli dXRlczogJXMiKSwKKwkJCSAgICBzcmNuYW1lKTsKKwkJZ290byBxdWl0X3Vu bGluazsKKwl9CisKKwlTRVRfUEhBU0UoRElSX1BIQVNFXzMpOworCisJLyog bW92ZSBzcmMgZGlyZW50cyB0byBjdXJfdGFyZ2V0ICh0aGlzIGNoYW5nZXMg dGltZXN0YW1wcyBvbiBzcmMpICovCisJcnZhbCA9IG1vdmVfZGlyZW50cyhz cmNuYW1lLCBjdXJfdGFyZ2V0LCAmbW92ZV9jb3VudCk7CisJaWYgKHJ2YWwg IT0gMCkgeworCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8gbW92ZSBkaXJl Y3RvcnkgY29udGVudHM6ICVzIHRvICVzIiksCisJCQkJc3JjbmFtZSwgY3Vy X3RhcmdldCk7CisJCS8qIHVoIG9oLCBtb3ZlIGV2ZXJ5dGhpbmcgYmFjay4u LiAqLworCQlpZiAobW92ZV9jb3VudCA+IDApCisJCQlnb3RvIHF1aXRfdW5k bzsKKwl9CisKKwlTRVRfUEhBU0UoRElSX1BIQVNFXzQpOworCisJLyogY29w eSB0aW1lc3RhbXBzLCBhdHRyaWJzIGFuZCBFQXMgZnJvbSBjdXJfdGVtcCB0 byBjdXJfdGFyZ2V0ICovCisJcnZhbCA9IGR1cF9hdHRyaWJ1dGVzKGN1cl90 ZW1wLCB0ZmQsIGN1cl90YXJnZXQsIHRhcmdldGZkKTsKKwlpZiAocnZhbCAh PSAwKSB7CisJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byBkdXBsaWNhdGUg ZGlyZWN0b3J5IGF0dHJpYnV0ZXM6ICVzIiksCisJCQkJY3VyX3RlbXApOwor CQlnb3RvIHF1aXRfdW5saW5rOworCX0KKworCVNFVF9QSEFTRShESVJfUEhB U0VfNSk7CisKKwkvKiBybWRpciBzcmMgKi8KKwlydmFsID0gcm1kaXIoc3Jj bmFtZSk7CisJaWYgKHJ2YWwgIT0gMCkgeworCQllcnJfbWVzc2FnZShfKCJ1 bmFibGUgdG8gcmVtb3ZlIGRpcmVjdG9yeTogJXMiKSwgc3JjbmFtZSk7CisJ CWdvdG8gcXVpdF91bmRvOworCX0KKworCVNFVF9QSEFTRShESVJfUEhBU0Vf Nik7CisKKwlydmFsID0gcm1kaXIoY3VyX3RlbXApOworCWlmIChydmFsICE9 IDApCisJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byByZW1vdmUgdG1wIGRp cmVjdG9yeTogJXMiKSwgY3VyX3RlbXApOworCisJU0VUX1BIQVNFKERJUl9Q SEFTRV83KTsKKworCS8qIHJlbmFtZSBjdXJfdGFyZ2V0IHNyYyAqLworCXJ2 YWwgPSByZW5hbWUoY3VyX3RhcmdldCwgc3JjbmFtZSk7CisJaWYgKHJ2YWwg IT0gMCkgeworCQkvKgorCQkgKiB3ZSBjYW4ndCBhYm9ydCBzaW5jZSB0aGUg c3JjIGRpciBpcyBub3cgZ29uZS4KKwkJICogbGV0IHRoZSBhZG1pbiBjbGVh biB0aGlzIG9uZSB1cAorCQkgKi8KKwkJZXJyX21lc3NhZ2UoXygidW5hYmxl IHRvIHJlbmFtZSBkaXJlY3Rvcnk6ICVzIHRvICVzIiksCisJCQkJY3VyX3Rh cmdldCwgc3JjbmFtZSk7CisJfQorCWdvdG8gcXVpdDsKKworIHF1aXRfdW5k bzoKKwlpZiAobW92ZV9kaXJlbnRzKGN1cl90YXJnZXQsIHNyY25hbWUsICZt b3ZlX2NvdW50KSAhPSAwKSB7CisJCS8qIG9oLCBkZWFyIGxvcmQuLi4gbGV0 IHRoZSBhZG1pbiBjbGVhbiB0aGlzIG9uZSB1cCAqLworCQllcnJfbWVzc2Fn ZShfKCJ1bmFibGUgdG8gbW92ZSBkaXJlY3RvcnkgY29udGVudHMgYmFjazog JXMgdG8gJXMiKSwKKwkJCQljdXJfdGFyZ2V0LCBzcmNuYW1lKTsKKwkJZ290 byBxdWl0OworCX0KKwlTRVRfUEhBU0UoRElSX1BIQVNFXzMpOworCisgcXVp dF91bmxpbms6CisJcm1kaXIoY3VyX3RhcmdldCk7CisJcm1kaXIoY3VyX3Rl bXApOworCisgcXVpdDoKKworCVNFVF9QSEFTRShESVJfUEhBU0UpOworCisJ aWYgKHNmZCA+PSAwKQorCQljbG9zZShzZmQpOworCWlmICh0ZmQgPj0gMCkK KwkJY2xvc2UodGZkKTsKKwlpZiAodGFyZ2V0ZmQgPj0gMCkKKwkJY2xvc2Uo dGFyZ2V0ZmQpOworCisJZnJlZShwbmFtZSk7CisJZnJlZShjdXJfdGFyZ2V0 KTsKKwlmcmVlKGN1cl90ZW1wKTsKKworCWN1cl90YXJnZXQgPSBOVUxMOwor CWN1cl90ZW1wID0gTlVMTDsKKwljdXJfbm9kZSA9IE5VTEw7CisJbnVtZGly c2RvbmUrKzsKKwlyZXR1cm4gcnZhbDsKK30KKworaW50Citwcm9jZXNzX2Zp bGUoYmlnbm9kZV90ICpub2RlKQoreworCWludAkJc2ZkID0gLTE7CisJaW50 CQl0ZmQgPSAtMTsKKwlpbnQJCWkgPSAwOworCWludAkJcnZhbCA9IDA7CisJ c3RydWN0IHN0YXQ2NAlzMTsKKwljaGFyCQkqc3JjbmFtZSA9IE5VTEw7CisJ Y2hhcgkJKnBuYW1lID0gTlVMTDsKKwl4ZnNfc3dhcGV4dF90CXN4OworCXhm c19ic3RhdF90CWJzdGF0YnVmOworCXN0cnVjdCBmc3hhdHRyICBmc3g7CisJ Y2hhcgkJdGFyZ2V0W1BBVEhfTUFYXSA9ICIiOworCisJU0VUX1BIQVNFKEZJ TEVfUEhBU0UpOworCisJZHVtcF9ub2RlKCJmaWxlIiwgbm9kZSk7CisKKwlj dXJfbm9kZSA9IG5vZGU7CisJc3JjbmFtZSA9IG5vZGUtPnBhdGhzWzBdOwor CisJYnplcm8oJnMxLCBzaXplb2YoczEpKTsKKwliemVybygmYnN0YXRidWYs IHNpemVvZihic3RhdGJ1ZikpOworCWJ6ZXJvKCZzeCwgc2l6ZW9mKHN4KSk7 CisKKwlpZiAoc3RhdDY0KHNyY25hbWUsICZzMSkgPCAwKSB7CisJCWlmIChl cnJubyAhPSBFTk9FTlQpIHsKKwkJCWVycl9zdGF0KHNyY25hbWUpOworCQkJ Z2xvYmFsX3J2YWwgfD0gMjsKKwkJfQorCQlnb3RvIHF1aXQ7CisJfQorCWlm IChzMS5zdF9pbm8gPD0gWEZTX01BWElOVU1CRVJfMzIgJiYgIWZvcmNlX2Fs bCkKKwkJLyogdGhpcyBmaWxlIGhhcyBjaGFuZ2VkLCBhbmQgbm8gbG9uZ2Vy IG5lZWRzIHByb2Nlc3NpbmcgKi8KKwkJZ290byBxdWl0OworCisJLyogb3Bl biBhbmQgc3luYyBzb3VyY2UgKi8KKwlzZmQgPSBvcGVuKHNyY25hbWUsIE9f UkRXUiB8IE9fRElSRUNUKTsKKwlpZiAoc2ZkIDwgMCkgeworCQllcnJfb3Bl bihzcmNuYW1lKTsKKwkJcnZhbCA9IDE7CisJCWdvdG8gcXVpdDsKKwl9CisJ aWYgKCFwbGF0Zm9ybV90ZXN0X3hmc19mZChzZmQpKSB7CisJCWVycl9ub3Rf eGZzKHNyY25hbWUpOworCQlydmFsID0gMTsKKwkJZ290byBxdWl0OworCX0K KwlpZiAoZnN5bmMoc2ZkKSA8IDApIHsKKwkJZXJyX21lc3NhZ2UoXygic3lu YyBmYWlsZWQ6ICVzOiAlcyIpLAorCQkJCXNyY25hbWUsIHN0cmVycm9yKGVy cm5vKSk7CisJCXJ2YWwgPSAxOworCQlnb3RvIHF1aXQ7CisJfQorCisKKwkv KgorCSAqIENoZWNrIGlmIGEgbWFuZGF0b3J5IGxvY2sgaXMgc2V0IG9uIHRo ZSBmaWxlIHRvIHRyeSBhbmQKKwkgKiBhdm9pZCBibG9ja2luZyBpbmRlZmlu aXRlbHkgb24gdGhlIHJlYWRzIGxhdGVyLiBOb3RlIHRoYXQKKwkgKiBzb21l b25lIGNvdWxkIHN0aWxsIHNldCBhIG1hbmRhdG9yeSBsb2NrIGFmdGVyIHRo aXMgY2hlY2sKKwkgKiBidXQgYmVmb3JlIGFsbCByZWFkcyBoYXZlIGNvbXBs ZXRlZCB0byBibG9jayB4ZnNfcmVubyByZWFkcy4KKwkgKiBUaGlzIGNoYW5n ZSBqdXN0IGNsb3NlcyB0aGUgd2luZG93IGEgYml0LgorCSAqLworCWlmICgo czEuc3RfbW9kZSAmIFNfSVNHSUQpICYmICEoczEuc3RfbW9kZSAmIFNfSVhH UlApKSB7CisJCXN0cnVjdCBmbG9jayBmbDsKKworCQlmbC5sX3R5cGUgPSBG X1JETENLOworCQlmbC5sX3doZW5jZSA9IFNFRUtfU0VUOworCQlmbC5sX3N0 YXJ0ID0gKG9mZl90KTA7CisJCWZsLmxfbGVuID0gMDsKKwkJaWYgKGZjbnRs KHNmZCwgRl9HRVRMSywgJmZsKSA8IDAgKSB7CisJCQlpZiAobG9nX2xldmVs ID49IExPR19ERUJVRykKKwkJCQllcnJfbWVzc2FnZSgibG9ja2luZyBjaGVj ayBmYWlsZWQ6ICVzIiwKKwkJCQkJCXNyY25hbWUpOworCQkJZ2xvYmFsX3J2 YWwgfD0gMjsKKwkJCWdvdG8gcXVpdDsKKwkJfQorCQlpZiAoZmwubF90eXBl ICE9IEZfVU5MQ0spIHsKKwkJCWlmIChsb2dfbGV2ZWwgPj0gTE9HX0RFQlVH KQorCQkJCWVycl9tZXNzYWdlKCJtYW5kYXRvcnkgbG9jazogJXM6IGlnbm9y aW5nIiwKKwkJCQkJCXNyY25hbWUpOworCQkJZ2xvYmFsX3J2YWwgfD0gMjsK KwkJCWdvdG8gcXVpdDsKKwkJfQorCX0KKworCWlmICh4ZnNfZ2V0eGF0dHIo c2ZkLCAmZnN4KSA8IDApIHsKKwkJZXJyX21lc3NhZ2UoXygiZmFpbGVkIHRv IGdldCBpbm9kZSBhdHRyczogJXMiKSwgc3JjbmFtZSk7CisJCXJ2YWwgPSAx OworCQlnb3RvIHF1aXQ7CisJfQorCWlmIChmc3guZnN4X3hmbGFncyAmIChY RlNfWEZMQUdfSU1NVVRBQkxFIHwgWEZTX1hGTEFHX0FQUEVORCkpIHsKKwkJ ZXJyX21lc3NhZ2UoXygiJXM6IGltbXV0YWJsZS9hcHBlbmQsIGlnbm9yaW5n IiksIHNyY25hbWUpOworCQlnbG9iYWxfcnZhbCB8PSAyOworCQlnb3RvIHF1 aXQ7CisJfQorCisJcnZhbCA9IDE7CisKKwlpZiAocmVhbHVpZCAhPSAwICYm IHJlYWx1aWQgIT0gczEuc3RfdWlkKSB7CisJCWVycm5vID0gRUFDQ0VTOwor CQllcnJfb3BlbihzcmNuYW1lKTsKKwkJZ290byBxdWl0OworCX0KKworCS8q IGNyZWF0IHRhcmdldCAqLworCXBuYW1lID0gc3RyZHVwKHNyY25hbWUpOwor CWlmIChwbmFtZSA9PSBOVUxMKSB7CisJCWVycl9ub21lbSgpOworCQlnb3Rv IHF1aXQ7CisJfQorCWRpcm5hbWUocG5hbWUpOworCXNwcmludGYodGFyZ2V0 LCAiJXMvJXNYWFhYWFgiLCBwbmFtZSwgY21kX3ByZWZpeCk7CisJdGZkID0g bWtzdGVtcCh0YXJnZXQpOworCWlmICh0ZmQgPCAwKSB7CisJCWVycl9tZXNz YWdlKCJ1bmFibGUgdG8gY3JlYXRlIGZpbGUgY29weSIpOworCQlnb3RvIHF1 aXQ7CisJfQorCWN1cl90YXJnZXQgPSBzdHJkdXAodGFyZ2V0KTsKKwlpZiAo Y3VyX3RhcmdldCA9PSBOVUxMKSB7CisJCWVycl9ub21lbSgpOworCQlnb3Rv IHF1aXQ7CisJfQorCisJU0VUX1BIQVNFKEZJTEVfUEhBU0VfMSk7CisKKwkv KiBTZXR1cCBkaXJlY3QgSS9PICovCisJaWYgKGZjbnRsKHRmZCwgRl9TRVRG TCwgT19ESVJFQ1QpIDwgMCApIHsKKwkJZXJyX21lc3NhZ2UoXygiY291bGQg bm90IHNldCBPX0RJUkVDVCBmb3IgJXMgb24gdG1wOiAlcyIpLAorCQkJCXNy Y25hbWUsIHRhcmdldCk7CisJCXVubGluayh0YXJnZXQpOworCQlnb3RvIHF1 aXQ7CisJfQorCisJLyogY29weSBhdHRyaWJzICYgRUFzIHRvIHRhcmdldCAq LworCWlmIChkdXBfYXR0cmlidXRlcyhzcmNuYW1lLCBzZmQsIHRhcmdldCwg dGZkKSAhPSAwKSB7CisJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byBkdXBs aWNhdGUgZmlsZSBhdHRyaWJ1dGVzOiAlcyIpLAorCQkJCXNyY25hbWUpOwor CQl1bmxpbmsodGFyZ2V0KTsKKwkJZ290byBxdWl0OworCX0KKworCWlmICh4 ZnNfYnVsa3N0YXRfc2luZ2xlKHNmZCwgJnMxLnN0X2lubywgJmJzdGF0YnVm KSA8IDApIHsKKwkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIGJ1bGtzdGF0 IHNvdXJjZSBmaWxlOiAlcyIpLAorCQkJCXNyY25hbWUpOworCQl1bmxpbmso dGFyZ2V0KTsKKwkJZ290byBxdWl0OworCX0KKworCWlmIChic3RhdGJ1Zi5i c19pbm8gIT0gczEuc3RfaW5vKSB7CisJCWVycl9tZXNzYWdlKF8oImJ1bGtz dGF0IG9mIHNvdXJjZSBmaWxlIHJldHVybmVkIHdyb25nIGlub2RlOiAlcyIp LAorCQkJCXNyY25hbWUpOworCQl1bmxpbmsodGFyZ2V0KTsKKwkJZ290byBx dWl0OworCX0KKworCWZ0cnVuY2F0ZTY0KHRmZCwgYnN0YXRidWYuYnNfc2l6 ZSk7CisKKwkvKiBzd2FwZXh0ZW50cyBzcmMgdGFyZ2V0ICovCisJc3guc3hf c3RhdCAgICAgPSBic3RhdGJ1ZjsgLyogc3RydWN0IGNvcHkgKi8KKwlzeC5z eF92ZXJzaW9uICA9IFhGU19TWF9WRVJTSU9OOworCXN4LnN4X2ZkdGFyZ2V0 ID0gc2ZkOworCXN4LnN4X2ZkdG1wICAgID0gdGZkOworCXN4LnN4X29mZnNl dCAgID0gMDsKKwlzeC5zeF9sZW5ndGggICA9IGJzdGF0YnVmLmJzX3NpemU7 CisKKwkvKiBTd2FwIHRoZSBleHRlbnRzICovCisJcnZhbCA9IHhmc19zd2Fw ZXh0KHNmZCwgJnN4KTsKKwlpZiAocnZhbCA8IDApIHsKKwkJaWYgKGxvZ19s ZXZlbCA+PSBMT0dfREVCVUcpIHsKKwkJCXN3aXRjaCAoZXJybm8pIHsKKwkJ CWNhc2UgRU5PVFNVUDoKKwkJCQllcnJfbWVzc2FnZSgiJXM6IGZpbGUgdHlw ZSBub3Qgc3VwcG9ydGVkIiwKKwkJCQkJc3JjbmFtZSk7CisJCQkJYnJlYWs7 CisJCQljYXNlIEVGQVVMVDoKKwkJCQkvKiBUaGUgZmlsZSBoYXMgY2hhbmdl ZCBzaW5jZSB3ZSBzdGFydGVkIHRoZSBjb3B5ICovCisJCQkJZXJyX21lc3Nh Z2UoIiVzOiBmaWxlIG1vZGlmaWVkLCAiCisJCQkJCSAiaW5vZGUgcmVudW1i ZXIgYWJvcnRlZDogJWxkIiwKKwkJCQkJIHNyY25hbWUsIGJzdGF0YnVmLmJz X3NpemUpOworCQkJCWJyZWFrOworCQkJY2FzZSBFQlVTWToKKwkJCQkvKiBU aW1lc3RhbXAgaGFzIGNoYW5nZWQgb3IgbW1hcCdlZCBmaWxlICovCisJCQkJ ZXJyX21lc3NhZ2UoIiVzOiBmaWxlIGJ1c3kiLCBzcmNuYW1lKTsKKwkJCQli cmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJZXJyX21lc3NhZ2UoXygiU3dhcCBl eHRlbnRzIGZhaWxlZDogJXM6ICVzIiksCisJCQkJCXNyY25hbWUsIHN0cmVy cm9yKGVycm5vKSk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0gZWxzZQorCQkJ ZXJyX21lc3NhZ2UoXygiU3dhcCBleHRlbnRzIGZhaWxlZDogJXM6ICVzIiks CisJCQkJCXNyY25hbWUsIHN0cmVycm9yKGVycm5vKSk7CisJCWdvdG8gcXVp dDsKKwl9CisKKwlpZiAoYnN0YXRidWYuYnNfZG1ldm1hc2sgfCBic3RhdGJ1 Zi5ic19kbXN0YXRlKSB7CisJCXN0cnVjdCBmc2RtaWRhdGEgZnNzZXRkbTsK KworCQkvKiBTZXQgdGhlIERNQVBJIEZpZWxkcy4gKi8KKwkJZnNzZXRkbS5m c2RfZG1ldm1hc2sgPSBic3RhdGJ1Zi5ic19kbWV2bWFzazsKKwkJZnNzZXRk bS5mc2RfcGFkZGluZyA9IDA7CisJCWZzc2V0ZG0uZnNkX2Rtc3RhdGUgPSBi c3RhdGJ1Zi5ic19kbXN0YXRlOworCisJCWlmIChpb2N0bCh0ZmQsIFhGU19J T0NfRlNTRVRETSwgKHZvaWQgKikmZnNzZXRkbSApIDwgMCkKKwkJCWVycl9t ZXNzYWdlKF8oImF0dGVtcHQgdG8gc2V0IERNSSBhdHRyaWJ1dGVzICIKKwkJ CQkJIm9mICVzIGZhaWxlZCIpLCB0YXJnZXQpOworCX0KKworCVNFVF9QSEFT RShGSUxFX1BIQVNFXzIpOworCisJLyogdW5saW5rIHNyYyAqLworCXJ2YWwg PSB1bmxpbmsoc3JjbmFtZSk7CisJaWYgKHJ2YWwgIT0gMCkgeworCQllcnJf bWVzc2FnZShfKCJ1bmFibGUgdG8gcmVtb3ZlIGZpbGU6ICVzIiksIHNyY25h bWUpOworCQlnb3RvIHF1aXQ7CisJfQorCisJU0VUX1BIQVNFKEZJTEVfUEhB U0VfMyk7CisKKwkvKiByZW5hbWUgdGFyZ2V0IHNyYyAqLworCXJ2YWwgPSBy ZW5hbWUodGFyZ2V0LCBzcmNuYW1lKTsKKwlpZiAocnZhbCAhPSAwKSB7CisJ CS8qCisJCSAqIHdlIGNhbid0IGFib3J0IHNpbmNlIHRoZSBzcmMgZmlsZSBp cyBub3cgZ29uZS4KKwkJICogbGV0IHRoZSBhZG1pbiBjbGVhbiB0aGlzIG9u ZSB1cAorCQkgKi8KKwkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIHJlbmFt ZSBmaWxlOiAlcyB0byAlcyIpLAorCQkJCXRhcmdldCwgc3JjbmFtZSk7CisJ CWdvdG8gcXVpdDsKKwl9CisKKwlTRVRfUEhBU0UoRklMRV9QSEFTRV80KTsK KworCS8qIGZvciBlYWNoIGhhcmRsaW5rLCB1bmxpbmsgYW5kIGNyZWF0IHBv aW50aW5nIHRvIHRhcmdldCAqLworCWZvciAoaSA9IDE7IGkgPCBub2RlLT5u dW1wYXRoczsgaSsrKSB7CisJCS8qIHVubGluayBzcmMgKi8KKwkJcnZhbCA9 IHVubGluayhub2RlLT5wYXRoc1tpXSk7CisJCWlmIChydmFsICE9IDApIHsK KwkJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byByZW1vdmUgZmlsZTogJXMi KSwKKwkJCQkgICAgICAgbm9kZS0+cGF0aHNbaV0pOworCQkJZ290byBxdWl0 OworCQl9CisKKwkJcnZhbCA9IGxpbmsoc3JjbmFtZSwgbm9kZS0+cGF0aHNb aV0pOworCQlpZiAocnZhbCAhPSAwKSB7CisJCQllcnJfbWVzc2FnZSgidW5h YmxlIHRvIGxpbmsgdG8gZmlsZTogJXMiLCBzcmNuYW1lKTsKKwkJCWdvdG8g cXVpdDsKKwkJfQorCQludW1maWxlc2RvbmUrKzsKKwl9CisKKyBxdWl0Ogor CWN1cl9ub2RlID0gTlVMTDsKKworCVNFVF9QSEFTRShGSUxFX1BIQVNFKTsK KworCWlmIChzZmQgPj0gMCkKKwkJY2xvc2Uoc2ZkKTsKKwlpZiAodGZkID49 IDApCisJCWNsb3NlKHRmZCk7CisKKwlmcmVlKHBuYW1lKTsKKwlmcmVlKGN1 cl90YXJnZXQpOworCisJY3VyX3RhcmdldCA9IE5VTEw7CisKKwludW1maWxl c2RvbmUrKzsKKwlyZXR1cm4gcnZhbDsKK30KKworc3RhdGljIGludAorb3Bl bl9yZWNvdmVyZmlsZSh2b2lkKQoreworCXJlY292ZXJfZmQgPSBvcGVuKHJl Y292ZXJfZmlsZSwgT19SRFdSIHwgT19TWU5DIHwgT19DUkVBVCB8IE9fRVhD TCwKKwkJCTA2MDApOworCWlmIChyZWNvdmVyX2ZkIDwgMCkgeworCQlpZiAo ZXJybm8gPT0gRUVYSVNUKQorCQkJZXJyX21lc3NhZ2UoXygiUmVjb3Zlcnkg ZmlsZSBhbHJlYWR5IGV4aXN0cywgZWl0aGVyICIKKwkJCQkicnVuICclcyAt ciAlcycgb3IgcmVtb3ZlIHRoZSBmaWxlLiIpLAorCQkJCXByb2duYW1lLCBy ZWNvdmVyX2ZpbGUpOworCQllbHNlCisJCQllcnJfb3BlbihyZWNvdmVyX2Zp bGUpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoIXBsYXRmb3JtX3Rlc3Rf eGZzX2ZkKHJlY292ZXJfZmQpKSB7CisJCWVycl9ub3RfeGZzKHJlY292ZXJf ZmlsZSk7CisJCWNsb3NlKHJlY292ZXJfZmQpOworCQlyZXR1cm4gMTsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZvaWQKK3VwZGF0ZV9yZWNv dmVyZmlsZSh2b2lkKQoreworCXN0YXRpYyBjb25zdCBjaGFyIG51bGxfZmls ZVtdID0gIjBcbjBcbjBcblxudGFyZ2V0OiBcbnRlbXA6IFxuZW5kXG4iOwor CXN0YXRpYyBzaXplX3QJYnVmX3NpemUgPSAwOworCXN0YXRpYyBjaGFyCSpi dWYgPSBOVUxMOworCWludCAJCWksIGxlbjsKKworCWlmIChyZWNvdmVyX2Zk IDw9IDApCisJCXJldHVybjsKKworCWlmIChjdXJfbm9kZSA9PSBOVUxMIHx8 IGN1cl9waGFzZSA9PSAwKSB7CisJCS8qIGluYmV0d2VlbiBwcm9jZXNzaW5n IG9yIHN0aWxsIHNjYW5uaW5nICovCisJCWxzZWVrKHJlY292ZXJfZmQsIDAs IFNFRUtfU0VUKTsKKwkJd3JpdGUocmVjb3Zlcl9mZCwgbnVsbF9maWxlLCBz aXplb2YobnVsbF9maWxlKSk7CisJCXJldHVybjsKKwl9CisKKwlBU1NFUlQo aGlnaGVzdF9udW1wYXRocyA+IDApOworCWlmIChidWYgPT0gTlVMTCkgewor CQlidWZfc2l6ZSA9IChoaWdoZXN0X251bXBhdGhzICsgMykgKiBQQVRIX01B WDsKKwkJYnVmID0gbWFsbG9jKGJ1Zl9zaXplKTsKKwkJaWYgKGJ1ZiA9PSBO VUxMKSB7CisJCQllcnJfbm9tZW0oKTsKKwkJCWV4aXQoMSk7CisJCX0KKwl9 CisKKwlsZW4gPSBzcHJpbnRmKGJ1ZiwgIiVkXG4lbGx1XG4lZFxuIiwgY3Vy X3BoYXNlLAorCQkJKGxvbmcgbG9uZyljdXJfbm9kZS0+aW5vLCBjdXJfbm9k ZS0+ZnR3X2ZsYWdzKTsKKworCWZvciAoaSA9IDA7IGkgPCBjdXJfbm9kZS0+ bnVtcGF0aHM7IGkrKykKKwkJbGVuICs9IHNwcmludGYoYnVmICsgbGVuLCAi JXNcbiIsIGN1cl9ub2RlLT5wYXRoc1tpXSk7CisKKwlsZW4gKz0gc3ByaW50 ZihidWYgKyBsZW4sICJ0YXJnZXQ6ICVzXG50ZW1wOiAlc1xuZW5kXG4iLAor CQkJY3VyX3RhcmdldCwgY3VyX3RlbXApOworCisJQVNTRVJUKGxlbiA8IGJ1 Zl9zaXplKTsKKworCWxzZWVrKHJlY292ZXJfZmQsIDAsIFNFRUtfU0VUKTsK KwlmdHJ1bmNhdGUocmVjb3Zlcl9mZCwgMCk7CisJd3JpdGUocmVjb3Zlcl9m ZCwgYnVmLCBsZW4pOworfQorCitzdGF0aWMgdm9pZAorY2xlYW51cCh2b2lk KQoreworCWxvZ19tZXNzYWdlKExPR19OT1JNQUwsIF8oIkludGVycnVwdGVk IC0tIGNsZWFuaW5nIHVwLi4uIikpOworCisJZnJlZV9ub2RlaGFzaCgpOwor CisJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgXygiRG9uZS4iKSk7Cit9CisK K3N0YXRpYyB2b2lkCitzaWdoYW5kbGVyKGludCBzaWcpCit7CisJc3RhdGlj IGNoYXIJY3ljbGVbNF0gPSAiLVxcfC8iOworCXN0YXRpYyB1aW50NjRfdAlj dXJfY3ljbGUgPSAwOworCWRvdWJsZQkJcGVyY2VudDsKKworCWFsYXJtKDAp OworCisJaWYgKHNpZyAhPSBTSUdBTFJNKSB7CisJCWNsZWFudXAoKTsKKwkJ ZXhpdCgxKTsKKwl9CisKKwlpZiAoY3VyX3BoYXNlID09IFNDQU5fUEhBU0Up IHsKKwkJaWYgKGxvZ19sZXZlbCA+PSBMT0dfSU5GTykKKwkJCWZwcmludGYo c3RkZXJyLCBfKCJcciVsbHUgZmlsZXMgYW5kICVsbHUgZGlycyAiCisJCQkJ InRvIHJlbnVtYmVyIGZvdW5kLi4uICVjIiksCisJCQkJKGxvbmcgbG9uZylu dW1maWxlbm9kZXMsCisJCQkJKGxvbmcgbG9uZyludW1kaXJub2RlcywKKwkJ CQljeWNsZVtjdXJfY3ljbGUgJSA0XSk7CisJCWVsc2UKKwkJCWZwcmludGYo c3RkZXJyLCAiXHIlYyIsCisJCQkJY3ljbGVbY3VyX2N5Y2xlICUgNF0pOwor CQljdXJfY3ljbGUrKzsKKwl9IGVsc2UgaWYgKGN1cl9waGFzZSA+PSBESVJf UEhBU0UgJiYgY3VyX3BoYXNlIDw9IERJUl9QSEFTRV9NQVgpIHsKKwkJcGVy Y2VudCA9IChkb3VibGUpbnVtZGlyc2RvbmUgLyAoZG91YmxlKW51bWRpcm5v ZGVzOworCQlwZXJjZW50ICo9IDEwMC4wOworCQlpZiAocGVyY2VudCA+IDEw MC4wKQorCQkJcGVyY2VudCA9IDEwMC4wOworCQlpZiAobG9nX2xldmVsID49 IExPR19JTkZPKQorCQkJZnByaW50ZihzdGRlcnIsIF8oIlxyJS4xZiUlLCAl bGx1IG9mICVsbHUgIgorCQkJCSJkaXJzLCAldSBzZWNvbmRzIGVsYXBzZWQi KSwgcGVyY2VudCwKKwkJCQkobG9uZyBsb25nKW51bWRpcnNkb25lLAorCQkJ CShsb25nIGxvbmcpbnVtZGlybm9kZXMsCisJCQkJKGludCkodGltZSgwKSAt IHN0YXJ0dGltZSkpOworCQllbHNlCisJCQlmcHJpbnRmKHN0ZGVyciwgIlxy JS4xZiUlIiwgcGVyY2VudCk7CisJfSBlbHNlIGlmIChjdXJfcGhhc2UgPj0g RklMRV9QSEFTRSAmJiBjdXJfcGhhc2UgPD0gRklMRV9QSEFTRV9NQVgpIHsK KwkJcGVyY2VudCA9IChkb3VibGUpbnVtZmlsZXNkb25lIC8gKGRvdWJsZSlu dW1maWxlbm9kZXM7CisJCXBlcmNlbnQgKj0gMTAwLjA7CisJCWlmIChwZXJj ZW50ID4gMTAwLjApCisJCQlwZXJjZW50ID0gMTAwLjA7CisJCWlmIChsb2df bGV2ZWwgPj0gTE9HX0lORk8pCisJCQlmcHJpbnRmKHN0ZGVyciwgXygiXHIl LjFmJSUsICVsbHUgb2YgJWxsdSAiCisJCQkJImZpbGVzLCAldSBzZWNvbmRz IGVsYXBzZWQiKSwKKwkJCQlwZXJjZW50LCAobG9uZyBsb25nKW51bWZpbGVz ZG9uZSwKKwkJCQkobG9uZyBsb25nKW51bWZpbGVub2RlcywKKwkJCQkoaW50 KSh0aW1lKDApIC0gc3RhcnR0aW1lKSk7CisJCWVsc2UKKwkJCWZwcmludGYo c3RkZXJyLCAiXHIlLjFmJSUiLCBwZXJjZW50KTsKKwl9CisJcG9sbF9vdXRw dXQgPSAxOworCXNpZ25hbChTSUdBTFJNLCBzaWdoYW5kbGVyKTsKKworCWlm IChwb2xsX2ludGVydmFsKQorCQlhbGFybShwb2xsX2ludGVydmFsKTsKK30K Kworc3RhdGljIGludAorcmVhZF9yZWNvdmVyX2ZpbGUoCisJY2hhcgkJKnJl Y292ZXJfZmlsZSwKKwliaWdub2RlX3QJKipub2RlLAorCWNoYXIJCSoqdGFy Z2V0LAorCWNoYXIJCSoqdGVtcCwKKwlpbnQJCSpwaGFzZSkKK3sKKwlGSUxF CQkqZmlsZTsKKwlpbnQJCXJ2YWwgPSAxOworCWlub190CQlpbm87CisJaW50 CQlmdHdfZmxhZ3M7CisJY2hhcgkJYnVmW1BBVEhfTUFYICsgMTBdOyAvKiBw YXRoICsgInRhcmdldDogIiAqLworCXN0cnVjdCBzdGF0NjQJczsKKwlpbnQJ CWZpcnN0X3BhdGg7CisKKwkvKgorCisJQSByZWNvdmVyeSBmaWxlIHNob3Vs ZCBsb29rIGxpa2U6CisKKwk8cGhhc2U+CisJPGlubyBudW1iZXI+CisJPGZ0 dyBmbGFncz4KKwk8Zmlyc3QgcGF0aCB0byBpbm9kZT4KKwk8aGFyZGxpbmtz IHRvIGlub2RlPgorCXRhcmdldDogPHBhdGggdG8gdGFyZ2V0IGRpciBvciBm aWxlPgorCXRlbXA6IDxwYXRoIHRvIHRlbXAgZGlyIGlmIGRpciBwaGFzZT4K KwllbmQKKwkqLworCisJZmlsZSA9IGZvcGVuKHJlY292ZXJfZmlsZSwgInIi KTsKKwlpZiAoZmlsZSA9PSBOVUxMKSB7CisJCWVycl9vcGVuKHJlY292ZXJf ZmlsZSk7CisJCXJldHVybiAxOworCX0KKworCS8qIHJlYWQgcGhhc2UgKi8K KwkqcGhhc2UgPSAwOworCWlmIChmZ2V0cyhidWYsIFBBVEhfTUFYICsgMTAs IGZpbGUpID09IE5VTEwpIHsKKwkJZXJyX21lc3NhZ2UoIlJlY292ZXJ5IGZh aWxlZDogdW5hYmxlIHRvIHJlYWQgcGhhc2UiKTsKKwkJZ290byBxdWl0Owor CX0KKwlidWZbc3RybGVuKGJ1ZikgLSAxXSA9ICdcMCc7CisJKnBoYXNlID0g YXRvaShidWYpOworCWlmICgqcGhhc2UgPT0gU0NBTl9QSEFTRSkgeworCQlm Y2xvc2UoZmlsZSk7CisJCXJldHVybiAwOworCX0KKwlpZiAoKCpwaGFzZSA8 IERJUl9QSEFTRSB8fCAqcGhhc2UgPiBESVJfUEhBU0VfTUFYKSAmJgorCQkJ KCpwaGFzZSA8IEZJTEVfUEhBU0UgfHwgKnBoYXNlID4gRklMRV9QSEFTRV9N QVgpKSB7CisJCWVycl9tZXNzYWdlKCJSZWNvdmVyeSBmYWlsZWQ6IGZhaWxl ZCB0byByZWFkIHZhbGlkIHJlY292ZXJ5IHBoYXNlIik7CisJCWdvdG8gcXVp dDsKKwl9CisKKwkvKiByZWFkIGlub2RlIG51bWJlciAqLworCWlmIChmZ2V0 cyhidWYsIFBBVEhfTUFYICsgMTAsIGZpbGUpID09IE5VTEwpIHsKKwkJZXJy X21lc3NhZ2UoIlJlY292ZXJ5IGZhaWxlZDogdW5hYmxlIHRvIHJlYWQgaW5v ZGUgbnVtYmVyIik7CisJCWdvdG8gcXVpdDsKKwl9CisJYnVmW3N0cmxlbihi dWYpIC0gMV0gPSAnXDAnOworCWlubyA9IHN0cnRvdWxsKGJ1ZiwgTlVMTCwg MTApOworCWlmIChpbm8gPT0gMCkgeworCQllcnJfbWVzc2FnZSgiUmVjb3Zl cnkgZmFpbGVkOiB1bmFibGUgdG8gcmVhZCBpbm9kZSBudW1iZXIiKTsKKwkJ Z290byBxdWl0OworCX0KKworCS8qIHJlYWQgZnR3X2ZsYWdzICovCisJaWYg KGZnZXRzKGJ1ZiwgUEFUSF9NQVggKyAxMCwgZmlsZSkgPT0gTlVMTCkgewor CQllcnJfbWVzc2FnZSgiUmVjb3ZlcnkgZmFpbGVkOiB1bmFibGUgdG8gcmVh ZCBmbGFncyIpOworCQlnb3RvIHF1aXQ7CisJfQorCWJ1ZltzdHJsZW4oYnVm KSAtIDFdID0gJ1wwJzsKKwlpZiAoYnVmWzFdICE9ICdcMCcgfHwgKGJ1Zlsw XSAhPSAnMCcgJiYgYnVmWzBdICE9ICcxJykpIHsKKwkJZXJyX21lc3NhZ2Uo IlJlY292ZXJ5IGZhaWxlZDogdW5hYmxlIHRvIHJlYWQgZmxhZ3M6ICclcyci LCBidWYpOworCQlnb3RvIHF1aXQ7CisJfQorCWZ0d19mbGFncyA9IGF0b2ko YnVmKTsKKworCS8qIHJlYWQgcGF0aHMgYW5kIHRhcmdldCBwYXRoICovCisJ Km5vZGUgPSBOVUxMOworCSp0YXJnZXQgPSBOVUxMOworCWZpcnN0X3BhdGgg PSAxOworCXdoaWxlIChmZ2V0cyhidWYsIFBBVEhfTUFYICsgMTAsIGZpbGUp ICE9IE5VTEwpIHsKKwkJYnVmW3N0cmxlbihidWYpIC0gMV0gPSAnXDAnOwor CisJCWxvZ19tZXNzYWdlKExPR19ERUJVRywgInBhdGg6ICclcyciLCBidWYp OworCisJCWlmIChidWZbMF0gPT0gJy8nKSB7CisJCQlpZiAoc3RhdDY0KGJ1 ZiwgJnMpIDwgMCkgeworCQkJCWVycl9tZXNzYWdlKF8oIlJlY292ZXJ5IGZh aWxlZDogY2Fubm90ICIKKwkJCQkJCSJzdGF0ICclcyciKSwgYnVmKTsKKwkJ CQlnb3RvIHF1aXQ7CisJCQl9CisJCQlpZiAocy5zdF9pbm8gIT0gaW5vKSB7 CisJCQkJZXJyX21lc3NhZ2UoXygiUmVjb3ZlcnkgZmFpbGVkOiBpbm9kZSAi CisJCQkJCQkibnVtYmVyIGZvciAnJXMnIGRvZXMgbm90ICIKKwkJCQkJCSJt YXRjaCByZWNvcmRlZCBudW1iZXIiKSwgYnVmKTsKKwkJCQlnb3RvIHF1aXQ7 CisJCQl9CisKKwkJCWlmIChmaXJzdF9wYXRoKSB7CisJCQkJZmlyc3RfcGF0 aCA9IDA7CisJCQkJKm5vZGUgPSBhZGRfbm9kZV9wYXRoKGlubywgZnR3X2Zs YWdzLCBidWYpOworCQkJfQorCQkJZWxzZSB7CisJCQkJYWRkX3BhdGgoKm5v ZGUsIGJ1Zik7CisJCQl9CisJCX0KKwkJZWxzZSBpZiAoc3RybmNtcChidWYs ICJ0YXJnZXQ6ICIsIDgpID09IDApIHsKKwkJCSp0YXJnZXQgPSBzdHJkdXAo YnVmICsgOCk7CisJCQlpZiAoKnRhcmdldCA9PSBOVUxMKSB7CisJCQkJZXJy X25vbWVtKCk7CisJCQkJZ290byBxdWl0OworCQkJfQorCQkJaWYgKHN0YXQ2 NCgqdGFyZ2V0LCAmcykgPCAwKSB7CisJCQkJZXJyX21lc3NhZ2UoXygiUmVj b3ZlcnkgZmFpbGVkOiBjYW5ub3QgIgorCQkJCQkJInN0YXQgJyVzJyIpLCAq dGFyZ2V0KTsKKwkJCQlnb3RvIHF1aXQ7CisJCQl9CisJCX0KKwkJZWxzZSBp ZiAoc3RybmNtcChidWYsICJ0ZW1wOiAiLCA2KSA9PSAwKSB7CisJCQkqdGVt cCA9IHN0cmR1cChidWYgKyA2KTsKKwkJCWlmICgqdGVtcCA9PSBOVUxMKSB7 CisJCQkJZXJyX25vbWVtKCk7CisJCQkJZ290byBxdWl0OworCQkJfQorCQl9 CisJCWVsc2UgaWYgKHN0cmNtcChidWYsICJlbmQiKSA9PSAwKSB7CisJCQly dmFsID0gMDsKKwkJCWdvdG8gcXVpdDsKKwkgCX0KKwkgCWVsc2UgeworCQkJ ZXJyX21lc3NhZ2UoXygiUmVjb3ZlcnkgZmFpbGVkOiB1bnJlY29nbmlzZWQg IgorCQkJCQkic3RyaW5nOiAnJXMnIiksIGJ1Zik7CisJCQlnb3RvIHF1aXQ7 CisJCX0KKwl9CisKKwllcnJfbWVzc2FnZShfKCJSZWNvdmVyeSBmYWlsZWQ6 IGVuZCBvZiByZWNvdmVyeSBmaWxlIG5vdCBmb3VuZCIpKTsKKworIHF1aXQ6 CisJaWYgKCpub2RlID09IE5VTEwpIHsKKwkJZXJyX21lc3NhZ2UoXygiUmVj b3ZlcnkgZmFpbGVkOiBubyB2YWxpZCBpbm9kZSBvciBwYXRocyAiCisJCQkJ InNwZWNpZmllZCIpKTsKKwkJcnZhbCA9IDE7CisJfQorCisJaWYgKCp0YXJn ZXQgPT0gTlVMTCkgeworCQllcnJfbWVzc2FnZShfKCJSZWNvdmVyeSBmYWls ZWQ6IG5vIGlub2RlIHRhcmdldCBzcGVjaWZpZWQiKSk7CisJCXJ2YWwgPSAx OworCX0KKworCWZjbG9zZShmaWxlKTsKKworCXJldHVybiBydmFsOworfQor CitpbnQKK3JlY292ZXIoCisJYmlnbm9kZV90CSpub2RlLAorCWNoYXIJCSp0 YXJnZXQsCisJY2hhcgkJKnRuYW1lLAorCWludAkJcGhhc2UpCit7CisJaW50 CQl0ZmQgPSAtMTsKKwlpbnQJCXRhcmdldGZkID0gLTE7CisJY2hhcgkJKnNy Y25hbWUgPSBOVUxMOworCWludAkJcnZhbCA9IDA7CisJaW50CQlpOworCWlu dAkJbW92ZV9jb3VudCA9IDA7CisKKwlkdW1wX25vZGUoInJlY292ZXIiLCBu b2RlKTsKKwlsb2dfbWVzc2FnZShMT0dfREVCVUcsICJ0YXJnZXQ6ICVzLCBw aGFzZTogJXgiLCB0YXJnZXQsIHBoYXNlKTsKKworCWlmIChub2RlKQorCQlz cmNuYW1lID0gbm9kZS0+cGF0aHNbMF07CisKKwlzd2l0Y2ggKHBoYXNlKSB7 CisKKwljYXNlIERJUl9QSEFTRV8yOgorcm10ZW1wczoKKwkJbG9nX21lc3Nh Z2UoTE9HX05PUk1BTCwgXygiUmVtb3ZpbmcgdGVtcG9yYXJ5IGRpcmVjdG9y eTogJyVzJyIpLAorCQkJCXRuYW1lKTsKKwkJaWYgKHJtZGlyKHRuYW1lKSA8 IDAgJiYgZXJybm8gIT0gRU5PRU5UKSB7CisJCQllcnJfbWVzc2FnZShfKCJ1 bmFibGUgdG8gcmVtb3ZlIGRpcmVjdG9yeTogJXMiKSwgdG5hbWUpOworCQkJ cnZhbCA9IDE7CisJCX0KKwkJLyogRkFMTCBUSFJVICovCisJY2FzZSBESVJf UEhBU0VfMToKKwkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgXygiUmVtb3Zp bmcgdGFyZ2V0IGRpcmVjdG9yeTogJyVzJyIpLAorCQkJCXRhcmdldCk7CisJ CWlmIChybWRpcih0YXJnZXQpIDwgMCAmJiBlcnJubyAhPSBFTk9FTlQpIHsK KwkJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5 OiAlcyIpLAorCQkJCQl0YXJnZXQpOworCQkJcnZhbCA9IDE7CisJCX0KKwkJ YnJlYWs7CisKKwljYXNlIERJUl9QSEFTRV8zOgorCQlsb2dfbWVzc2FnZShM T0dfTk9STUFMLCBfKCJDb21wbGV0aW5nIG1vdmluZyBkaXJlY3RvcnkgIgor CQkJCSJjb250ZW50czogJyVzJyB0byAnJXMnIiksIHNyY25hbWUsIHRhcmdl dCk7CisJCWlmIChtb3ZlX2RpcmVudHMoc3JjbmFtZSwgdGFyZ2V0LCAmbW92 ZV9jb3VudCkgIT0gMCkgeworCQkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRv IG1vdmUgZGlyZWN0b3J5IGNvbnRlbnRzOiAiCisJCQkJCSIlcyB0byAlcyIp LCBzcmNuYW1lLCB0YXJnZXQpOworCQkJLyogdWggb2gsIG1vdmUgZXZlcnl0 aGluZyBiYWNrLi4uICovCisJCQlpZiAobW92ZV9jb3VudCA+IDApIHsKKwkJ CQlpZiAobW92ZV9kaXJlbnRzKHRhcmdldCwgc3JjbmFtZSwKKwkJCQkJCSZt b3ZlX2NvdW50KSAhPSAwKSB7CisJCQkJCS8qIG9oLCBkZWFyIGxvcmQuLi4g bGV0IHRoZSBhZG1pbgorCQkJCQkgKiBjbGVhbiB0aGlzIG9uZSB1cCAqLwor CQkJCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8gbW92ZSBkaXJlY3Rvcnkg IgorCQkJCQkJImNvbnRlbnRzIGJhY2s6ICVzIHRvICVzIiksCisJCQkJCQl0 YXJnZXQsIHNyY25hbWUpOworCQkJCQlleGl0KDEpOworCQkJCX0KKwkJCX0K KwkJCWdvdG8gcm10ZW1wczsKKwkJfQorCQkvKiBGQUxMIFRIUlUgKi8KKwlj YXNlIERJUl9QSEFTRV80OgorCQlsb2dfbWVzc2FnZShMT0dfTk9STUFMLCBf KCJTZXR0aW5nIGF0dHJpYnV0ZXMgZm9yIHRhcmdldCAiCisJCQkJImRpcmVj dG9yeTogXCclc1wnIiksIHRhcmdldCk7CisJCXRmZCA9IG9wZW4odG5hbWUs IE9fUkRPTkxZKTsKKwkJaWYgKHRmZCA8IDApIHsKKwkJCWVycl9vcGVuKHRu YW1lKTsKKwkJCXJ2YWwgPSAxOworCQkJYnJlYWs7CisJCX0KKwkJdGFyZ2V0 ZmQgPSBvcGVuKHRhcmdldCwgT19SRE9OTFkpOworCQlpZiAodGFyZ2V0ZmQg PCAwKSB7CisJCQllcnJfb3Blbih0YXJnZXQpOworCQkJcnZhbCA9IDE7CisJ CQlicmVhazsKKwkJfQorCQlydmFsID0gZHVwX2F0dHJpYnV0ZXModG5hbWUs IHRmZCwgdGFyZ2V0LCB0YXJnZXRmZCk7CisJCWlmIChydmFsICE9IDApIHsK KwkJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byBkdXBsaWNhdGUgZGlyZWN0 b3J5ICIKKwkJCQkJImF0dHJpYnV0ZXM6ICVzIiksIHRuYW1lKTsKKwkJCWJy ZWFrOworCQl9CisJCWNsb3NlKHRmZCk7CisJCWNsb3NlKHRhcmdldGZkKTsK KwkJLyogRkFMTCBUSFJVICovCisJY2FzZSBESVJfUEhBU0VfNjoKKwkJbG9n X21lc3NhZ2UoTE9HX05PUk1BTCwgXygiUmVtb3ZpbmcgdGVtcG9yYXJ5IGRp cmVjdG9yeTogXCclc1wnIiksCisJCQkJdG5hbWUpOworCQlpZiAocm1kaXIo dG5hbWUpIDwgMCAmJiBlcnJubyAhPSBFTk9FTlQpIHsKKwkJCWVycl9tZXNz YWdlKF8oInVuYWJsZSB0byByZW1vdmUgZGlyZWN0b3J5OiAlcyIpLAorCQkJ CQl0bmFtZSk7CisJCQlydmFsID0gMTsKKwkJCWJyZWFrOworCQl9CisJCS8q IEZBTEwgVEhSVSAqLworCWNhc2UgRElSX1BIQVNFXzU6CisJCWxvZ19tZXNz YWdlKExPR19OT1JNQUwsIF8oIlJlbW92aW5nIG9sZCBkaXJlY3Rvcnk6IFwn JXNcJyIpLAorCQkJCXNyY25hbWUpOworCQlpZiAocm1kaXIoc3JjbmFtZSkg PCAwICYmIGVycm5vICE9IEVOT0VOVCkgeworCQkJZXJyX21lc3NhZ2UoXygi dW5hYmxlIHRvIHJlbW92ZSBkaXJlY3Rvcnk6ICVzIiksCisJCQkJCXNyY25h bWUpOworCQkJcnZhbCA9IDE7CisJCQlicmVhazsKKwkJfQorCQkvKiBGQUxM IFRIUlUgKi8KKwljYXNlIERJUl9QSEFTRV83OgorCQlsb2dfbWVzc2FnZShM T0dfTk9STUFMLCBfKCJSZW5hbWluZyBuZXcgZGlyZWN0b3J5IHRvIG9sZCAi CisJCQkiZGlyZWN0b3J5OiBcJyVzXCcgLT4gXCclc1wnIiksIHRhcmdldCwg c3JjbmFtZSk7CisJCXJ2YWwgPSByZW5hbWUodGFyZ2V0LCBzcmNuYW1lKTsK KwkJaWYgKHJ2YWwgIT0gMCkgeworCQkJLyogd2UgY2FuJ3QgYWJvcnQgc2lu Y2UgdGhlIHNyYyBkaXIgaXMgbm93IGdvbmUuCisJCQkgKiBsZXQgdGhlIGFk bWluIGNsZWFuIHRoaXMgb25lIHVwCisJCQkgKi8KKwkJCWVycl9tZXNzYWdl KF8oInVuYWJsZSB0byByZW5hbWUgZGlyZWN0b3J5OiAlcyB0byAlcyIpLAor CQkJCQl0YXJnZXQsIHNyY25hbWUpOworCQkJYnJlYWs7CisJCX0KKwkJYnJl YWs7CisKKworCWNhc2UgRklMRV9QSEFTRV8xOgorCQlsb2dfbWVzc2FnZShM T0dfTk9STUFMLCBfKCJVbmxpbmtpbmcgdGVtcG9yYXJ5IGZpbGU6IFwnJXNc JyIpLCB0YXJnZXQpOworCQl1bmxpbmsodGFyZ2V0KTsKKwkJYnJlYWs7CisK KwljYXNlIEZJTEVfUEhBU0VfMjoKKwkJbG9nX21lc3NhZ2UoTE9HX05PUk1B TCwgXygiVW5saW5raW5nIG9sZCBmaWxlOiBcJyVzXCciKSwgc3JjbmFtZSk7 CisJCXJ2YWwgPSB1bmxpbmsoc3JjbmFtZSk7CisJCWlmIChydmFsICE9IDAp IHsKKwkJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byByZW1vdmUgZmlsZTog JXMiKSwgc3JjbmFtZSk7CisJCQlicmVhazsKKwkJfQorCQkvKiBGQUxMIFRI UlUgKi8KKwljYXNlIEZJTEVfUEhBU0VfMzoKKwkJbG9nX21lc3NhZ2UoTE9H X05PUk1BTCwgXygiUmVuYW1pbmcgbmV3IGZpbGUgdG8gb2xkIGZpbGU6ICIK KwkJCQkiXCclc1wnIC0+IFwnJXNcJyIpLCB0YXJnZXQsIHNyY25hbWUpOwor CQlydmFsID0gcmVuYW1lKHRhcmdldCwgc3JjbmFtZSk7CisJCWlmIChydmFs ICE9IDApIHsKKwkJCS8qIHdlIGNhbid0IGFib3J0IHNpbmNlIHRoZSBzcmMg ZmlsZSBpcyBub3cgZ29uZS4KKwkJCSAqIGxldCB0aGUgYWRtaW4gY2xlYW4g dGhpcyBvbmUgdXAKKwkJCSAqLworCQkJZXJyX21lc3NhZ2UoXygidW5hYmxl IHRvIHJlbmFtZSBmaWxlOiAlcyB0byAlcyIpLAorCQkJCQl0YXJnZXQsIHNy Y25hbWUpOworCQkJYnJlYWs7CisJCX0KKwkJLyogRkFMTCBUSFJVICovCisJ Y2FzZSBGSUxFX1BIQVNFXzQ6CisJCS8qIGZvciBlYWNoIGhhcmRsaW5rLCB1 bmxpbmsgYW5kIGNyZWF0IHBvaW50aW5nIHRvIHRhcmdldCAqLworCQlmb3Ig KGkgPSAxOyBpIDwgbm9kZS0+bnVtcGF0aHM7IGkrKykgeworCQkJaWYgKGkg PT0gMSkKKwkJCQlsb2dfbWVzc2FnZShMT0dfTk9STUFMLCBfKCJSZXNldHRp bmcgaGFyZGxpbmtzIHRvICIKKwkJCQkJCSJuZXcgZmlsZSIpKTsKKworCQkJ cnZhbCA9IHVubGluayhub2RlLT5wYXRoc1tpXSk7CisJCQlpZiAocnZhbCAh PSAwKSB7CisJCQkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIHJlbW92ZSBm aWxlOiAlcyIpLAorCQkJCQkJbm9kZS0+cGF0aHNbaV0pOworCQkJCWJyZWFr OworCQkJfQorCQkJcnZhbCA9IGxpbmsoc3JjbmFtZSwgbm9kZS0+cGF0aHNb aV0pOworCQkJaWYgKHJ2YWwgIT0gMCkgeworCQkJCWVycl9tZXNzYWdlKF8o InVuYWJsZSB0byBsaW5rIHRvIGZpbGU6ICVzIiksCisJCQkJCQlzcmNuYW1l KTsKKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQlicmVhazsKKwl9CisKKwlp ZiAocnZhbCA9PSAwKSB7CisJCWxvZ19tZXNzYWdlKExPR19OT1JNQUwsIF8o IlJlbW92aW5nIHJlY292ZXIgZmlsZTogXCclc1wnIiksCisJCQkJcmVjb3Zl cl9maWxlKTsKKwkJdW5saW5rKHJlY292ZXJfZmlsZSk7CisJCWxvZ19tZXNz YWdlKExPR19OT1JNQUwsIF8oIlJlY292ZXJ5IGRvbmUuIikpOworCX0KKwll bHNlIHsKKwkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgXygiTGVhdmluZyBy ZWNvdmVyIGZpbGU6IFwnJXNcJyIpLAorCQkJCXJlY292ZXJfZmlsZSk7CisJ CWxvZ19tZXNzYWdlKExPR19OT1JNQUwsIF8oIlJlY292ZXJ5IGZhaWxlZC4i KSk7CisJfQorCisJcmV0dXJuIHJ2YWw7Cit9CisKK2ludAorbWFpbigKKwlp bnQJCWFyZ2MsCisJY2hhcgkJKmFyZ3ZbXSkKK3sKKwlpbnQJCWMgPSAwOwor CWludAkJcnZhbCA9IDA7CisJaW50CQlxX29wdCA9IDA7CisJaW50CQl2X29w dCA9IDA7CisJaW50CQlwX29wdCA9IDA7CisJaW50CQluX29wdCA9IDA7CisJ Y2hhcgkJcGF0aG5hbWVbUEFUSF9NQVhdOworCXN0cnVjdCBzdGF0NjQJc3Q7 CisKKwlwcm9nbmFtZSA9IGJhc2VuYW1lKGFyZ3ZbMF0pOworCisJc2V0bG9j YWxlKExDX0FMTCwgIiIpOworCWJpbmR0ZXh0ZG9tYWluKFBBQ0tBR0UsIExP Q0FMRURJUik7CisJdGV4dGRvbWFpbihQQUNLQUdFKTsKKworCXdoaWxlICgo YyA9IGdldG9wdChhcmdjLCBhcmd2LCAiZm5wcXZQOnI6IikpICE9IC0xKSB7 CisJCXN3aXRjaCAoYykgeworCQljYXNlICdmJzoKKwkJCWZvcmNlX2FsbCA9 IDE7CisJCQlicmVhazsKKwkJY2FzZSAnbic6CisJCQluX29wdCsrOworCQkJ YnJlYWs7CisJCWNhc2UgJ3AnOgorCQkJcF9vcHQrKzsKKwkJCWJyZWFrOwor CQljYXNlICdxJzoKKwkJCWlmICh2X29wdCkKKwkJCQllcnJfbWVzc2FnZShf KCIncScgb3B0aW9uIGluY29tcGF0aWJsZSAiCisJCQkJCQkid2l0aCAndicg b3B0aW9uIikpOworCQkJcV9vcHQrKzsKKwkJCWxvZ19sZXZlbD0wOworCQkJ YnJlYWs7CisJCWNhc2UgJ3YnOgorCQkJaWYgKHFfb3B0KQorCQkJCWVycl9t ZXNzYWdlKF8oIid2JyBvcHRpb24gaW5jb21wYXRpYmxlICIKKwkJCQkJCSJ3 aXRoICdxJyBvcHRpb24iKSk7CisJCQl2X29wdCsrOworCQkJbG9nX2xldmVs Kys7CisJCQlicmVhazsKKwkJY2FzZSAnUCc6CisJCQlwb2xsX2ludGVydmFs ID0gYXRvaShvcHRhcmcpOworCQkJYnJlYWs7CisJCWNhc2UgJ3InOgorCQkJ cmVjb3Zlcl9maWxlID0gb3B0YXJnOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQllcnJfbWVzc2FnZShfKCIlczogaWxsZWdhbCBvcHRpb24gLS0gJWNc biIpLCBjKTsKKwkJCXVzYWdlKCk7CisJCQkvKiBOT1RSRUFDSEVEICovCisJ CQlicmVhazsKKwkJfQorCX0KKworCWlmIChvcHRpbmQgIT0gYXJnYyAtIDEg JiYgcmVjb3Zlcl9maWxlID09IE5VTEwpIHsKKwkJdXNhZ2UoKTsKKwkJZXhp dCgxKTsKKwl9CisKKwlyZWFsdWlkID0gZ2V0dWlkKCk7CisJc3RhcnR0aW1l ID0gdGltZSgwKTsKKworCWluaXRfbm9kZWhhc2goKTsKKworCXNpZ25hbChT SUdBTFJNLCBzaWdoYW5kbGVyKTsKKwlzaWduYWwoU0lHQUJSVCwgc2lnaGFu ZGxlcik7CisJc2lnbmFsKFNJR0hVUCwgc2lnaGFuZGxlcik7CisJc2lnbmFs KFNJR0lOVCwgc2lnaGFuZGxlcik7CisJc2lnbmFsKFNJR1FVSVQsIHNpZ2hh bmRsZXIpOworCXNpZ25hbChTSUdURVJNLCBzaWdoYW5kbGVyKTsKKworCWlm IChwX29wdCAmJiBwb2xsX2ludGVydmFsID09IDApIHsKKwkJcG9sbF9pbnRl cnZhbCA9IDE7CisJfQorCWlmIChwb2xsX2ludGVydmFsKQorCQlhbGFybShw b2xsX2ludGVydmFsKTsKKworCWlmIChyZWNvdmVyX2ZpbGUpIHsKKwkJYmln bm9kZV90CSpub2RlID0gTlVMTDsKKwkJY2hhcgkJKnRhcmdldCA9IE5VTEw7 CisJCWNoYXIJCSp0bmFtZSA9IE5VTEw7CisJCWludAkJcGhhc2UgPSAwOwor CisJCWlmIChuX29wdCkKKwkJCWdvdG8gcXVpdDsKKworCQkvKiByZWFkIG5v ZGUgaW5mbyBmcm9tIHJlY292ZXJ5IGZpbGUgKi8KKwkJaWYgKHJlYWRfcmVj b3Zlcl9maWxlKHJlY292ZXJfZmlsZSwgJm5vZGUsICZ0YXJnZXQsCisJCQkJ JnRuYW1lLCAmcGhhc2UpICE9IDApCisJCQlleGl0KDEpOworCisJCXJ2YWwg PSByZWNvdmVyKG5vZGUsIHRhcmdldCwgdG5hbWUsIHBoYXNlKTsKKworCQlm cmVlKHRhcmdldCk7CisJCWZyZWUodG5hbWUpOworCisJCXJldHVybiBydmFs OworCX0KKworCXJlY292ZXJfZmlsZSA9IG1hbGxvYyhQQVRIX01BWCk7CisJ aWYgKHJlY292ZXJfZmlsZSA9PSBOVUxMKSB7CisJCWVycl9ub21lbSgpOwor CQlleGl0KDEpOworCX0KKwlyZWNvdmVyX2ZpbGVbMF0gPSAnXDAnOworCisJ c3RyY3B5KHBhdGhuYW1lLCBhcmd2W29wdGluZF0pOworCWlmIChwYXRobmFt ZVswXSAhPSAnLycpIHsKKwkJZXJyX21lc3NhZ2UoXygicGF0aG5hbWUgbXVz dCBiZWdpbiB3aXRoIGEgc2xhc2ggKCcvJykiKSk7CisJCWV4aXQoMSk7CisJ fQorCisJaWYgKHN0YXQ2NChwYXRobmFtZSwgJnN0KSA8IDApIHsKKwkJZXJy X3N0YXQocGF0aG5hbWUpOworCQlleGl0KDEpOworCX0KKwlpZiAoU19JU1JF RyhzdC5zdF9tb2RlKSkgeworCQkvKiBzaW5nbGUgZmlsZSBzcGVjaWZpZWQg Ki8KKwkJaWYgKHN0LnN0X25saW5rID4gMSkgeworCQkJZXJyX21lc3NhZ2Uo XygiY2Fubm90IHByb2Nlc3Mgc2luZ2xlIGZpbGUgd2l0aCBhICIKKwkJCQkJ ImxpbmsgY291bnQgZ3JlYXRlciB0aGFuIDEiKSk7CisJCQlleGl0KDEpOwor CQl9CisKKwkJc3RyY3B5KHJlY292ZXJfZmlsZSwgcGF0aG5hbWUpOworCQlk aXJuYW1lKHJlY292ZXJfZmlsZSk7CisKKwkJc3RyY3B5KHJlY292ZXJfZmls ZSArIHN0cmxlbihyZWNvdmVyX2ZpbGUpLCAiL3hmc19yZW5vLnJlY292ZXIi KTsKKwkJaWYgKCFuX29wdCkgeworCQkJaWYgKG9wZW5fcmVjb3ZlcmZpbGUo KSAhPSAwKQorCQkJCWV4aXQoMSk7CisJCX0KKwkJYWRkX25vZGVfcGF0aChz dC5zdF9pbm8sIEZUV19GLCBwYXRobmFtZSk7CisJfQorCWVsc2UgaWYgKFNf SVNESVIoc3Quc3RfbW9kZSkpIHsKKwkJLyogZGlyZWN0b3J5IHRyZWUgc3Bl Y2lmaWVkICovCisJCXN0cmNweShyZWNvdmVyX2ZpbGUsIHBhdGhuYW1lKTsK KworCQlzdHJjcHkocmVjb3Zlcl9maWxlICsgc3RybGVuKHJlY292ZXJfZmls ZSksICIveGZzX3Jlbm8ucmVjb3ZlciIpOworCQlpZiAoIW5fb3B0KSB7CisJ CQlpZiAob3Blbl9yZWNvdmVyZmlsZSgpICE9IDApCisJCQkJZXhpdCgxKTsK KwkJfQorCisJCS8qIGRpcmVjdG9yeSBzY2FuICovCisJCWxvZ19tZXNzYWdl KExPR19JTkZPLCBfKCJcclNjYW5uaW5nIGRpcmVjdG9yeSB0cmVlLi4uIikp OworCQlTRVRfUEhBU0UoU0NBTl9QSEFTRSk7CisJCW5mdHc2NChwYXRobmFt ZSwgbmZ0d19hZGRub2RlcywgMTAwLCBGVFdfUEhZUyB8IEZUV19NT1VOVCk7 CisJfQorCWVsc2UgeworCQllcnJfbWVzc2FnZShfKCJwYXRobmFtZSBtdXN0 IGJlIGVpdGhlciBhIHJlZ3VsYXIgZmlsZSAiCisJCQkJIm9yIGRpcmVjdG9y eSIpKTsKKwkJZXhpdCgxKTsKKwl9CisKKwlkdW1wX25vZGVoYXNoKCk7CisK KwlpZiAobl9vcHQpIHsKKwkJLyogbiBmbGFnIHNldCwgZG9uJ3QgZG8gYW55 dGhpbmcgKi8KKwkJaWYgKG51bWRpcm5vZGVzKQorCQkJbG9nX21lc3NhZ2Uo TE9HX05PUk1BTCwgIlxyV291bGQgcHJvY2VzcyAlZCAlcyIsCisJCQkJCW51 bWRpcm5vZGVzLCBudW1kaXJub2RlcyA9PSAxID8KKwkJCQkJCSJkaXJlY3Rv cnkiIDogImRpcmVjdG9yaWVzIik7CisJCWVsc2UKKwkJCWxvZ19tZXNzYWdl KExPR19OT1JNQUwsICJcck5vIGRpcmVjdG9yaWVzIHRvIHByb2Nlc3MiKTsK KworCQlpZiAobnVtZmlsZW5vZGVzKQorCQkJLyogcHJvY2VzcyBmaWxlcyAq LworCQkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgIlxyV291bGQgcHJvY2Vz cyAlZCAlcyIsCisJCQkJCW51bWZpbGVub2RlcywgbnVtZmlsZW5vZGVzID09 IDEgPworCQkJCQkJImZpbGUiIDogImZpbGVzIik7CisJCWVsc2UKKwkJCWxv Z19tZXNzYWdlKExPR19OT1JNQUwsICJcck5vIGZpbGVzIHRvIHByb2Nlc3Mi KTsKKwl9IGVsc2UgeworCQkvKiBwcm9jZXNzIGRpcmVjdG9yaWVzICovCisJ CWlmIChudW1kaXJub2RlcykgeworCQkJbG9nX21lc3NhZ2UoTE9HX0lORk8s IF8oIlxyUHJvY2Vzc2luZyAlZCAlcy4uLiIpLAorCQkJCQludW1kaXJub2Rl cywgbnVtZGlybm9kZXMgPT0gMSA/CisJCQkJCSAgICBfKCJkaXJlY3Rvcnki KSA6IF8oImRpcmVjdG9yaWVzIikpOworCQkJY3VyX3BoYXNlID0gRElSX1BI QVNFOworCQkJcnZhbCA9IGZvcl9hbGxfbm9kZXMocHJvY2Vzc19kaXIsIEZU V19ELCAxKTsKKwkJCWlmIChydmFsICE9IDApCisJCQkJZ290byBxdWl0Owor CQl9CisJCWVsc2UKKwkJCWxvZ19tZXNzYWdlKExPR19JTkZPLCBfKCJcck5v IGRpcmVjdG9yaWVzIHRvIHByb2Nlc3MuLi4iKSk7CisKKwkJaWYgKG51bWZp bGVub2RlcykgeworCQkJLyogcHJvY2VzcyBmaWxlcyAqLworCQkJbG9nX21l c3NhZ2UoTE9HX0lORk8sIF8oIlxyUHJvY2Vzc2luZyAlZCAlcy4uLiIpLAor CQkJCQludW1maWxlbm9kZXMsIG51bWZpbGVub2RlcyA9PSAxID8KKwkJCQkJ CV8oImZpbGUiKSA6IF8oImZpbGVzIikpOworCQkJY3VyX3BoYXNlID0gRklM RV9QSEFTRTsKKwkJCWZvcl9hbGxfbm9kZXMocHJvY2Vzc19maWxlLCBGVFdf RiwgMCk7CisJCX0KKwkJZWxzZQorCQkJbG9nX21lc3NhZ2UoTE9HX0lORk8s IF8oIlxyTm8gZmlsZXMgdG8gcHJvY2Vzcy4uLiIpKTsKKwl9CitxdWl0Ogor CWZyZWVfbm9kZWhhc2goKTsKKworCWNsb3NlKHJlY292ZXJfZmQpOworCisJ aWYgKHJ2YWwgPT0gMCkKKwkJdW5saW5rKHJlY292ZXJfZmlsZSk7CisKKwls b2dfbWVzc2FnZShMT0dfREVCVUcsICJcciV1IHNlY29uZHMgZWxhcHNlZCIs IHRpbWUoMCkgLSBzdGFydHRpbWUpOworCWxvZ19tZXNzYWdlKExPR19JTkZP LCBfKCJcckRvbmUuIikpOworCisJcmV0dXJuIHJ2YWwgfCBnbG9iYWxfcnZh bDsKK30K ------------CjDhNP1TBpgHu0GSrkBaa0-- From owner-xfs@oss.sgi.com Tue Oct 2 00:17:36 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 00:17:40 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l927HYgi007751 for ; Tue, 2 Oct 2007 00:17:36 -0700 Received: from edge.yarra.acx (unknown [203.89.192.141]) by postoffice.aconex.com (Postfix) with ESMTP id 3FC1392CCDD; Tue, 2 Oct 2007 17:17:33 +1000 (EST) Subject: Re: REVIEW: xfs_reno From: Nathan Scott Reply-To: nscott@aconex.com To: Barry Naujok Cc: "xfs@oss.sgi.com" , xfs-dev In-Reply-To: References: Content-Type: text/plain Organization: Aconex Date: Tue, 02 Oct 2007 17:20:01 +1000 Message-Id: <1191309601.15908.217.camel@edge.yarra.acx> Mime-Version: 1.0 X-Mailer: Evolution 2.6.3 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13212 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: xfs On Tue, 2007-10-02 at 17:08 +1000, Barry Naujok wrote: > The attached tool allows an inode64 filesystem to be converted to inode32. > For this to work, the filesystem has to be mounted inode32 before it's run. > > I'm not sure if there is any packaging changes required. I expect not, the Makefile handles that. Is there a man page? cheers. -- Nathan From owner-xfs@oss.sgi.com Tue Oct 2 01:11:04 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 01:11:10 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-6.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_66,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.0-r574664 Received: from mx2.suse.de (ns2.suse.de [195.135.220.15]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l928B1qT016937 for ; Tue, 2 Oct 2007 01:11:04 -0700 Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id C3C8522EBE for ; Tue, 2 Oct 2007 10:11:01 +0200 (CEST) From: Andi Kleen Organization: SUSE Linux Products GmbH, Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg) To: xfs@oss.sgi.com Subject: [PATCH] Replace XFS bit functions with Linux functions Date: Tue, 2 Oct 2007 10:10:58 +0200 User-Agent: KMail/1.9.6 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710021010.58284.ak@suse.de> X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13213 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: ak@suse.de Precedence: bulk X-list: xfs XFS had some own functions to find high and low bits. This patch replaces them with a call to the respective Linux functions. The semantics of the Linux functions differ a little, but i checked all call sites that they can deal with that. I think all callers are ok; but i added a few more asserts for the 0 case (where Linux and old XFS differ) just to make it easy to detect mistakes. The resulting xfs.ko is about 500 bytes smaller on x86-64 This is similar to the patch Eric sent some days ago, but does it more efficiently imho. It replaces his patch. I wasn't able to do a full XFS QA run over this unfortunately; but did careful review. Signed-off-by: Andi Kleen Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.c =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_bit.c +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.c @@ -22,112 +22,9 @@ #include "xfs_buf_item.h" /* - * XFS bit manipulation routines, used in non-realtime code. + * XFS bit manipulation routines */ -#ifndef HAVE_ARCH_HIGHBIT -/* - * Index of high bit number in byte, -1 for none set, 0..7 otherwise. - */ -static const char xfs_highbit[256] = { - -1, 0, 1, 1, 2, 2, 2, 2, /* 00 .. 07 */ - 3, 3, 3, 3, 3, 3, 3, 3, /* 08 .. 0f */ - 4, 4, 4, 4, 4, 4, 4, 4, /* 10 .. 17 */ - 4, 4, 4, 4, 4, 4, 4, 4, /* 18 .. 1f */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 20 .. 27 */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 28 .. 2f */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 30 .. 37 */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 38 .. 3f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 40 .. 47 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 48 .. 4f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 50 .. 57 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 58 .. 5f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 60 .. 67 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 68 .. 6f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 70 .. 77 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 78 .. 7f */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 80 .. 87 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 88 .. 8f */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 90 .. 97 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 98 .. 9f */ - 7, 7, 7, 7, 7, 7, 7, 7, /* a0 .. a7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* a8 .. af */ - 7, 7, 7, 7, 7, 7, 7, 7, /* b0 .. b7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* b8 .. bf */ - 7, 7, 7, 7, 7, 7, 7, 7, /* c0 .. c7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* c8 .. cf */ - 7, 7, 7, 7, 7, 7, 7, 7, /* d0 .. d7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* d8 .. df */ - 7, 7, 7, 7, 7, 7, 7, 7, /* e0 .. e7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* e8 .. ef */ - 7, 7, 7, 7, 7, 7, 7, 7, /* f0 .. f7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* f8 .. ff */ -}; -#endif - -/* - * xfs_highbit32: get high bit set out of 32-bit argument, -1 if none set. - */ -inline int -xfs_highbit32( - __uint32_t v) -{ -#ifdef HAVE_ARCH_HIGHBIT - return highbit32(v); -#else - int i; - - if (v & 0xffff0000) - if (v & 0xff000000) - i = 24; - else - i = 16; - else if (v & 0x0000ffff) - if (v & 0x0000ff00) - i = 8; - else - i = 0; - else - return -1; - return i + xfs_highbit[(v >> i) & 0xff]; -#endif -} - -/* - * xfs_lowbit64: get low bit set out of 64-bit argument, -1 if none set. - */ -int -xfs_lowbit64( - __uint64_t v) -{ - __uint32_t w = (__uint32_t)v; - int n = 0; - - if (w) { /* lower bits */ - n = ffs(w); - } else { /* upper bits */ - w = (__uint32_t)(v >> 32); - if (w && (n = ffs(w))) - n += 32; - } - return n - 1; -} - -/* - * xfs_highbit64: get high bit set out of 64-bit argument, -1 if none set. - */ -int -xfs_highbit64( - __uint64_t v) -{ - __uint32_t h = (__uint32_t)(v >> 32); - - if (h) - return xfs_highbit32(h) + 32; - return xfs_highbit32((__uint32_t)v); -} - - /* * Return whether bitmap is empty. * Size is number of words in the bitmap, which is padded to word boundary Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.h =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_bit.h +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.h @@ -46,15 +46,6 @@ static inline __uint64_t xfs_mask64lo(in return ((__uint64_t)1 << (n)) - 1; } -/* Get high bit set out of 32-bit argument, -1 if none set */ -extern int xfs_highbit32(__uint32_t v); - -/* Get low bit set out of 64-bit argument, -1 if none set */ -extern int xfs_lowbit64(__uint64_t v); - -/* Get high bit set out of 64-bit argument, -1 if none set */ -extern int xfs_highbit64(__uint64_t); - /* Return whether bitmap is empty (1 == empty) */ extern int xfs_bitmap_empty(uint *map, uint size); Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_iget.c =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_iget.c +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_iget.c @@ -55,8 +55,7 @@ xfs_ihash_init(xfs_mount_t *mp) if (!mp->m_ihsize) { icount = mp->m_maxicount ? mp->m_maxicount : (mp->m_sb.sb_dblocks << mp->m_sb.sb_inopblog); - mp->m_ihsize = 1 << max_t(uint, 8, - (xfs_highbit64(icount) + 1) / 2); + mp->m_ihsize = 1 << max_t(uint, 8, fls64(icount) / 2); mp->m_ihsize = min_t(uint, mp->m_ihsize, (64 * NBPP) / sizeof(xfs_ihash_t)); } Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_mount.c +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_mount.c @@ -439,7 +439,7 @@ xfs_xlatesb( mem_ptr = (xfs_caddr_t)sb; while (fields) { - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields,64); first = xfs_sb_info[f].offset; size = xfs_sb_info[f + 1].offset - first; @@ -589,7 +589,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG; mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; - mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; + mp->m_agno_log = fls(sbp->sb_agcount - 1); mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; mp->m_litino = sbp->sb_inodesize - ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); @@ -1428,11 +1428,11 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fi /* find modified range */ - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields, 64); ASSERT((1LL << f) & XFS_SB_MOD_BITS); first = xfs_sb_info[f].offset; - f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); + f = (xfs_sb_field_t)fls64((__uint64_t)fields) - 1; ASSERT((1LL << f) & XFS_SB_MOD_BITS); last = xfs_sb_info[f + 1].offset - 1; Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.h =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_rtalloc.h +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.h @@ -60,13 +60,19 @@ struct xfs_trans; #define XFS_RTMIN(a,b) ((a) < (b) ? (a) : (b)) #define XFS_RTMAX(a,b) ((a) > (b) ? (a) : (b)) -#define XFS_RTLOBIT(w) xfs_lowbit32(w) -#define XFS_RTHIBIT(w) xfs_highbit32(w) +/* All callers check for 0 arguments already; so no -1 handling */ +static inline int xfs_rtlobit(unsigned long v) +{ + return find_first_bit(&v, 32); +} + +#define XFS_RTLOBIT(w) xfs_rtlobit(w) +#define XFS_RTHIBIT(w) (fls(w) - 1) #if XFS_BIG_BLKNOS -#define XFS_RTBLOCKLOG(b) xfs_highbit64(b) +#define XFS_RTBLOCKLOG(b) (fls64(b) - 1) #else -#define XFS_RTBLOCKLOG(b) xfs_highbit32(b) +#define XFS_RTBLOCKLOG(b) (fls(b) - 1) #endif Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.c =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_rtalloc.c +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.c @@ -73,18 +73,6 @@ STATIC int xfs_rtmodify_summary(xfs_moun */ /* - * xfs_lowbit32: get low bit set out of 32-bit argument, -1 if none set. - */ -STATIC int -xfs_lowbit32( - __uint32_t v) -{ - if (v) - return ffs(v) - 1; - return -1; -} - -/* * Allocate space to the bitmap or summary file, and zero it, for growfs. */ STATIC int /* error */ @@ -444,7 +432,8 @@ xfs_rtallocate_extent_near( } bbno = XFS_BITTOBLOCK(mp, bno); i = 0; - log2len = xfs_highbit32(minlen); + ASSERT(minlen != 0); + log2len = fls(minlen) - 1; /* * Loop over all bitmap blocks (bbno + i is current block). */ @@ -607,11 +596,13 @@ xfs_rtallocate_extent_size( int error; /* error value */ int i; /* bitmap block number */ int l; /* level number (loop control) */ + int end; xfs_rtblock_t n; /* next block to be tried */ xfs_rtblock_t r; /* result block number */ xfs_suminfo_t sum; /* summary information for extents */ ASSERT(minlen % prod == 0 && maxlen % prod == 0); + ASSERT(maxlen != 0); /* * Loop over all the levels starting with maxlen. * At each level, look at all the bitmap blocks, to see if there @@ -619,7 +610,7 @@ xfs_rtallocate_extent_size( * Note, only on the initial level can the allocation fail if * the summary says there's an extent. */ - for (l = xfs_highbit32(maxlen); l < mp->m_rsumlevels; l++) { + for (l = fls(maxlen) - 1; l < mp->m_rsumlevels; l++) { /* * Loop over all the bitmap blocks. */ @@ -669,12 +660,15 @@ xfs_rtallocate_extent_size( *rtblock = NULLRTBLOCK; return 0; } + ASSERT(maxlen != 0); + ASSERT(minlen != 0); /* * Loop over sizes, from maxlen down to minlen. * This time, when we do the allocations, allow smaller ones * to succeed. */ - for (l = xfs_highbit32(maxlen); l >= xfs_highbit32(minlen); l--) { + end = fls(minlen) - 1; + for (l = fls(maxlen) - 1; l >= end; l--) { /* * Loop over all the bitmap blocks, try an allocation * starting in that block. @@ -1863,7 +1857,6 @@ xfs_growfs_rt( xfs_drfsbno_t nrblocks; /* new number of realtime blocks */ xfs_extlen_t nrbmblocks; /* new number of rt bitmap blocks */ xfs_drtbno_t nrextents; /* new number of realtime extents */ - uint8_t nrextslog; /* new log2 of sb_rextents */ xfs_extlen_t nrsumblocks; /* new number of summary blocks */ uint nrsumlevels; /* new rt summary levels */ uint nrsumsize; /* new size of rt summary, bytes */ @@ -1900,8 +1893,7 @@ xfs_growfs_rt( nrextents = nrblocks; do_div(nrextents, in->extsize); nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize); - nrextslog = xfs_highbit32(nrextents); - nrsumlevels = nrextslog + 1; + nrsumlevels = fls(nrextents); nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks; nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize); nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks); @@ -1954,7 +1946,8 @@ xfs_growfs_rt( nsbp->sb_blocksize * nsbp->sb_rextsize); nsbp->sb_rextents = nsbp->sb_rblocks; do_div(nsbp->sb_rextents, nsbp->sb_rextsize); - nsbp->sb_rextslog = xfs_highbit32(nsbp->sb_rextents); + ASSERT(nsbp->sb_rextents != 0); + nsbp->sb_rextslog = fls(nsbp->sb_rextents) - 1; nrsumlevels = nmp->m_rsumlevels = nsbp->sb_rextslog + 1; nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * @@ -2317,9 +2310,10 @@ xfs_rtpick_extent( *seqp = 0; } seq = *seqp; - if ((log2 = xfs_highbit64(seq)) == -1) + if ((log2 = fls64(seq)) == 0) b = 0; else { + log2--; resid = seq - (1ULL << log2); b = (mp->m_sb.sb_rextents * ((resid << 1) + 1ULL)) >> (log2 + 1); Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_ialloc.h =================================================================== --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_ialloc.h +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_ialloc.h @@ -57,10 +57,10 @@ xfs_make_iptr(struct xfs_mount *mp, stru #define XFS_IALLOC_FIND_FREE(fp) xfs_ialloc_find_free(fp) static inline int xfs_ialloc_find_free(xfs_inofree_t *fp) { - return xfs_lowbit64(*fp); + unsigned long v = *fp; /* Guarantee alignment */ + return find_first_bit(&v, 64); } - #ifdef __KERNEL__ /* * Allocate an inode on disk. From owner-xfs@oss.sgi.com Tue Oct 2 01:43:08 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 01:43:11 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.0-r574664 Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l928h7iC021081 for ; Tue, 2 Oct 2007 01:43:08 -0700 Received: by lucidpixels.com (Postfix, from userid 1001) id C98DA1C099243; Tue, 2 Oct 2007 04:43:07 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by lucidpixels.com (Postfix) with ESMTP id C6C934020DA5; Tue, 2 Oct 2007 04:43:07 -0400 (EDT) Date: Tue, 2 Oct 2007 04:43:07 -0400 (EDT) From: Justin Piszcz X-X-Sender: jpiszcz@p34.internal.lan To: Lachlan McIlroy cc: Timothy Shimmin , Eric Sandeen , xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit In-Reply-To: <4701ED51.8050706@sgi.com> Message-ID: References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4701A1D0.5010709@sgi.com> <4701ED51.8050706@sgi.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13214 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: jpiszcz@lucidpixels.com Precedence: bulk X-list: xfs On Tue, 2 Oct 2007, Lachlan McIlroy wrote: > Timothy Shimmin wrote: >> Eric Sandeen wrote: >>> Tim Shimmin wrote: >>>> Hi Linus, >>>> >>>> A problem has been found for the XFS commit >>>> b394e43e995d08821588a22561c6a71a63b4ff27 >>>> and it needs to be reverted. >>>> It has the potential for worse corruption than what it is meant to fix. >>> >>> >>> Whoops... that's what I get for picking it up too soon for fedora I guess! >>> >>> Any background on the newly-found problem, for those of us in the peanut >>> gallery? >>> >>> Thanks, >>> >>> -Eric >> >> Hi Eric, >> >> Lachlan worked this problem so he can probably provide more details. >> My understanding is that we were having a problem with the log replay >> replaying newly allocated inodes (inodes from buffer items) over the top >> of buffers which were actually more up-to-date than what was logged. >> The code used a heuristic to determine if the buffer had been written >> to for the inode (by checking on magic#, mode and gen# - not going to >> comment on this). >> Anyway, it comes down to either copying over the inode buf data or not >> copying it over (doing or not doing the log replay). >> The change could cause the buffer to be not overwritten in replay >> where previously it would be. >> We want this to not happen as part of the fix and doing the right thing >> and not by mistake and failing to replay when we need it to be replayed. >> I presume the latter is what is happening. >> The symptoms of this is what Lachlan has discovered in QA on a debug >> kernel and he can provide the details. >> >> I believe this started from not logging the inode size changes >> (as is consistent with the logging model) for performance reasons, >> and so we can't rely on inode log items coming up on log replay >> to fix things up. >> >> BTW, we currently have 3 ways of logging an inode: >> 1. in an item buffer and marked as an inode >> 2. in an item buffer and not marked as an inode >> 3. in an inode item >> >> and 3 places where they get replayed: >> 1. xlog_recover_do_inode_buffer - for di_next_unlinked pointer recovery >> 2. xlog_recover_do_reg_buffer - for newly allocated inode recovery >> 3. xlog_recover_do_inode_trans - for general inode recovery >> >> The fix was in #2. >> >> >> Ughh. > > Yeah that about sums it up. In an attempt to prevent log replay of inodes > in cases when we shouldn't replay we also prevented log replay of inodes in > cases when we should replay. We end up with directories that refer to inodes > that were not replayed and we read existing data off disk. That existing > data is usually previous instances of inodes. We had cases of regular files > turning into directories and inode version mismatches. > > Lachlan > In 2.6.23-rc8? From owner-xfs@oss.sgi.com Tue Oct 2 02:20:07 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 02:20:09 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l929K1om026148 for ; Tue, 2 Oct 2007 02:20:06 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id TAA26930; Tue, 2 Oct 2007 19:19:53 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l929JqdD46651635; Tue, 2 Oct 2007 19:19:53 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l929JpA247397775; Tue, 2 Oct 2007 19:19:51 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Tue, 2 Oct 2007 19:19:51 +1000 From: David Chinner To: Christoph Hellwig Cc: Barry Naujok , "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno Message-ID: <20071002091951.GE995458@sgi.com> References: <20071002090216.GA22721@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071002090216.GA22721@infradead.org> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13215 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 10:02:16AM +0100, Christoph Hellwig wrote: > On Tue, Oct 02, 2007 at 05:08:59PM +1000, Barry Naujok wrote: > > > > The attached tool allows an inode64 filesystem to be converted to inode32. > > For this to work, the filesystem has to be mounted inode32 before it's run. > > > > I'm not sure if there is any packaging changes required. > > Together with the stop allocating from specific AGs patch this should be > 90% towards an xfs_shrinkfs, right? Well, this just moves the inodes - it's one piece of the puzzle. We still need to collide xfs_fsr with xfs_reno to move the data. After that, we need to work out how to move the orphan metadata blocks out of the AGs that are to be truncated off. That's not simple.... After that, we need the transaction to shrink the fs. At that point, we'll got a "working" shrink that will allow shrinking to only 50% of the original size because the log will get in the way. To fix that, we'll need to implement transactions to move the log... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 02:25:25 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 02:25:28 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_55 autolearn=no version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l929PHYa027363 for ; Tue, 2 Oct 2007 02:25:24 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id TAA27036; Tue, 2 Oct 2007 19:25:15 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l929PDdD47296546; Tue, 2 Oct 2007 19:25:14 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l929PAIh47379255; Tue, 2 Oct 2007 19:25:10 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Tue, 2 Oct 2007 19:25:10 +1000 From: David Chinner To: Andi Kleen Cc: Timothy Shimmin , Martin Steigerwald , xfs@oss.sgi.com Subject: Re: Creation time in XFS Message-ID: <20071002092509.GF995458@sgi.com> References: <200709302124.38164.Martin@lichtvoll.de> <470042DC.2040009@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13216 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Mon, Oct 01, 2007 at 11:30:01AM +0200, Andi Kleen wrote: > Timothy Shimmin writes: > > > No XFS does not support creation time. It just has the regular > > atime,mtime and ctime. > > There are no plans that I've heard to support it. > > Not much involved to support it AFAICT but it would either involve > > changing the ondisk format of the inode or storing it in an EA. > > If you ever change the on disk format adding a file type similar to ext3 > to directories could also greatly speed up find in many cases. Sure, but that's the directory structure, not inode structure. They have different versioning methods, and so can be modified independently. FWIW, I haven't forgotten abou thtis request, Andi ;) I'll be modifying the directory structure for CRCs relatively soon, and I plan to do that modification at the same time so I only need a single version bump for both.... > > I wonder how this creation time is being exported currently? > > I don't think it is at all currently: So what is the point? Forensic analysis? Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 02:27:09 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 02:27:14 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from pentafluge.infradead.org (pentafluge.infradead.org [213.146.154.40]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l929R81R027851 for ; Tue, 2 Oct 2007 02:27:09 -0700 Received: from hch by pentafluge.infradead.org with local (Exim 4.63 #1 (Red Hat Linux)) id 1Icddw-0005wg-Tl; Tue, 02 Oct 2007 10:02:16 +0100 Date: Tue, 2 Oct 2007 10:02:16 +0100 From: Christoph Hellwig To: Barry Naujok Cc: "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno Message-ID: <20071002090216.GA22721@infradead.org> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.3i X-SRS-Rewrite: SMTP reverse-path rewritten from by pentafluge.infradead.org See http://www.infradead.org/rpr.html X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13217 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: hch@infradead.org Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 05:08:59PM +1000, Barry Naujok wrote: > > The attached tool allows an inode64 filesystem to be converted to inode32. > For this to work, the filesystem has to be mounted inode32 before it's run. > > I'm not sure if there is any packaging changes required. Together with the stop allocating from specific AGs patch this should be 90% towards an xfs_shrinkfs, right? From owner-xfs@oss.sgi.com Tue Oct 2 02:36:37 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 02:36:41 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l929aXwG029146 for ; Tue, 2 Oct 2007 02:36:36 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id TAA27335; Tue, 2 Oct 2007 19:36:31 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l929aUdD47392317; Tue, 2 Oct 2007 19:36:31 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l929aTNs47358461; Tue, 2 Oct 2007 19:36:29 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Tue, 2 Oct 2007 19:36:29 +1000 From: David Chinner To: Lachlan McIlroy Cc: Timothy Shimmin , Eric Sandeen , xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit Message-ID: <20071002093629.GG995458@sgi.com> References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4701A1D0.5010709@sgi.com> <4701ED51.8050706@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4701ED51.8050706@sgi.com> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13218 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 05:03:45PM +1000, Lachlan McIlroy wrote: > Yeah that about sums it up. In an attempt to prevent log replay of inodes > in cases when we shouldn't replay we also prevented log replay of inodes in > cases when we should replay. We end up with directories that refer to > inodes > that were not replayed and we read existing data off disk. That existing > data is usually previous instances of inodes. We had cases of regular files > turning into directories and inode version mismatches. The issue that started tripping this was stale inodes from a previous filesystem being detected as valid clusters of inodes. Hence inodes magically changed from what they were supposed to be and that caused all sorts of problems. FWIW, in a past life XFS was supposed to store the uuid of the filesystem in it's inodes to prevent exactly this sort of confusion, but that was considered expendable and disappeared in version 2 inodes when XFS grew 32bit link counts and project ID's. The padding is still there waiting to be used. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 02:38:31 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 02:38:34 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from pentafluge.infradead.org (pentafluge.infradead.org [213.146.154.40]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l929cQmg029694 for ; Tue, 2 Oct 2007 02:38:31 -0700 Received: from hch by pentafluge.infradead.org with local (Exim 4.63 #1 (Red Hat Linux)) id 1IceCs-0006UE-Fa; Tue, 02 Oct 2007 10:38:22 +0100 Date: Tue, 2 Oct 2007 10:38:22 +0100 From: Christoph Hellwig To: David Chinner Cc: Andi Kleen , Timothy Shimmin , Martin Steigerwald , xfs@oss.sgi.com Subject: Re: Creation time in XFS Message-ID: <20071002093822.GA24907@infradead.org> References: <200709302124.38164.Martin@lichtvoll.de> <470042DC.2040009@sgi.com> <20071002092509.GF995458@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071002092509.GF995458@sgi.com> User-Agent: Mutt/1.4.2.3i X-SRS-Rewrite: SMTP reverse-path rewritten from by pentafluge.infradead.org See http://www.infradead.org/rpr.html X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13219 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: hch@infradead.org Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 07:25:10PM +1000, David Chinner wrote: > > I don't think it is at all currently: > > So what is the point? Forensic analysis? Windows wants it, so I guess they added when they had to bump the inode version anyway in preparation of a user interface for samba. We probably should do the same for XFS when bumping the inode version for the crcs. From owner-xfs@oss.sgi.com Tue Oct 2 02:55:26 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 02:55:31 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32 autolearn=no version=3.3.0-r574664 Received: from pentafluge.infradead.org (pentafluge.infradead.org [213.146.154.40]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l929tPCS031536 for ; Tue, 2 Oct 2007 02:55:26 -0700 Received: from hch by pentafluge.infradead.org with local (Exim 4.63 #1 (Red Hat Linux)) id 1IceTN-0006do-AQ; Tue, 02 Oct 2007 10:55:25 +0100 Date: Tue, 2 Oct 2007 10:55:25 +0100 From: Christoph Hellwig To: Andi Kleen Cc: xfs@oss.sgi.com Subject: Re: [PATCH] Replace XFS bit functions with Linux functions Message-ID: <20071002095525.GA25405@infradead.org> References: <200710021010.58284.ak@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200710021010.58284.ak@suse.de> User-Agent: Mutt/1.4.2.3i X-SRS-Rewrite: SMTP reverse-path rewritten from by pentafluge.infradead.org See http://www.infradead.org/rpr.html X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13220 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: hch@infradead.org Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 10:10:58AM +0200, Andi Kleen wrote: > > XFS had some own functions to find high and low bits. > > This patch replaces them with a call to the respective Linux functions. > The semantics of the Linux functions differ a little, but i checked > all call sites that they can deal with that. I think all callers > are ok; but i added a few more asserts for the 0 case (where Linux > and old XFS differ) just to make it easy to detect mistakes. > > The resulting xfs.ko is about 500 bytes smaller on x86-64 > > This is similar to the patch Eric sent some days ago, but does > it more efficiently imho. It replaces his patch. > > I wasn't able to do a full XFS QA run over this unfortunately; but did careful > review. The patch looks like it's against mainline, so there might be some problems applying it to the xfs tree. At least some of the touched functions have changed names and maybe content aswell. > while (fields) { > - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); > + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields,64); I don't think we should add the case here but rather pass the fields varialble as an unsigned long to start with. > @@ -1428,11 +1428,11 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fi > > /* find modified range */ > > - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); > + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields, 64); > ASSERT((1LL << f) & XFS_SB_MOD_BITS); > first = xfs_sb_info[f].offset; > > - f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); > + f = (xfs_sb_field_t)fls64((__uint64_t)fields) - 1; Same here. > +/* All callers check for 0 arguments already; so no -1 handling */ > +static inline int xfs_rtlobit(unsigned long v) > +{ > + return find_first_bit(&v, 32); > +} > + > +#define XFS_RTLOBIT(w) xfs_rtlobit(w) I think just a #define XFS_RTLOBIT(w) find_first_bit(&(w), 32) should be fine. Or make it just an inline, but not both a macro an an inline. From owner-xfs@oss.sgi.com Tue Oct 2 03:02:10 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 03:02:14 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.4 required=5.0 tests=BAYES_99,J_CHICKENPOX_33, J_CHICKENPOX_72,J_CHICKENPOX_73,RDNS_NONE autolearn=no version=3.3.0-r574664 Received: from idaegu.co.kr ([211.224.129.115]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92A27BK032684 for ; Tue, 2 Oct 2007 03:02:09 -0700 Received: from idaegu.co.kr (localhost.localdomain [127.0.0.1]) by idaegu.co.kr (8.12.8/8.12.8) with ESMTP id l9281nTt019981 for ; Tue, 2 Oct 2007 17:01:49 +0900 Received: (from nobody@localhost) by idaegu.co.kr (8.12.8/8.12.8/Submit) id l9281mnS019977; Tue, 2 Oct 2007 17:01:48 +0900 Date: Tue, 2 Oct 2007 17:01:48 +0900 Message-Id: <200710020801.l9281mnS019977@idaegu.co.kr> To: xfs@oss.sgi.com Subject: Online Job Oppurtunity Job Code #534-ASGPD From: Kimcham Fatu Reply-To: kimcham-fatu@hotmail.com MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13221 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: Gallery@art.com Precedence: bulk X-list: xfs Dear Employee, We have a job offer available for you in response to your initial request in the Job search directory.We are a company based in ASIA; we have been receiving orders from NORTHERN AMERICA, AUSTRALIA, UNITED KINGDOM AND EUROPE which we have not been able to process competently since we do not have a payment receiving personnel in these Areas.We have decided to recruit payment officers online hence we will need a representative to process our payments in these areas, this is due to delays in processing payments from these areas in ASIA. WHAT WE DO OFFER; Flexible program:Two hours / day at your choice, daytime and evening time Work at home: Checking e-mail and going to the bank Part time Professional contact team with very good support and communication skills. Other highlights:No selling involved, no kit to buy, we won't charge you anything. Monthly salary: You would be paid 500GBP every two weeks to a total of 1000GBP per month. Commission:15% of every cheque that is cashed instantly "cash in hand" or "cash on counter" is what you get from the total cashed amount. EXAMPLE;If you receive a check of 1,000.0OGBP your net income is 150.00GBP, our company supports any fees. You will process at least 2-3 orders per day and you will earn more than 300.00 GBP cash in hand each day. REMEMBER: THE MORE ORDERS YOU PROCESS- AT A FASTER RATE THE HIGHER YOU STAND TO EARN DAILY. What we ask:Two free hours daily not including weekends, Internet access for sending and receiving e-mails, available means of cashing cheque at the nearest cashing point. IMPORTANT: 1) You must be over 18 years of age. 2) U.S, UK, CANADIAN OR AUSTRALIAN CITIZENSHIP. If you meet these conditions and wish to apply send this reference position number #534-ASGPD and please contact our recruiting manager through this e-mail address ( kimcham-fatu@hotmail.com ) to receive a Representative Contract agreement. Please ensure you add your Full Details..... Surname, First Name, Middle Name, Contact Address,Or Mailing Address ,Post Code Mobile Phone Number / Fax numbers for quick delivery of payments. Present Occupation, Age, We will never ask you for anything more then that, no bank names, No bank account number, routing number, credit card, passwords, ssn # etc.If anyone asks for those on our behalf please do not give out this info.This is to ensure your security and non involvement in cases of Identity Theft. Thank You for taking your time to read our offer. My Regards, Kimcham Fatu ( Recruiting Manager ) Kimcham Fatu for Gallery Art ltd. B.21/F., Jianjing Building, 1399 Beijing Rd W, Shanghai Shanghai-200040 China. TEL: 817-776-5550 FAX: 817-776-5550 (c) Copyright Reserved 2007 From owner-xfs@oss.sgi.com Tue Oct 2 03:25:11 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 03:25:15 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-6.6 required=5.0 tests=AWL,BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.0-r574664 Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92APAu5003667 for ; Tue, 2 Oct 2007 03:25:11 -0700 Received: from Relay2.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 3F62622D70; Tue, 2 Oct 2007 12:25:10 +0200 (CEST) From: Andi Kleen Organization: SUSE Linux Products GmbH, Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg) To: Christoph Hellwig Subject: Re: [PATCH] Replace XFS bit functions with Linux functions Date: Tue, 2 Oct 2007 12:11:47 +0200 User-Agent: KMail/1.9.6 Cc: xfs@oss.sgi.com References: <200710021010.58284.ak@suse.de> <20071002095525.GA25405@infradead.org> In-Reply-To: <20071002095525.GA25405@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710021211.47718.ak@suse.de> X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13222 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: ak@suse.de Precedence: bulk X-list: xfs > > > while (fields) { > > - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); > > + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields,64); > > I don't think we should add the case here but rather pass the fields > varialble as an unsigned long to start with. I actually did this first, but ran into some issues I unfortunately can't remember right now so I reverted it to the cast. > > > @@ -1428,11 +1428,11 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fi > > > > /* find modified range */ > > > > - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); > > + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields, 64); > > ASSERT((1LL << f) & XFS_SB_MOD_BITS); > > first = xfs_sb_info[f].offset; > > > > - f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); > > + f = (xfs_sb_field_t)fls64((__uint64_t)fields) - 1; > > Same here. The casts here are actually not needed, but I was too lazy to remove them (they also don't hurt) > > > +/* All callers check for 0 arguments already; so no -1 handling */ > > +static inline int xfs_rtlobit(unsigned long v) > > +{ > > + return find_first_bit(&v, 32); > > +} > > + > > +#define XFS_RTLOBIT(w) xfs_rtlobit(w) > > I think just a > > #define XFS_RTLOBIT(w) find_first_bit(&(w), 32) > > should be fine. Nope -- not all callers pass sufficiently aligned unsigned longs as ffb requires. > Or make it just an inline, but not both a macro an > an inline. That should be probably done as a separate patch because there are much more macros that need this treatment in the rt code. -Andi From owner-xfs@oss.sgi.com Tue Oct 2 03:39:43 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 03:39:45 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.1 required=5.0 tests=BAYES_99,J_CHICKENPOX_53 autolearn=no version=3.3.0-r574664 Received: from fmmailgate04.web.de (fmmailgate04.web.de [217.72.192.242]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92AdfdR005603 for ; Tue, 2 Oct 2007 03:39:43 -0700 Received: from web.de by fmmailgate04.web.de (Postfix) with SMTP id 5F9AF343BAFD; Tue, 2 Oct 2007 12:11:42 +0200 (CEST) Received: from [85.49.237.239] by freemailng2501.web.de with HTTP; Tue, 02 Oct 2007 12:11:41 +0200 Date: Tue, 02 Oct 2007 12:11:41 +0200 Message-Id: <261780501@web.de> MIME-Version: 1.0 From: cvx cxvbb <1999ses@web.de> To: 1999ses@web.de Subject: PROMOTIONS!! Precedence: fm-user Organization: http://freemail.web.de/ X-Provags-Id: V01U2FsdGVkX1+P65MupExZxWmvvEzx/0imBn4xfKi/q/7g7uiOUvEZEYvrB s8k8qmFZWJFCKPZdKNn83NNporFgei+To5XmeajbF62wwgWD10= Content-Type: text/plain; charset=iso-8859-15 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4452/Mon Oct 1 22:03:17 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13223 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: 1999ses@web.de Precedence: bulk X-list: xfs PROMOTIONS!! This is to inform you that your Email Address attached to a has won the prize Sum of Four Hundred and Fifty Thousand Euros (450,000.00) Euros, in an Email Loteria Shop Award program held in the-Espaia.Do contact the Details below for your claim agency Contact PROMOTION DATE: 1 October 2007 REFERENCE NUMBER:NES/0601/44/07 BATCH NUMBER:16/612/ACS LUCKY NO:10/23/44/72/80 Your full Names: Telephone: Chalet Financial Services Mr.Jaime Sanchez Tel:+34692473683 Contact Email:Chaletsp2@yahoo.es Congratulations! Please note that you will be required to pay for the issuance of your legal back up and legalization of certificate of deposit document in court,All winnings must be claimed not later than 14 days the age of 18 is automatically, Sincerely yours, Mrs.Moreno Plaza Winning Co -ordinator _________________________________________________________________________ In 5 Schritten zur eigenen Homepage. Jetzt Domain sichern und gestalten! Nur 3,99 EUR/Monat! http://www.maildomain.web.de/?mc=02214 From owner-xfs@oss.sgi.com Tue Oct 2 05:59:46 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 05:59:52 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l92Cxess004963 for ; Tue, 2 Oct 2007 05:59:45 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id WAA01174; Tue, 2 Oct 2007 22:59:30 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l92CxRdD47634188; Tue, 2 Oct 2007 22:59:29 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l92CxNs347522970; Tue, 2 Oct 2007 22:59:23 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Tue, 2 Oct 2007 22:59:23 +1000 From: David Chinner To: Andi Kleen Cc: xfs@oss.sgi.com, cattelan@thebarn.com Subject: Re: [PATCH] Replace XFS bit functions with Linux functions Message-ID: <20071002125923.GH995458@sgi.com> References: <200710021010.58284.ak@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200710021010.58284.ak@suse.de> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4454/Tue Oct 2 04:59:34 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13224 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 10:10:58AM +0200, Andi Kleen wrote: > XFS had some own functions to find high and low bits. > > This patch replaces them with a call to the respective Linux functions. > The semantics of the Linux functions differ a little, but i checked > all call sites that they can deal with that. I think all callers > are ok; but i added a few more asserts for the 0 case (where Linux > and old XFS differ) just to make it easy to detect mistakes. > > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_iget.c > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_iget.c > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_iget.c > @@ -55,8 +55,7 @@ xfs_ihash_init(xfs_mount_t *mp) > if (!mp->m_ihsize) { > icount = mp->m_maxicount ? mp->m_maxicount : > (mp->m_sb.sb_dblocks << mp->m_sb.sb_inopblog); > - mp->m_ihsize = 1 << max_t(uint, 8, > - (xfs_highbit64(icount) + 1) / 2); > + mp->m_ihsize = 1 << max_t(uint, 8, fls64(icount) / 2); > mp->m_ihsize = min_t(uint, mp->m_ihsize, > (64 * NBPP) / sizeof(xfs_ihash_t)); > } This is well out of date with where the XFS tree is now. You might want to rebase this on the XFS CVS code or the master branch of the XFS git tree... So the conversion is: xfs_highbit64 -> fls64() - 1 xfs_lowbit64(v) -> find_first_bit(&v, 64) xfs_highbit32 -> fls - 1 xfs_lowbit32(v) -> find_first_bit(&v, 32) and touching lots of places where the xfs functions are used. One thing that is notable here is that the XFS code returns -1 if no bits are set. fls/fls64 return 0 in the same case, so the magic "- 1" will make them behave the same. however, it appears that find_first_bit() will return the number of bits searched. That might leave us with som nasty, non-obvious error cases.... Also, I don't really like the fact it requires sprinkling magic "- 1" adjustments to the return value of the replacement functions. If that is the way the functions work and relate to the XFS bitmaps, then that *should* be hidden away in a macro/static inline so it doesn't get screwed up in future. Hence I'd prefer to keep the xfs wrappers whilst replacing the guts of them with the more efficient generic code. I'm not too concerned, though, but Russell might want to comment here... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 06:35:31 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 06:35:45 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-6.6 required=5.0 tests=AWL,BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.0-r574664 Received: from mx2.suse.de (ns2.suse.de [195.135.220.15]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92DZS2a010150 for ; Tue, 2 Oct 2007 06:35:31 -0700 Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 33BD622CEC; Tue, 2 Oct 2007 15:35:27 +0200 (CEST) From: Andi Kleen Organization: SUSE Linux Products GmbH, Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg) To: David Chinner Subject: Re: [PATCH] Replace XFS bit functions with Linux functions Date: Tue, 2 Oct 2007 15:35:14 +0200 User-Agent: KMail/1.9.6 Cc: xfs@oss.sgi.com, cattelan@thebarn.com References: <200710021010.58284.ak@suse.de> <20071002125923.GH995458@sgi.com> In-Reply-To: <20071002125923.GH995458@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710021535.14973.ak@suse.de> X-Virus-Scanned: ClamAV 0.91.2/4454/Tue Oct 2 04:59:34 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13225 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: ak@suse.de Precedence: bulk X-list: xfs > One thing that is notable here is that the XFS code returns > -1 if no bits are set. fls/fls64 return 0 in the same case, so > the magic "- 1" will make them behave the same. however, it > appears that find_first_bit() will return the number of bits > searched. That might leave us with som nasty, non-obvious error > cases.... See the changelog: The semantics of the Linux functions differ a little, but i checked all call sites that they can deal with that. > > Also, I don't really like the fact it requires sprinkling magic "- > 1" adjustments to the return value of the replacement functions. If > that is the way the functions work and relate to the XFS bitmaps, Not all callers use them as bitmap indexes, some also use them as true log2s. I also eliminated some + 1s. Whatever you do it's not the same for all. -Andi From owner-xfs@oss.sgi.com Tue Oct 2 09:37:27 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 09:37:31 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_66,T_STOX_BOUND_090909_B autolearn=no version=3.3.0-r574664 Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92GbNP6005272 for ; Tue, 2 Oct 2007 09:37:26 -0700 Received: from [IPv6:::1] (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id l92GbLgP018907; Tue, 2 Oct 2007 11:37:22 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <470273C1.60300@thebarn.com> Date: Tue, 02 Oct 2007 11:37:21 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.5 (X11/20070813) MIME-Version: 1.0 To: Andi Kleen CC: xfs@oss.sgi.com Subject: Re: [PATCH] Replace XFS bit functions with Linux functions References: <200710021010.58284.ak@suse.de> In-Reply-To: <200710021010.58284.ak@suse.de> Content-Type: multipart/mixed; boundary="------------030900060305090908070809" X-Virus-Scanned: ClamAV 0.91.2/4455/Tue Oct 2 06:49:51 2007 on oss.sgi.com X-Virus-Scanned: ClamAV 0.91.1/4456/Tue Oct 2 10:11:59 2007 on slurp.thebarn.com X-Virus-Status: Clean X-archive-position: 13226 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: cattelan@thebarn.com Precedence: bulk X-list: xfs This is a multi-part message in MIME format. --------------030900060305090908070809 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Andi Kleen wrote: > XFS had some own functions to find high and low bits. > > This patch replaces them with a call to the respective Linux functions. > The semantics of the Linux functions differ a little, but i checked > all call sites that they can deal with that. I think all callers > are ok; but i added a few more asserts for the 0 case (where Linux > and old XFS differ) just to make it easy to detect mistakes. > > The resulting xfs.ko is about 500 bytes smaller on x86-64 > > This is similar to the patch Eric sent some days ago, but does > it more efficiently imho. It replaces his patch. > > I wasn't able to do a full XFS QA run over this unfortunately; but did careful > review. > > I would like to keep thing abstracted enough such that it is won't be to difficult keep to map to the FreeBSD bit functions. I have not looked closely at the freebsd functions to see how close they are semantically. > Signed-off-by: Andi Kleen > > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.c > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_bit.c > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.c > @@ -22,112 +22,9 @@ > #include "xfs_buf_item.h" > > /* > - * XFS bit manipulation routines, used in non-realtime code. > + * XFS bit manipulation routines > */ > > -#ifndef HAVE_ARCH_HIGHBIT > -/* > - * Index of high bit number in byte, -1 for none set, 0..7 otherwise. > - */ > -static const char xfs_highbit[256] = { > - -1, 0, 1, 1, 2, 2, 2, 2, /* 00 .. 07 */ > - 3, 3, 3, 3, 3, 3, 3, 3, /* 08 .. 0f */ > - 4, 4, 4, 4, 4, 4, 4, 4, /* 10 .. 17 */ > - 4, 4, 4, 4, 4, 4, 4, 4, /* 18 .. 1f */ > - 5, 5, 5, 5, 5, 5, 5, 5, /* 20 .. 27 */ > - 5, 5, 5, 5, 5, 5, 5, 5, /* 28 .. 2f */ > - 5, 5, 5, 5, 5, 5, 5, 5, /* 30 .. 37 */ > - 5, 5, 5, 5, 5, 5, 5, 5, /* 38 .. 3f */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 40 .. 47 */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 48 .. 4f */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 50 .. 57 */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 58 .. 5f */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 60 .. 67 */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 68 .. 6f */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 70 .. 77 */ > - 6, 6, 6, 6, 6, 6, 6, 6, /* 78 .. 7f */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* 80 .. 87 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* 88 .. 8f */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* 90 .. 97 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* 98 .. 9f */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* a0 .. a7 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* a8 .. af */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* b0 .. b7 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* b8 .. bf */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* c0 .. c7 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* c8 .. cf */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* d0 .. d7 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* d8 .. df */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* e0 .. e7 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* e8 .. ef */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* f0 .. f7 */ > - 7, 7, 7, 7, 7, 7, 7, 7, /* f8 .. ff */ > -}; > -#endif > - > -/* > - * xfs_highbit32: get high bit set out of 32-bit argument, -1 if none set. > - */ > -inline int > -xfs_highbit32( > - __uint32_t v) > -{ > -#ifdef HAVE_ARCH_HIGHBIT > - return highbit32(v); > -#else > - int i; > - > - if (v & 0xffff0000) > - if (v & 0xff000000) > - i = 24; > - else > - i = 16; > - else if (v & 0x0000ffff) > - if (v & 0x0000ff00) > - i = 8; > - else > - i = 0; > - else > - return -1; > - return i + xfs_highbit[(v >> i) & 0xff]; > -#endif > -} > - > -/* > - * xfs_lowbit64: get low bit set out of 64-bit argument, -1 if none set. > - */ > -int > -xfs_lowbit64( > - __uint64_t v) > -{ > - __uint32_t w = (__uint32_t)v; > - int n = 0; > - > - if (w) { /* lower bits */ > - n = ffs(w); > - } else { /* upper bits */ > - w = (__uint32_t)(v >> 32); > - if (w && (n = ffs(w))) > - n += 32; > - } > - return n - 1; > -} > - > -/* > - * xfs_highbit64: get high bit set out of 64-bit argument, -1 if none set. > - */ > -int > -xfs_highbit64( > - __uint64_t v) > -{ > - __uint32_t h = (__uint32_t)(v >> 32); > - > - if (h) > - return xfs_highbit32(h) + 32; > - return xfs_highbit32((__uint32_t)v); > -} > - > - > /* > * Return whether bitmap is empty. > * Size is number of words in the bitmap, which is padded to word boundary > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.h > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_bit.h > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_bit.h > @@ -46,15 +46,6 @@ static inline __uint64_t xfs_mask64lo(in > return ((__uint64_t)1 << (n)) - 1; > } > > -/* Get high bit set out of 32-bit argument, -1 if none set */ > -extern int xfs_highbit32(__uint32_t v); > - > -/* Get low bit set out of 64-bit argument, -1 if none set */ > -extern int xfs_lowbit64(__uint64_t v); > - > -/* Get high bit set out of 64-bit argument, -1 if none set */ > -extern int xfs_highbit64(__uint64_t); > - > /* Return whether bitmap is empty (1 == empty) */ > extern int xfs_bitmap_empty(uint *map, uint size); > > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_iget.c > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_iget.c > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_iget.c > @@ -55,8 +55,7 @@ xfs_ihash_init(xfs_mount_t *mp) > if (!mp->m_ihsize) { > icount = mp->m_maxicount ? mp->m_maxicount : > (mp->m_sb.sb_dblocks << mp->m_sb.sb_inopblog); > - mp->m_ihsize = 1 << max_t(uint, 8, > - (xfs_highbit64(icount) + 1) / 2); > + mp->m_ihsize = 1 << max_t(uint, 8, fls64(icount) / 2); > mp->m_ihsize = min_t(uint, mp->m_ihsize, > (64 * NBPP) / sizeof(xfs_ihash_t)); > } > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_mount.c > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_mount.c > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_mount.c > @@ -439,7 +439,7 @@ xfs_xlatesb( > mem_ptr = (xfs_caddr_t)sb; > > while (fields) { > - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); > + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields,64); > first = xfs_sb_info[f].offset; > size = xfs_sb_info[f + 1].offset - first; > > @@ -589,7 +589,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb > mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG; > mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; > mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; > - mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; > + mp->m_agno_log = fls(sbp->sb_agcount - 1); > mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; > mp->m_litino = sbp->sb_inodesize - > ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); > @@ -1428,11 +1428,11 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fi > > /* find modified range */ > > - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); > + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields, 64); > ASSERT((1LL << f) & XFS_SB_MOD_BITS); > first = xfs_sb_info[f].offset; > > - f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); > + f = (xfs_sb_field_t)fls64((__uint64_t)fields) - 1; > ASSERT((1LL << f) & XFS_SB_MOD_BITS); > last = xfs_sb_info[f + 1].offset - 1; > > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.h > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_rtalloc.h > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.h > @@ -60,13 +60,19 @@ struct xfs_trans; > #define XFS_RTMIN(a,b) ((a) < (b) ? (a) : (b)) > #define XFS_RTMAX(a,b) ((a) > (b) ? (a) : (b)) > > -#define XFS_RTLOBIT(w) xfs_lowbit32(w) > -#define XFS_RTHIBIT(w) xfs_highbit32(w) > +/* All callers check for 0 arguments already; so no -1 handling */ > +static inline int xfs_rtlobit(unsigned long v) > +{ > + return find_first_bit(&v, 32); > +} > + > +#define XFS_RTLOBIT(w) xfs_rtlobit(w) > +#define XFS_RTHIBIT(w) (fls(w) - 1) > > #if XFS_BIG_BLKNOS > -#define XFS_RTBLOCKLOG(b) xfs_highbit64(b) > +#define XFS_RTBLOCKLOG(b) (fls64(b) - 1) > #else > -#define XFS_RTBLOCKLOG(b) xfs_highbit32(b) > +#define XFS_RTBLOCKLOG(b) (fls(b) - 1) > #endif > > > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.c > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_rtalloc.c > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_rtalloc.c > @@ -73,18 +73,6 @@ STATIC int xfs_rtmodify_summary(xfs_moun > */ > > /* > - * xfs_lowbit32: get low bit set out of 32-bit argument, -1 if none set. > - */ > -STATIC int > -xfs_lowbit32( > - __uint32_t v) > -{ > - if (v) > - return ffs(v) - 1; > - return -1; > -} > - > -/* > * Allocate space to the bitmap or summary file, and zero it, for growfs. > */ > STATIC int /* error */ > @@ -444,7 +432,8 @@ xfs_rtallocate_extent_near( > } > bbno = XFS_BITTOBLOCK(mp, bno); > i = 0; > - log2len = xfs_highbit32(minlen); > + ASSERT(minlen != 0); > + log2len = fls(minlen) - 1; > /* > * Loop over all bitmap blocks (bbno + i is current block). > */ > @@ -607,11 +596,13 @@ xfs_rtallocate_extent_size( > int error; /* error value */ > int i; /* bitmap block number */ > int l; /* level number (loop control) */ > + int end; > xfs_rtblock_t n; /* next block to be tried */ > xfs_rtblock_t r; /* result block number */ > xfs_suminfo_t sum; /* summary information for extents */ > > ASSERT(minlen % prod == 0 && maxlen % prod == 0); > + ASSERT(maxlen != 0); > /* > * Loop over all the levels starting with maxlen. > * At each level, look at all the bitmap blocks, to see if there > @@ -619,7 +610,7 @@ xfs_rtallocate_extent_size( > * Note, only on the initial level can the allocation fail if > * the summary says there's an extent. > */ > - for (l = xfs_highbit32(maxlen); l < mp->m_rsumlevels; l++) { > + for (l = fls(maxlen) - 1; l < mp->m_rsumlevels; l++) { > /* > * Loop over all the bitmap blocks. > */ > @@ -669,12 +660,15 @@ xfs_rtallocate_extent_size( > *rtblock = NULLRTBLOCK; > return 0; > } > + ASSERT(maxlen != 0); > + ASSERT(minlen != 0); > /* > * Loop over sizes, from maxlen down to minlen. > * This time, when we do the allocations, allow smaller ones > * to succeed. > */ > - for (l = xfs_highbit32(maxlen); l >= xfs_highbit32(minlen); l--) { > + end = fls(minlen) - 1; > + for (l = fls(maxlen) - 1; l >= end; l--) { > /* > * Loop over all the bitmap blocks, try an allocation > * starting in that block. > @@ -1863,7 +1857,6 @@ xfs_growfs_rt( > xfs_drfsbno_t nrblocks; /* new number of realtime blocks */ > xfs_extlen_t nrbmblocks; /* new number of rt bitmap blocks */ > xfs_drtbno_t nrextents; /* new number of realtime extents */ > - uint8_t nrextslog; /* new log2 of sb_rextents */ > xfs_extlen_t nrsumblocks; /* new number of summary blocks */ > uint nrsumlevels; /* new rt summary levels */ > uint nrsumsize; /* new size of rt summary, bytes */ > @@ -1900,8 +1893,7 @@ xfs_growfs_rt( > nrextents = nrblocks; > do_div(nrextents, in->extsize); > nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize); > - nrextslog = xfs_highbit32(nrextents); > - nrsumlevels = nrextslog + 1; > + nrsumlevels = fls(nrextents); > nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks; > nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize); > nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks); > @@ -1954,7 +1946,8 @@ xfs_growfs_rt( > nsbp->sb_blocksize * nsbp->sb_rextsize); > nsbp->sb_rextents = nsbp->sb_rblocks; > do_div(nsbp->sb_rextents, nsbp->sb_rextsize); > - nsbp->sb_rextslog = xfs_highbit32(nsbp->sb_rextents); > + ASSERT(nsbp->sb_rextents != 0); > + nsbp->sb_rextslog = fls(nsbp->sb_rextents) - 1; > nrsumlevels = nmp->m_rsumlevels = nsbp->sb_rextslog + 1; > nrsumsize = > (uint)sizeof(xfs_suminfo_t) * nrsumlevels * > @@ -2317,9 +2310,10 @@ xfs_rtpick_extent( > *seqp = 0; > } > seq = *seqp; > - if ((log2 = xfs_highbit64(seq)) == -1) > + if ((log2 = fls64(seq)) == 0) > b = 0; > else { > + log2--; > resid = seq - (1ULL << log2); > b = (mp->m_sb.sb_rextents * ((resid << 1) + 1ULL)) >> > (log2 + 1); > Index: linux-2.6.23-rc8-misc/fs/xfs/xfs_ialloc.h > =================================================================== > --- linux-2.6.23-rc8-misc.orig/fs/xfs/xfs_ialloc.h > +++ linux-2.6.23-rc8-misc/fs/xfs/xfs_ialloc.h > @@ -57,10 +57,10 @@ xfs_make_iptr(struct xfs_mount *mp, stru > #define XFS_IALLOC_FIND_FREE(fp) xfs_ialloc_find_free(fp) > static inline int xfs_ialloc_find_free(xfs_inofree_t *fp) > { > - return xfs_lowbit64(*fp); > + unsigned long v = *fp; /* Guarantee alignment */ > + return find_first_bit(&v, 64); > } > > - > #ifdef __KERNEL__ > /* > * Allocate an inode on disk. > > --------------030900060305090908070809 Content-Type: text/x-vcard; charset=utf-8; name="cattelan.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cattelan.vcf" begin:vcard fn:Russell Cattelan n:Cattelan;Russell email;internet:cattelan@thebarn.com x-mozilla-html:FALSE version:2.1 end:vcard --------------030900060305090908070809-- From owner-xfs@oss.sgi.com Tue Oct 2 09:41:50 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 09:41:54 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00, T_STOX_BOUND_090909_B autolearn=ham version=3.3.0-r574664 Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l92GfmoP006083 for ; Tue, 2 Oct 2007 09:41:50 -0700 Received: from [IPv6:::1] (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id l92GfZ6I019009; Tue, 2 Oct 2007 11:41:36 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <470274BF.7070702@thebarn.com> Date: Tue, 02 Oct 2007 11:41:35 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.5 (X11/20070813) MIME-Version: 1.0 To: David Chinner CC: Christoph Hellwig , Barry Naujok , "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno References: <20071002090216.GA22721@infradead.org> <20071002091951.GE995458@sgi.com> In-Reply-To: <20071002091951.GE995458@sgi.com> Content-Type: multipart/mixed; boundary="------------080904050700000906050104" X-Virus-Scanned: ClamAV 0.91.2/4455/Tue Oct 2 06:49:51 2007 on oss.sgi.com X-Virus-Scanned: ClamAV 0.91.1/4456/Tue Oct 2 10:11:59 2007 on slurp.thebarn.com X-Virus-Status: Clean X-archive-position: 13227 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: cattelan@thebarn.com Precedence: bulk X-list: xfs This is a multi-part message in MIME format. --------------080904050700000906050104 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit David Chinner wrote: > On Tue, Oct 02, 2007 at 10:02:16AM +0100, Christoph Hellwig wrote: > >> On Tue, Oct 02, 2007 at 05:08:59PM +1000, Barry Naujok wrote: >> >>> The attached tool allows an inode64 filesystem to be converted to inode32. >>> For this to work, the filesystem has to be mounted inode32 before it's run. >>> >>> I'm not sure if there is any packaging changes required. >>> >> Together with the stop allocating from specific AGs patch this should be >> 90% towards an xfs_shrinkfs, right? >> > > Well, this just moves the inodes - it's one piece of the puzzle. We > still need to collide xfs_fsr with xfs_reno to move the data. > > After that, we need to work out how to move the orphan metadata > blocks out of the AGs that are to be truncated off. That's not > simple.... > > After that, we need the transaction to shrink the fs. > > At that point, we'll got a "working" shrink that will allow > shrinking to only 50% of the original size because the log will > get in the way. To fix that, we'll need to implement transactions > to move the log... > If we do that could be move to an inode based log? Keep it contagious so recovery won't have to parse up the file system to find the log. The normal running case should be easier to deal with if the log was just a file? > Cheers, > > Dave. > --------------080904050700000906050104 Content-Type: text/x-vcard; charset=utf-8; name="cattelan.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cattelan.vcf" begin:vcard fn:Russell Cattelan n:Cattelan;Russell email;internet:cattelan@thebarn.com x-mozilla-html:FALSE version:2.1 end:vcard --------------080904050700000906050104-- From owner-xfs@oss.sgi.com Tue Oct 2 14:32:09 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 14:32:13 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l92LW4xX012421 for ; Tue, 2 Oct 2007 14:32:07 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id HAA14228; Wed, 3 Oct 2007 07:31:59 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l92LVudD48430379; Wed, 3 Oct 2007 07:31:57 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l92LVrH648460231; Wed, 3 Oct 2007 07:31:53 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Wed, 3 Oct 2007 07:31:53 +1000 From: David Chinner To: Christoph Hellwig Cc: David Chinner , Andi Kleen , Timothy Shimmin , Martin Steigerwald , xfs@oss.sgi.com Subject: Re: Creation time in XFS Message-ID: <20071002213153.GI995458@sgi.com> References: <200709302124.38164.Martin@lichtvoll.de> <470042DC.2040009@sgi.com> <20071002092509.GF995458@sgi.com> <20071002093822.GA24907@infradead.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20071002093822.GA24907@infradead.org> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4456/Tue Oct 2 08:11:59 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13228 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 10:38:22AM +0100, Christoph Hellwig wrote: > On Tue, Oct 02, 2007 at 07:25:10PM +1000, David Chinner wrote: > > > I don't think it is at all currently: > > > > So what is the point? Forensic analysis? > > Windows wants it, so I guess they added when they had to bump the inode > version anyway in preparation of a user interface for samba. Can you point me to whatever list this was discussed on? This is exactly the sort of stuff that needs to be discussed on -fsdevel. > We probably > should do the same for XFS when bumping the inode version for the crcs. Perhaps. I don't really like the idea of adding unused fields to the on disk structure just in case it is needed in the future.... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 16:23:20 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 16:23:24 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l92NNH9d031791 for ; Tue, 2 Oct 2007 16:23:19 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id JAA16616; Wed, 3 Oct 2007 09:23:10 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l92NN8dD48252375; Wed, 3 Oct 2007 09:23:08 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l92NN5KF48445845; Wed, 3 Oct 2007 09:23:05 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Wed, 3 Oct 2007 09:23:05 +1000 From: David Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com Subject: Re: sync_blockdev in xfs_flush_device_work Message-ID: <20071002232304.GG23367404@sgi.com> References: <20070929110921.GA2466@lst.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20070929110921.GA2466@lst.de> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4456/Tue Oct 2 08:11:59 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13229 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Sat, Sep 29, 2007 at 01:09:21PM +0200, Christoph Hellwig wrote: > How is the sync_blockdev in the ENOSP path going to help it? It only > syncs the block device mapping which XFS doesn't use it at all. Not really sure - it's probably a left over from when XFs was using it, but still that makes no difference to ENOSPC flushing.. I think we can kill it... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 16:41:46 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 16:41:49 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l92NffT6001821 for ; Tue, 2 Oct 2007 16:41:45 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id JAA17129; Wed, 3 Oct 2007 09:41:31 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l92NfSdD47350592; Wed, 3 Oct 2007 09:41:30 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l92NfR8H48501563; Wed, 3 Oct 2007 09:41:27 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Wed, 3 Oct 2007 09:41:27 +1000 From: David Chinner To: Russell Cattelan Cc: David Chinner , Christoph Hellwig , Barry Naujok , "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno Message-ID: <20071002234126.GH23367404@sgi.com> References: <20071002090216.GA22721@infradead.org> <20071002091951.GE995458@sgi.com> <470274BF.7070702@thebarn.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <470274BF.7070702@thebarn.com> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4456/Tue Oct 2 08:11:59 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13230 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Tue, Oct 02, 2007 at 11:41:35AM -0500, Russell Cattelan wrote: > >At that point, we'll got a "working" shrink that will allow > >shrinking to only 50% of the original size because the log will > >get in the way. To fix that, we'll need to implement transactions > >to move the log... > > If we do that could be move to an inode based log? What do we gain from doing that? (I'm a bit slow today) > Keep it contagious so recovery won't have to parse > up the file system to find the log. I'm worried by those contagious logs. What do you catch from them? :) > The normal running case should be easier to deal with if > the log was just a file? I don't see how it changes anything - we address the log directly by block number and device... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 18:01:24 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 18:01:27 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l9311Kh2011198 for ; Tue, 2 Oct 2007 18:01:22 -0700 Received: from pc-bnaujok.melbourne.sgi.com (pc-bnaujok.melbourne.sgi.com [134.14.55.58]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA18770; Wed, 3 Oct 2007 11:01:05 +1000 Date: Wed, 03 Oct 2007 11:05:05 +1000 To: "David Chinner" , "Christoph Hellwig" Subject: Re: REVIEW: xfs_reno From: "Barry Naujok" Organization: SGI Cc: "xfs@oss.sgi.com" , xfs-dev Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15 MIME-Version: 1.0 References: <20071002090216.GA22721@infradead.org> <20071002091951.GE995458@sgi.com> Content-Transfer-Encoding: 7bit Message-ID: In-Reply-To: <20071002091951.GE995458@sgi.com> User-Agent: Opera Mail/9.10 (Win32) X-Virus-Scanned: ClamAV 0.91.2/4456/Tue Oct 2 08:11:59 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13231 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: bnaujok@sgi.com Precedence: bulk X-list: xfs On Tue, 02 Oct 2007 19:19:51 +1000, David Chinner wrote: > On Tue, Oct 02, 2007 at 10:02:16AM +0100, Christoph Hellwig wrote: >> On Tue, Oct 02, 2007 at 05:08:59PM +1000, Barry Naujok wrote: >> > >> > The attached tool allows an inode64 filesystem to be converted to >> inode32. >> > For this to work, the filesystem has to be mounted inode32 before >> it's run. >> > >> > I'm not sure if there is any packaging changes required. >> >> Together with the stop allocating from specific AGs patch this should be >> 90% towards an xfs_shrinkfs, right? > > Well, this just moves the inodes - it's one piece of the puzzle. We > still need to collide xfs_fsr with xfs_reno to move the data. > > After that, we need to work out how to move the orphan metadata > blocks out of the AGs that are to be truncated off. That's not > simple.... I believe xfs_bmap on all inodes can reveal extended attributes and directory data in extra AGs. Copying those like xfs_reno does with "blocked" AGs should perform the desired metadata moving. > After that, we need the transaction to shrink the fs. > > At that point, we'll got a "working" shrink that will allow > shrinking to only 50% of the original size because the log will > get in the way. To fix that, we'll need to implement transactions > to move the log... > > Cheers, > > Dave. From owner-xfs@oss.sgi.com Tue Oct 2 18:31:13 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 18:31:15 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_51 autolearn=no version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l931V4i0014599 for ; Tue, 2 Oct 2007 18:31:11 -0700 Received: from timothy-shimmins-power-mac-g5.local (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA19499; Wed, 3 Oct 2007 11:30:53 +1000 Message-ID: <4702F0CD.1070300@sgi.com> Date: Wed, 03 Oct 2007 11:30:53 +1000 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: David Chinner CC: Christoph Hellwig , Barry Naujok , "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno References: <20071002090216.GA22721@infradead.org> <20071002091951.GE995458@sgi.com> In-Reply-To: <20071002091951.GE995458@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4456/Tue Oct 2 08:11:59 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13232 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: tes@sgi.com Precedence: bulk X-list: xfs David Chinner wrote: > At that point, we'll got a "working" shrink that will allow > shrinking to only 50% of the original size because the log will > get in the way. To fix that, we'll need to implement transactions > to move the log... > Moving the log sounds pretty tricky. Either we'd need to clean out the log (a la freeze) or copy the active part (tail->head) to the new location and zero out the rest of the new log space (or may even need to write sectors with previous cycle#s at the start of each sector for the rest). So how would one do that with the copying approach because we'd need to be writing in to the new log and we'd need the log pointer in the superblock to be logged somewhere ughhhh. I think a type of freezing may be the way to go. The trouble is we need to point the sb to the new log and the only place to log that is in the old log. So I guess before unfreezing you write the sb logptr change using the old log and then after the unfreeze, everything uses the new log. If you die before the sb change to disk then on mount you replay the sb change using the old log and then start writing to the new log. If you die before writing the sb change in the old log then you are stuck. You need this log change and freespace change (for making room for the log) in a transaction together and probably with other stuff. Okay, I'm getting lost :) --Tim From owner-xfs@oss.sgi.com Tue Oct 2 18:49:25 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 18:49:29 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l931nLTg016868 for ; Tue, 2 Oct 2007 18:49:24 -0700 Received: from timothy-shimmins-power-mac-g5.local (boing.melbourne.sgi.com [134.14.55.141]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id LAA20001; Wed, 3 Oct 2007 11:49:11 +1000 Message-ID: <4702F517.3040502@sgi.com> Date: Wed, 03 Oct 2007 11:49:11 +1000 From: Timothy Shimmin User-Agent: Thunderbird 2.0.0.6 (Macintosh/20070728) MIME-Version: 1.0 To: Justin Piszcz CC: Lachlan McIlroy , Eric Sandeen , xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4701A1D0.5010709@sgi.com> <4701ED51.8050706@sgi.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV 0.91.2/4456/Tue Oct 2 08:11:59 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13233 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: tes@sgi.com Precedence: bulk X-list: xfs Hi Justin, Justin Piszcz wrote: > > > On Tue, 2 Oct 2007, Lachlan McIlroy wrote: > >> Yeah that about sums it up. In an attempt to prevent log replay of >> inodes >> in cases when we shouldn't replay we also prevented log replay of >> inodes in >> cases when we should replay. We end up with directories that refer to >> inodes >> that were not replayed and we read existing data off disk. That existing >> data is usually previous instances of inodes. We had cases of regular >> files >> turning into directories and inode version mismatches. >> >> Lachlan >> > In 2.6.23-rc8? > The bad change went into rc7 and was still there in rc8. It was backed out for rc9. --Tim From owner-xfs@oss.sgi.com Tue Oct 2 21:58:20 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 21:58:25 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l934wFht008537 for ; Tue, 2 Oct 2007 21:58:18 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA23805; Wed, 3 Oct 2007 14:58:07 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l934w6dD48633630; Wed, 3 Oct 2007 14:58:06 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l934w4tA48737508; Wed, 3 Oct 2007 14:58:04 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Wed, 3 Oct 2007 14:58:04 +1000 From: David Chinner To: Barry Naujok Cc: David Chinner , Christoph Hellwig , "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno Message-ID: <20071003045804.GO23367404@sgi.com> References: <20071002090216.GA22721@infradead.org> <20071002091951.GE995458@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4457/Tue Oct 2 21:10:00 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13234 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Wed, Oct 03, 2007 at 11:05:05AM +1000, Barry Naujok wrote: > On Tue, 02 Oct 2007 19:19:51 +1000, David Chinner wrote: > > >On Tue, Oct 02, 2007 at 10:02:16AM +0100, Christoph Hellwig wrote: > >>On Tue, Oct 02, 2007 at 05:08:59PM +1000, Barry Naujok wrote: > >>> > >>> The attached tool allows an inode64 filesystem to be converted to > >>inode32. > >>> For this to work, the filesystem has to be mounted inode32 before > >>it's run. > >>> > >>> I'm not sure if there is any packaging changes required. > >> > >>Together with the stop allocating from specific AGs patch this should be > >>90% towards an xfs_shrinkfs, right? > > > >Well, this just moves the inodes - it's one piece of the puzzle. We > >still need to collide xfs_fsr with xfs_reno to move the data. > > > >After that, we need to work out how to move the orphan metadata > >blocks out of the AGs that are to be truncated off. That's not > >simple.... > > I believe xfs_bmap on all inodes can reveal extended attributes and > directory data in extra AGs. Copying those like xfs_reno does with > "blocked" AGs should perform the desired metadata moving. Sure. But I'm thinking of metadata like the blocks in an extent btree that indexes the data or attribute fork of an inode. I don't think xfs_bmap can tell us where those blocks are, and they could be anywhere on the filesystem... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Tue Oct 2 22:50:24 2007 Received: with ECARTIS (v1.0.0; list xfs); Tue, 02 Oct 2007 22:50:28 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_51 autolearn=no version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l935oLrR014888 for ; Tue, 2 Oct 2007 22:50:23 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA24867; Wed, 3 Oct 2007 15:50:13 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l935oCdD48668758; Wed, 3 Oct 2007 15:50:12 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l935oB5R48481857; Wed, 3 Oct 2007 15:50:11 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Wed, 3 Oct 2007 15:50:11 +1000 From: David Chinner To: Timothy Shimmin Cc: David Chinner , Christoph Hellwig , Barry Naujok , "xfs@oss.sgi.com" , xfs-dev Subject: Re: REVIEW: xfs_reno Message-ID: <20071003055011.GP23367404@sgi.com> References: <20071002090216.GA22721@infradead.org> <20071002091951.GE995458@sgi.com> <4702F0CD.1070300@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4702F0CD.1070300@sgi.com> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4457/Tue Oct 2 21:10:00 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13235 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Wed, Oct 03, 2007 at 11:30:53AM +1000, Timothy Shimmin wrote: > David Chinner wrote: > >At that point, we'll got a "working" shrink that will allow > >shrinking to only 50% of the original size because the log will > >get in the way. To fix that, we'll need to implement transactions > >to move the log... > > > Moving the log sounds pretty tricky. > > Either we'd need to clean out the log (a la freeze) or > copy the active part (tail->head) to the new location and zero out the rest > of > the new log space (or may even need to write sectors with > previous cycle#s at the start of each sector for the rest). > So how would one do that with the copying approach because > we'd need to be writing in to the new log and we'd need the log > pointer in the superblock to be logged somewhere ughhhh. > I think a type of freezing may be the way to go. Yes. > The trouble is we need to point the sb to the new log and the > only place to log that is in the old log. Sure. > So I guess before unfreezing you write the sb logptr change > using the old log and then after the unfreeze, everything uses the new log. Yes. > If you die before the sb change to disk then on mount you replay the sb > change > using the old log and then start writing to the new log. Yes. > If you die before > writing the > sb change in the old log then you are stuck. No, the log swap never occurred. These would be sync transactions, so if it never hit the disk no further transactions every occurred. Hence this doesn't really cause any problems. > You need this log change and freespace change (for making room for the log) > in a transaction together and probably with other stuff. a new log involves: freeze allocate new log space do log swap xaction sync old log free old log sync new log unfreeze Recovery is only complex in terms of freeing the new log space if we crash without the logswap transaction being on disk, or freeing the old log if we crash before that transaction hits the disk.... Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Wed Oct 3 01:11:53 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 01:11:55 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS autolearn=ham version=3.3.0-r574664 Received: from lucidpixels.com (lucidpixels.com [75.144.35.66]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l938BnJq006459 for ; Wed, 3 Oct 2007 01:11:52 -0700 Received: by lucidpixels.com (Postfix, from userid 1001) id 305561C0A76EE; Wed, 3 Oct 2007 04:11:50 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by lucidpixels.com (Postfix) with ESMTP id 2DA27400FCB4; Wed, 3 Oct 2007 04:11:50 -0400 (EDT) Date: Wed, 3 Oct 2007 04:11:50 -0400 (EDT) From: Justin Piszcz X-X-Sender: jpiszcz@p34.internal.lan To: Timothy Shimmin cc: Lachlan McIlroy , Eric Sandeen , xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit In-Reply-To: <4702F517.3040502@sgi.com> Message-ID: References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4701A1D0.5010709@sgi.com> <4701ED51.8050706@sgi.com> <4702F517.3040502@sgi.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: ClamAV 0.91.2/4459/Tue Oct 2 22:30:14 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13236 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: jpiszcz@lucidpixels.com Precedence: bulk X-list: xfs On Wed, 3 Oct 2007, Timothy Shimmin wrote: > Hi Justin, > > Justin Piszcz wrote: >> >> >> On Tue, 2 Oct 2007, Lachlan McIlroy wrote: >> >>> Yeah that about sums it up. In an attempt to prevent log replay of inodes >>> in cases when we shouldn't replay we also prevented log replay of inodes >>> in >>> cases when we should replay. We end up with directories that refer to >>> inodes >>> that were not replayed and we read existing data off disk. That existing >>> data is usually previous instances of inodes. We had cases of regular >>> files >>> turning into directories and inode version mismatches. >>> >>> Lachlan >>> >> In 2.6.23-rc8? >> > The bad change went into rc7 and was still there in rc8. > It was backed out for rc9. > > --Tim > If one with was running 2.6.23-rc8 with XFS, does that mean we should run xfs_repair on our filesystems after upgrading to -rc9? Justin. From owner-xfs@oss.sgi.com Wed Oct 3 10:58:19 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 10:58:23 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-8.6 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.0-r574664 Received: from mx1.suse.de (cantor.suse.de [195.135.220.2]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l93HwHm9023388 for ; Wed, 3 Oct 2007 10:58:19 -0700 Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 7F18E150A8; Wed, 3 Oct 2007 19:58:17 +0200 (CEST) From: Andi Kleen Organization: SUSE Linux Products GmbH, Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg) To: Russell Cattelan Subject: Re: [PATCH] Replace XFS bit functions with Linux functions Date: Wed, 3 Oct 2007 19:58:13 +0200 User-Agent: KMail/1.9.6 Cc: xfs@oss.sgi.com References: <200710021010.58284.ak@suse.de> <470273C1.60300@thebarn.com> In-Reply-To: <470273C1.60300@thebarn.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710031958.13422.ak@suse.de> X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13237 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: ak@suse.de Precedence: bulk X-list: xfs > I would like to keep thing abstracted enough such that it is won't be to > difficult keep to map to the FreeBSD bit functions. It's no different to map linux bit functions to FreeBSD than mapping XFS bit functions to FreeBSD. Besides I expect it has fls already -- that is actually a BSDism. -Andi From owner-xfs@oss.sgi.com Wed Oct 3 11:20:19 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 11:20:23 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.2 required=5.0 tests=AWL,BAYES_00, T_STOX_BOUND_090909_B autolearn=ham version=3.3.0-r574664 Received: from slurp.thebarn.com (cattelan-host202.dsl.visi.com [208.42.117.202]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l93IKHtg027754 for ; Wed, 3 Oct 2007 11:20:19 -0700 Received: from [IPv6:::1] (slurp.thebarn.com [208.42.117.201]) (authenticated bits=0) by slurp.thebarn.com (8.14.0/8.13.8) with ESMTP id l93IKFDH062694; Wed, 3 Oct 2007 13:20:16 -0500 (CDT) (envelope-from cattelan@thebarn.com) Message-ID: <4703DD5F.8080906@thebarn.com> Date: Wed, 03 Oct 2007 13:20:15 -0500 From: Russell Cattelan User-Agent: Thunderbird 2.0.0.5 (X11/20070813) MIME-Version: 1.0 To: Andi Kleen CC: xfs@oss.sgi.com Subject: Re: [PATCH] Replace XFS bit functions with Linux functions References: <200710021010.58284.ak@suse.de> <470273C1.60300@thebarn.com> <200710031958.13422.ak@suse.de> In-Reply-To: <200710031958.13422.ak@suse.de> Content-Type: multipart/mixed; boundary="------------070300080201010504070703" X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Scanned: ClamAV 0.91.1/4461/Wed Oct 3 03:50:48 2007 on slurp.thebarn.com X-Virus-Status: Clean X-archive-position: 13238 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: cattelan@thebarn.com Precedence: bulk X-list: xfs This is a multi-part message in MIME format. --------------070300080201010504070703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Andi Kleen wrote: >> I would like to keep thing abstracted enough such that it is won't be to >> difficult keep to map to the FreeBSD bit functions. >> > > It's no different to map linux bit functions to FreeBSD than mapping > XFS bit functions to FreeBSD. Besides I expect it has fls already -- > that is actually a BSDism. > > Yes but for the most part the common code does not play favorites to linux or bsd or X in terms of which platform is favored. (with some execptions). I have been working getting the freebsd xfs code based updated and I've come across calls to spin_lock that may need to redone. I need to look at the XFS code paths more to figure out which freebsd lock is needed. For the most part freebsd tries not to use mutex spin_lock (disable interrupts and spin) since it is more expensive that just mtx_lock (do not disable interrupts and spin for awhile then sleep) and unless there is a good reason to disable interrupts they try avoiding doing so. Playing favorites is kinda what has fueled this whole "ported half of irix to linux" FUD that has dogged xfs forever. So for the same reason that people complained about mapping irix calls to linux calls I don't like the argument that linux calls should just be mapped to bsd calls. And I agree with Dave the -1 adjustments are bit hard to follow and would be better encapsulated in a inline call where it can be documented. Having the xfs_ call in the common code would also allow the fbsd port to catch up with this optimization as some point vs having to back stitch the current code into common layer and eventually having to realign. > -Andi > > --------------070300080201010504070703 Content-Type: text/x-vcard; charset=utf-8; name="cattelan.vcf" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="cattelan.vcf" begin:vcard fn:Russell Cattelan n:Cattelan;Russell email;internet:cattelan@thebarn.com x-mozilla-html:FALSE version:2.1 end:vcard --------------070300080201010504070703-- From owner-xfs@oss.sgi.com Wed Oct 3 15:05:50 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 15:06:02 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,J_CHICKENPOX_13, J_CHICKENPOX_16,J_CHICKENPOX_22,J_CHICKENPOX_43,J_CHICKENPOX_44, J_CHICKENPOX_61,SPF_HELO_PASS autolearn=no version=3.3.0-r574664 Received: from ciao.gmane.org (main.gmane.org [80.91.229.2]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l93M5k8h027103 for ; Wed, 3 Oct 2007 15:05:47 -0700 Received: from root by ciao.gmane.org with local (Exim 4.43) id 1IdC6U-0008SI-Bm for linux-xfs@oss.sgi.com; Wed, 03 Oct 2007 21:50:02 +0000 Received: from host-84-220-161-31.cust-adsl.tiscali.it ([84.220.161.31]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 03 Oct 2007 21:50:02 +0000 Received: from alessandro.bono by host-84-220-161-31.cust-adsl.tiscali.it with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 03 Oct 2007 21:50:02 +0000 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Alessandro Bono Subject: 2.6.23-rc9-git1 hang with XFS Date: Wed, 03 Oct 2007 23:03:29 +0200 Lines: 5652 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="nextPart1831028.3B4dx51t4S" Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@sea.gmane.org X-Gmane-NNTP-Posting-Host: host-84-220-161-31.cust-adsl.tiscali.it User-Agent: KNode/0.10.5 X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13239 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: alessandro.bono@gmail.com Precedence: bulk X-list: xfs --nextPart1831028.3B4dx51t4S Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Hi all I'm testing 2.6.23-rc9-git1 on my old home server Trying to reorganizer my xfs filesystem with xfs_fsr cause a sort of system hang In particular all I/O write on this filesystem hang process in D state but not seems to have problem on read I/O (I can login via ssh to machine but not logout for example) I can realibly create this situation running a different job that stress filesystem during xfs_fsr (in this case make distclean on a kernel build directory) Strange enough on every hang there was this message on kernel log possible SYN flooding on port 4664. Sending cookies. port 4664 is in use by mldonkey disk layout xfs on lvm2 on [sw raid5 + sw raid1] on 4 sata disk 2 sata disk on ata_piix 2 sata disk on sata_promise distribution is ubuntu dapper with this tools Gnu C 4.0.3 Gnu make 3.81beta4 binutils 2.16.91 util-linux 2.12r mount 2.12r module-init-tools 3.2.2 e2fsprogs 1.38 jfsutils 1.1.8 reiserfsprogs 3.6.19 xfsprogs 2.7.7 PPP 2.4.4b1 Linux C Library 3.6 Dynamic linker (ldd) 2.3.6 Procps 3.2.6 Net-tools 1.60 Console-tools 0.2.3 Sh-utils 5.93 udev 079 attached some info + trace of running process during hang --nextPart1831028.3B4dx51t4S Content-Type: text/plain; name="config" Content-Transfer-Encoding: 8Bit Content-Disposition: attachment; filename="config" # # Automatically generated make config: don't edit # Linux kernel version: 2.6.23-rc9-git1 # Wed Oct 3 19:50:38 2007 # CONFIG_X86_32=y CONFIG_GENERIC_TIME=y CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_SEMAPHORE_SLEEPERS=y CONFIG_X86=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_QUICKLIST=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_DMI=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set CONFIG_USER_NS=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_IKCONFIG=m CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 # CONFIG_CPUSETS is not set CONFIG_SYSFS_DEPRECATED=y CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y # CONFIG_EMBEDDED is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_ANON_INODES=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLAB=y # CONFIG_SLUB is not set # CONFIG_SLOB is not set CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y # CONFIG_MODULE_FORCE_UNLOAD is not set CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_KMOD=y CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBD=y CONFIG_BLK_DEV_IO_TRACE=y CONFIG_LSF=y # CONFIG_BLK_DEV_BSG is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_AS=m CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=m # CONFIG_DEFAULT_AS is not set CONFIG_DEFAULT_DEADLINE=y # CONFIG_DEFAULT_CFQ is not set # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="deadline" # # Processor type and features # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_SMP=y CONFIG_X86_PC=y # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_ES7000 is not set CONFIG_PARAVIRT=y # CONFIG_XEN is not set # CONFIG_VMI is not set # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set # CONFIG_MCORE2 is not set CONFIG_MPENTIUM4=y # CONFIG_MK6 is not set # CONFIG_MK7 is not set # CONFIG_MK8 is not set # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set # CONFIG_X86_GENERIC is not set CONFIG_X86_CMPXCHG=y CONFIG_X86_L1_CACHE_SHIFT=7 CONFIG_X86_XADD=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y # CONFIG_ARCH_HAS_ILOG2_U32 is not set # CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=4 CONFIG_HPET_TIMER=y CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y # CONFIG_SCHED_MC is not set CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT is not set # CONFIG_PREEMPT_BKL is not set CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_MCE=y CONFIG_X86_MCE_NONFATAL=m CONFIG_X86_MCE_P4THERMAL=y CONFIG_VM86=y # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set # CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=m CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=m CONFIG_X86_CPUID=m # # Firmware Drivers # CONFIG_EDD=m # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_NR_QUICK=1 CONFIG_VIRT_TO_BUS=y # CONFIG_HIGHPTE is not set # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_EFI is not set # CONFIG_IRQBALANCE is not set # CONFIG_SECCOMP is not set CONFIG_HZ_100=y # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set # CONFIG_HZ_1000 is not set CONFIG_HZ=100 # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x100000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x100000 CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management options (ACPI, APM) # CONFIG_PM=y CONFIG_PM_LEGACY=y # CONFIG_PM_DEBUG is not set CONFIG_SUSPEND_SMP_POSSIBLE=y # CONFIG_SUSPEND is not set CONFIG_HIBERNATION_SMP_POSSIBLE=y # CONFIG_HIBERNATION is not set CONFIG_ACPI=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m # CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=m # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_TOSHIBA is not set # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=2000 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m # CONFIG_ACPI_SBS is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=m # CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=m CONFIG_CPU_FREQ_STAT_DETAILS=y CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=m # CONFIG_X86_POWERNOW_K6 is not set CONFIG_X86_POWERNOW_K7=m CONFIG_X86_POWERNOW_K7_ACPI=y # CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_GX_SUSPMOD is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_SPEEDSTEP_ICH is not set # CONFIG_X86_SPEEDSTEP_SMI is not set CONFIG_X86_P4_CLOCKMOD=m # CONFIG_X86_CPUFREQ_NFORCE2 is not set # CONFIG_X86_LONGRUN is not set # CONFIG_X86_LONGHAUL is not set # CONFIG_X86_E_POWERSAVER is not set # # shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set CONFIG_X86_SPEEDSTEP_LIB=m # # Bus options (PCI, PCMCIA, EISA, MCA, ISA) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y # CONFIG_PCIEPORTBUS is not set CONFIG_ARCH_SUPPORTS_MSI=y # CONFIG_PCI_MSI is not set # CONFIG_PCI_DEBUG is not set CONFIG_HT_IRQ=y CONFIG_ISA_DMA_API=y CONFIG_ISA=y # CONFIG_EISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # # PCCARD (PCMCIA/CardBus) support # # CONFIG_PCCARD is not set CONFIG_HOTPLUG_PCI=m CONFIG_HOTPLUG_PCI_FAKE=m # CONFIG_HOTPLUG_PCI_COMPAQ is not set # CONFIG_HOTPLUG_PCI_IBM is not set # CONFIG_HOTPLUG_PCI_ACPI is not set # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # # Executable file formats # CONFIG_BINFMT_ELF=y CONFIG_BINFMT_AOUT=m CONFIG_BINFMT_MISC=m # # Networking # CONFIG_NET=y # # Networking options # CONFIG_PACKET=m CONFIG_PACKET_MMAP=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=m # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set CONFIG_NET_KEY=m # CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_ASK_IP_FIB_HASH=y # CONFIG_IP_FIB_TRIE is not set CONFIG_IP_FIB_HASH=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=m CONFIG_NET_IPGRE=m CONFIG_NET_IPGRE_BROADCAST=y CONFIG_IP_MROUTE=y CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_DIAG=m CONFIG_INET_TCP_DIAG=m # CONFIG_TCP_CONG_ADVANCED is not set CONFIG_TCP_CONG_CUBIC=y CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_BRIDGE_NETFILTER=y # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK_ENABLED=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CT_ACCT=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_EVENTS=y CONFIG_NF_CT_PROTO_GRE=m # CONFIG_NF_CT_PROTO_SCTP is not set CONFIG_NF_CT_PROTO_UDPLITE=m CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m CONFIG_NETFILTER_XTABLES=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_DCCP=m CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_REALM=m # CONFIG_NETFILTER_XT_MATCH_SCTP is not set CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_U32=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m # # IP: Netfilter Configuration # CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_IPRANGE=m CONFIG_IP_NF_MATCH_TOS=m CONFIG_IP_NF_MATCH_RECENT=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_MATCH_OWNER=m CONFIG_IP_NF_MATCH_ADDRTYPE=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_SAME=m CONFIG_NF_NAT_SNMP_BASIC=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_TOS=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_RAW=m CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # Bridge: Netfilter Configuration # CONFIG_BRIDGE_NF_EBTABLES=m CONFIG_BRIDGE_EBT_BROUTE=m CONFIG_BRIDGE_EBT_T_FILTER=m CONFIG_BRIDGE_EBT_T_NAT=m CONFIG_BRIDGE_EBT_802_3=m CONFIG_BRIDGE_EBT_AMONG=m CONFIG_BRIDGE_EBT_ARP=m CONFIG_BRIDGE_EBT_IP=m CONFIG_BRIDGE_EBT_LIMIT=m CONFIG_BRIDGE_EBT_MARK=m CONFIG_BRIDGE_EBT_PKTTYPE=m CONFIG_BRIDGE_EBT_STP=m CONFIG_BRIDGE_EBT_VLAN=m CONFIG_BRIDGE_EBT_ARPREPLY=m CONFIG_BRIDGE_EBT_DNAT=m CONFIG_BRIDGE_EBT_MARK_T=m CONFIG_BRIDGE_EBT_REDIRECT=m CONFIG_BRIDGE_EBT_SNAT=m CONFIG_BRIDGE_EBT_LOG=m CONFIG_BRIDGE_EBT_ULOG=m # CONFIG_IP_DCCP is not set CONFIG_IP_SCTP=m # CONFIG_SCTP_DBG_MSG is not set # CONFIG_SCTP_DBG_OBJCNT is not set # CONFIG_SCTP_HMAC_NONE is not set # CONFIG_SCTP_HMAC_SHA1 is not set CONFIG_SCTP_HMAC_MD5=y # CONFIG_TIPC is not set CONFIG_ATM=m CONFIG_ATM_CLIP=m # CONFIG_ATM_CLIP_NO_ICMP is not set CONFIG_ATM_LANE=m CONFIG_ATM_MPOA=m CONFIG_ATM_BR2684=m # CONFIG_ATM_BR2684_IPFILTER is not set CONFIG_BRIDGE=m CONFIG_VLAN_8021Q=m # CONFIG_DECNET is not set CONFIG_LLC=m CONFIG_LLC2=m # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set CONFIG_WAN_ROUTER=m # # QoS and/or fair queueing # CONFIG_NET_SCHED=y CONFIG_NET_SCH_FIFO=y # # Queueing/Scheduling # CONFIG_NET_SCH_CBQ=m CONFIG_NET_SCH_HTB=m CONFIG_NET_SCH_HFSC=m CONFIG_NET_SCH_ATM=m CONFIG_NET_SCH_PRIO=m CONFIG_NET_SCH_RR=m CONFIG_NET_SCH_RED=m CONFIG_NET_SCH_SFQ=m CONFIG_NET_SCH_TEQL=m CONFIG_NET_SCH_TBF=m CONFIG_NET_SCH_GRED=m CONFIG_NET_SCH_DSMARK=m CONFIG_NET_SCH_NETEM=m CONFIG_NET_SCH_INGRESS=m # # Classification # CONFIG_NET_CLS=y CONFIG_NET_CLS_BASIC=m CONFIG_NET_CLS_TCINDEX=m CONFIG_NET_CLS_ROUTE4=m CONFIG_NET_CLS_ROUTE=y CONFIG_NET_CLS_FW=m CONFIG_NET_CLS_U32=m CONFIG_CLS_U32_PERF=y CONFIG_CLS_U32_MARK=y CONFIG_NET_CLS_RSVP=m # CONFIG_NET_CLS_RSVP6 is not set CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 CONFIG_NET_EMATCH_CMP=m CONFIG_NET_EMATCH_NBYTE=m CONFIG_NET_EMATCH_U32=m CONFIG_NET_EMATCH_META=m CONFIG_NET_EMATCH_TEXT=m CONFIG_NET_CLS_ACT=y CONFIG_NET_ACT_POLICE=y CONFIG_NET_ACT_GACT=m CONFIG_GACT_PROB=y CONFIG_NET_ACT_MIRRED=m CONFIG_NET_ACT_IPT=m CONFIG_NET_ACT_PEDIT=m CONFIG_NET_ACT_SIMP=m CONFIG_NET_CLS_POLICE=y CONFIG_NET_CLS_IND=y # # Network testing # CONFIG_NET_PKTGEN=m # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y # # Wireless # # CONFIG_CFG80211 is not set # CONFIG_WIRELESS_EXT is not set # CONFIG_MAC80211 is not set # CONFIG_IEEE80211 is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # # Device Drivers # # # Generic Driver Options # # CONFIG_STANDALONE is not set # CONFIG_PREVENT_FIRMWARE_BUILD is not set CONFIG_FW_LOADER=m # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=m # CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_SERIAL=m CONFIG_PARPORT_PC_FIFO=y CONFIG_PARPORT_PC_SUPERIO=y # CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PARPORT_NOT_PC=y CONFIG_PNP=y # CONFIG_PNP_DEBUG is not set # # Protocols # CONFIG_ISAPNP=y CONFIG_PNPBIOS=y CONFIG_PNPBIOS_PROC_FS=y CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m # CONFIG_BLK_DEV_XD is not set # CONFIG_PARIDE is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_CRYPTOLOOP=m CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=65536 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_MISC_DEVICES is not set # CONFIG_IDE is not set # # SCSI device support # CONFIG_RAID_ATTRS=m CONFIG_SCSI=m CONFIG_SCSI_DMA=y CONFIG_SCSI_TGT=m CONFIG_SCSI_NETLINK=y CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=m CONFIG_CHR_DEV_ST=m CONFIG_CHR_DEV_OSST=m CONFIG_BLK_DEV_SR=m # CONFIG_BLK_DEV_SR_VENDOR is not set CONFIG_CHR_DEV_SG=m CONFIG_CHR_DEV_SCH=m # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y CONFIG_SCSI_CONSTANTS=y CONFIG_SCSI_LOGGING=y # CONFIG_SCSI_SCAN_ASYNC is not set CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m CONFIG_SCSI_FC_ATTRS=m CONFIG_SCSI_ISCSI_ATTRS=m # CONFIG_SCSI_SAS_LIBSAS is not set CONFIG_SCSI_LOWLEVEL=y CONFIG_ISCSI_TCP=m # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_7000FASST is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AHA152X is not set # CONFIG_SCSI_AHA1542 is not set # CONFIG_SCSI_AACRAID is not set # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_AIC94XX is not set # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_SCSI_IN2000 is not set # CONFIG_SCSI_ARCMSR is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_DTC3280 is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_GENERIC_NCR5380 is not set # CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_PPA is not set # CONFIG_SCSI_IMM is not set # CONFIG_SCSI_NCR53C406A is not set # CONFIG_SCSI_STEX is not set # CONFIG_SCSI_SYM53C8XX_2 is not set CONFIG_SCSI_IPR=m # CONFIG_SCSI_IPR_TRACE is not set # CONFIG_SCSI_IPR_DUMP is not set # CONFIG_SCSI_PAS16 is not set # CONFIG_SCSI_PSI240I is not set # CONFIG_SCSI_QLOGIC_FAS is not set # CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_QLA_ISCSI is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_SEAGATE is not set # CONFIG_SCSI_SYM53C416 is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_T128 is not set # CONFIG_SCSI_U14_34F is not set # CONFIG_SCSI_ULTRASTOR is not set # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set # CONFIG_SCSI_SRP is not set CONFIG_ATA=m # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_ACPI=y # CONFIG_SATA_AHCI is not set # CONFIG_SATA_SVW is not set CONFIG_ATA_PIIX=m # CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set CONFIG_SATA_PROMISE=m # CONFIG_SATA_SX4 is not set # CONFIG_SATA_SIL is not set # CONFIG_SATA_SIL24 is not set # CONFIG_SATA_SIS is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set # CONFIG_SATA_INIC162X is not set # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CS5535 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set # CONFIG_ATA_GENERIC is not set # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_ISAPNP is not set # CONFIG_PATA_IT821X is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_JMICRON is not set # CONFIG_PATA_LEGACY is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_MARVELL is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_OLDPIIX is not set # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_OPTIDMA is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_QDI is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RZ1000 is not set # CONFIG_PATA_SC1200 is not set # CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_PDC2027X is not set # CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIS is not set # CONFIG_PATA_VIA is not set # CONFIG_PATA_WINBOND is not set # CONFIG_PATA_WINBOND_VLB is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=m CONFIG_MD_LINEAR=m CONFIG_MD_RAID0=m CONFIG_MD_RAID1=m CONFIG_MD_RAID10=m CONFIG_MD_RAID456=m CONFIG_MD_RAID5_RESHAPE=y CONFIG_MD_MULTIPATH=m CONFIG_MD_FAULTY=m CONFIG_BLK_DEV_DM=m # CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=m CONFIG_DM_SNAPSHOT=m CONFIG_DM_MIRROR=m CONFIG_DM_ZERO=m CONFIG_DM_MULTIPATH=m # CONFIG_DM_MULTIPATH_EMC is not set # CONFIG_DM_MULTIPATH_RDAC is not set CONFIG_DM_DELAY=m # # Fusion MPT device support # # CONFIG_FUSION is not set # CONFIG_FUSION_SPI is not set # CONFIG_FUSION_FC is not set # CONFIG_FUSION_SAS is not set # # IEEE 1394 (FireWire) support # # CONFIG_FIREWIRE is not set CONFIG_IEEE1394=m # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set # # Controllers # CONFIG_IEEE1394_PCILYNX=m CONFIG_IEEE1394_OHCI1394=m # # Protocols # CONFIG_IEEE1394_VIDEO1394=m CONFIG_IEEE1394_SBP2=m # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y CONFIG_IEEE1394_ETH1394=m CONFIG_IEEE1394_DV1394=m CONFIG_IEEE1394_RAWIO=m # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y CONFIG_NETDEVICES_MULTIQUEUE=y CONFIG_IFB=m CONFIG_DUMMY=m CONFIG_BONDING=m CONFIG_MACVLAN=m CONFIG_EQUALIZER=m CONFIG_TUN=m # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set CONFIG_PHYLIB=m # # MII PHY device drivers # # CONFIG_MARVELL_PHY is not set # CONFIG_DAVICOM_PHY is not set # CONFIG_QSEMI_PHY is not set # CONFIG_LXT_PHY is not set # CONFIG_CICADA_PHY is not set # CONFIG_VITESSE_PHY is not set # CONFIG_SMSC_PHY is not set # CONFIG_BROADCOM_PHY is not set # CONFIG_ICPLUS_PHY is not set # CONFIG_FIXED_PHY is not set CONFIG_NET_ETHERNET=y CONFIG_MII=m # CONFIG_HAPPYMEAL is not set # CONFIG_SUNGEM is not set # CONFIG_CASSINI is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_LANCE is not set # CONFIG_NET_VENDOR_SMC is not set # CONFIG_NET_VENDOR_RACAL is not set # CONFIG_NET_TULIP is not set # CONFIG_AT1700 is not set # CONFIG_DEPCA is not set # CONFIG_HP100 is not set # CONFIG_NET_ISA is not set CONFIG_NET_PCI=y # CONFIG_PCNET32 is not set # CONFIG_AMD8111_ETH is not set # CONFIG_ADAPTEC_STARFIRE is not set # CONFIG_AC3200 is not set # CONFIG_APRICOT is not set # CONFIG_B44 is not set # CONFIG_FORCEDETH is not set # CONFIG_CS89x0 is not set # CONFIG_DGRS is not set # CONFIG_EEPRO100 is not set # CONFIG_E100 is not set # CONFIG_FEALNX is not set # CONFIG_NATSEMI is not set # CONFIG_NE2K_PCI is not set # CONFIG_8139CP is not set # CONFIG_8139TOO is not set # CONFIG_SIS900 is not set # CONFIG_EPIC100 is not set # CONFIG_SUNDANCE is not set # CONFIG_TLAN is not set CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y CONFIG_VIA_RHINE_NAPI=y # CONFIG_SC92031 is not set # CONFIG_NET_POCKET is not set CONFIG_NETDEV_1000=y # CONFIG_ACENIC is not set # CONFIG_DL2K is not set CONFIG_E1000=m CONFIG_E1000_NAPI=y # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_SK98LIN is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set # # Wireless LAN # # CONFIG_WLAN_PRE80211 is not set # CONFIG_WLAN_80211 is not set # # USB Network Adapters # CONFIG_USB_CATC=m CONFIG_USB_KAWETH=m CONFIG_USB_PEGASUS=m CONFIG_USB_RTL8150=m CONFIG_USB_USBNET_MII=m CONFIG_USB_USBNET=m CONFIG_USB_NET_AX8817X=m CONFIG_USB_NET_CDCETHER=m CONFIG_USB_NET_DM9601=m CONFIG_USB_NET_GL620A=m CONFIG_USB_NET_NET1080=m CONFIG_USB_NET_PLUSB=m CONFIG_USB_NET_MCS7830=m CONFIG_USB_NET_RNDIS_HOST=m CONFIG_USB_NET_CDC_SUBSET=m CONFIG_USB_ALI_M5632=y CONFIG_USB_AN2720=y CONFIG_USB_BELKIN=y CONFIG_USB_ARMLINUX=y CONFIG_USB_EPSON2888=y CONFIG_USB_KC2190=y CONFIG_USB_NET_ZAURUS=m CONFIG_WAN=y # CONFIG_HOSTESS_SV11 is not set # CONFIG_COSA is not set # CONFIG_LANMEDIA is not set # CONFIG_SEALEVEL_4021 is not set CONFIG_HDLC=m CONFIG_HDLC_RAW=m CONFIG_HDLC_RAW_ETH=m CONFIG_HDLC_CISCO=m # CONFIG_HDLC_FR is not set CONFIG_HDLC_PPP=m # # X.25/LAPB support is disabled # # CONFIG_PCI200SYN is not set # CONFIG_WANXL is not set # CONFIG_PC300 is not set # CONFIG_PC300TOO is not set # CONFIG_N2 is not set # CONFIG_C101 is not set # CONFIG_FARSYNC is not set # CONFIG_DSCC4 is not set # CONFIG_DLCI is not set # CONFIG_WAN_ROUTER_DRIVERS is not set # CONFIG_SBNI is not set CONFIG_ATM_DRIVERS=y CONFIG_ATM_DUMMY=m CONFIG_ATM_TCP=m # CONFIG_ATM_LANAI is not set # CONFIG_ATM_ENI is not set # CONFIG_ATM_FIRESTREAM is not set # CONFIG_ATM_ZATM is not set # CONFIG_ATM_NICSTAR is not set # CONFIG_ATM_IDT77252 is not set # CONFIG_ATM_AMBASSADOR is not set # CONFIG_ATM_HORIZON is not set # CONFIG_ATM_IA is not set # CONFIG_ATM_FORE200E_MAYBE is not set # CONFIG_ATM_HE is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PLIP is not set CONFIG_PPP=m CONFIG_PPP_MULTILINK=y CONFIG_PPP_FILTER=y CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m CONFIG_PPPOE=m CONFIG_PPPOATM=m CONFIG_PPPOL2TP=m # CONFIG_SLIP is not set CONFIG_SLHC=m # CONFIG_NET_FC is not set CONFIG_SHAPER=m CONFIG_NETCONSOLE=m CONFIG_NETPOLL=y CONFIG_NETPOLL_TRAP=y CONFIG_NET_POLL_CONTROLLER=y # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # CONFIG_INPUT_FF_MEMLESS is not set # CONFIG_INPUT_POLLDEV is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_TSDEV=m CONFIG_INPUT_TSDEV_SCREEN_X=240 CONFIG_INPUT_TSDEV_SCREEN_Y=320 CONFIG_INPUT_EVDEV=m CONFIG_INPUT_EVBUG=m # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set CONFIG_KEYBOARD_XTKBD=m # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_STOWAWAY is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y # CONFIG_MOUSE_PS2_TOUCHKIT is not set # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_INPORT is not set # CONFIG_MOUSE_LOGIBM is not set # CONFIG_MOUSE_PC110PAD is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set CONFIG_INPUT_MISC=y CONFIG_INPUT_PCSPKR=m # CONFIG_INPUT_WISTRON_BTNS is not set # CONFIG_INPUT_ATLAS_BTNS is not set # CONFIG_INPUT_ATI_REMOTE is not set # CONFIG_INPUT_ATI_REMOTE2 is not set # CONFIG_INPUT_KEYSPAN_REMOTE is not set # CONFIG_INPUT_POWERMATE is not set # CONFIG_INPUT_YEALINK is not set CONFIG_INPUT_UINPUT=m # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_SERIAL_NONSTANDARD=y # CONFIG_COMPUTONE is not set # CONFIG_ROCKETPORT is not set # CONFIG_CYCLADES is not set # CONFIG_DIGIEPCA is not set # CONFIG_ESPSERIAL is not set # CONFIG_MOXA_INTELLIO is not set # CONFIG_MOXA_SMARTIO is not set # CONFIG_MOXA_SMARTIO_NEW is not set # CONFIG_ISI is not set # CONFIG_SYNCLINK is not set # CONFIG_SYNCLINKMP is not set # CONFIG_SYNCLINK_GT is not set CONFIG_N_HDLC=m # CONFIG_SPECIALIX is not set # CONFIG_SX is not set # CONFIG_RIO is not set # CONFIG_STALDRV is not set # # Serial drivers # CONFIG_SERIAL_8250=m CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_PCI=m CONFIG_SERIAL_8250_PNP=m CONFIG_SERIAL_8250_NR_UARTS=48 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y # CONFIG_SERIAL_8250_MANY_PORTS is not set CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set # CONFIG_SERIAL_8250_RSA is not set # # Non-8250 serial port support # CONFIG_SERIAL_CORE=m # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 CONFIG_PRINTER=m # CONFIG_LP_CONSOLE is not set CONFIG_PPDEV=m # CONFIG_TIPAR is not set CONFIG_HVC_DRIVER=y # CONFIG_IPMI_HANDLER is not set # CONFIG_WATCHDOG is not set # CONFIG_HW_RANDOM is not set CONFIG_NVRAM=m CONFIG_RTC=m CONFIG_GEN_RTC=m CONFIG_GEN_RTC_X=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI is not set CONFIG_AGP=m # CONFIG_AGP_ALI is not set # CONFIG_AGP_ATI is not set # CONFIG_AGP_AMD is not set # CONFIG_AGP_AMD64 is not set CONFIG_AGP_INTEL=m # CONFIG_AGP_NVIDIA is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_SWORKS is not set # CONFIG_AGP_VIA is not set # CONFIG_AGP_EFFICEON is not set CONFIG_DRM=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_I810 is not set # CONFIG_DRM_I830 is not set # CONFIG_DRM_I915 is not set CONFIG_DRM_MGA=m # CONFIG_DRM_SIS is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set # CONFIG_MWAVE is not set # CONFIG_PC8736x_GPIO is not set # CONFIG_NSC_GPIO is not set # CONFIG_CS5535_GPIO is not set CONFIG_RAW_DRIVER=m CONFIG_MAX_RAW_DEVS=256 CONFIG_HPET=y CONFIG_HPET_RTC_IRQ=y CONFIG_HPET_MMAP=y CONFIG_HANGCHECK_TIMER=m # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y CONFIG_I2C=m CONFIG_I2C_BOARDINFO=y CONFIG_I2C_CHARDEV=m # # I2C Algorithms # CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCF=m CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # CONFIG_I2C_ALI1535=m CONFIG_I2C_ALI1563=m CONFIG_I2C_ALI15X3=m CONFIG_I2C_AMD756=m CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m CONFIG_I2C_I810=m CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_OCORES=m CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_PROSAVAGE=m CONFIG_I2C_SAVAGE4=m # CONFIG_I2C_SIMTEC is not set CONFIG_SCx200_ACB=m CONFIG_I2C_SIS5595=m CONFIG_I2C_SIS630=m CONFIG_I2C_SIS96X=m CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_STUB=m CONFIG_I2C_TINY_USB=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m CONFIG_I2C_VOODOO3=m CONFIG_I2C_PCA_ISA=m # # Miscellaneous I2C Chip support # CONFIG_SENSORS_DS1337=m CONFIG_SENSORS_DS1374=m CONFIG_DS1682=m CONFIG_SENSORS_EEPROM=m CONFIG_SENSORS_PCF8574=m CONFIG_SENSORS_PCA9539=m CONFIG_SENSORS_PCF8591=m CONFIG_SENSORS_MAX6875=m CONFIG_SENSORS_TSL2550=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CHIP is not set # # SPI support # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set CONFIG_W1=m CONFIG_W1_CON=y # # 1-wire Bus Masters # CONFIG_W1_MASTER_MATROX=m CONFIG_W1_MASTER_DS2490=m CONFIG_W1_MASTER_DS2482=m # # 1-wire Slaves # CONFIG_W1_SLAVE_THERM=m CONFIG_W1_SLAVE_SMEM=m CONFIG_W1_SLAVE_DS2433=m CONFIG_W1_SLAVE_DS2433_CRC=y CONFIG_W1_SLAVE_DS2760=m CONFIG_POWER_SUPPLY=m # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_BATTERY_DS2760 is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_FSCHER=m CONFIG_SENSORS_FSCPOS=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m CONFIG_SENSORS_MAX1619=m CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_SENSORS_HDAPS=m CONFIG_SENSORS_APPLESMC=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Multifunction device drivers # # CONFIG_MFD_SM501 is not set # # Multimedia devices # # CONFIG_VIDEO_DEV is not set # CONFIG_DVB_CORE is not set # CONFIG_DAB is not set # # Graphics support # CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_BACKLIGHT_CLASS_DEVICE=m # CONFIG_BACKLIGHT_PROGEAR is not set # # Display device support # CONFIG_DISPLAY_SUPPORT=m # # Display hardware drivers # CONFIG_VGASTATE=m CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set CONFIG_FB_DDC=m CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_SYS_FOPS is not set CONFIG_FB_DEFERRED_IO=y # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y CONFIG_FB_TILEBLITTING=y # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set CONFIG_FB_VGA16=m CONFIG_FB_VESA=y # CONFIG_FB_HECUBA is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I810 is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_INTEL is not set CONFIG_FB_MATROX=m # CONFIG_FB_MATROX_MILLENIUM is not set # CONFIG_FB_MATROX_MYSTIQUE is not set CONFIG_FB_MATROX_G=y CONFIG_FB_MATROX_I2C=m CONFIG_FB_MATROX_MAVEN=m CONFIG_FB_MATROX_MULTIHEAD=y # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_CYBLA is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_VIDEO_SELECT=y CONFIG_MDA_CONSOLE=m CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=m CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_LOGO is not set # # Sound # CONFIG_SOUND=m # # Advanced Linux Sound Architecture # CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=m CONFIG_SND_SEQ_DUMMY=m CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_RTCTIMER=m CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set # # Generic devices # CONFIG_SND_MPU401_UART=m CONFIG_SND_AC97_CODEC=m CONFIG_SND_DUMMY=m CONFIG_SND_VIRMIDI=m CONFIG_SND_MTPAV=m CONFIG_SND_MTS64=m CONFIG_SND_SERIAL_U16550=m CONFIG_SND_MPU401=m CONFIG_SND_PORTMAN2X4=m # # ISA devices # # CONFIG_SND_ADLIB is not set # CONFIG_SND_AD1816A is not set # CONFIG_SND_AD1848 is not set # CONFIG_SND_ALS100 is not set # CONFIG_SND_AZT2320 is not set # CONFIG_SND_CMI8330 is not set # CONFIG_SND_CS4231 is not set # CONFIG_SND_CS4232 is not set # CONFIG_SND_CS4236 is not set # CONFIG_SND_DT019X is not set # CONFIG_SND_ES968 is not set # CONFIG_SND_ES1688 is not set # CONFIG_SND_ES18XX is not set # CONFIG_SND_GUSCLASSIC is not set # CONFIG_SND_GUSEXTREME is not set # CONFIG_SND_GUSMAX is not set # CONFIG_SND_INTERWAVE is not set # CONFIG_SND_INTERWAVE_STB is not set # CONFIG_SND_OPL3SA2 is not set # CONFIG_SND_OPTI92X_AD1848 is not set # CONFIG_SND_OPTI92X_CS4231 is not set # CONFIG_SND_OPTI93X is not set # CONFIG_SND_MIRO is not set # CONFIG_SND_SB8 is not set # CONFIG_SND_SB16 is not set # CONFIG_SND_SBAWE is not set # CONFIG_SND_SGALAXY is not set # CONFIG_SND_SSCAPE is not set # CONFIG_SND_WAVEFRONT is not set # # PCI devices # # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_CS5530 is not set # CONFIG_SND_CS5535AUDIO is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set # CONFIG_SND_HDA_INTEL is not set # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set CONFIG_SND_INTEL8X0=m # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set CONFIG_SND_AC97_POWER_SAVE=y # # USB devices # # CONFIG_SND_USB_AUDIO is not set # CONFIG_SND_USB_USX2Y is not set # CONFIG_SND_USB_CAIAQ is not set # # System on Chip audio support # # CONFIG_SND_SOC is not set # # SoC Audio support for SuperH # # # Open Sound System # # CONFIG_SOUND_PRIME is not set CONFIG_AC97_BUS=m CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HID_DEBUG is not set # # USB Input Devices # CONFIG_USB_HID=m CONFIG_USB_HIDINPUT_POWERBOOK=y # CONFIG_HID_FF is not set CONFIG_USB_HIDDEV=y # # USB HID Boot Protocol drivers # CONFIG_USB_KBD=m CONFIG_USB_MOUSE=m CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=m # CONFIG_USB_DEBUG is not set # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y CONFIG_USB_DYNAMIC_MINORS=y CONFIG_USB_SUSPEND=y # CONFIG_USB_PERSIST is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_SPLIT_ISO=y CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set CONFIG_USB_OHCI_HCD=m # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # # may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG_USB_STORAGE_DPCM is not set # CONFIG_USB_STORAGE_USBAT is not set # CONFIG_USB_STORAGE_SDDR09 is not set # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_LIBUSUAL is not set # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set CONFIG_USB_MON=y # # USB port drivers # CONFIG_USB_USS720=m # # USB Serial Converter support # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_GENERIC=y CONFIG_USB_SERIAL_AIRCABLE=m CONFIG_USB_SERIAL_AIRPRIME=m CONFIG_USB_SERIAL_ARK3116=m CONFIG_USB_SERIAL_BELKIN=m CONFIG_USB_SERIAL_WHITEHEAT=m CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m CONFIG_USB_SERIAL_CP2101=m CONFIG_USB_SERIAL_CYPRESS_M8=m CONFIG_USB_SERIAL_EMPEG=m CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_FUNSOFT=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m CONFIG_USB_SERIAL_IR=m CONFIG_USB_SERIAL_EDGEPORT=m CONFIG_USB_SERIAL_EDGEPORT_TI=m CONFIG_USB_SERIAL_GARMIN=m CONFIG_USB_SERIAL_IPW=m CONFIG_USB_SERIAL_KEYSPAN_PDA=m CONFIG_USB_SERIAL_KEYSPAN=m CONFIG_USB_SERIAL_KEYSPAN_MPR=y CONFIG_USB_SERIAL_KEYSPAN_USA28=y CONFIG_USB_SERIAL_KEYSPAN_USA28X=y CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y CONFIG_USB_SERIAL_KEYSPAN_USA19=y CONFIG_USB_SERIAL_KEYSPAN_USA18X=y CONFIG_USB_SERIAL_KEYSPAN_USA19W=y CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y CONFIG_USB_SERIAL_KEYSPAN_USA49W=y CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y CONFIG_USB_SERIAL_KLSI=m CONFIG_USB_SERIAL_KOBIL_SCT=m CONFIG_USB_SERIAL_MCT_U232=m CONFIG_USB_SERIAL_MOS7720=m CONFIG_USB_SERIAL_MOS7840=m CONFIG_USB_SERIAL_NAVMAN=m CONFIG_USB_SERIAL_PL2303=m CONFIG_USB_SERIAL_OTI6858=m CONFIG_USB_SERIAL_HP4X=m CONFIG_USB_SERIAL_SAFE=m CONFIG_USB_SERIAL_SAFE_PADDED=y CONFIG_USB_SERIAL_SIERRAWIRELESS=m CONFIG_USB_SERIAL_TI=m CONFIG_USB_SERIAL_CYBERJACK=m CONFIG_USB_SERIAL_XIRCOM=m CONFIG_USB_SERIAL_OPTION=m CONFIG_USB_SERIAL_OMNINET=m CONFIG_USB_SERIAL_DEBUG=m CONFIG_USB_EZUSB=y # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set # CONFIG_USB_AUERSWALD is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set CONFIG_USB_LCD=m # CONFIG_USB_BERRY_CHARGE is not set CONFIG_USB_LED=m # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_PHIDGET is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set CONFIG_USB_LD=m # CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_IOWARRIOR is not set CONFIG_USB_TEST=m # # USB DSL modem support # CONFIG_USB_ATM=m CONFIG_USB_SPEEDTOUCH=m CONFIG_USB_CXACRU=m CONFIG_USB_UEAGLEATM=m CONFIG_USB_XUSBATM=m # # USB Gadget Support # # CONFIG_USB_GADGET is not set # CONFIG_MMC is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=m # # LED drivers # # # LED Triggers # CONFIG_LEDS_TRIGGERS=y CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=m CONFIG_RTC_CLASS=m # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y CONFIG_RTC_INTF_DEV_UIE_EMUL=y CONFIG_RTC_DRV_TEST=m # # I2C RTC drivers # CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1672=m CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m # CONFIG_RTC_DRV_M41T80_WDT is not set # # SPI RTC drivers # # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_M48T86=m CONFIG_RTC_DRV_M48T59=m CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # # # DMA Engine support # # CONFIG_DMA_ENGINE is not set # # DMA Clients # # # DMA Devices # # CONFIG_AUXDISPLAY is not set # CONFIG_VIRTUALIZATION is not set # # Userspace I/O # # CONFIG_UIO is not set CONFIG_LGUEST=m CONFIG_LGUEST_GUEST=y CONFIG_LGUEST_NET=y CONFIG_LGUEST_BLOCK=y # # File systems # CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=m CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y # CONFIG_EXT4DEV_FS is not set CONFIG_JBD=m # CONFIG_JBD_DEBUG is not set CONFIG_FS_MBCACHE=m CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y CONFIG_JFS_FS=m CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y # CONFIG_JFS_DEBUG is not set CONFIG_JFS_STATISTICS=y CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=m CONFIG_XFS_QUOTA=y CONFIG_XFS_SECURITY=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y CONFIG_GFS2_FS=m CONFIG_GFS2_FS_LOCKING_NOLOCK=m CONFIG_GFS2_FS_LOCKING_DLM=m CONFIG_OCFS2_FS=m CONFIG_OCFS2_DEBUG_MASKLOG=y CONFIG_MINIX_FS=m CONFIG_ROMFS_FS=m CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_QUOTA is not set CONFIG_QUOTACTL=y CONFIG_DNOTIFY=y # CONFIG_AUTOFS_FS is not set CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m CONFIG_GENERIC_ACL=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m CONFIG_MSDOS_FS=m CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=m # CONFIG_NTFS_DEBUG is not set # CONFIG_NTFS_RW is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_RAMFS=y CONFIG_CONFIGFS_FS=m # # Miscellaneous filesystems # # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_CRAMFS is not set # CONFIG_VXFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_SYSV_FS is not set CONFIG_UFS_FS=m # CONFIG_UFS_FS_WRITE is not set # CONFIG_UFS_DEBUG is not set # # Network File Systems # CONFIG_NFS_FS=m CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_NFS_DIRECTIO=y CONFIG_NFSD=m CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_NFSD_TCP=y CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=m CONFIG_NFS_ACL_SUPPORT=m CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m CONFIG_SUNRPC_GSS=m CONFIG_SUNRPC_BIND34=y CONFIG_RPCSEC_GSS_KRB5=m CONFIG_RPCSEC_GSS_SPKM3=m CONFIG_SMB_FS=m CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=m CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y # CONFIG_CIFS_DEBUG2 is not set CONFIG_CIFS_EXPERIMENTAL=y CONFIG_CIFS_UPCALL=y # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set # CONFIG_OSF_PARTITION is not set # CONFIG_AMIGA_PARTITION is not set # CONFIG_ATARI_PARTITION is not set # CONFIG_MAC_PARTITION is not set CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y # CONFIG_MINIX_SUBPARTITION is not set # CONFIG_SOLARIS_X86_PARTITION is not set # CONFIG_UNIXWARE_DISKLABEL is not set CONFIG_LDM_PARTITION=y # CONFIG_LDM_DEBUG is not set # CONFIG_SGI_PARTITION is not set # CONFIG_ULTRIX_PARTITION is not set # CONFIG_SUN_PARTITION is not set CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set # # Native Language Support # CONFIG_NLS=m CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=m CONFIG_NLS_CODEPAGE_737=m CONFIG_NLS_CODEPAGE_775=m CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m CONFIG_NLS_CODEPAGE_855=m CONFIG_NLS_CODEPAGE_857=m CONFIG_NLS_CODEPAGE_860=m CONFIG_NLS_CODEPAGE_861=m CONFIG_NLS_CODEPAGE_862=m CONFIG_NLS_CODEPAGE_863=m CONFIG_NLS_CODEPAGE_864=m CONFIG_NLS_CODEPAGE_865=m CONFIG_NLS_CODEPAGE_866=m CONFIG_NLS_CODEPAGE_869=m CONFIG_NLS_CODEPAGE_936=m CONFIG_NLS_CODEPAGE_950=m CONFIG_NLS_CODEPAGE_932=m CONFIG_NLS_CODEPAGE_949=m CONFIG_NLS_CODEPAGE_874=m CONFIG_NLS_ISO8859_8=m CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m CONFIG_NLS_ISO8859_3=m CONFIG_NLS_ISO8859_4=m CONFIG_NLS_ISO8859_5=m CONFIG_NLS_ISO8859_6=m CONFIG_NLS_ISO8859_7=m CONFIG_NLS_ISO8859_9=m CONFIG_NLS_ISO8859_13=m CONFIG_NLS_ISO8859_14=m CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m CONFIG_NLS_UTF8=m # # Distributed Lock Manager # CONFIG_DLM=m # CONFIG_DLM_DEBUG is not set CONFIG_INSTRUMENTATION=y CONFIG_PROFILING=y CONFIG_OPROFILE=m # CONFIG_KPROBES is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y # CONFIG_PRINTK_TIME is not set # CONFIG_ENABLE_MUST_CHECK is not set CONFIG_MAGIC_SYSRQ=y # CONFIG_UNUSED_SYMBOLS is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_DETECT_SOFTLOCKUP=y # CONFIG_SCHED_DEBUG is not set # CONFIG_SCHEDSTATS is not set CONFIG_TIMER_STATS=y # CONFIG_DEBUG_SLAB is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_LIST is not set # CONFIG_FRAME_POINTER is not set # CONFIG_FORCED_INLINING is not set # CONFIG_RCU_TORTURE_TEST is not set # CONFIG_FAULT_INJECTION is not set CONFIG_EARLY_PRINTK=y # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_RODATA is not set # CONFIG_4KSTACKS is not set CONFIG_X86_FIND_SMP_CONFIG=y CONFIG_X86_MPPARSE=y CONFIG_DOUBLEFAULT=y # # Security options # # CONFIG_KEYS is not set # CONFIG_SECURITY is not set CONFIG_XOR_BLOCKS=m CONFIG_ASYNC_CORE=m CONFIG_ASYNC_MEMCPY=m CONFIG_ASYNC_XOR=m CONFIG_CRYPTO=y CONFIG_CRYPTO_ALGAPI=m CONFIG_CRYPTO_ABLKCIPHER=m CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_HASH=m CONFIG_CRYPTO_MANAGER=m CONFIG_CRYPTO_HMAC=m CONFIG_CRYPTO_XCBC=m CONFIG_CRYPTO_NULL=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=m CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_WP512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_586=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_586=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_MICHAEL_MIC=m CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_TEST=m # CONFIG_CRYPTO_HW is not set # # Library routines # CONFIG_BITREVERSE=y CONFIG_CRC_CCITT=m CONFIG_CRC16=m CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=m CONFIG_ZLIB_DEFLATE=m CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_PLIST=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_GENERIC_HARDIRQS=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_X86_SMP=y CONFIG_X86_HT=y CONFIG_X86_BIOS_REBOOT=y CONFIG_X86_TRAMPOLINE=y CONFIG_KTIME_SCALAR=y --nextPart1831028.3B4dx51t4S Content-Type: text/plain; name="dmesg" Content-Transfer-Encoding: 8Bit Content-Disposition: attachment; filename="dmesg" Linux version 2.6.23-rc9-git1 (root@grignolino) (gcc version 4.0.3 (Ubuntu 4.0.3-1ubuntu5)) #8 SMP Wed Oct 3 19:52:51 CEST 2007 BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000003ff30000 (usable) BIOS-e820: 000000003ff30000 - 000000003ff40000 (ACPI data) BIOS-e820: 000000003ff40000 - 000000003fff0000 (ACPI NVS) BIOS-e820: 000000003fff0000 - 0000000040000000 (reserved) BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved) 127MB HIGHMEM available. 896MB LOWMEM available. found SMP MP-table at 000ff780 Entering add_active_range(0, 0, 261936) 0 entries of 256 used Zone PFN ranges: DMA 0 -> 4096 Normal 4096 -> 229376 HighMem 229376 -> 261936 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 261936 On node 0 totalpages: 261936 DMA zone: 32 pages used for memmap DMA zone: 0 pages reserved DMA zone: 4064 pages, LIFO batch:0 Normal zone: 1760 pages used for memmap Normal zone: 223520 pages, LIFO batch:31 HighMem zone: 254 pages used for memmap HighMem zone: 32306 pages, LIFO batch:7 Movable zone: 0 pages used for memmap DMI 2.3 present. ACPI: RSDP 000F9E30, 0021 (r2 ACPIAM) ACPI: XSDT 3FF30100, 003C (r1 A M I OEMXSDT 10000426 MSFT 97) ACPI: FACP 3FF30290, 00F4 (r3 A M I OEMFACP 10000426 MSFT 97) ACPI: DSDT 3FF303F0, 3797 (r1 P4CED P4CED106 106 INTL 2002026) ACPI: FACS 3FF40000, 0040 ACPI: APIC 3FF30390, 005C (r1 A M I OEMAPIC 10000426 MSFT 97) ACPI: OEMB 3FF40040, 003F (r1 A M I OEMBIOS 10000426 MSFT 97) ACPI: PM-Timer IO Port: 0x808 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) Processor #0 15:3 APIC version 20 ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) Processor #1 15:3 APIC version 20 ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. ACPI: IRQ9 used by override. Enabling APIC mode: Flat. Using 1 I/O APICs Using ACPI (MADT) for SMP configuration information Allocating PCI resources starting at 50000000 (gap: 40000000:bfb80000) Built 1 zonelists in Zone order. Total pages: 259890 Kernel command line: root=/dev/md0 ro ht=on quiet splash mapped APIC to ffffb000 (fee00000) mapped IOAPIC to ffffa000 (fec00000) Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Initializing CPU#0 PID hash table entries: 4096 (order: 12, 16384 bytes) Detected 2798.760 MHz processor. Console: colour VGA+ 80x25 console [tty0] enabled Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) Memory: 1031452k/1047744k available (1446k kernel code, 15608k reserved, 581k data, 204k init, 130240k highmem) virtual kernel memory layout: fixmap : 0xfff4c000 - 0xfffff000 ( 716 kB) pkmap : 0xff800000 - 0xffc00000 (4096 kB) vmalloc : 0xf8800000 - 0xff7fe000 ( 111 MB) lowmem : 0xc0000000 - 0xf8000000 ( 896 MB) .init : 0xc0301000 - 0xc0334000 ( 204 kB) .data : 0xc026992d - 0xc02faf9c ( 581 kB) .text : 0xc0100000 - 0xc026992d (1446 kB) Checking if this processor honours the WP bit even in supervisor mode... Ok. Calibrating delay using timer specific routine.. 5600.91 BogoMIPS (lpj=28004566) Mount-cache hash table entries: 512 CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 0000041d 00000000 00000000 00000000 monitor/mwait feature present. using mwait in idle threads. CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 0 CPU: After all inits, caps: bfebfbff 00000000 00000000 0000b180 0000041d 00000000 00000000 00000000 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU0: Intel P4/Xeon Extended MCE MSRs (12) available CPU0: Thermal monitoring enabled Compat vDSO mapped to ffffe000. Checking 'hlt' instruction... OK. SMP alternatives: switching to UP code ACPI: Core revision 20070126 CPU0: Intel(R) Pentium(R) 4 CPU 2.80GHz stepping 03 SMP alternatives: switching to SMP code Booting processor 1/1 eip 2000 Initializing CPU#1 Calibrating delay using timer specific routine.. 5597.43 BogoMIPS (lpj=27987156) CPU: After generic identify, caps: bfebfbff 00000000 00000000 00000000 0000041d 00000000 00000000 00000000 monitor/mwait feature present. CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Physical Processor ID: 0 CPU: After all inits, caps: bfebfbff 00000000 00000000 0000b180 0000041d 00000000 00000000 00000000 Intel machine check architecture supported. Intel machine check reporting enabled on CPU#1. CPU1: Intel P4/Xeon Extended MCE MSRs (12) available CPU1: Thermal monitoring enabled CPU1: Intel(R) Pentium(R) 4 CPU 2.80GHz stepping 03 Total of 2 processors activated (11198.34 BogoMIPS). ENABLING IO-APIC IRQs ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1 checking TSC synchronization [CPU#0 -> CPU#1]: passed. Brought up 2 CPUs Booting paravirtualized kernel on bare hardware NET: Registered protocol family 16 ACPI: bus type pci registered PCI: PCI BIOS revision 2.10 entry at 0xf0031, last bus=3 PCI: Using configuration type 1 Setting up standard PCI resources ACPI: EC: Look up EC in DSDT ACPI: Interpreter enabled ACPI: (supports S0 S5) ACPI: Using IOAPIC for interrupt routing ACPI: PCI Root Bridge [PCI0] (0000:00) PCI quirk: region 0800-087f claimed by ICH4 ACPI/GPIO/TCO PCI quirk: region 0480-04bf claimed by ICH4 GPIO PCI: Transparent bridge - 0000:00:1e.0 ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P4._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P0P2._PRT] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 *10 11 12 14 15) ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *10 11 12 14 15) ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 10 *11 12 14 15) ACPI Warning (tbutils-0217): Incorrect checksum in table [OEMB] - 01, should be F2 [20070126] Linux Plug and Play Support v0.97 (c) Adam Belay pnp: PnP ACPI init ACPI: bus type pnp registered pnp: PnP ACPI: found 14 devices ACPI: ACPI bus type pnp unregistered PnPBIOS: Disabled by ACPI PNP PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report ACPI: RTC can wake from S4 Time: tsc clocksource has been installed. pnp: 00:0a: ioport range 0x680-0x6ff has been reserved pnp: 00:0a: ioport range 0x290-0x297 has been reserved pnp: 00:0b: iomem range 0xfed20000-0xfed8ffff has been reserved pnp: 00:0b: iomem range 0xffb00000-0xffbfffff could not be reserved pnp: 00:0c: iomem range 0xfec00000-0xfec00fff has been reserved pnp: 00:0c: iomem range 0xfee00000-0xfee00fff has been reserved pnp: 00:0d: iomem range 0x0-0x9ffff could not be reserved pnp: 00:0d: iomem range 0xc0000-0xdffff could not be reserved pnp: 00:0d: iomem range 0xe0000-0xfffff could not be reserved pnp: 00:0d: iomem range 0x100000-0x3ffeffff could not be reserved PCI: Bridge: 0000:00:01.0 IO window: disabled. MEM window: fd800000-fe8fffff PREFETCH window: f3f00000-f7efffff PCI: Bridge: 0000:00:03.0 IO window: c000-cfff MEM window: fe900000-fe9fffff PREFETCH window: disabled. PCI: Bridge: 0000:00:1e.0 IO window: d000-dfff MEM window: fea00000-feafffff PREFETCH window: disabled. PCI: Setting latency timer of device 0000:00:1e.0 to 64 NET: Registered protocol family 2 IP route cache hash table entries: 32768 (order: 5, 131072 bytes) TCP established hash table entries: 131072 (order: 8, 1572864 bytes) TCP bind hash table entries: 65536 (order: 7, 524288 bytes) TCP: Hash tables configured (established 131072 bind 65536) TCP reno registered checking if image is initramfs... it is Freeing initrd memory: 3833k freed audit: initializing netlink socket (disabled) audit(1191443929.079:1): initialized highmem bounce pool size: 64 pages Total HugeTLB memory allocated, 0 io scheduler noop registered io scheduler deadline registered (default) Boot video device is 0000:01:00.0 isapnp: Scanning for PnP cards... Switched to high resolution mode on CPU 1 Switched to high resolution mode on CPU 0 isapnp: No Plug & Play device found RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 1 PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp serio: i8042 KBD port at 0x60,0x64 irq 1 mice: PS/2 mouse device common for all mice TCP cubic registered NET: Registered protocol family 1 Using IPI No-Shortcut mode Freeing unused kernel memory: 204k freed input: AT Translated Set 2 keyboard as /class/input/input0 vga16fb: initializing vga16fb: mapped to 0xc00a0000 fb0: VGA16 VGA frame buffer device md: raid1 personality registered for level 1 SCSI subsystem initialized libata version 2.21 loaded. sata_promise 0000:03:04.0: version 2.10 ACPI: PCI Interrupt 0000:03:04.0[A] -> GSI 23 (level, low) -> IRQ 16 scsi0 : sata_promise scsi1 : sata_promise scsi2 : sata_promise ata1: SATA max UDMA/133 cmd 0xf8812200 ctl 0xf8812238 bmdma 0x00000000 irq 16 ata2: SATA max UDMA/133 cmd 0xf8812280 ctl 0xf88122b8 bmdma 0x00000000 irq 16 ata3: PATA max UDMA/133 cmd 0xf8812300 ctl 0xf8812338 bmdma 0x00000000 irq 16 ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: ATA-7: Maxtor 6L300S0, BACE1G20, max UDMA/133 ata1.00: 586114704 sectors, multi 0: LBA48 NCQ (depth 0/32) ata1.00: configured for UDMA/133 ata2: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata2.00: ATA-7: Maxtor 6L300S0, BACE1G20, max UDMA/133 ata2.00: 586114704 sectors, multi 0: LBA48 NCQ (depth 0/32) ata2.00: configured for UDMA/133 scsi 0:0:0:0: Direct-Access ATA Maxtor 6L300S0 BACE PQ: 0 ANSI: 5 scsi 1:0:0:0: Direct-Access ATA Maxtor 6L300S0 BACE PQ: 0 ANSI: 5 ata_piix 0000:00:1f.1: version 2.12 PCI: Enabling device 0000:00:1f.1 (0005 -> 0007) ACPI: PCI Interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1f.1 to 64 scsi3 : ata_piix scsi4 : ata_piix ata4: PATA max UDMA/133 cmd 0x000101f0 ctl 0x000103f6 bmdma 0x0001fc00 irq 14 ata5: PATA max UDMA/133 cmd 0x00010170 ctl 0x00010376 bmdma 0x0001fc08 irq 15 ata4.00: ATAPI: PIONEER DVD-RW DVR-111D, 1.02, max UDMA/66 ata4.00: limited to UDMA/33 due to 40-wire cable ata4.00: configured for UDMA/33 scsi 3:0:0:0: CD-ROM PIONEER DVD-RW DVR-111D 1.02 PQ: 0 ANSI: 5 ata_piix 0000:00:1f.2: MAP [ P0 -- P1 -- ] ACPI: PCI Interrupt 0000:00:1f.2[A] -> GSI 18 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1f.2 to 64 scsi5 : ata_piix scsi6 : ata_piix ata6: SATA max UDMA/133 cmd 0x0001efe0 ctl 0x0001efae bmdma 0x0001ef90 irq 17 ata7: SATA max UDMA/133 cmd 0x0001efa0 ctl 0x0001efaa bmdma 0x0001ef98 irq 17 ata6.00: ATA-7: Maxtor 6V320F0, VA111900, max UDMA/133 ata6.00: 625142448 sectors, multi 16: LBA48 NCQ (depth 0/32) ata6.00: configured for UDMA/133 ata7.00: ATA-7: Maxtor 6V320F0, VA111900, max UDMA/133 ata7.00: 625142448 sectors, multi 16: LBA48 NCQ (depth 0/32) ata7.00: configured for UDMA/133 scsi 5:0:0:0: Direct-Access ATA Maxtor 6V320F0 VA11 PQ: 0 ANSI: 5 scsi 6:0:0:0: Direct-Access ATA Maxtor 6V320F0 VA11 PQ: 0 ANSI: 5 sd 0:0:0:0: [sda] 586114704 512-byte hardware sectors (300091 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 0:0:0:0: [sda] 586114704 512-byte hardware sectors (300091 MB) sd 0:0:0:0: [sda] Write Protect is off sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sd 0:0:0:0: [sda] Attached SCSI disk sd 1:0:0:0: [sdb] 586114704 512-byte hardware sectors (300091 MB) sd 1:0:0:0: [sdb] Write Protect is off sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 1:0:0:0: [sdb] 586114704 512-byte hardware sectors (300091 MB) sd 1:0:0:0: [sdb] Write Protect is off sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdb: sdb1 sdb2 sd 1:0:0:0: [sdb] Attached SCSI disk sd 5:0:0:0: [sdc] 625142448 512-byte hardware sectors (320073 MB) sd 5:0:0:0: [sdc] Write Protect is off sd 5:0:0:0: [sdc] Mode Sense: 00 3a 00 00 sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 5:0:0:0: [sdc] 625142448 512-byte hardware sectors (320073 MB) sd 5:0:0:0: [sdc] Write Protect is off sd 5:0:0:0: [sdc] Mode Sense: 00 3a 00 00 sd 5:0:0:0: [sdc] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdc: sdc1 sdc2 sd 5:0:0:0: [sdc] Attached SCSI disk sd 6:0:0:0: [sdd] 625142448 512-byte hardware sectors (320073 MB) sd 6:0:0:0: [sdd] Write Protect is off sd 6:0:0:0: [sdd] Mode Sense: 00 3a 00 00 sd 6:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sd 6:0:0:0: [sdd] 625142448 512-byte hardware sectors (320073 MB) sd 6:0:0:0: [sdd] Write Protect is off sd 6:0:0:0: [sdd] Mode Sense: 00 3a 00 00 sd 6:0:0:0: [sdd] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA sdd: sdd1 sdd2 sd 6:0:0:0: [sdd] Attached SCSI disk sr0: scsi3-mmc drive: 40x/40x writer cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 sr 3:0:0:0: Attached scsi CD-ROM sr0 device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb USB Universal Host Controller Interface driver v3.0 ACPI: PCI Interrupt 0000:00:1d.0[A] -> GSI 16 (level, low) -> IRQ 18 PCI: Setting latency timer of device 0000:00:1d.0 to 64 uhci_hcd 0000:00:1d.0: UHCI Host Controller uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 1 uhci_hcd 0000:00:1d.0: irq 18, io base 0x0000eec0 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.1[B] -> GSI 19 (level, low) -> IRQ 19 PCI: Setting latency timer of device 0000:00:1d.1 to 64 uhci_hcd 0000:00:1d.1: UHCI Host Controller uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 2 uhci_hcd 0000:00:1d.1: irq 19, io base 0x0000ef00 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.2[C] -> GSI 18 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:00:1d.2 to 64 uhci_hcd 0000:00:1d.2: UHCI Host Controller uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 3 uhci_hcd 0000:00:1d.2: irq 17, io base 0x0000ef20 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:00:1d.3[A] -> GSI 16 (level, low) -> IRQ 18 PCI: Setting latency timer of device 0000:00:1d.3 to 64 uhci_hcd 0000:00:1d.3: UHCI Host Controller uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 4 uhci_hcd 0000:00:1d.3: irq 18, io base 0x0000ef40 usb usb4: configuration #1 chosen from 1 choice hub 4-0:1.0: USB hub found hub 4-0:1.0: 2 ports detected ACPI: PCI Interrupt 0000:03:03.0[A] -> GSI 20 (level, low) -> IRQ 20 ACPI: PCI Interrupt 0000:00:1d.7[D] -> GSI 23 (level, low) -> IRQ 16 PCI: Setting latency timer of device 0000:00:1d.7 to 64 ehci_hcd 0000:00:1d.7: EHCI Host Controller ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 5 ehci_hcd 0000:00:1d.7: debug port 1 PCI: cache line size of 128 is not supported by device 0000:00:1d.7 ehci_hcd 0000:00:1d.7: irq 16, io mem 0xfebff800 ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb5: configuration #1 chosen from 1 choice hub 5-0:1.0: USB hub found hub 5-0:1.0: 8 ports detected ohci1394: fw-host0: OHCI-1394 1.0 (PCI): IRQ=[20] MMIO=[feaff800-feafffff] Max Packet=[2048] IR/IT contexts=[8/8] usb 2-2: new low speed USB device using uhci_hcd and address 2 xor: automatically using best checksumming function: pIII_sse pIII_sse : 4302.400 MB/sec xor: using function: pIII_sse (4302.400 MB/sec) async_tx: api initialized (sync-only) raid6: int32x1 737 MB/s raid6: int32x2 716 MB/s usb 2-2: new low speed USB device using uhci_hcd and address 3 raid6: int32x4 582 MB/s raid6: int32x8 502 MB/s usb 2-2: configuration #1 chosen from 1 choice raid6: mmxx1 1300 MB/s raid6: mmxx2 1436 MB/s raid6: sse1x1 743 MB/s raid6: sse1x2 941 MB/s raid6: sse2x1 1453 MB/s raid6: sse2x2 1712 MB/s raid6: using algorithm sse2x2 (1712 MB/s) md: raid6 personality registered for level 6 md: raid5 personality registered for level 5 md: raid4 personality registered for level 4 usbcore: registered new interface driver hiddev md: md0 stopped. md: bind md: bind raid1: raid set md0 active with 2 out of 2 mirrors md: md1 stopped. md: bind md: bind md: bind md: bind md: md1: raid array is not clean -- starting background reconstruction raid5: device sdb2 operational as raid disk 0 raid5: device sdd2 operational as raid disk 3 raid5: device sdc2 operational as raid disk 2 raid5: device sda2 operational as raid disk 1 raid5: allocated 4211kB for md1 raid5: raid level 5 set md1 active with 4 out of 4 devices, algorithm 2 RAID5 conf printout: --- rd:4 wd:4 disk 0, o:1, dev:sdb2 disk 1, o:1, dev:sda2 disk 2, o:1, dev:sdc2 disk 3, o:1, dev:sdd2 md: resync of RAID array md1 md: minimum _guaranteed_ speed: 1000 KB/sec/disk. md: using maximum available idle IO bandwidth (but not more than 200000 KB/sec) for resync. md: using 128k window, over a total of 245111552 blocks. md: md2 stopped. md: bind md: bind raid1: raid set md2 active with 2 out of 2 mirrors ieee1394: Host added: ID:BUS[0-00:1023] GUID[00e0180000613551] EXT3-fs: INFO: recovery required on readonly filesystem. EXT3-fs: write access will be enabled during recovery. hiddev0: USB HID v1.10 Device [American Power Conversion Back-UPS RS 1000 FW:7.g9 .I USB FW:g9 ] on usb-0000:00:1d.1-2 usbcore: registered new interface driver usbhid drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver kjournald starting. Commit interval 5 seconds EXT3-fs: md0: orphan cleanup on readonly fs ext3_orphan_cleanup: deleting unreferenced inode 3244040 ext3_orphan_cleanup: deleting unreferenced inode 3244039 ext3_orphan_cleanup: deleting unreferenced inode 3244038 ext3_orphan_cleanup: deleting unreferenced inode 3244037 ext3_orphan_cleanup: deleting unreferenced inode 3244036 EXT3-fs: md0: 5 orphan inodes deleted EXT3-fs: recovery complete. EXT3-fs: mounted filesystem with ordered data mode. sd 0:0:0:0: Attached scsi generic sg0 type 0 sd 1:0:0:0: Attached scsi generic sg1 type 0 sr 3:0:0:0: Attached scsi generic sg2 type 5 sd 5:0:0:0: Attached scsi generic sg3 type 0 sd 6:0:0:0: Attached scsi generic sg4 type 0 ACPI: PCI Interrupt 0000:00:1f.3[B] -> GSI 17 (level, low) -> IRQ 21 w83627hf: Found W83627THF chip at 0x290 w83627hf w83627hf.656: Reading VID from GPIO5 Linux agpgart interface v0.102 agpgart: Detected an Intel i875 Chipset. agpgart: AGP aperture is 64M @ 0xf8000000 input: Power Button (FF) as /class/input/input1 ACPI: Power Button (FF) [PWRF] input: Power Button (CM) as /class/input/input2 ACPI: Power Button (CM) [PWRB] Intel(R) PRO/1000 Network Driver - version 7.3.20-k2-NAPI Copyright (c) 1999-2006 Intel Corporation. ACPI: PCI Interrupt 0000:02:01.0[A] -> GSI 18 (level, low) -> IRQ 17 PCI: Setting latency timer of device 0000:02:01.0 to 64 Driver for 1-wire Dallas network protocol. e1000: 0000:02:01.0: e1000_probe: (PCI:33MHz:32-bit) 00:0e:a6:6e:a0:6d EXT3 FS on md0, internal journal Real Time Clock Driver v1.12ac input: PC Speaker as /class/input/input3 via-rhine.c:v1.10-LK1.4.3 2007-03-06 Written by Donald Becker e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection matrox_w1 0000:01:00.0: Matrox G400 GPIO transport layer for 1-wire. ACPI: PCI Interrupt 0000:03:0b.0[A] -> GSI 23 (level, low) -> IRQ 16 eth1: VIA Rhine III at 0xfeaff400, 00:40:f4:79:7e:fe, IRQ 16. eth1: MII PHY found at address 1, status 0x786d advertising 05e1 Link 41e1. Floppy drive(s): fd0 is 1.44M FDC 0 is a post-1991 82077 Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing enabled serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A 00:07: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A parport_pc 00:09: reported by Plug and Play ACPI parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA] ACPI: PCI Interrupt 0000:00:1f.5[B] -> GSI 17 (level, low) -> IRQ 21 PCI: Setting latency timer of device 0000:00:1f.5 to 64 intel8x0_measure_ac97_clock: measured 69296 usecs intel8x0: clocking to 49800 e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX/TX SGI XFS with ACLs, security attributes, realtime, large block numbers, no debug enabled SGI XFS Quota Management subsystem Filesystem "dm-0": Disabling barriers, not supported by the underlying device XFS mounting filesystem dm-0 Starting XFS recovery on filesystem: dm-0 (logdev: internal) ip_tables: (C) 2000-2006 Netfilter Core Team Netfilter messages via NETLINK v0.30. nf_conntrack version 0.5.0 (16384 buckets, 65536 max) eth1: link up, 100Mbps, full-duplex, lpa 0x41E1 u32 classifier Performance counters on input device check on Actions configured Ending XFS recovery on filesystem: dm-0 (logdev: internal) Adding 4194296k swap on /dev/mapper/Volume00-swap. Priority:-1 extents:1 across:4194296k IA-32 Microcode Update Driver: v1.14a lp0: using parport0 (interrupt-driven). ppdev: user-space parallel port driver NET: Registered protocol family 17 device eth0 entered promiscuous mode audit(1191443987.522:2): dev=eth0 prom=256 old_prom=0 auid=4294967295 --nextPart1831028.3B4dx51t4S Content-Type: text/plain; name="trace" Content-Transfer-Encoding: 8Bit Content-Disposition: attachment; filename="trace" possible SYN flooding on port 4664. Sending cookies. possible SYN flooding on port 4664. Sending cookies. possible SYN flooding on port 4664. Sending cookies. possible SYN flooding on port 4664. Sending cookies. possible SYN flooding on port 4664. Sending cookies. d+0x34/0x55 [] kthread+0x0/0x55 [] kernel_thread_helper+0x7/0x10 ======================= xfssyncd D c1807dc0 0 9058 2 f6d4ff08 00000046 0001731b c1807dc0 00000002 f6d4fef0 dffd0ab0 dffd0bf0 c180ae00 00000000 0001c026 000000ff 00000000 00000000 0001731b ca3882b8 00000246 ca3882c0 dffd0ab0 c02688a4 00000001 dffd0ab0 c011a320 ca3882c4 Call Trace: [] __down+0xc2/0xd4 [] default_wake_function+0x0/0xc [] __down_failed+0x7/0xc [] xfs_iflock+0x16/0x17 [xfs] [] xfs_finish_reclaim+0xf5/0x11d [xfs] [] xfs_finish_reclaim_all+0x73/0xa7 [xfs] [] xfs_syncsub+0x5c/0x270 [xfs] [] xfs_sync+0x0/0x1f [xfs] [] vfs_sync+0x17/0x1a [xfs] [] vfs_sync_worker+0x18/0x37 [xfs] [] xfssyncd+0xbd/0xfd [xfs] [] xfssyncd+0x0/0xfd [xfs] [] kthread+0x34/0x55 [] kthread+0x0/0x55 [] kernel_thread_helper+0x7/0x10 ======================= acpid S f7fac7cc 0 10260 1 c1b01be4 00000082 f6c82400 f7fac7cc c01a3de7 dfc21270 f7849030 f7849170 c180ae00 00000000 00000000 f766a6a0 c017e3af 00438028 00000000 7fffffff 00000000 ffffffff 00000000 c0267af3 f766a6a0 f766a5c0 f766a5f8 f6c3ca20 Call Trace: [] __make_request+0x496/0x4d8 [] __find_get_block+0x1c4/0x1ce [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] unix_poll+0x15/0x8c [] do_sys_poll+0x25d/0x323 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] ext3_mark_iloc_dirty+0x27e/0x2d9 [ext3] [] ext3_mark_inode_dirty+0x20/0x27 [ext3] [] __wake_up+0x32/0x43 [] journal_stop+0x1af/0x1bb [jbd] [] __ext3_journal_stop+0x19/0x34 [ext3] [] ext3_ordered_commit_write+0xb4/0xc3 [ext3] [] ext3_journal_dirty_data+0x0/0x31 [ext3] [] generic_file_buffered_write+0x4cd/0x59c [] get_page_from_freelist+0x257/0x2d6 [] find_lock_page+0x1a/0x90 [] filemap_fault+0x227/0x387 [] __do_fault+0x30e/0x33b [] generic_file_aio_write+0x5b/0xb0 [] handle_mm_fault+0x36e/0x6f9 [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] vfs_write+0xfb/0x10b [] sys_poll+0x33/0x36 [] sysenter_past_esp+0x6b/0xa1 ======================= syslogd S c1807dc0 0 10277 1 f7377b40 00200086 0001731b c1807dc0 00000002 f7377b28 c192b030 c192b170 c180ae00 00000000 00023025 000000ff 00000000 00000000 0001731b 7fffffff f7377f9c 00000001 00000002 c0267af3 c02f90c0 c180ae50 f7377b80 c0118ed1 Call Trace: [] schedule_timeout+0x13/0x8d [] update_curr+0x103/0x12a [] add_wait_queue+0xf/0x30 [] datagram_poll+0x14/0xad [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] schedule+0x453/0x511 [] lock_timer_base+0x19/0x35 [] __mod_timer+0x97/0xa1 [] blk_plug_device+0x6b/0xb2 [] make_request+0x51b/0x537 [raid1] [] generic_make_request+0x3d0/0x401 [] update_curr+0x103/0x12a [] enqueue_entity+0x1e2/0x203 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] core_sys_select+0x1dd/0x283 [] do_sync_readv_writev+0xc1/0xfe [] wait_on_page_writeback_range+0xaf/0xf7 [] autoremove_wake_function+0x0/0x33 [] mapping_tagged+0x2b/0x32 [] rw_copy_check_uvector+0x57/0xc3 [] do_readv_writev+0xa3/0x16c [] pipe_write+0x0/0x3da [] sys_select+0x9d/0x167 [] recalc_sigpending+0xb/0x1d [] sigprocmask+0xa1/0xc4 [] sys_rt_sigprocmask+0x4b/0xc4 [] sysenter_past_esp+0x6b/0xa1 ======================= dd R running 0 10322 1 klogd S c0265a08 0 10327 1 f73abe5c 00200086 00000050 c0265a08 f73abe5c 00000000 c1924570 c19246b0 c180ae00 00000000 00000000 cc3ca880 00002857 00200246 c012deee f7561000 f7561000 f73abe78 f7d889c0 c0166f4a 00000000 c1924570 c012dd98 f7561004 Call Trace: [] unix_dgram_sendmsg+0x382/0x402 [] prepare_to_wait+0x12/0x4b [] pipe_wait+0x51/0x6f [] autoremove_wake_function+0x0/0x33 [] pipe_read+0x2cf/0x343 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] do_sync_read+0x0/0x10a [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= apcupsd R running 0 10355 1 apcupsd S f6d0fe14 0 10559 1 f6d0fe28 00200082 00000002 f6d0fe14 f6d0fe0c 00000000 c19c8570 c19c86b0 c1813e00 00000001 ffff950c 000000ff 00000000 00000000 00000000 7fffffff 7fffffff f6d0fe98 f6d0febc c0267af3 00000000 00200282 dfef76c4 d662d853 Call Trace: [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] cp_new_stat64+0xf3/0x105 [] sys_send+0x37/0x3b [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= cupsd S c1807dc0 0 10424 1 f73a9b40 00200086 0001731b c1807dc0 00000002 f73a9b28 c1a25030 c1a25170 c180ae00 00000000 00023036 000000ff 00000000 00000000 0001731b f73a9b50 00023b25 00000005 00000020 c0267b50 00200246 c012dfc8 c0364164 f6c5abd8 Call Trace: [] schedule_timeout+0x70/0x8d [] add_wait_queue+0xf/0x30 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] dev_queue_xmit+0x289/0x2ae [] ip_mc_output+0x38d/0x3c6 [] ip_finish_output+0x0/0x218 [] ip_push_pending_frames+0x348/0x3da [] dst_output+0x0/0x7 [] udp_push_pending_frames+0x2ac/0x2fe [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] memcpy_toiovec+0x25/0x47 [] skb_copy_datagram_iovec+0x53/0x1cd [] skb_dequeue+0x39/0x3f [] skb_recv_datagram+0x6b/0x172 [] __kfree_skb+0xa3/0xfa [] udp_recvmsg+0x184/0x1d1 [] sock_common_recvmsg+0x3e/0x54 [] sock_recvmsg+0xcf/0xe8 [] sock_sendmsg+0xbc/0xd4 [] autoremove_wake_function+0x0/0x33 [] core_sys_select+0x1dd/0x283 [] move_addr_to_user+0x4e/0x66 [] sys_recvfrom+0x108/0x12b [] sys_getsockname+0x78/0xa2 [] skb_dequeue+0x39/0x3f [] skb_queue_purge+0x11/0x17 [] netlink_sock_destruct+0x2c/0xd1 [] sk_free+0xad/0xb9 [] sock_def_write_space+0x10/0x7d [] sock_wfree+0x21/0x36 [] __kfree_skb+0xa3/0xfa [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= slapd S f6e0de10 0 10598 1 f6e0de24 00200082 00000002 f6e0de10 f6e0de08 00000000 c19c5570 c19c56b0 c180ae00 00000000 ffff950d 000000ff 00000000 00000000 00000000 f7fb7074 f6e0de90 c038615c b786abf8 c01371bb f7f97358 00002970 00002970 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] flush_tlb_page+0x3d/0x61 [] __do_fault+0x30e/0x33b [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] do_page_fault+0x0/0x63d [] __switch_to+0xa2/0x126 [] schedule+0x453/0x511 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= slapd S cd957e80 0 10608 1 f6e33b40 00200082 c02e4c00 cd957e80 0000000e c02175df f7fcd030 f7fcd170 c180ae00 00000000 f7e6829c c0235251 00000000 c02e4a00 c02349fd 7fffffff f6e33f9c 00000022 00000004 c0267af3 f7e6829c 00000000 00200246 c012dfc8 Call Trace: [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] tcp_poll+0x18/0x120 [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] core_sys_select+0x1dd/0x283 [] pipe_read+0x337/0x343 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= slapd S c01542ea 0 10634 1 f6e69e24 00200082 080f2000 c01542ea 080f2690 080f2000 c19d3030 c19d3170 c180ae00 00000000 f6dc28ec c01362da 00000057 f7fb7074 00200246 f7fb7074 f6e69e90 c0385928 080f2690 c01371bb 00000000 000001d5 000001d5 00000000 Call Trace: [] find_extend_vma+0x12/0x49 [] unqueue_me+0x77/0x80 [] futex_wait+0x1b6/0x2bc [] do_wp_page+0x47f/0x4b9 [] sock_aio_write+0xc8/0xd4 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] pick_next_task_fair+0x20/0x47 [] schedule+0x2d8/0x511 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= clamd S 00000000 0 10635 1 f6e7fe40 00200086 c0146f51 00000000 f78bd2b0 f78bd2b0 c19c5ab0 c19c5bf0 c180ae00 00000000 00000000 f6e7fe8c dfe32668 f78bd358 dfcd0408 7fffffff f7f3ed00 ffffff95 7fffffff c0267af3 c17e1300 00000000 c17e1300 c01508f7 Call Trace: [] find_lock_page+0x1a/0x90 [] schedule_timeout+0x13/0x8d [] __do_fault+0x30e/0x33b [] kunmap_atomic+0x52/0x7a [] prepare_to_wait_exclusive+0x12/0x4a [] skb_recv_datagram+0x115/0x172 [] autoremove_wake_function+0x0/0x33 [] unix_accept+0x4e/0xd4 [] sys_accept+0xd8/0x1ad [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] check_pgt_cache+0x19/0x1b [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= freshclam S f7e0b740 0 10690 1 f6d03fac 00200086 00000000 f7e0b740 f7e0b784 08053008 dffd5ab0 dffd5bf0 c1813e00 00000001 f6d02000 c0121776 00000000 00000000 00000000 00000001 08053470 08053008 f6d02000 c012630e c0102802 00000001 b7e4c18c 00000001 Call Trace: [] alarm_setitimer+0x36/0x5c [] sys_pause+0x11/0x17 [] sysenter_past_esp+0x6b/0xa1 ======================= cyrmaster S c1807dc0 0 10713 1 f6e89b40 00200082 0001731b c1807dc0 00000002 f6e89b28 c1930ab0 c1930bf0 c180ae00 00000000 00023035 000000ff 00000000 00000000 0001731b f6e89b50 00023354 00000019 02000000 c0267b50 0000000c 00001000 c0364124 f2325b50 Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] d_rehash+0x1c/0x29 [] d_kill+0x37/0x46 [] mntput_no_expire+0x11/0x5d [] __link_path_walk+0xa8f/0xaa6 [] unix_dgram_sendmsg+0x382/0x402 [] ata_qc_issue_prot+0xe6/0x21c [libata] [] mntput_no_expire+0x11/0x5d [] link_path_walk+0xa9/0xb3 [] __alloc_skb+0x42/0xec [] do_path_lookup+0x161/0x1c4 [] core_sys_select+0x1dd/0x283 [] sk_free+0xa4/0xb9 [] skb_dequeue+0x39/0x3f [] unix_release_sock+0x1ac/0x1c4 [] unix_stream_connect+0x308/0x339 [] sys_connect+0x72/0x9c [] skb_dequeue+0x39/0x3f [] skb_queue_purge+0x11/0x17 [] unix_sock_destructor+0xe/0xd2 [] sk_free+0xa4/0xb9 [] getname+0x7b/0xad [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= gpm S f6e81b2c 0 10733 1 f6e81b40 00000082 00000002 f6e81b2c f6e81b24 00000000 c19cf570 c19cf6b0 c1813e00 00000001 ffff974a 000000ff 00000000 00000000 00000000 f6e81b50 00836d49 00000003 00000008 c0267b50 00000000 00001000 c18eec4c c18eec4c Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] kunmap_atomic+0x52/0x7a [] kunmap_atomic+0x5e/0x7a [] get_page_from_freelist+0x257/0x2d6 [] enqueue_entity+0x1e2/0x203 [] inc_nr_running+0x13/0x24 [] try_to_wake_up+0x2b0/0x2ba [] dput+0x15/0xdd [] __alloc_pages+0x5b/0x2a4 [] shmem_permission+0x0/0xa [] inode_init_once+0x6b/0x118 [] __d_lookup+0x96/0xd5 [] do_lookup+0x4f/0x140 [] dput+0x15/0xdd [] __link_path_walk+0x987/0xaa6 [] do_lookup+0x4f/0x140 [] core_sys_select+0x1dd/0x283 [] get_unused_fd_flags+0x51/0xc3 [] tty_ioctl+0x1c1/0xb3f [] release_console_sem+0x17a/0x193 [] fasync_helper+0x3a/0xb5 [] release_console_sem+0x17a/0x193 [] file_kill+0x11/0x29 [] release_dev+0x416/0x5a0 [] chrdev_open+0x126/0x13a [] nameidata_to_filp+0x23/0x32 [] do_filp_open+0x32/0x39 [] sys_select+0x9d/0x167 [] sys_rt_sigaction+0x64/0x77 [] sysenter_past_esp+0x6b/0xa1 ======================= hpiod S 00000000 0 10738 1 f6dcde28 00200086 00000000 00000000 00000000 dfd0b2b0 c19d8570 c19d86b0 c180ae00 00000000 dfd0b2b0 dfd0b2b0 00000000 c014778a dfc18444 7fffffff 7fffffff f6dcde98 f6dcdebc c0267af3 f7f22988 00200282 00000000 00000000 Call Trace: [] filemap_fault+0x227/0x387 [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] inotify_d_instantiate+0x41/0x66 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] __switch_to+0xa2/0x126 [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= ddclient S c1807dc0 0 10741 1 f6f71f28 00000086 0001731b c1807dc0 00000002 f6f71f10 c192b570 c192b6b0 c180ae00 00000000 0001e242 000000ff 00000000 00000000 0001731b f6f71f40 00000001 00000001 bfbb6574 c0267ee0 00000001 00000000 bfbb6574 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sigprocmask+0xa1/0xc4 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= idled S c1807dc0 0 10744 1 f6f6fb40 00000082 0001731b c1807dc0 00000002 f6f6fb28 f7f78570 f7f786b0 c180ae00 00000000 00023095 000000ff 00000000 00000000 0001731b f6f6fb50 000230f8 00000006 00000040 c0267b50 769fbd72 0000fbea c0363f4c c0363f4c Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] nf_ct_deliver_cached_events+0x3e/0x91 [nf_conntrack] [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] tcp_v4_rcv+0x7f2/0x850 [] ip_local_deliver+0x189/0x230 [] ip_local_deliver_finish+0x0/0x1b1 [] ip_rcv+0x499/0x4d3 [] ip_rcv_finish+0x0/0x2a8 [] __alloc_skb+0x42/0xec [] rhine_napipoll+0x42b/0x435 [via_rhine] [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] net_rx_action+0x99/0x15b [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] __kfree_skb+0xa3/0xfa [] ext3_get_acl+0x51/0x2bf [ext3] [] __d_lookup+0x96/0xd5 [] do_lookup+0x4f/0x140 [] _atomic_dec_and_lock+0x2a/0x44 [] mntput_no_expire+0x11/0x5d [] __link_path_walk+0xa8f/0xaa6 [] __alloc_pages+0x5b/0x2a4 [] core_sys_select+0x1dd/0x283 [] get_unused_fd_flags+0x51/0xc3 [] do_path_lookup+0x161/0x1c4 [] __path_lookup_intent_open+0x6e/0x77 [] path_lookup_open+0x20/0x25 [] open_namei+0x72/0x54c [] irq_exit+0x53/0x6b [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= notifyd S f6821d08 0 10756 10713 f6821d1c 00000082 00000002 f6821d08 f6821d00 00000000 dffceab0 dffcebf0 c180ae00 00000000 ffff9774 000000ff 00000000 00000001 00000000 7fffffff f7509900 00000000 7fffffff c0267af3 c02fdfc4 c02676e9 f6821d74 00000082 Call Trace: [] schedule_timeout+0x13/0x8d [] schedule+0x453/0x511 [] prepare_to_wait_exclusive+0x12/0x4a [] skb_recv_datagram+0x115/0x172 [] autoremove_wake_function+0x0/0x33 [] unix_dgram_recvmsg+0x5c/0x1c0 [] ext3_get_acl+0x51/0x2bf [ext3] [] sock_recvmsg+0xcf/0xe8 [] dput+0x15/0xdd [] autoremove_wake_function+0x0/0x33 [] mntput_no_expire+0x11/0x5d [] link_path_walk+0xa9/0xb3 [] nameidata_to_filp+0x23/0x32 [] sys_recvfrom+0xd7/0x12b [] do_path_lookup+0x161/0x1c4 [] cp_new_stat64+0xf3/0x105 [] sys_socketcall+0x1cd/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= python S c1807dc0 0 10758 1 f682fb40 00200082 00000818 c1807dc0 00000002 f682fb28 dffd5030 dffd5170 c180ae00 00000000 f682fb50 00200282 c01258f2 00000000 00200282 f682fb50 00023183 00000004 00000010 c0267b50 f6c87ec0 f7576680 f025bbf4 c02e98f8 Call Trace: [] __mod_timer+0x97/0xa1 [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] enqueue_entity+0x1e2/0x203 [] inc_nr_running+0x13/0x24 [] try_to_wake_up+0x2b0/0x2ba [] autoremove_wake_function+0x13/0x33 [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] mempool_free+0x68/0x6d [] bio_put+0x23/0x24 [] mpage_end_io_read+0x5b/0x61 [] mpage_end_io_read+0x0/0x61 [] bio_endio+0x5b/0x63 [] __alloc_skb+0x42/0xec [] mempool_free+0x68/0x6d [] clone_endio+0xa5/0xb6 [dm_mod] [] clone_endio+0x0/0xb6 [dm_mod] [] bio_endio+0x5b/0x63 [] mempool_free+0x68/0x6d [] raid5_align_endio+0x88/0xe9 [raid456] [] do_IRQ+0x5c/0x71 [] raid5_align_endio+0x0/0xe9 [raid456] [] bio_endio+0x5b/0x63 [] __add_entropy_words+0x5b/0x176 [] core_sys_select+0x1dd/0x283 [] scsi_end_request+0x9b/0xa5 [scsi_mod] [] scsi_io_completion+0x153/0x36b [scsi_mod] [] scsi_dispatch_cmd+0x1d5/0x245 [scsi_mod] [] sd_rw_intr+0x321/0x329 [sd_mod] [] __ata_qc_complete+0x83/0x89 [libata] [] scsi_next_command+0x25/0x2f [scsi_mod] [] ata_hsm_move+0x6a7/0x6e4 [libata] [] scsi_finish_command+0x81/0x88 [scsi_mod] [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= inetd S f6e83b2c 0 10769 1 f6e83b40 00000086 00000002 f6e83b2c f6e83b24 00000000 c1930570 c19306b0 c180ae00 00000000 ffff9789 000000ff 00000000 00000000 00000000 7fffffff f6e83f9c 00000006 00000040 c0267af3 00000246 c012dfc8 00000246 c012dfc8 Call Trace: [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] add_wait_queue+0xf/0x30 [] tcp_poll+0x18/0x120 [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] kunmap_atomic+0x52/0x7a [] kunmap_atomic+0x5e/0x7a [] get_page_from_freelist+0x257/0x2d6 [] __alloc_pages+0x5b/0x2a4 [] handle_mm_fault+0x2f9/0x6f9 [] extract_buf+0x97/0xd2 [] find_lock_page+0x1a/0x90 [] filemap_fault+0x227/0x387 [] core_sys_select+0x1dd/0x283 [] generic_file_aio_read+0x158/0x18b [] handle_mm_fault+0x36e/0x6f9 [] __pagevec_free+0x18/0x22 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_select+0x9d/0x167 [] sys_rt_sigaction+0x4c/0x77 [] recalc_sigpending+0xb/0x1d [] sigprocmask+0xa1/0xc4 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= irqbalance S c1807dc0 0 10773 1 f6837f28 00000086 0001731b c1807dc0 00000002 f6837f10 dffdb570 dffdb6b0 c180ae00 00000000 00022dad 000000ff 00000000 00000000 0001731b f6837f40 00000001 00000001 bfeee1f4 c0267ee0 00000001 00000000 bfeee1f4 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sigprocmask+0xa1/0xc4 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S f6847e10 0 10781 1 f6847e24 00000082 00000002 f6847e10 f6847e08 00000000 f7ed8570 f7ed86b0 c180ae00 00000000 ffffa8a0 000000ff 00000000 00000001 00000000 dfd245b4 f6847e90 f6847e3c 0817ed7c c0137213 00000000 00000009 00000009 00000000 Call Trace: [] futex_wait+0x20e/0x2bc [] hrtimer_wakeup+0x0/0x18 [] futex_wait+0x202/0x2bc [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] autoremove_wake_function+0x0/0x33 [] getnstimeofday+0x35/0xe9 [] ktime_get_ts+0x16/0x44 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S f6d27e10 0 10782 1 f6d27e24 00000082 00000002 f6d27e10 f6d27e08 00000000 dffdc030 dffdc170 c180ae00 00000000 ffffa8a0 000000ff 00000000 00000000 00000000 dfd245b4 f6d27e90 c0385964 08175bfc c01371bb 00000000 000077e9 000077e9 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] __wake_up_common+0x32/0x55 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] __posix_lock_file+0x45d/0x49b [] autoremove_wake_function+0x0/0x33 [] fcntl_setlk64+0x1c5/0x1cf [] sys_futex+0xc2/0xd4 [] sys_fcntl64+0x63/0x6b [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S c0130369 0 10789 1 f687fe24 00000082 c1807f18 c0130369 00000001 00000000 c192a570 c192a6b0 c180ae00 00000000 c0130d22 c01362da 083af6e1 0000019d 00000286 dfd245b4 f687fe90 f687fe3c 08158e5c c0137213 00000000 00000075 00000075 00000000 Call Trace: [] enqueue_hrtimer+0xdc/0xe7 [] hrtimer_start+0xe5/0xef [] unqueue_me+0x77/0x80 [] futex_wait+0x20e/0x2bc [] hrtimer_wakeup+0x0/0x18 [] futex_wait+0x202/0x2bc [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] enqueue_entity+0x1e2/0x203 [] getnstimeofday+0x35/0xe9 [] ktime_get_ts+0x16/0x44 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S c1810dc0 0 10791 1 f6883b40 00000082 00000400 c1810dc0 00000002 f6883b28 f7fc5570 f7fc56b0 c180ae00 00000000 0001b32c 000000ff 00000000 00000000 00000400 7fffffff f6883f9c 00000005 00000020 c0267af3 00000246 c012dfc8 f7e7e300 f6883bdc Call Trace: [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] datagram_poll+0x14/0xad [] udp_poll+0xe/0xd3 [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] check_preempt_curr_fair+0x69/0x6f [] try_to_wake_up+0x2b0/0x2ba [] autoremove_wake_function+0x13/0x33 [] sock_def_write_space+0x10/0x7d [] sock_wfree+0x21/0x36 [] __kfree_skb+0xa3/0xfa [] e1000_unmap_and_free_tx_resource+0x1b/0x23 [e1000] [] e1000_clean_tx_irq+0xbc/0x2c4 [e1000] [] memcpy_toiovec+0x25/0x47 [] skb_copy_datagram_iovec+0x53/0x1cd [] skb_dequeue+0x39/0x3f [] skb_recv_datagram+0x6b/0x172 [] __kfree_skb+0xa3/0xfa [] update_curr+0x103/0x12a [] enqueue_entity+0x1e2/0x203 [] __check_preempt_curr_fair+0x4c/0x71 [] check_preempt_curr_fair+0x69/0x6f [] core_sys_select+0x1dd/0x283 [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] wake_futex+0x39/0x43 [] futex_wake+0xaa/0xb4 [] do_futex+0x80/0x999 [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] __kfree_skb+0xa3/0xfa [] sys_select+0x9d/0x167 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S c1807dc0 0 10793 1 f6887e24 00000082 0001731b c1807dc0 00000002 f6887e0c dffca030 dffca170 c180ae00 00000000 00022888 000000ff 00000000 00000000 0001731b dfd245b4 f6887e90 f6887e3c 0815953c c0137213 00000000 00000077 00000077 00000000 Call Trace: [] futex_wait+0x20e/0x2bc [] hrtimer_wakeup+0x0/0x18 [] futex_wait+0x202/0x2bc [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] enqueue_entity+0x1e2/0x203 [] getnstimeofday+0x35/0xe9 [] ktime_get_ts+0x16/0x44 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S c0130369 0 10795 1 f688be24 00000082 c1807f18 c0130369 00000001 00000000 c1923030 c1923170 c180ae00 00000000 c0130d22 c01362da 23fe10fc 00000196 00000286 dfd245b4 f688be90 f688be3c 08158ffc c0137213 00000000 0000016b 0000016b 00000000 Call Trace: [] enqueue_hrtimer+0xdc/0xe7 [] hrtimer_start+0xe5/0xef [] unqueue_me+0x77/0x80 [] futex_wait+0x20e/0x2bc [] hrtimer_wakeup+0x0/0x18 [] futex_wait+0x202/0x2bc [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] enqueue_entity+0x1e2/0x203 [] getnstimeofday+0x35/0xe9 [] ktime_get_ts+0x16/0x44 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S f62f9e10 0 10888 1 f62f9e24 00000082 00000002 f62f9e10 f62f9e08 00000000 f7851030 f7851170 c180ae00 00000000 ffff981d 000000ff 00000000 00000000 00000000 dfd245b4 f62f9e90 c0386120 0815fafc c01371bb c0149ceb 00000001 00000001 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] get_page_from_freelist+0x257/0x2d6 [] __alloc_pages+0x5b/0x2a4 [] __alloc_pages+0x5b/0x2a4 [] find_mergeable_anon_vma+0x5e/0xb0 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] flush_tlb_mm+0x57/0x5c [] check_pgt_cache+0x19/0x1b [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mediatomb S f6375e10 0 10889 1 f6375e24 00000082 00000002 f6375e10 f6375e08 00000000 dffca570 dffca6b0 c1813e00 00000001 ffffa8a0 000000ff 00000000 00000000 00000000 dfd245b4 f6375e90 c0385784 0817e684 c01371bb 00000000 00000001 00000001 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] __wake_up_common+0x32/0x55 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] xfs_file_readdir+0x1d2/0x1e0 [xfs] [] filldir64+0x0/0xc4 [] dput+0x15/0xdd [] sys_futex+0xc2/0xd4 [] sys_clock_gettime+0x57/0x7d [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= mysqld_safe S c1810dc0 0 10813 1 f68aff3c 00000082 00000400 c1810dc0 00000002 f68aff24 c192e570 c192e6b0 c1813e00 00000001 ffff97eb 000000ff 00000000 00000000 00000400 f7ed8030 00000001 c192e570 00000000 c0121237 00000001 c01016a3 c192e570 c192e570 Call Trace: [] do_wait+0x926/0x9da [] __switch_to+0xa2/0x126 [] default_wake_function+0x0/0xc [] sys_wait4+0x30/0x33 [] sys_waitpid+0x27/0x2b [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= mysqld S f68c5b2c 0 10877 10813 f68c5b40 00200086 00000002 f68c5b2c f68c5b24 00000000 f7849570 f78496b0 c1813e00 00000001 ffff98e6 000000ff 00000000 00000000 00000000 7fffffff f68c5f9c 00000010 00010000 c0267af3 f7f291e8 f7f45dc0 00200246 c012dfc8 Call Trace: [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] add_wait_queue+0xf/0x30 [] unix_poll+0x15/0x8c [] do_select+0x3a1/0x3f7 [] blk_plug_device+0x6b/0xb2 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] get_page_from_freelist+0x257/0x2d6 [] __alloc_pages+0x5b/0x2a4 [] find_mergeable_anon_vma+0x4c/0xb0 [] anon_vma_prepare+0x57/0x9c [] handle_mm_fault+0x2f9/0x6f9 [] ext3_getblk+0x105/0x21c [ext3] [] ext3_find_entry+0x4a1/0x52f [ext3] [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] ip_setsockopt+0x9d7/0xa5a [] do_page_fault+0x2ed/0x63d [] ext3_get_acl+0x51/0x2bf [ext3] [] __d_lookup+0x96/0xd5 [] do_page_fault+0x0/0x63d [] error_code+0x72/0x78 [] kunmap_atomic+0x52/0x7a [] kunmap_atomic+0x5e/0x7a [] file_read_actor+0x77/0xc7 [] core_sys_select+0x1dd/0x283 [] __rmqueue+0x78/0xcb [] update_curr+0x103/0x12a [] enqueue_entity+0x1e2/0x203 [] __check_preempt_curr_fair+0x4c/0x71 [] check_preempt_curr_fair+0x69/0x6f [] wake_up_new_task+0xab/0xbb [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S c01542ea 0 10879 10813 f6b3fe24 00200086 08ad3000 c01542ea 08ad3ba0 08ad3000 c19cfab0 c19cfbf0 c180ae00 00000000 00000000 f6853bfc f6853bfc dfe70934 00200246 dfe70934 f6b3fe90 c0385658 08ad3ba0 c01371bb f6853ca4 00000001 00000001 00000000 Call Trace: [] find_extend_vma+0x12/0x49 [] futex_wait+0x1b6/0x2bc [] __do_fault+0x30e/0x33b [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] do_page_fault+0x0/0x63d [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= mysqld S c01542ea 0 10880 10813 f6b41e24 00200086 08ad3000 c01542ea 08ad3c10 08ad3000 c19d5030 c19d5170 c1813e00 00000001 c011a316 00000800 00000000 dfe70934 00200246 dfe70934 f6b41e90 c0385464 08ad3c10 c01371bb 014d8000 00000007 00000007 00000000 Call Trace: [] find_extend_vma+0x12/0x49 [] try_to_wake_up+0x2b0/0x2ba [] futex_wait+0x1b6/0x2bc [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] pagevec_lookup_tag+0x23/0x2a [] wait_on_page_writeback_range+0xaf/0xf7 [] ext3_sync_file+0xa3/0xb8 [ext3] [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S f6b43e10 0 10881 10813 f6b43e24 00200086 00000002 f6b43e10 f6b43e08 00000000 c19c1ab0 c19c1bf0 c180ae00 00000000 ffff98f2 000000ff 00000000 00000000 00000000 dfe70934 f6b43e90 c0385590 08ad3c80 c01371bb c0149ceb 00000005 00000005 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] get_page_from_freelist+0x257/0x2d6 [] __alloc_pages+0x5b/0x2a4 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= mysqld S f6b45e10 0 10882 10813 f6b45e24 00200086 00000002 f6b45e10 f6b45e08 00000000 c1a25ab0 c1a25bf0 c180ae00 00000000 ffff9d24 000000ff 00000000 00000000 00000000 dfe70934 f6b45e90 c0385ae0 08ad3cf0 c01371bb 00000000 00000003 00000003 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] __wake_up_common+0x32/0x55 [] __wake_up_common+0x32/0x55 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] schedule+0x453/0x511 [] sys_futex+0xc2/0xd4 [] sys_pwrite64+0x57/0x5e [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S c1807dc0 0 10884 10813 f610fb40 00200086 0001731b c1807dc0 00000002 f610fb28 c1a4e030 c1a4e170 c180ae00 00000000 00023088 000000ff 00000000 00000000 0001731b f610fb50 000230eb 00000000 f6c240c0 c0267b50 eb7c9300 c15dcfa0 c0363ee4 f6111b50 Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] enqueue_entity+0x1e2/0x203 [] task_rq_lock+0x42/0x69 [] try_to_wake_up+0x2b0/0x2ba [] update_curr+0x103/0x12a [] enqueue_entity+0x1e2/0x203 [] lock_timer_base+0x19/0x35 [] __mod_timer+0x97/0xa1 [] __nf_ct_refresh_acct+0xe9/0x118 [nf_conntrack] [] tcp_packet+0xa09/0xa1b [nf_conntrack] [] mpage_end_io_read+0x0/0x61 [] tcp_error+0x107/0x1d7 [nf_conntrack] [] __wake_up+0x32/0x43 [] ipt_do_table+0x486/0x4bc [ip_tables] [] tcp_check_req+0x1e5/0x2f9 [] tcp_v4_do_rcv+0x2f1/0x323 [] core_sys_select+0x1dd/0x283 [] tcp_v4_rcv+0x7f2/0x850 [] ip_local_deliver+0x189/0x230 [] ip_local_deliver_finish+0x0/0x1b1 [] ip_rcv+0x499/0x4d3 [] ip_rcv_finish+0x0/0x2a8 [] __alloc_skb+0x42/0xec [] rhine_napipoll+0x42b/0x435 [via_rhine] [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S c1807dc0 0 10885 10813 f6111b40 00200086 0001731b c1807dc0 00000002 f6111b28 c19d9ab0 c19d9bf0 c180ae00 00000000 00023024 000000ff 00000000 00000000 0001731b f6111b50 000230eb 00000000 f6c240c0 c0267b50 02932e00 00000001 f610fb50 c0363ee4 Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] update_curr+0x103/0x12a [] rb_insert_color+0x8a/0xad [] enqueue_entity+0x1e2/0x203 [] __check_preempt_curr_fair+0x4c/0x71 [] check_preempt_curr_fair+0x69/0x6f [] try_to_wake_up+0x2b0/0x2ba [] tcp_packet+0xa09/0xa1b [nf_conntrack] [] autoremove_wake_function+0x13/0x33 [] __wake_up_common+0x32/0x55 [] e1000_xmit_frame+0x995/0x9be [e1000] [] __wake_up+0x32/0x43 [] packet_rcv+0x2bd/0x307 [af_packet] [] packet_rcv+0x0/0x307 [af_packet] [] dev_hard_start_xmit+0x200/0x275 [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] core_sys_select+0x1dd/0x283 [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_forward+0x275/0x2d2 [] ip_forward_finish+0x0/0x2e [] ip_rcv+0x499/0x4d3 [] ip_rcv_finish+0x0/0x2a8 [] __alloc_skb+0x42/0xec [] rhine_napipoll+0x42b/0x435 [via_rhine] [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S f6113e10 0 10886 10813 f6113e24 00200086 00000002 f6113e10 f6113e08 00000000 f7f72030 f7f72170 c1813e00 00000001 ffffcbf2 000000ff 00000000 00000001 00000000 dfe70934 f6113e90 c03856d0 0878ee88 c01371bb 00000000 00000007 00000007 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] sys_futex+0xc2/0xd4 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= mysqld S f62c5eb4 0 10887 10813 f62c5ec8 00200086 00000002 f62c5eb4 f62c5eac 00000000 c1a25570 c1a256b0 c1813e00 00000001 ffffa74b 000000ff 00000000 00000001 00000000 7fffffff 7fffffff 00000000 00000000 c0267af3 c0126371 00000000 00000000 0000000d Call Trace: [] schedule_timeout+0x13/0x8d [] __dequeue_signal+0x10/0x11c [] recalc_sigpending+0xb/0x1d [] dequeue_signal+0x99/0x112 [] getnstimeofday+0x35/0xe9 [] sys_rt_sigtimedwait+0x177/0x245 [] enqueue_hrtimer+0xdc/0xe7 [] hrtimer_start+0xe5/0xef [] do_setitimer+0x13b/0x2e1 [] recalc_sigpending+0xb/0x1d [] sigprocmask+0xa1/0xc4 [] sys_rt_sigprocmask+0x4b/0xc4 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S 00000001 0 10993 10813 f3bffd88 00200086 00000001 00000001 00004000 001257e8 c19c6030 c19c6170 c1813e00 00000001 c01258f2 00000001 00200286 00200286 f7f1b080 7fffffff f6e23080 f6e230ec 00000004 c0267af3 f6e23080 dfcef0b0 0020d9a4 00000020 Call Trace: [] __mod_timer+0x97/0xa1 [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] sk_wait_data+0x64/0x97 [] autoremove_wake_function+0x0/0x33 [] tcp_recvmsg+0x33a/0x720 [] __d_lookup+0x96/0xd5 [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] do_sync_read+0xc7/0x10a [] specific_send_sig_info+0x8c/0x97 [] autoremove_wake_function+0x0/0x33 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S f3441d74 0 10996 10813 f3441d88 00200086 00000002 f3441d74 f3441d6c 00000000 f7f46ab0 f7f46bf0 c180ae00 00000000 ffffa2d5 000000ff 00000000 00000000 00000000 7fffffff f3efe580 f3efe5ec 00000004 c0267af3 00000199 eb237680 c020d9a4 eb2376a0 Call Trace: [] schedule_timeout+0x13/0x8d [] sk_reset_timer+0xc/0x16 [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] sk_wait_data+0x64/0x97 [] autoremove_wake_function+0x0/0x33 [] tcp_recvmsg+0x33a/0x720 [] find_lock_page+0x1a/0x90 [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S f358bd74 0 10998 10813 f358bd88 00200086 00000002 f358bd74 f358bd6c 00000000 c19d3ab0 c19d3bf0 c180ae00 00000000 ffffc7a8 000000ff 00000000 00000001 00000000 7fffffff f3506a80 f3506aec 00000004 c0267af3 f3506a80 c1b138b0 0020d9a4 00000020 Call Trace: [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] sk_wait_data+0x64/0x97 [] autoremove_wake_function+0x0/0x33 [] tcp_recvmsg+0x33a/0x720 [] try_to_wake_up+0x2b0/0x2ba [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S c1807dc0 0 11000 10813 f35fbd88 00200086 00000400 c1807dc0 00000002 f35fbd70 c19c0570 c19c06b0 c180ae00 00000000 ffffa2c2 000000ff 00000000 00000000 00000400 7fffffff f35b0a80 f35b0aec 00000004 c0267af3 0000019b f6c93c80 c020d9a4 f6c93ca0 Call Trace: [] schedule_timeout+0x13/0x8d [] sk_reset_timer+0xc/0x16 [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] sk_wait_data+0x64/0x97 [] autoremove_wake_function+0x0/0x33 [] tcp_recvmsg+0x33a/0x720 [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] __wake_up+0x32/0x43 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= mysqld S f08a5d74 0 11293 10813 f08a5d88 00200086 00000002 f08a5d74 f08a5d6c 00000000 f14afab0 f14afbf0 c1813e00 00000001 ffffa2d6 000000ff 00000000 00000000 00000000 7fffffff f0883a80 f0883aec 00000004 c0267af3 00000189 eb237680 c020d9a4 eb2376a0 Call Trace: [] schedule_timeout+0x13/0x8d [] sk_reset_timer+0xc/0x16 [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] sk_wait_data+0x64/0x97 [] autoremove_wake_function+0x0/0x33 [] tcp_recvmsg+0x33a/0x720 [] __d_lookup+0x96/0xd5 [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= logger S f68b9e48 0 10878 10813 f68b9e5c 00000082 00000002 f68b9e48 f68b9e40 00000000 f7ed8030 f7ed8170 c1813e00 00000001 ffff9821 000000ff 00000000 00000000 00000000 f789e200 f789e200 f68b9e78 c1972d40 c0166f4a 00000000 f7ed8030 c012dd98 f789e204 Call Trace: [] pipe_wait+0x51/0x6f [] autoremove_wake_function+0x0/0x33 [] pipe_read+0x2cf/0x343 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] sys_send+0x37/0x3b [] do_sync_read+0x0/0x10a [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= ntop S c1807dc0 0 10961 1 f42bdf28 00200082 0001731b c1807dc0 00000002 f42bdf10 f7fab570 f7fab6b0 c180ae00 00000000 00022da0 000000ff 00000000 00000000 0001731b f42bdf40 00000001 00000001 bf84d158 c0267ee0 00000001 00000000 0087e000 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= ntop S f311be10 0 11002 1 f311be24 00200082 00000002 f311be10 f311be08 00000000 dffd0570 dffd06b0 c180ae00 00000000 ffff9977 000000ff 00000000 00000000 00000000 f7ef1074 f311be90 c038584c b68b9ad0 c01371bb 00000000 00000001 00000001 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] __wake_up_common+0x32/0x55 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] recalc_sigpending+0xb/0x1d [] do_notify_resume+0x4fa/0x5ef [] __switch_to+0xa2/0x126 [] convert_fxsr_from_user+0x15/0xd2 [] sys_futex+0xc2/0xd4 [] sys_rt_sigreturn+0xc3/0xe6 [] sysenter_past_esp+0x6b/0xa1 ======================= ntop S c1807dc0 0 11003 1 f311df28 00200082 0001731b c1807dc0 00000002 f311df10 dffda570 dffda6b0 c180ae00 00000000 00022da1 000000ff 00000000 00000000 0001731b f311df40 00000001 00000001 b56e33a8 c0267ee0 00000001 00000000 00002ad1 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= ntop S c1807dc0 0 11004 1 f311ff28 00200082 0001731b c1807dc0 00000002 f311ff10 dffe1570 dffe16b0 c180ae00 00000000 00022dd0 000000ff 00000000 00000000 0001731b f311ff40 00000001 00000001 b4ee23b8 c0267ee0 00000001 00000000 00002ad1 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= ntop S c1807dc0 0 11005 1 f3121e24 00200082 0001731b c1807dc0 00000002 f3121e0c c19cf030 c19cf170 c180ae00 00000000 000225f2 000000ff 00000000 00000000 0001731b f7ef1074 f3121e90 c0385860 b68b9b1c c01371bb f3121edc 0000000f 0000000f 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] autoremove_wake_function+0x0/0x33 [] __switch_to+0xa2/0x126 [] sys_futex+0xc2/0xd4 [] sys_write+0x5f/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= ntop S c1807dc0 0 11008 1 f31ffb40 00200082 0001731b c1807dc0 00000002 f31ffb28 dffd5570 dffd56b0 c180ae00 00000000 00022d9f 000000ff 00000000 00000000 0001731b f31ffb50 00023186 00000002 00000004 c0267b50 f31fff9c c0103324 e540d478 df090914 Call Trace: [] schedule_timeout+0x70/0x8d [] apic_timer_interrupt+0x28/0x30 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] update_curr+0x103/0x12a [] enqueue_entity+0x1e2/0x203 [] __check_preempt_curr_fair+0x4c/0x71 [] check_preempt_curr_fair+0x69/0x6f [] try_to_wake_up+0x2b0/0x2ba [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] sock_def_readable+0x37/0x61 [] unix_dgram_sendmsg+0x382/0x402 [] ata_qc_issue+0x43c/0x480 [libata] [] __scsi_get_command+0x13/0x51 [scsi_mod] [] scsi_get_command+0x7d/0x96 [scsi_mod] [] scsi_done+0x0/0x16 [scsi_mod] [] ata_scsi_translate+0xfb/0x156 [libata] [] scsi_prep_fn+0xb6/0x216 [scsi_mod] [] elv_next_request+0x191/0x1a1 [] scsi_dispatch_cmd+0x1d5/0x245 [scsi_mod] [] core_sys_select+0x1dd/0x283 [] scsi_end_request+0x9b/0xa5 [scsi_mod] [] scsi_io_completion+0x153/0x36b [scsi_mod] [] del_timer+0x45/0x4b [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] __kfree_skb+0xa3/0xfa [] net_tx_action+0x71/0xf0 [] irq_exit+0x53/0x6b [] do_IRQ+0x5c/0x71 [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] __kfree_skb+0xa3/0xfa [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= ntop S c1807dc0 0 11009 1 f3257f28 00200082 0001731b c1807dc0 00000002 f3257f10 dffe0030 dffe0170 c180ae00 00000000 00022f99 000000ff 00000000 00000000 0001731b f3257f40 00000001 00000001 b36aaa28 c0267ee0 00000001 00000000 00000000 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= ntop R running 0 11010 1 ntop S c1807dc0 0 11389 1 eed7df28 00200082 0001731b c1807dc0 00000002 eed7df10 f1bdfab0 f1bdfbf0 c180ae00 00000000 00022db6 000000ff 00000000 00000000 0001731b eed7df40 00000001 00000001 b26a91b8 c0267ee0 00000001 00000000 00002ad1 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S c1807dc0 0 10978 1 f39cbf28 00000082 0001731b c1807dc0 00000002 f39cbf10 c1926030 c1926170 c180ae00 00000000 000230a5 000000ff 00000000 00000000 0001731b f39cbf40 00000001 00000001 bfe8d874 c0267ee0 00000001 00000000 bfe8d874 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sigprocmask+0xa1/0xc4 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= pdns_server S 00000000 0 10979 1 f39ede40 00000082 c0146f51 00000000 dfd0b2b0 dfd0b2b0 dffdbab0 dffdbbf0 c1813e00 00000001 c1673a20 f39d2000 00000000 c0149ceb 00000002 7fffffff f7509700 ffffff95 7fffffff c0267af3 c02db5d0 00000001 00000000 00000001 Call Trace: [] find_lock_page+0x1a/0x90 [] get_page_from_freelist+0x257/0x2d6 [] schedule_timeout+0x13/0x8d [] prepare_to_wait_exclusive+0x12/0x4a [] skb_recv_datagram+0x115/0x172 [] autoremove_wake_function+0x0/0x33 [] unix_accept+0x4e/0xd4 [] sys_accept+0xd8/0x1ad [] do_page_fault+0x2ed/0x63d [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= pdns_server S f39efe10 0 10980 10978 f39efe24 00000086 00000002 f39efe10 f39efe08 00000000 c19c5030 c19c5170 c1813e00 00000001 ffff9966 000000ff 00000000 00000001 00000000 dfd24af4 f39efe90 c03857c0 b439bbf8 c01371bb c0149ceb 00002af9 00002af9 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] get_page_from_freelist+0x257/0x2d6 [] __alloc_pages+0x5b/0x2a4 [] __rmqueue+0x78/0xcb [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] schedule+0x453/0x511 [] sys_futex+0xc2/0xd4 [] sys_clone+0x36/0x3b [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S c1677420 0 10990 10978 f3bd9e5c 00000086 c1677420 c1677420 f3bd9e8c f769ae9c dffe0ab0 dffe0bf0 c1813e00 00000001 00000000 00000000 c17e1600 00000246 c012deee f7f06c00 f7f06c00 f3bd9e78 f7e6fac0 c0166f4a 00000000 dffe0ab0 c012dd98 f7f06c04 Call Trace: [] prepare_to_wait+0x12/0x4b [] pipe_wait+0x51/0x6f [] autoremove_wake_function+0x0/0x33 [] pipe_read+0x2cf/0x343 [] handle_mm_fault+0x36e/0x6f9 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_sync_read+0x0/0x10a [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= pdns_server S 00000000 0 10991 10978 f3bdbe28 00000086 00000000 00000000 c19d9030 00000000 c19d9030 c19d9170 c1813e00 00000001 f3bdbe08 f3bdbe08 00000000 00000000 c0169457 7fffffff 7fffffff f3bdbe98 f3bdbebc c0267af3 00000000 00000282 dfc18c44 d662d853 Call Trace: [] __link_path_walk+0x932/0xaa6 [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] cp_new_stat64+0xf3/0x105 [] sys_send+0x37/0x3b [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S c1807dc0 0 10992 10978 f3bddf28 00000086 0001731b c1807dc0 00000002 f3bddf10 dffd7ab0 dffd7bf0 c180ae00 00000000 000230a7 000000ff 00000000 00000000 0001731b f3bddf40 00000001 00000001 b6ba01d4 c0267ee0 00000001 00000000 b6ba01d4 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sigprocmask+0xa1/0xc4 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S 00000000 0 10994 10978 f343db40 00000086 00000000 00000000 00000000 00000000 c1912030 c1912170 c1813e00 00000001 00000000 00000000 00000000 00000000 00000000 7fffffff f343df9c 00000007 00000080 c0267af3 00000000 00000000 00000246 c012dfc8 Call Trace: [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] tcp_poll+0x18/0x120 [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] find_lock_page+0x1a/0x90 [] filemap_fault+0x227/0x387 [] core_sys_select+0x1dd/0x283 [] handle_mm_fault+0x36e/0x6f9 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= pdns_server S f343fe10 0 10995 10978 f343fe24 00000086 00000002 f343fe10 f343fe08 00000000 dffe1030 dffe1170 c1813e00 00000001 ffffa2d6 000000ff 00000000 00000000 00000000 dfd24af4 f343fe90 c03855f4 0814c378 c01371bb 7fffffff 00000000 00000000 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] autoremove_wake_function+0x0/0x33 [] do_gettimeofday+0x35/0xfe [] sys_futex+0xc2/0xd4 [] sys_gettimeofday+0x26/0x52 [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S c01542ea 0 10997 10978 f3589e24 00000086 0814c000 c01542ea 0814c378 0814c000 dffce030 dffce170 c180ae00 00000000 00000000 00000000 dffce030 dfd24af4 00000246 dfd24af4 f3589e90 c03855f4 0814c378 c01371bb 7fffffff 00000000 00000000 00000000 Call Trace: [] find_extend_vma+0x12/0x49 [] futex_wait+0x1b6/0x2bc [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] autoremove_wake_function+0x0/0x33 [] do_gettimeofday+0x35/0xfe [] sys_futex+0xc2/0xd4 [] sys_gettimeofday+0x26/0x52 [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S c01542ea 0 10999 10978 f35f9e24 00000086 0814c000 c01542ea 0814c378 0814c000 dffd7030 dffd7170 c1813e00 00000001 00000000 00000000 dffd7030 dfd24af4 00000246 dfd24af4 f35f9e90 c03855f4 0814c378 c01371bb 7fffffff 00000000 00000000 00000000 Call Trace: [] find_extend_vma+0x12/0x49 [] futex_wait+0x1b6/0x2bc [] sock_common_recvmsg+0x3e/0x54 [] sock_aio_read+0xd1/0xdd [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] autoremove_wake_function+0x0/0x33 [] do_gettimeofday+0x35/0xfe [] sys_futex+0xc2/0xd4 [] sys_gettimeofday+0x26/0x52 [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S c1807dc0 0 11001 10978 f373dd0c 00000086 00000400 c1807dc0 00000002 f373dcf4 f7ef3ab0 f7ef3bf0 c180ae00 00000000 ffffc7a4 000000ff 00000000 00000000 00000400 7fffffff f5cdfd00 00000000 7fffffff c0267af3 00000000 00000000 00000000 f373df58 Call Trace: [] schedule_timeout+0x13/0x8d [] memcpy_toiovec+0x25/0x47 [] prepare_to_wait_exclusive+0x12/0x4a [] skb_recv_datagram+0x115/0x172 [] autoremove_wake_function+0x0/0x33 [] udp_recvmsg+0x5d/0x1d1 [] sock_common_recvmsg+0x3e/0x54 [] sock_recvmsg+0xcf/0xe8 [] autoremove_wake_function+0x0/0x33 [] try_to_wake_up+0x2b0/0x2ba [] __wake_up+0x32/0x43 [] sys_recvfrom+0xd7/0x12b [] futex_wake+0xaa/0xb4 [] do_futex+0x80/0x999 [] getnstimeofday+0x35/0xe9 [] lapic_next_event+0xc/0x10 [] clockevents_program_event+0x9e/0xaa [] sys_socketcall+0x1cd/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_server S f08a3e10 0 11292 10978 f08a3e24 00000086 00000002 f08a3e10 f08a3e08 00000000 f16b2570 f16b26b0 c180ae00 00000000 ffffa2d5 000000ff 00000000 00000000 00000000 dfd24af4 f08a3e90 c03855f4 0814c378 c01371bb c0149ceb 00000000 00000000 00000000 Call Trace: [] futex_wait+0x1b6/0x2bc [] get_page_from_freelist+0x257/0x2d6 [] __alloc_pages+0x5b/0x2a4 [] default_wake_function+0x0/0xc [] do_futex+0x6d/0x999 [] autoremove_wake_function+0x0/0x33 [] do_gettimeofday+0x35/0xfe [] sys_futex+0xc2/0xd4 [] sys_gettimeofday+0x26/0x52 [] sysenter_past_esp+0x6b/0xa1 ======================= pdns_recursor S c1807dc0 0 11011 1 f3313f28 00000086 0001731b c1807dc0 00000002 f3313f10 c192bab0 c192bbf0 c180ae00 00000000 0002308e 000000ff 00000000 00000000 0001731b f3313f38 000230bf 00000020 00000206 c0267b50 0001e78b ec687380 c0363d84 c0363d84 Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] sys_epoll_wait+0x156/0x39f [] default_wake_function+0x0/0xc [] sys_gettimeofday+0x26/0x52 [] sysenter_past_esp+0x6b/0xa1 ======================= master S c1807dc0 0 11076 1 f2059b40 00000086 0001731b c1807dc0 c02db59c 000000d0 f2c8e570 f2c8e6b0 c180ae00 00000000 f2059b50 00000282 c01258f2 00000000 00000282 f2059b50 000242ac 0000005c 10000000 c0267b50 f2059bdc 00000000 c0363f9c c0363f9c Call Trace: [] __mod_timer+0x97/0xa1 [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] core_sys_select+0x1dd/0x283 [] do_sync_read+0xc7/0x10a [] getnstimeofday+0x35/0xe9 [] rb_insert_color+0x4a/0xad [] enqueue_hrtimer+0xdc/0xe7 [] hrtimer_start+0xe5/0xef [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= pickup S c1807dc0 0 11079 11076 f2711b40 00200082 0001731b c1807dc0 00000002 f2711b28 f2c8eab0 f2c8ebf0 c180ae00 00000000 00022b3d 000000ff 00000000 00000000 0001731b f2711b50 0002524c 00000007 00000080 c0267b50 02625a00 00000000 c036401c c036401c Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] __check_preempt_curr_fair+0x4c/0x71 [] check_preempt_curr_fair+0x69/0x6f [] try_to_wake_up+0x2b0/0x2ba [] __wait_on_bit+0x4e/0x56 [] sync_buffer+0x0/0x33 [] out_of_line_wait_on_bit+0x63/0x6b [] autoremove_wake_function+0x13/0x33 [] __wake_up_common+0x32/0x55 [] __find_get_block_slow+0x117/0x121 [] ext3_get_blocks_handle+0xc3/0x855 [ext3] [] __find_get_block+0x1c4/0x1ce [] task_rq_lock+0x42/0x69 [] try_to_wake_up+0x2b0/0x2ba [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] core_sys_select+0x1dd/0x283 [] sock_aio_write+0xc8/0xd4 [] filldir64+0x92/0xc4 [] do_sync_write+0xc7/0x10a [] getnstimeofday+0x35/0xe9 [] rb_insert_color+0x8a/0xad [] enqueue_hrtimer+0xdc/0xe7 [] hrtimer_start+0xe5/0xef [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= qmgr S c1807dc0 0 11080 11076 f2799b40 00200086 0001731b c1807dc0 00000002 f2799b28 c192e030 c192e170 c180ae00 00000000 0001e48a 000000ff 00000000 00000000 0001731b f2799b50 0002a7d9 00000007 00000080 c0267b50 c01a36d8 00000000 e5d6f73c f02e7bf4 Call Trace: [] schedule_timeout+0x70/0x8d [] get_request+0x1fa/0x298 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] get_request+0x1fa/0x298 [] update_stats_wait_end+0x9b/0xbe [] elv_rb_add+0x61/0x6b [] deadline_add_rq_rb+0x19/0x2c [] deadline_add_request+0x18/0x39 [] pdc_qc_prep+0x2b/0x26a [sata_promise] [] ata_qc_issue+0x43c/0x480 [libata] [] ata_scsi_rw_xlat+0x151/0x19d [libata] [] scsi_done+0x0/0x16 [scsi_mod] [] ata_scsi_translate+0xfb/0x156 [libata] [] scsi_prep_fn+0x1aa/0x216 [scsi_mod] [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] schedule+0x453/0x511 [] submit_bio+0xb5/0xbc [] io_schedule+0x1d/0x27 [] ext3fs_dirhash+0x109/0x1d6 [ext3] [] core_sys_select+0x1dd/0x283 [] htree_dirblock_to_tree+0x11c/0x126 [ext3] [] filldir64+0x92/0xc4 [] call_filldir+0xaf/0xc6 [ext3] [] filldir64+0x0/0xc4 [] ext3_readdir+0x1fb/0x5d7 [ext3] [] getnstimeofday+0x35/0xe9 [] filldir64+0x0/0xc4 [] enqueue_hrtimer+0xdc/0xe7 [] sys_select+0x9d/0x167 [] getnstimeofday+0x35/0xe9 [] sysenter_past_esp+0x6b/0xa1 ======================= nmbd S c1807dc0 0 11090 1 f2325b40 00000086 0001731b c1807dc0 00000002 f2325b28 f3ee1030 f3ee1170 c180ae00 00000000 00022fab 000000ff 00000000 00000000 0001731b f2325b50 00023392 0000000c 00001000 c0267b50 00000246 c012dfc8 f6e89b50 ea1a4bd8 Call Trace: [] schedule_timeout+0x70/0x8d [] add_wait_queue+0xf/0x30 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] dev_queue_xmit+0x289/0x2ae [] ip_mc_output+0x38d/0x3c6 [] ip_finish_output+0x0/0x218 [] ip_push_pending_frames+0x348/0x3da [] dst_output+0x0/0x7 [] udp_push_pending_frames+0x2ac/0x2fe [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] memcpy_toiovec+0x25/0x47 [] skb_copy_datagram_iovec+0x53/0x1cd [] skb_dequeue+0x39/0x3f [] skb_recv_datagram+0x6b/0x172 [] __kfree_skb+0xa3/0xfa [] udp_recvmsg+0x184/0x1d1 [] sock_common_recvmsg+0x3e/0x54 [] sock_recvmsg+0xcf/0xe8 [] sock_sendmsg+0xbc/0xd4 [] autoremove_wake_function+0x0/0x33 [] core_sys_select+0x1dd/0x283 [] move_addr_to_user+0x4e/0x66 [] sys_recvfrom+0x108/0x12b [] __dev_get_by_name+0x5d/0x67 [] fasync_helper+0x3a/0xb5 [] __posix_lock_file+0x47d/0x49b [] _spin_lock_bh+0x8/0x18 [] inet_sock_destruct+0x161/0x1a7 [] _spin_lock_bh+0x8/0x18 [] sys_select+0x9d/0x167 [] recalc_sigpending+0xb/0x1d [] sigprocmask+0xa1/0xc4 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= smbd S f1e5bb2c 0 11092 1 f1e5bb40 00200082 00000002 f1e5bb2c f1e5bb24 00000000 f3ee1570 f3ee16b0 c180ae00 00000000 ffff9a93 000000ff 00000000 00000000 00000000 7fffffff f1e5bf9c 00000017 00800000 c0267af3 c0119e96 02625a00 00200246 c012dfc8 Call Trace: [] schedule_timeout+0x13/0x8d [] enqueue_entity+0x1e2/0x203 [] add_wait_queue+0xf/0x30 [] add_wait_queue+0xf/0x30 [] pipe_poll+0x24/0x7b [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] extract_buf+0x97/0xd2 [] extract_buf+0x97/0xd2 [] __rmqueue+0x78/0xcb [] find_lock_page+0x1a/0x90 [] filemap_fault+0x227/0x387 [] __alloc_pages+0x5b/0x2a4 [] core_sys_select+0x1dd/0x283 [] flush_tlb_page+0x3d/0x61 [] handle_mm_fault+0x36e/0x6f9 [] tcp_v4_hash+0x164/0x176 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_select+0x9d/0x167 [] do_pipe+0x81/0xd5 [] do_fcntl+0x1c1/0x247 [] sysenter_past_esp+0x6b/0xa1 ======================= smbd4wins S c1807dc0 0 11096 1 f18b9b40 00000086 0001731b c1807dc0 00000002 f18b9b28 c19c6ab0 c19c6bf0 c180ae00 00000000 00022bb4 000000ff 00000000 00000000 0001731b f18b9b50 00023190 0000000d 00002000 c0267b50 00000246 c012dfc8 e5ed2bd8 c4409288 Call Trace: [] schedule_timeout+0x70/0x8d [] add_wait_queue+0xf/0x30 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] ip_local_deliver+0x189/0x230 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] local_bh_enable+0x87/0x95 [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_push_pending_frames+0x348/0x3da [] dst_output+0x0/0x7 [] udp_push_pending_frames+0x2ac/0x2fe [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] udp_sendmsg+0x4d2/0x5bf [] inet_sendmsg+0x39/0x43 [] sock_sendmsg+0xbc/0xd4 [] __ext3_get_inode_loc+0x117/0x2dd [ext3] [] core_sys_select+0x1dd/0x283 [] ext3_mark_inode_dirty+0x20/0x27 [ext3] [] __ext3_journal_stop+0x19/0x34 [ext3] [] __mark_inode_dirty+0xca/0x143 [] ext3_orphan_del+0x31/0x141 [ext3] [] cache_alloc_refill+0x64/0x487 [] fasync_helper+0x3a/0xb5 [] __posix_lock_file+0x47d/0x49b [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= smbd S f1909fb8 0 11098 11092 f1909fac 00200082 00000007 f1909fb8 f7f3fab0 00000001 f7f3fab0 f7f3fbf0 c180ae00 00000000 0000000e f1909fb8 c02a44ef 00000007 0000000e 00000001 00000001 bfd24260 f1908000 c012630e c0102802 00000001 b7d9f368 083e2e98 Call Trace: [] sys_pause+0x11/0x17 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= saslauthd S f1b67f40 0 11109 1 f1b67f54 00200086 00000002 f1b67f40 f1b67f38 00000000 c19daab0 c19dabf0 c180ae00 00000000 00014e38 000000ff 00000000 00200246 c012deee f5d65d1c f7e1e4c0 f1b67f7c 00000007 c016f23f 00000000 00000007 0000001c 00000000 Call Trace: [] prepare_to_wait+0x12/0x4b [] fcntl_setlk+0x14f/0x1cf [] autoremove_wake_function+0x0/0x33 [] sys_fcntl64+0x5a/0x6b [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= saslauthd S 00000000 0 11110 11109 f1b69f54 00200082 00000000 00000000 00000001 00000000 c19c0ab0 c19c0bf0 c180ae00 00000000 dfe34324 00000003 00200246 00200246 c012deee f20faa7c f7e1e4c0 f1b69f7c 00000007 c016f23f 00000000 00000007 0000001c 00000000 Call Trace: [] prepare_to_wait+0x12/0x4b [] fcntl_setlk+0x14f/0x1cf [] autoremove_wake_function+0x0/0x33 [] sys_fcntl64+0x5a/0x6b [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= saslauthd S 00000000 0 11111 11109 f1ba9e40 00200082 c0146f51 00000000 dfd0b2b0 dfd0b2b0 f2c5e570 f2c5e6b0 c180ae00 00000000 00000002 f1ba9e8c dffb095c dfd0b358 c1bea908 7fffffff f270a700 ffffff95 7fffffff c0267af3 c17e12c0 00000000 c17e12c0 c1810dac Call Trace: [] find_lock_page+0x1a/0x90 [] schedule_timeout+0x13/0x8d [] __next_cpu+0x12/0x1f [] prepare_to_wait_exclusive+0x12/0x4a [] skb_recv_datagram+0x115/0x172 [] autoremove_wake_function+0x0/0x33 [] unix_accept+0x4e/0xd4 [] sys_accept+0xd8/0x1ad [] update_stats_wait_end+0x9b/0xbe [] update_curr_load+0x6e/0x83 [] __switch_to+0xa2/0x126 [] __posix_lock_file+0x47d/0x49b [] schedule+0x453/0x511 [] fcntl_setlk+0x1c5/0x1cf [] sys_socketcall+0xd6/0x262 [] sys_fcntl64+0x63/0x6b [] sysenter_past_esp+0x6b/0xa1 ======================= saslauthd S 00000003 0 11112 11109 f1babf54 00200082 00000000 00000003 f1babf90 0000000d f3ee1ab0 f3ee1bf0 c180ae00 00000000 f7fb7e74 f7fb7e40 b7b2fcef 00200246 c012deee f5d6517c f7e1e4c0 f1babf7c 00000007 c016f23f 00000000 00000007 0000001c 00000000 Call Trace: [] prepare_to_wait+0x12/0x4b [] fcntl_setlk+0x14f/0x1cf [] autoremove_wake_function+0x0/0x33 [] sys_fcntl64+0x5a/0x6b [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= saslauthd S f1bcdf40 0 11113 11109 f1bcdf54 00200082 00000002 f1bcdf40 f1bcdf38 00000000 c19ce570 c19ce6b0 c180ae00 00000000 0000d5f6 000000ff 00000000 00200246 c012deee f5d65bfc f7e1e4c0 f1bcdf7c 00000007 c016f23f 00000000 00000007 0000001c 00000000 Call Trace: [] prepare_to_wait+0x12/0x4b [] fcntl_setlk+0x14f/0x1cf [] autoremove_wake_function+0x0/0x33 [] sys_fcntl64+0x5a/0x6b [] sysenter_past_esp+0x6b/0xa1 ======================= sshd S c1807dc0 0 11130 1 f1427b40 00200086 0001731b c1807dc0 00000002 f1427b28 f7fcd570 f7fcd6b0 c180ae00 00000000 00022be7 000000ff 00000000 00000000 0001731b 7fffffff f1427f9c 00000006 00000040 c0267af3 f7586eb0 e8bea280 00200246 c012dfc8 Call Trace: [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] add_wait_queue+0xf/0x30 [] pipe_poll+0x24/0x7b [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] tcp_v4_do_rcv+0x2d9/0x323 [] nf_ct_deliver_cached_events+0x3e/0x91 [nf_conntrack] [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] tcp_v4_rcv+0x7f2/0x850 [] ip_local_deliver+0x189/0x230 [] ip_local_deliver_finish+0x0/0x1b1 [] ip_rcv+0x499/0x4d3 [] ip_rcv_finish+0x0/0x2a8 [] update_curr+0x103/0x12a [] enqueue_entity+0x1e2/0x203 [] __check_preempt_curr_fair+0x4c/0x71 [] check_preempt_curr_fair+0x69/0x6f [] try_to_wake_up+0x2b0/0x2ba [] cache_alloc_refill+0x64/0x487 [] __alloc_skb+0x42/0xec [] sock_alloc_send_skb+0x6e/0x196 [] core_sys_select+0x1dd/0x283 [] flush_tlb_page+0x3d/0x61 [] handle_mm_fault+0x67f/0x6f9 [] do_sync_write+0xc7/0x10a [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_select+0x9d/0x167 [] filp_close+0x4f/0x56 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= ulogd S f152fd00 0 11143 1 f152fd14 00000082 00000002 f152fd00 f152fcf8 00000000 c19d8ab0 c19d8bf0 c180ae00 00000000 ffffa1f1 000000ff 00000000 00000001 00000000 7fffffff dfe2e000 00000000 7fffffff c0267af3 f6f219e8 00008000 00000000 00000c8c Call Trace: [] schedule_timeout+0x13/0x8d [] __ext3_journal_stop+0x19/0x34 [ext3] [] prepare_to_wait_exclusive+0x12/0x4a [] skb_recv_datagram+0x115/0x172 [] autoremove_wake_function+0x0/0x33 [] netlink_recvmsg+0x44/0x219 [] sock_recvmsg+0xcf/0xe8 [] __generic_file_aio_write_nolock+0x481/0x4c3 [] autoremove_wake_function+0x0/0x33 [] __do_fault+0x30e/0x33b [] generic_file_aio_write+0x5b/0xb0 [] sys_recvfrom+0xd7/0x12b [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] sys_socketcall+0x1cd/0x262 [] sysenter_past_esp+0x6b/0xa1 ======================= ntpd S c1807dc0 0 11257 1 f1117b40 00200082 0001731b c1807dc0 00000002 f1117b28 f1bdf030 f1bdf170 c180ae00 00000000 00023087 000000ff 00000000 00000000 0001731b 7fffffff f1117f9c 00000009 00000200 c0267af3 00200246 c012dfc8 f1b0d580 f1117bdc Call Trace: [] schedule_timeout+0x13/0x8d [] add_wait_queue+0xf/0x30 [] datagram_poll+0x14/0xad [] udp_poll+0xe/0xd3 [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] __ext3_get_inode_loc+0x117/0x2dd [ext3] [] __ext3_journal_dirty_metadata+0x15/0x3b [ext3] [] ext3_mark_iloc_dirty+0x27e/0x2d9 [ext3] [] ext3_mark_inode_dirty+0x20/0x27 [ext3] [] __wake_up+0x32/0x43 [] journal_stop+0x1af/0x1bb [jbd] [] __ext3_journal_stop+0x19/0x34 [ext3] [] ext3_ordered_commit_write+0xb4/0xc3 [ext3] [] ext3_journal_dirty_data+0x0/0x31 [ext3] [] generic_file_buffered_write+0x4cd/0x59c [] __ext3_journal_stop+0x19/0x34 [ext3] [] __mark_inode_dirty+0x24/0x143 [] __generic_file_aio_write_nolock+0x481/0x4c3 [] core_sys_select+0x1dd/0x283 [] enqueue_hrtimer+0xdc/0xe7 [] hrtimer_start+0xe5/0xef [] convert_fxsr_to_user+0xe2/0x12e [] save_i387+0x121/0x133 [] setup_sigcontext+0xdd/0x117 [] recalc_sigpending+0xb/0x1d [] do_notify_resume+0x4fa/0x5ef [] convert_fxsr_from_user+0x15/0xd2 [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= mdadm S f1081b2c 0 11272 1 f1081b40 00000086 00000002 f1081b2c f1081b24 00000000 f1ba7ab0 f1ba7bf0 c180ae00 00000000 f1081b50 00000282 c01258f2 00000000 00000282 f1081b50 00024319 00000005 00000020 c0267b50 c01821f7 c017efdf c0363fa4 e2d83db0 Call Trace: [] __mod_timer+0x97/0xa1 [] schedule_timeout+0x70/0x8d [] mpage_end_io_read+0x0/0x61 [] bio_endio+0x5b/0x63 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] __add_entropy_words+0x5b/0x176 [] __wake_up+0x32/0x43 [] scsi_run_queue+0x17a/0x189 [scsi_mod] [] enqueue_entity+0x1e2/0x203 [] inc_nr_running+0x13/0x24 [] try_to_wake_up+0x2b0/0x2ba [] autoremove_wake_function+0x13/0x33 [] __wake_up_common+0x32/0x55 [] __wake_up+0x32/0x43 [] md_wakeup_thread+0x24/0x26 [md_mod] [] md_ioctl+0x11d1/0x1213 [md_mod] [] enqueue_entity+0x1e2/0x203 [] core_sys_select+0x1dd/0x283 [] blkdev_driver_ioctl+0x54/0x5d [] check_disk_change+0x14/0x5a [] md_open+0x49/0x50 [md_mod] [] do_open+0x1d1/0x240 [] may_open+0x4e/0x194 [] blkdev_open+0x0/0x51 [] blkdev_open+0x25/0x51 [] __dentry_open+0xdd/0x16a [] nameidata_to_filp+0x23/0x32 [] do_filp_open+0x32/0x39 [] sys_select+0x9d/0x167 [] mntput_no_expire+0x11/0x5d [] filp_close+0x4f/0x56 [] sysenter_past_esp+0x6b/0xa1 ======================= dhcpd3 S f0df7b2c 0 11290 1 f0df7b40 00000086 00000002 f0df7b2c f0df7b24 00000000 f2003570 f20036b0 c180ae00 00000000 0001b069 000000ff 00000000 00000000 00000000 f0df7b50 007a0069 00000008 00000100 c0267b50 00000246 c012dfc8 c03643c4 c03643c4 Call Trace: [] schedule_timeout+0x70/0x8d [] add_wait_queue+0xf/0x30 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] enqueue_entity+0x1e2/0x203 [] inc_nr_running+0x13/0x24 [] try_to_wake_up+0x2b0/0x2ba [] dx_probe+0x95/0x2d2 [ext3] [] ifind_fast+0x2a/0x69 [] ext3_get_acl+0x51/0x2bf [ext3] [] __wake_up_common+0x32/0x55 [] memcpy_toiovec+0x25/0x47 [] skb_copy_datagram_iovec+0x53/0x1cd [] skb_dequeue+0x39/0x3f [] skb_recv_datagram+0x6b/0x172 [] __kfree_skb+0xa3/0xfa [] udp_recvmsg+0x184/0x1d1 [] sock_common_recvmsg+0x3e/0x54 [] sock_recvmsg+0xcf/0xe8 [] autoremove_wake_function+0x0/0x33 [] core_sys_select+0x1dd/0x283 [] move_addr_to_user+0x4e/0x66 [] sys_recvfrom+0x108/0x12b [] cp_new_stat64+0xf3/0x105 [] do_page_fault+0x0/0x63d [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= atd S f0bbbf14 0 11307 1 f0bbbf28 00000086 00000002 f0bbbf14 f0bbbf0c 00000000 f1576ab0 f1576bf0 c1813e00 00000001 ffff9c29 000000ff 00000000 00000000 00000000 f0bbbf40 00000001 00000001 bfe9c124 c0267ee0 00000001 00000000 bfe9c124 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sigprocmask+0xa1/0xc4 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= cron S c1807dc0 0 11317 1 f0bf1f28 00000086 0001731b c1807dc0 00000002 f0bf1f10 f1576570 f15766b0 c180ae00 00000000 00021e93 000000ff 00000000 00000000 0001731b f0bf1f40 00000001 00000001 bfec71b4 c0267ee0 00000001 00000000 bfec71b4 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sigprocmask+0xa1/0xc4 [] sys_nanosleep+0x49/0x5c [] sysenter_past_esp+0x6b/0xa1 ======================= apache2 S c1807dc0 0 11343 1 f0159b40 00200086 0001731b c1807dc0 00000002 f0159b28 f1463ab0 f1463bf0 c180ae00 00000000 00023054 000000ff 00000000 00000000 0001731b f0159b50 000230b7 00000000 dffbabcc c0267b50 dffbabcc c0103267 c0363d44 c0363d44 Call Trace: [] schedule_timeout+0x70/0x8d [] common_interrupt+0x23/0x28 [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] rb_insert_color+0x8a/0xad [] enqueue_entity+0x1e2/0x203 [] __check_preempt_curr_fair+0x4c/0x71 [] mempool_free+0x68/0x6d [] bio_put+0x23/0x24 [] mpage_end_io_read+0x5b/0x61 [] mpage_end_io_read+0x0/0x61 [] bio_endio+0x5b/0x63 [] enqueue_entity+0x1e2/0x203 [] inc_nr_running+0x13/0x24 [] try_to_wake_up+0x2b0/0x2ba [] tcp_packet+0xa09/0xa1b [nf_conntrack] [] autoremove_wake_function+0x13/0x33 [] __wake_up_common+0x32/0x55 [] e1000_xmit_frame+0x995/0x9be [e1000] [] __wake_up+0x32/0x43 [] packet_rcv+0x2bd/0x307 [af_packet] [] packet_rcv+0x0/0x307 [af_packet] [] dev_hard_start_xmit+0x200/0x275 [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] core_sys_select+0x1dd/0x283 [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_forward+0x275/0x2d2 [] ip_forward_finish+0x0/0x2e [] ip_rcv+0x499/0x4d3 [] ip_rcv_finish+0x0/0x2a8 [] __alloc_skb+0x42/0xec [] rhine_napipoll+0x42b/0x435 [via_rhine] [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] remove_wait_queue+0xc/0x34 [] do_wait+0x970/0x9da [] sys_select+0x9d/0x167 [] sysenter_past_esp+0x6b/0xa1 ======================= getty S 00000008 0 11361 1 f01f9ec0 00000082 00000020 00000008 0000000a c00bc434 f1570570 f15706b0 c180ae00 00000000 00000000 010000c0 f01f0000 c02da200 00000246 7fffffff f7ee8800 f01f9f3c bf824cbb c0267af3 c014a460 c15fb7c0 002da200 c02da200 Call Trace: [] schedule_timeout+0x13/0x8d [] __pagevec_free+0x18/0x22 [] release_pages+0x14e/0x156 [] vgacon_set_cursor_size+0xeb/0x103 [] release_console_sem+0x17a/0x193 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= getty S c1810dc0 0 11362 1 f0479ec0 00000086 00000600 c1810dc0 00000002 f0479ea8 f18e5030 f18e5170 c1813e00 00000001 ffff9d1f 000000ff 00000000 00000000 00000600 7fffffff f72b9800 f0479f3c bf8a9d3b c0267af3 c014a460 c15fa720 002da200 c02da200 Call Trace: [] schedule_timeout+0x13/0x8d [] __pagevec_free+0x18/0x22 [] release_pages+0x14e/0x156 [] release_console_sem+0x17a/0x193 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= getty S c1807dc0 0 11363 1 f05c9ec0 00000082 00000400 c1807dc0 00000002 f05c9ea8 c19c8030 c19c8170 c180ae00 00000000 ffff9d1f 000000ff 00000000 00000000 00000400 7fffffff f7266800 f05c9f3c bfa486db c0267af3 c014a460 c15fb7c0 002da200 c02da200 Call Trace: [] schedule_timeout+0x13/0x8d [] __pagevec_free+0x18/0x22 [] release_pages+0x14e/0x156 [] release_console_sem+0x17a/0x193 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= getty S c1810dc0 0 11364 1 f049bec0 00000086 00000400 c1810dc0 00000002 f049bea8 dffdc570 dffdc6b0 c1813e00 00000001 ffff9d1f 000000ff 00000000 00000000 00000400 7fffffff f72dc000 f049bf3c bfd7da0b c0267af3 c014a460 c15fa720 002da200 c02da200 Call Trace: [] schedule_timeout+0x13/0x8d [] __pagevec_free+0x18/0x22 [] release_pages+0x14e/0x156 [] release_console_sem+0x17a/0x193 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= getty S 00000008 0 11365 1 f0bfbec0 00000086 00000020 00000008 ffffffff 00000000 f1576030 f1576170 c1813e00 00000001 00000000 01000020 f0bf0000 c02da200 00000246 7fffffff f72b9000 f0bfbf3c bfd7da0b c0267af3 c014a460 c15fa720 002da200 c02da200 Call Trace: [] schedule_timeout+0x13/0x8d [] __pagevec_free+0x18/0x22 [] release_pages+0x14e/0x156 [] release_console_sem+0x17a/0x193 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= getty S 00000008 0 11366 1 f060dec0 00000082 00000020 00000008 ffffffff 00000000 c192eab0 c192ebf0 c1813e00 00000001 00000000 01000020 f0600000 c02da200 00000246 7fffffff f6cc1000 f060df3c bfd7da0b c0267af3 c014a460 c15fa720 002da200 c02da200 Call Trace: [] schedule_timeout+0x13/0x8d [] __pagevec_free+0x18/0x22 [] release_pages+0x14e/0x156 [] release_console_sem+0x17a/0x193 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= runsvdir S c1807dc0 0 11367 1 f025bbe4 00000086 0001731b c1807dc0 00000002 f025bbcc c19ce030 c19ce170 c180ae00 00000000 00023002 000000ff 00000000 00000000 0001731b f025bbf4 000231f7 000001f6 00000000 c0267b50 00000c31 00000c31 c0364114 f682fb50 Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_sys_poll+0x25d/0x323 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] io_schedule+0x1d/0x27 [] __wait_on_bit+0x4e/0x56 [] sync_buffer+0x0/0x33 [] sync_buffer+0x0/0x33 [] out_of_line_wait_on_bit+0x63/0x6b [] wake_bit_function+0x0/0x3c [] ext3_find_entry+0x457/0x52f [ext3] [] ata_qc_issue_prot+0xe6/0x21c [libata] [] ifind_fast+0x2a/0x69 [] inotify_d_instantiate+0x41/0x66 [] d_rehash+0x1c/0x29 [] d_splice_alias+0x9b/0xb6 [] __d_lookup+0x96/0xd5 [] do_lookup+0x4f/0x140 [] dput+0x15/0xdd [] __link_path_walk+0x987/0xaa6 [] scsi_request_fn+0x2eb/0x326 [scsi_mod] [] mntput_no_expire+0x11/0x5d [] link_path_walk+0xa9/0xb3 [] do_wait+0x970/0x9da [] do_path_lookup+0x161/0x1c4 [] _atomic_dec_and_lock+0x2a/0x44 [] mntput_no_expire+0x11/0x5d [] cp_new_stat+0x154/0x16d [] sys_newstat+0x23/0x28 [] recalc_sigpending+0xb/0x1d [] sigprocmask+0xa1/0xc4 [] sys_poll+0x33/0x36 [] sysenter_past_esp+0x6b/0xa1 ======================= runsv S f02e7bd0 0 11378 11367 f02e7be4 00000082 00000002 f02e7bd0 f02e7bc8 00000000 dffdaab0 dffdabf0 c180ae00 00000000 000123a2 000000ff 00000000 00000001 00000000 f02e7bf4 0002aa43 000186a2 00000000 c0267b50 f76eeec0 f8bea851 f2799b50 c03641dc Call Trace: [] schedule_timeout+0x70/0x8d [] xfs_icsb_modify_counters+0x53/0x1cd [xfs] [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_sys_poll+0x25d/0x323 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] xfs_buf_rele+0x23/0x6c [xfs] [] xfs_trans_unlock_chunk+0x79/0xb9 [xfs] [] xfs_trans_tail_ail+0x13/0x2b [xfs] [] xlog_assign_tail_lsn+0x1d/0x3e [xfs] [] xlog_state_release_iclog+0x18/0x91 [xfs] [] xfs_log_release_iclog+0xf/0x38 [xfs] [] _xfs_trans_commit+0x278/0x2e0 [xfs] [] activate_page+0x81/0xa6 [] mark_page_accessed+0x1c/0x30 [] filemap_fault+0x227/0x387 [] xfs_ifree+0x96/0xc1 [xfs] [] xfs_trans_unlocked_item+0x25/0x3c [xfs] [] __do_fault+0x30e/0x33b [] xfs_reclaim+0xd1/0xd8 [xfs] [] pipe_read+0x2e4/0x343 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] remove_wait_queue+0xc/0x34 [] do_gettimeofday+0x35/0xfe [] recalc_sigpending+0xb/0x1d [] sigprocmask+0xa1/0xc4 [] sys_poll+0x33/0x36 [] sysenter_past_esp+0x6b/0xa1 ======================= multilog S efc83e48 0 11379 11378 efc83e5c 00000086 00000002 efc83e48 efc83e40 00000000 f1463570 f14636b0 c180ae00 00000000 ffff9f1d 000000ff 00000000 00000000 00000000 f789e400 f789e400 efc83e78 dfd360c0 c0166f4a 00000000 f1463570 c012dd98 f789e404 Call Trace: [] pipe_wait+0x51/0x6f [] autoremove_wake_function+0x0/0x33 [] pipe_read+0x2cf/0x343 [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_sync_read+0x0/0x10a [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= mlnet D 00000000 0 11380 11378 efcfdc3c 00000086 00000008 00000000 efcfdc88 00000000 f16b2ab0 f16b2bf0 c180ae00 00000000 f7dfec40 0a93c293 00000000 00000000 f72cc980 f7364e80 00000246 f7364e88 f16b2ab0 c02688a4 00000001 f16b2ab0 c011a320 f7364e8c Call Trace: [] __down+0xc2/0xd4 [] default_wake_function+0x0/0xc [] __down_failed+0x7/0xc [] xfs_buf_lock+0x31/0x33 [xfs] [] xfs_getsb+0x22/0x2d [xfs] [] xfs_trans_getsb+0x37/0x68 [xfs] [] xfs_trans_apply_sb_deltas+0x12/0x3ff [xfs] [] _xfs_trans_commit+0xf1/0x2e0 [xfs] [] xfs_dir2_leaf_addname+0x77b/0x792 [xfs] [] xfs_dir_createname+0xf5/0x106 [xfs] [] __mark_inode_dirty+0xca/0x143 [] xfs_create+0x491/0x615 [xfs] [] xfs_iunlock+0x51/0x6d [xfs] [] xfs_vn_create+0x0/0xd [xfs] [] xfs_vn_mknod+0x182/0x28f [xfs] [] xfs_vn_create+0x0/0xd [xfs] [] vfs_create+0x73/0xe1 [] open_namei+0x173/0x54c [] do_filp_open+0x25/0x39 [] get_unused_fd_flags+0x51/0xc3 [] do_sys_open+0x44/0xc0 [] sys_open+0x1a/0x1c [] syscall_call+0x7/0xb ======================= apache2 S c1807dc0 0 11384 11343 ef3b3e28 00200082 00000600 c1807dc0 00000002 ef3b3e10 f156f030 f156f170 c180ae00 00000000 ffff9d52 000000ff 00000000 00000000 00000600 7fffffff 7fffffff ef3b3e98 ef3b3ebc c0267af3 c19f2208 00200282 00000000 00000000 Call Trace: [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] __alloc_pages+0x5b/0x2a4 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= apache2 S c02db5d0 0 11385 11343 ef3b5e28 00200082 000a00d2 c02db5d0 00000000 f04f8844 f2003ab0 f2003bf0 c180ae00 00000000 f04f8844 f04f8844 00000000 c014778a c15da380 7fffffff 7fffffff ef3b5e98 ef3b5ebc c0267af3 c19f2208 00200282 00000000 00000000 Call Trace: [] filemap_fault+0x227/0x387 [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] __alloc_pages+0x5b/0x2a4 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= apache2 S eec33e14 0 11386 11343 eec33e28 00200086 00000002 eec33e14 eec33e0c 00000000 f156fab0 f156fbf0 c180ae00 00000000 ffff9d52 000000ff 00000000 00000000 00000000 7fffffff 7fffffff eec33e98 eec33ebc c0267af3 c19f2208 00200282 00000000 00000000 Call Trace: [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] __alloc_pages+0x5b/0x2a4 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= apache2 S c1807dc0 0 11387 11343 eec53e28 00200086 00000400 c1807dc0 00000002 eec53e10 f7ef3570 f7ef36b0 c180ae00 00000000 ffff9d52 000000ff 00000000 00000000 00000400 7fffffff 7fffffff eec53e98 eec53ebc c0267af3 c19f2208 00200282 00000000 00000000 Call Trace: [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] __alloc_pages+0x5b/0x2a4 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= apache2 S eecb3e14 0 11388 11343 eecb3e28 00200086 00000002 eecb3e14 eecb3e0c 00000000 f156f570 f156f6b0 c180ae00 00000000 ffff9d52 000000ff 00000000 00000001 00000000 7fffffff 7fffffff eecb3e98 eecb3ebc c0267af3 00000010 00200282 c02da200 00200286 Call Trace: [] schedule_timeout+0x13/0x8d [] _spin_lock_bh+0x8/0x18 [] lock_sock_nested+0x84/0x8c [] init_once+0x0/0x8 [] cache_alloc_refill+0x64/0x487 [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] inet_csk_accept+0x97/0x1e0 [] autoremove_wake_function+0x0/0x33 [] inet_accept+0x1f/0xa1 [] sock_attach_fd+0x52/0xae [] sys_accept+0xd8/0x1ad [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] do_page_fault+0x2ed/0x63d [] sys_socketcall+0xd6/0x262 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= mlnet S c1807dc0 0 11392 11380 ec1f9be4 00000086 0001731b c1807dc0 00000002 ec1f9bcc f1570ab0 f1570bf0 c180ae00 00000000 00023027 000000ff 00000000 00000000 0001731b ec1f9bf4 000230ee 000000c8 00000000 c0267b50 ec1f9c54 00000000 c0363efc c0363efc Call Trace: [] schedule_timeout+0x70/0x8d [] process_timeout+0x0/0x5 [] schedule_timeout+0x6b/0x8d [] do_sys_poll+0x25d/0x323 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] __next_cpu+0x12/0x1f [] find_busiest_group+0x1c5/0x560 [] __switch_to+0x104/0x126 [] schedule+0x453/0x511 [] enqueue_entity+0x1e2/0x203 [] inc_nr_running+0x13/0x24 [] try_to_wake_up+0x2b0/0x2ba [] signal_wake_up+0x1e/0x2c [] __group_send_sig_info+0x72/0x7d [] group_send_sig_info+0x4c/0x54 [] kill_pid_info+0x3e/0x4e [] rhine_interrupt+0x64b/0x6a8 [via_rhine] [] pdc_interrupt+0x68/0x308 [sata_promise] [] __kfree_skb+0xa3/0xfa [] net_tx_action+0x71/0xf0 [] irq_exit+0x53/0x6b [] do_IRQ+0x5c/0x71 [] irq_exit+0x53/0x6b [] sys_poll+0x33/0x36 [] syscall_call+0x7/0xb ======================= mlnet S c1807dc0 0 11393 11392 ec1fbf28 00000086 0001731b c1807dc0 00000002 ec1fbf10 f14b0570 f14b06b0 c180ae00 00000000 0002301e 000000ff 00000000 00000000 0001731b ec1fbf40 00000001 00000001 00000000 c0267ee0 00000001 00000000 4703fca9 c0130d65 Call Trace: [] do_nanosleep+0x46/0x71 [] hrtimer_nanosleep+0x39/0xdc [] hrtimer_wakeup+0x0/0x18 [] do_nanosleep+0x3b/0x71 [] sys_nanosleep+0x49/0x5c [] syscall_call+0x7/0xb ======================= sshd S c1813e84 0 11394 11130 eaf57b40 00000086 4fe738eb c1813e84 4d84deeb 0000000a f1bdf570 f1bdf6b0 c1813e00 00000001 c02e09b0 00400000 c02e09b0 00000000 00000001 7fffffff eaf57f9c 00000009 00000200 c0267af3 00000086 f75be00c 00000286 f7dccc40 Call Trace: [] schedule_timeout+0x13/0x8d [] tty_ldisc_deref+0x53/0x62 [] tty_poll+0x52/0x5f [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] __qdisc_run+0x94/0x15a [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_queue_xmit+0x309/0x34b [] dst_output+0x0/0x7 [] update_curr+0x103/0x12a [] tcp_transmit_skb+0x624/0x64b [] lock_timer_base+0x19/0x35 [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] tcp_sendmsg+0x906/0x9e0 [] __wake_up+0x32/0x43 [] core_sys_select+0x1dd/0x283 [] sock_aio_write+0xc8/0xd4 [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] sys_select+0x9d/0x167 [] vfs_write+0xfb/0x10b [] sys_write+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= bash S ea917f28 0 11398 11394 ea917f3c 00000082 00000002 ea917f28 ea917f20 00000000 dffce570 dffce6b0 c180ae00 00000000 0000ba07 000000ff 00000000 00000000 00000000 f14b0ab0 00000001 dffce570 00000000 c0121237 00000000 00000000 00000001 f75b0600 Call Trace: [] do_wait+0x926/0x9da [] default_wake_function+0x0/0xc [] sys_wait4+0x30/0x33 [] sys_waitpid+0x27/0x2b [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= sshd S c180ae84 0 11422 11130 f6d45b40 00000082 c01aaaea c180ae84 ab45db34 00000014 c19c1570 c19c16b0 c180ae00 00000000 c02e09b0 00200000 c02e09b0 00000000 00000001 7fffffff f6d45f9c 00000009 00000200 c0267af3 00000086 f75a000c 00000286 f7fb47c0 Call Trace: [] rb_insert_color+0x8a/0xad [] schedule_timeout+0x13/0x8d [] tty_ldisc_deref+0x53/0x62 [] tty_poll+0x52/0x5f [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] __qdisc_run+0x94/0x15a [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_queue_xmit+0x309/0x34b [] dst_output+0x0/0x7 [] update_curr+0x103/0x12a [] tcp_transmit_skb+0x624/0x64b [] lock_timer_base+0x19/0x35 [] __mod_timer+0x97/0xa1 [] sk_reset_timer+0xc/0x16 [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] tcp_sendmsg+0x906/0x9e0 [] __check_preempt_curr_fair+0x4c/0x71 [] core_sys_select+0x1dd/0x283 [] sock_aio_write+0xc8/0xd4 [] autoremove_wake_function+0x13/0x33 [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] sys_select+0x9d/0x167 [] vfs_write+0xfb/0x10b [] sys_write+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= bash R running 0 11426 11422 xfs_fsr S eeeb9f3c 0 11442 11398 eeeb9f50 00000082 00000002 eeeb9f3c eeeb9f34 00000000 f14b0ab0 f14b0bf0 c1813e00 00000001 0000ba0b 000000ff 00000000 00000000 00000000 f14b0030 00000001 f14b0ab0 00000000 c0121237 f14b0ab0 f7ef1040 f3259d24 c02676e9 Call Trace: [] do_wait+0x926/0x9da [] schedule+0x453/0x511 [] default_wake_function+0x0/0xc [] sys_wait4+0x30/0x33 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= xfs_fsr D f7f45648 0 11443 11442 eee99c10 00000086 f7f45648 f7f45648 00000001 00000092 f14b0030 f14b0170 c180ae00 00000000 f70c31cc 00000000 f70c31cc 00000000 00000001 eee99c50 eee99c54 eee99c2c eee99c38 c0267a94 00000001 f14b0030 c011a320 eee99c58 Call Trace: [] wait_for_completion+0x6b/0xa8 [] default_wake_function+0x0/0xc [] flush_cpu_workqueue+0x64/0x6c [] wq_barrier_func+0x0/0x8 [] flush_workqueue+0x2b/0x3f [] xfs_end_io_direct+0x50/0x5a [xfs] [] xfs_end_io_direct+0x0/0x5a [xfs] [] dio_complete+0x90/0xc8 [] __blockdev_direct_IO+0xacf/0xb3a [] xfs_iomap+0x4c7/0x4e6 [xfs] [] xfs_vm_direct_IO+0x116/0x135 [xfs] [] xfs_get_blocks_direct+0x0/0x2d [xfs] [] xfs_end_io_direct+0x0/0x5a [xfs] [] raid5_congested+0x0/0x32 [raid456] [] file_read_actor+0x77/0xc7 [] generic_file_direct_IO+0xd8/0x108 [] generic_file_direct_write+0x55/0x11f [] current_fs_time+0x13/0x15 [] xfs_write+0x61c/0xa3a [xfs] [] xfs_file_aio_write+0x72/0x7a [xfs] [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] do_sync_write+0x0/0x10a [] vfs_write+0x89/0x10b [] sys_write+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= sshd S d6b2bda8 0 11448 11130 d6b2bdbc 00000086 00000002 d6b2bda8 d6b2bda0 00000000 f1ba7570 f1ba76b0 c180ae00 00000000 00017b7b 000000ff 00000000 00000000 00000000 7fffffff f7f3e300 d6b2be48 f7f3e49c c0267af3 d6b2be14 d6b2be08 d6b2bf30 dfc27b40 Call Trace: [] schedule_timeout+0x13/0x8d [] dput+0x15/0xdd [] __link_path_walk+0x987/0xaa6 [] prepare_to_wait+0x12/0x4b [] unix_stream_recvmsg+0x1fe/0x454 [] autoremove_wake_function+0x0/0x33 [] sock_aio_read+0xd1/0xdd [] do_path_lookup+0x161/0x1c4 [] do_sync_read+0xc7/0x10a [] chrdev_open+0x126/0x13a [] autoremove_wake_function+0x0/0x33 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= sshd S c1807dc0 0 11452 11448 e5481b40 00000086 0001731b c1807dc0 00000002 e5481b28 f18e5570 f18e56b0 c180ae00 00000000 0001e966 000000ff 00000000 00000000 0001731b 7fffffff e5481f9c 0000000b 00000800 c0267af3 00000086 f6de480c 00000286 f7dccd40 Call Trace: [] schedule_timeout+0x13/0x8d [] tty_ldisc_deref+0x53/0x62 [] tty_poll+0x52/0x5f [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] default_wake_function+0x0/0xc [] ipv4_confirm+0x36/0x3b [nf_conntrack_ipv4] [] __qdisc_run+0x94/0x15a [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_queue_xmit+0x309/0x34b [] dst_output+0x0/0x7 [] dst_output+0x0/0x7 [] tcp_transmit_skb+0x624/0x64b [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] tcp_sendmsg+0x906/0x9e0 [] __check_preempt_curr_fair+0x4c/0x71 [] core_sys_select+0x1dd/0x283 [] sock_aio_write+0xc8/0xd4 [] autoremove_wake_function+0x13/0x33 [] do_sync_write+0xc7/0x10a [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] sys_select+0x9d/0x167 [] vfs_write+0xfb/0x10b [] sys_write+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= bash S 00200286 0 11453 11452 ca76bec0 00200082 00000000 00200286 c01e4cf2 bfaba38c f1ba7030 f1ba7170 c180ae00 00000000 0a775065 c114ee2c ca771be8 b7efafcc c0152b45 7fffffff cc4b8000 ca76bf3c bfaba34f c0267af3 0a775065 c017131b 00200206 00000001 Call Trace: [] tty_ioctl+0xb06/0xb3f [] handle_mm_fault+0x67f/0x6f9 [] schedule_timeout+0x13/0x8d [] destroy_inode+0x24/0x33 [] add_wait_queue+0xf/0x30 [] read_chan+0x333/0x579 [] default_wake_function+0x0/0xc [] tty_ldisc_deref+0x53/0x62 [] read_chan+0x0/0x579 [] tty_read+0x6f/0xad [] tty_read+0x0/0xad [] vfs_read+0x87/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 ======================= rm D efd9fc6c 0 12377 1 efd9fc80 00200082 00000002 efd9fc6c efd9fc64 00000000 f7f72570 f7f726b0 c180ae00 00000000 0001b48f 000000ff 00000000 00000001 00000000 f76eeec0 00200246 f76eeec8 f7f72570 c02688a4 00000001 f7f72570 c011a320 f735fc94 Call Trace: [] __down+0xc2/0xd4 [] default_wake_function+0x0/0xc [] __down_failed+0x7/0xc [] xlog_state_get_iclog_space+0x5e/0x16c [xfs] [] xlog_write+0x17d/0x4a9 [xfs] [] xfs_log_write+0x41/0x6b [xfs] [] _xfs_trans_commit+0x17d/0x2e0 [xfs] [] xfs_trans_log_inode+0x14/0x2e [xfs] [] xfs_remove+0x372/0x4a7 [xfs] [] xfs_vn_unlink+0x17/0x3b [xfs] [] link_path_walk+0xa9/0xb3 [] xfs_trans_unlocked_item+0x25/0x3c [xfs] [] xfs_access+0x34/0x3a [xfs] [] xfs_vn_permission+0xf/0x13 [xfs] [] xfs_vn_permission+0x0/0x13 [xfs] [] permission+0x86/0xa2 [] may_delete+0x50/0x103 [] vfs_unlink+0x47/0x70 [] do_unlinkat+0x97/0xfd [] irq_exit+0x53/0x6b [] do_IRQ+0x5c/0x71 [] irq_exit+0x53/0x6b [] smp_apic_timer_interrupt+0x70/0x7c [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= sshd S c1807dc0 0 12494 11130 d70c7dbc 00000082 0001731b c1807dc0 00000002 d70c7da4 d5301570 d53016b0 c180ae00 00000000 000230a7 000000ff 00000000 00000000 0001731b 7fffffff dff7c880 d70c7e48 dff7ca1c c0267af3 c012ddab 00000000 d70cde34 e2638e1c Call Trace: [] schedule_timeout+0x13/0x8d [] autoremove_wake_function+0x13/0x33 [] __wake_up_common+0x32/0x55 [] prepare_to_wait+0x12/0x4b [] unix_stream_recvmsg+0x1fe/0x454 [] autoremove_wake_function+0x0/0x33 [] sock_aio_read+0xd1/0xdd [] do_sync_read+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] update_curr+0x103/0x12a [] update_stats_wait_end+0x9b/0xbe [] __switch_to+0xa2/0x126 [] vfs_read+0x9b/0x109 [] sys_read+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= sshd S 080aeb18 0 12497 12494 d70cdb40 00000086 00000000 080aeb18 00000000 00000000 e577a570 e577a6b0 c180ae00 00000000 00000000 00000000 c0268ab9 02932e00 f8b8fb7a 7fffffff d70cdf9c 00000004 00000010 c0267af3 eafcf4f8 f8b92ff9 00000246 c012dfc8 Call Trace: [] _write_lock_bh+0x8/0x1a [] __nf_ct_refresh_acct+0xdd/0x118 [nf_conntrack] [] schedule_timeout+0x13/0x8d [] tcp_packet+0xa09/0xa1b [nf_conntrack] [] add_wait_queue+0xf/0x30 [] tcp_poll+0x18/0x120 [] do_select+0x3a1/0x3f7 [] __pollwait+0x0/0xac [] default_wake_function+0x0/0xc [] getnstimeofday+0x35/0xe9 [] rhine_start_tx+0x1d8/0x249 [via_rhine] [] dev_hard_start_xmit+0x200/0x275 [] __qdisc_run+0x94/0x15a [] dev_queue_xmit+0x289/0x2ae [] ip_output+0x276/0x2b1 [] ip_finish_output+0x0/0x218 [] ip_queue_xmit+0x309/0x34b [] dst_output+0x0/0x7 [] update_curr+0x103/0x12a [] tcp_v4_send_check+0x86/0xbc [] tcp_transmit_skb+0x624/0x64b [] __switch_to+0xa2/0x126 [] lock_timer_base+0x19/0x35 [] __mod_timer+0x97/0xa1 [] sk_reset_timer+0xc/0x16 [] __tcp_push_pending_frames+0x6f9/0x79e [] _spin_lock_bh+0x8/0x18 [] release_sock+0x10/0x8b [] tcp_sendmsg+0x906/0x9e0 [] __alloc_pages+0x5b/0x2a4 [] core_sys_select+0x1dd/0x283 [] sock_aio_write+0xc8/0xd4 [] do_sync_write+0xc7/0x10a [] autoremove_wake_function+0x0/0x33 [] do_page_fault+0x0/0x63d [] sys_select+0x9d/0x167 [] vfs_write+0xfb/0x10b [] sys_write+0x41/0x67 [] sysenter_past_esp+0x6b/0xa1 [] xfrm_policy_insert+0x2d3/0x342 ======================= --nextPart1831028.3B4dx51t4S-- From owner-xfs@oss.sgi.com Wed Oct 3 15:27:24 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 15:27:28 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-8.7 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_66,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.0-r574664 Received: from mx1.suse.de (ns1.suse.de [195.135.220.2]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l93MRLGg030154 for ; Wed, 3 Oct 2007 15:27:23 -0700 Received: from Relay1.suse.de (mail2.suse.de [195.135.221.8]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.suse.de (Postfix) with ESMTP id 258A2150E1 for ; Thu, 4 Oct 2007 00:27:21 +0200 (CEST) From: Andi Kleen Organization: SUSE Linux Products GmbH, Nuernberg, GF: Markus Rex, HRB 16746 (AG Nuernberg) To: xfs@oss.sgi.com Subject: [PATCH] XFS bitops to Linux again Date: Thu, 4 Oct 2007 00:27:16 +0200 User-Agent: KMail/1.9.6 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200710040027.16926.ak@suse.de> X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13240 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: ak@suse.de Precedence: bulk X-list: xfs This time against CVS Replace XFS bit functions with call Linux functions XFS had some own functions to find high and low bits. This patch replaces them with a call to the respective Linux functions. The semantics of the Linux functions differ a little, but i checked all call sites that they can deal with that. The resulting xfs.ko is about 500 bytes smaller on x86-64 Signed-off-by: Andi Kleen Index: linux-2.6-xfs/fs/xfs/xfs_bit.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bit.c +++ linux-2.6-xfs/fs/xfs/xfs_bit.c @@ -22,112 +22,9 @@ #include "xfs_buf_item.h" /* - * XFS bit manipulation routines, used in non-realtime code. + * XFS bit manipulation routines */ -#ifndef HAVE_ARCH_HIGHBIT -/* - * Index of high bit number in byte, -1 for none set, 0..7 otherwise. - */ -static const char xfs_highbit[256] = { - -1, 0, 1, 1, 2, 2, 2, 2, /* 00 .. 07 */ - 3, 3, 3, 3, 3, 3, 3, 3, /* 08 .. 0f */ - 4, 4, 4, 4, 4, 4, 4, 4, /* 10 .. 17 */ - 4, 4, 4, 4, 4, 4, 4, 4, /* 18 .. 1f */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 20 .. 27 */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 28 .. 2f */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 30 .. 37 */ - 5, 5, 5, 5, 5, 5, 5, 5, /* 38 .. 3f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 40 .. 47 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 48 .. 4f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 50 .. 57 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 58 .. 5f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 60 .. 67 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 68 .. 6f */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 70 .. 77 */ - 6, 6, 6, 6, 6, 6, 6, 6, /* 78 .. 7f */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 80 .. 87 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 88 .. 8f */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 90 .. 97 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* 98 .. 9f */ - 7, 7, 7, 7, 7, 7, 7, 7, /* a0 .. a7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* a8 .. af */ - 7, 7, 7, 7, 7, 7, 7, 7, /* b0 .. b7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* b8 .. bf */ - 7, 7, 7, 7, 7, 7, 7, 7, /* c0 .. c7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* c8 .. cf */ - 7, 7, 7, 7, 7, 7, 7, 7, /* d0 .. d7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* d8 .. df */ - 7, 7, 7, 7, 7, 7, 7, 7, /* e0 .. e7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* e8 .. ef */ - 7, 7, 7, 7, 7, 7, 7, 7, /* f0 .. f7 */ - 7, 7, 7, 7, 7, 7, 7, 7, /* f8 .. ff */ -}; -#endif - -/* - * xfs_highbit32: get high bit set out of 32-bit argument, -1 if none set. - */ -inline int -xfs_highbit32( - __uint32_t v) -{ -#ifdef HAVE_ARCH_HIGHBIT - return highbit32(v); -#else - int i; - - if (v & 0xffff0000) - if (v & 0xff000000) - i = 24; - else - i = 16; - else if (v & 0x0000ffff) - if (v & 0x0000ff00) - i = 8; - else - i = 0; - else - return -1; - return i + xfs_highbit[(v >> i) & 0xff]; -#endif -} - -/* - * xfs_lowbit64: get low bit set out of 64-bit argument, -1 if none set. - */ -int -xfs_lowbit64( - __uint64_t v) -{ - __uint32_t w = (__uint32_t)v; - int n = 0; - - if (w) { /* lower bits */ - n = ffs(w); - } else { /* upper bits */ - w = (__uint32_t)(v >> 32); - if (w && (n = ffs(w))) - n += 32; - } - return n - 1; -} - -/* - * xfs_highbit64: get high bit set out of 64-bit argument, -1 if none set. - */ -int -xfs_highbit64( - __uint64_t v) -{ - __uint32_t h = (__uint32_t)(v >> 32); - - if (h) - return xfs_highbit32(h) + 32; - return xfs_highbit32((__uint32_t)v); -} - - /* * Return whether bitmap is empty. * Size is number of words in the bitmap, which is padded to word boundary Index: linux-2.6-xfs/fs/xfs/xfs_bit.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_bit.h +++ linux-2.6-xfs/fs/xfs/xfs_bit.h @@ -46,15 +46,6 @@ static inline __uint64_t xfs_mask64lo(in return ((__uint64_t)1 << (n)) - 1; } -/* Get high bit set out of 32-bit argument, -1 if none set */ -extern int xfs_highbit32(__uint32_t v); - -/* Get low bit set out of 64-bit argument, -1 if none set */ -extern int xfs_lowbit64(__uint64_t v); - -/* Get high bit set out of 64-bit argument, -1 if none set */ -extern int xfs_highbit64(__uint64_t); - /* Return whether bitmap is empty (1 == empty) */ extern int xfs_bitmap_empty(uint *map, uint size); Index: linux-2.6-xfs/fs/xfs/xfs_mount.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c +++ linux-2.6-xfs/fs/xfs/xfs_mount.c @@ -479,7 +479,7 @@ xfs_sb_to_disk( return; while (fields) { - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields,64); first = xfs_sb_info[f].offset; size = xfs_sb_info[f + 1].offset - first; @@ -621,7 +621,7 @@ xfs_mount_common(xfs_mount_t *mp, xfs_sb mp->m_blkbit_log = sbp->sb_blocklog + XFS_NBBYLOG; mp->m_blkbb_log = sbp->sb_blocklog - BBSHIFT; mp->m_sectbb_log = sbp->sb_sectlog - BBSHIFT; - mp->m_agno_log = xfs_highbit32(sbp->sb_agcount - 1) + 1; + mp->m_agno_log = fls(sbp->sb_agcount - 1); mp->m_agino_log = sbp->sb_inopblog + sbp->sb_agblklog; mp->m_litino = sbp->sb_inodesize - ((uint)sizeof(xfs_dinode_core_t) + (uint)sizeof(xfs_agino_t)); @@ -1420,11 +1420,11 @@ xfs_mod_sb(xfs_trans_t *tp, __int64_t fi /* find modified range */ - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); + f = (xfs_sb_field_t)find_first_bit((unsigned long *)&fields, 64); ASSERT((1LL << f) & XFS_SB_MOD_BITS); first = xfs_sb_info[f].offset; - f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); + f = (xfs_sb_field_t)fls64((__uint64_t)fields) - 1; ASSERT((1LL << f) & XFS_SB_MOD_BITS); last = xfs_sb_info[f + 1].offset - 1; Index: linux-2.6-xfs/fs/xfs/xfs_rtalloc.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_rtalloc.h +++ linux-2.6-xfs/fs/xfs/xfs_rtalloc.h @@ -60,13 +60,19 @@ struct xfs_trans; #define XFS_RTMIN(a,b) ((a) < (b) ? (a) : (b)) #define XFS_RTMAX(a,b) ((a) > (b) ? (a) : (b)) -#define XFS_RTLOBIT(w) xfs_lowbit32(w) -#define XFS_RTHIBIT(w) xfs_highbit32(w) +/* All callers check for 0 arguments already; so no -1 handling */ +static inline int xfs_rtlobit(unsigned long v) +{ + return find_first_bit(&v, 32); +} + +#define XFS_RTLOBIT(w) xfs_rtlobit(w) +#define XFS_RTHIBIT(w) (fls(w) - 1) #if XFS_BIG_BLKNOS -#define XFS_RTBLOCKLOG(b) xfs_highbit64(b) +#define XFS_RTBLOCKLOG(b) (fls64(b) - 1) #else -#define XFS_RTBLOCKLOG(b) xfs_highbit32(b) +#define XFS_RTBLOCKLOG(b) (fls(b) - 1) #endif Index: linux-2.6-xfs/fs/xfs/xfs_rtalloc.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_rtalloc.c +++ linux-2.6-xfs/fs/xfs/xfs_rtalloc.c @@ -73,18 +73,6 @@ STATIC int xfs_rtmodify_summary(xfs_moun */ /* - * xfs_lowbit32: get low bit set out of 32-bit argument, -1 if none set. - */ -STATIC int -xfs_lowbit32( - __uint32_t v) -{ - if (v) - return ffs(v) - 1; - return -1; -} - -/* * Allocate space to the bitmap or summary file, and zero it, for growfs. */ STATIC int /* error */ @@ -444,7 +432,8 @@ xfs_rtallocate_extent_near( } bbno = XFS_BITTOBLOCK(mp, bno); i = 0; - log2len = xfs_highbit32(minlen); + ASSERT(minlen != 0); + log2len = fls(minlen) - 1; /* * Loop over all bitmap blocks (bbno + i is current block). */ @@ -607,11 +596,13 @@ xfs_rtallocate_extent_size( int error; /* error value */ int i; /* bitmap block number */ int l; /* level number (loop control) */ + int end; xfs_rtblock_t n; /* next block to be tried */ xfs_rtblock_t r; /* result block number */ xfs_suminfo_t sum; /* summary information for extents */ ASSERT(minlen % prod == 0 && maxlen % prod == 0); + ASSERT(maxlen != 0); /* * Loop over all the levels starting with maxlen. * At each level, look at all the bitmap blocks, to see if there @@ -619,7 +610,7 @@ xfs_rtallocate_extent_size( * Note, only on the initial level can the allocation fail if * the summary says there's an extent. */ - for (l = xfs_highbit32(maxlen); l < mp->m_rsumlevels; l++) { + for (l = fls(maxlen) - 1; l < mp->m_rsumlevels; l++) { /* * Loop over all the bitmap blocks. */ @@ -669,12 +660,15 @@ xfs_rtallocate_extent_size( *rtblock = NULLRTBLOCK; return 0; } + ASSERT(maxlen != 0); + ASSERT(minlen != 0); /* * Loop over sizes, from maxlen down to minlen. * This time, when we do the allocations, allow smaller ones * to succeed. */ - for (l = xfs_highbit32(maxlen); l >= xfs_highbit32(minlen); l--) { + end = fls(minlen) - 1; + for (l = fls(maxlen) - 1; l >= end; l--) { /* * Loop over all the bitmap blocks, try an allocation * starting in that block. @@ -1863,7 +1857,6 @@ xfs_growfs_rt( xfs_drfsbno_t nrblocks; /* new number of realtime blocks */ xfs_extlen_t nrbmblocks; /* new number of rt bitmap blocks */ xfs_drtbno_t nrextents; /* new number of realtime extents */ - uint8_t nrextslog; /* new log2 of sb_rextents */ xfs_extlen_t nrsumblocks; /* new number of summary blocks */ uint nrsumlevels; /* new rt summary levels */ uint nrsumsize; /* new size of rt summary, bytes */ @@ -1900,8 +1893,7 @@ xfs_growfs_rt( nrextents = nrblocks; do_div(nrextents, in->extsize); nrbmblocks = howmany_64(nrextents, NBBY * sbp->sb_blocksize); - nrextslog = xfs_highbit32(nrextents); - nrsumlevels = nrextslog + 1; + nrsumlevels = fls(nrextents); nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * nrbmblocks; nrsumblocks = XFS_B_TO_FSB(mp, nrsumsize); nrsumsize = XFS_FSB_TO_B(mp, nrsumblocks); @@ -1954,7 +1946,8 @@ xfs_growfs_rt( nsbp->sb_blocksize * nsbp->sb_rextsize); nsbp->sb_rextents = nsbp->sb_rblocks; do_div(nsbp->sb_rextents, nsbp->sb_rextsize); - nsbp->sb_rextslog = xfs_highbit32(nsbp->sb_rextents); + ASSERT(nsbp->sb_rextents != 0); + nsbp->sb_rextslog = fls(nsbp->sb_rextents) - 1; nrsumlevels = nmp->m_rsumlevels = nsbp->sb_rextslog + 1; nrsumsize = (uint)sizeof(xfs_suminfo_t) * nrsumlevels * @@ -2317,9 +2310,10 @@ xfs_rtpick_extent( *seqp = 0; } seq = *seqp; - if ((log2 = xfs_highbit64(seq)) == -1) + if ((log2 = fls64(seq)) == 0) b = 0; else { + log2--; resid = seq - (1ULL << log2); b = (mp->m_sb.sb_rextents * ((resid << 1) + 1ULL)) >> (log2 + 1); Index: linux-2.6-xfs/fs/xfs/xfs_ialloc.h =================================================================== --- linux-2.6-xfs.orig/fs/xfs/xfs_ialloc.h +++ linux-2.6-xfs/fs/xfs/xfs_ialloc.h @@ -52,10 +52,10 @@ xfs_make_iptr(struct xfs_mount *mp, stru #define XFS_IALLOC_FIND_FREE(fp) xfs_ialloc_find_free(fp) static inline int xfs_ialloc_find_free(xfs_inofree_t *fp) { - return xfs_lowbit64(*fp); + unsigned long v = *fp; /* Guarantee alignment */ + return find_first_bit(&v, 64); } - #ifdef __KERNEL__ /* * Allocate an inode on disk. Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c =================================================================== --- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_ksyms.c +++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_ksyms.c @@ -222,8 +222,6 @@ EXPORT_SYMBOL(xfs_file_last_byte); EXPORT_SYMBOL(xfs_finish_reclaim_all); EXPORT_SYMBOL(xfs_freesb); EXPORT_SYMBOL(xfs_fs_cmn_err); -EXPORT_SYMBOL(xfs_highbit32); -EXPORT_SYMBOL(xfs_highbit64); EXPORT_SYMBOL(xfs_idestroy); EXPORT_SYMBOL(xfs_iaccess); EXPORT_SYMBOL(xfs_iextract); From owner-xfs@oss.sgi.com Wed Oct 3 15:57:54 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 15:57:57 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_32 autolearn=no version=3.3.0-r574664 Received: from postoffice.aconex.com (mail.app.aconex.com [203.89.192.138]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with ESMTP id l93MvqwY000703 for ; Wed, 3 Oct 2007 15:57:54 -0700 Received: from mail.aconex.com (castle.yarra.acx [192.168.3.3]) by postoffice.aconex.com (Postfix) with ESMTP id 69BC292C814; Thu, 4 Oct 2007 08:57:50 +1000 (EST) Received: from 192.168.3.1 (proxying for 211.28.181.43) (SquirrelMail authenticated user nscott) by mail.aconex.com with HTTP; Thu, 4 Oct 2007 08:58:11 +1000 (EST) Message-ID: <60338.192.168.3.1.1191452291.squirrel@mail.aconex.com> In-Reply-To: <200710040027.16926.ak@suse.de> References: <200710040027.16926.ak@suse.de> Date: Thu, 4 Oct 2007 08:58:11 +1000 (EST) Subject: Re: [PATCH] XFS bitops to Linux again From: nscott@aconex.com To: "Andi Kleen" Cc: xfs@oss.sgi.com User-Agent: SquirrelMail/1.4.8-4.el4.centos MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13241 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: nscott@aconex.com Precedence: bulk X-list: xfs > > This time against CVS > > Replace XFS bit functions with call Linux functions > > XFS had some own functions to find high and low bits. > > This patch replaces them with a call to the respective Linux functions. > The semantics of the Linux functions differ a little, but i checked > all call sites that they can deal with that. Several of these call sites are also compiled in userspace in libxfs. It would be a good idea from that POV also to keep some level of abstraction so that these calls can be mapped to userspace routines as well. > The resulting xfs.ko is about 500 bytes smaller on x86-64 Thats it? To be honest, this sounds like just code churn and risk introduction. What testing was done? Changes to some of these routines has introuced subtle log recovery bugs in the past - has recovery been tested at all? The QA suite has some log recovery tests, it'd be a good idea to verify with those.. cheers. -- Nathan From owner-xfs@oss.sgi.com Wed Oct 3 17:26:21 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 17:26:25 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l940QId5013343 for ; Wed, 3 Oct 2007 17:26:20 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA17750; Thu, 4 Oct 2007 10:26:16 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l940QEdD49841231; Thu, 4 Oct 2007 10:26:14 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l940QBpr50003658; Thu, 4 Oct 2007 10:26:11 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Thu, 4 Oct 2007 10:26:11 +1000 From: David Chinner To: Justin Piszcz Cc: Timothy Shimmin , Lachlan McIlroy , Eric Sandeen , xfs@oss.sgi.com Subject: Re: [GIT PULL] XFS update for 2.6.23 - revert a commit Message-ID: <20071004002611.GB23367404@sgi.com> References: <20071001072350.DF61C58C4C0A@chook.melbourne.sgi.com> <4700EE2A.1020304@sandeen.net> <4701A1D0.5010709@sgi.com> <4701ED51.8050706@sgi.com> <4702F517.3040502@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13242 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Wed, Oct 03, 2007 at 04:11:50AM -0400, Justin Piszcz wrote: > If one with was running 2.6.23-rc8 with XFS, does that mean we should run > xfs_repair on our filesystems after upgrading to -rc9? Only if you had unclean shutdowns while running 2.6.23-rc8. Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Wed Oct 3 17:39:47 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 17:39:52 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l940diOS014885 for ; Wed, 3 Oct 2007 17:39:46 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id KAA18005; Thu, 4 Oct 2007 10:39:39 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l940dcdD49993196; Thu, 4 Oct 2007 10:39:38 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l940dZ1w50039822; Thu, 4 Oct 2007 10:39:35 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Thu, 4 Oct 2007 10:39:35 +1000 From: David Chinner To: Alessandro Bono Cc: linux-xfs@oss.sgi.com Subject: Re: 2.6.23-rc9-git1 hang with XFS Message-ID: <20071004003935.GC23367404@sgi.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13243 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Wed, Oct 03, 2007 at 11:03:29PM +0200, Alessandro Bono wrote: > Hi all > > I'm testing 2.6.23-rc9-git1 on my old home server > Trying to reorganizer my xfs filesystem with xfs_fsr cause a sort of system > hang xfs_fsr is waiting for a direct I/O to complete. Other processes are waiting for the superblock I/O to compete (which is why writes are hanging), an dothers are waiting for iclog space to be freed up. I think something is holding off I/O completion, and this: > possible SYN flooding on port 4664. Sending cookies. > possible SYN flooding on port 4664. Sending cookies. > possible SYN flooding on port 4664. Sending cookies. > possible SYN flooding on port 4664. Sending cookies. > possible SYN flooding on port 4664. Sending cookies. indicates someone trying a DOS on your box. Perhaps it's succeeding by denying interrupt service to you disks? If you pull the network cable, does the system start to respond properly again? Cheers, Dave. -- Dave Chinner Principal Engineer SGI Australian Software Group From owner-xfs@oss.sgi.com Wed Oct 3 21:21:10 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 21:21:16 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l944L4lJ009875 for ; Wed, 3 Oct 2007 21:21:05 -0700 Received: from pc-bnaujok.melbourne.sgi.com (pc-bnaujok.melbourne.sgi.com [134.14.55.58]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id OAA22309; Thu, 4 Oct 2007 14:21:03 +1000 Date: Thu, 04 Oct 2007 14:25:16 +1000 To: "xfs@oss.sgi.com" , xfs-dev Subject: REVIEW: xfs_reno #2 From: "Barry Naujok" Organization: SGI Content-Type: multipart/mixed; boundary=----------MAhJ3q66PgIP4VwapyTDNq MIME-Version: 1.0 Message-ID: User-Agent: Opera Mail/9.10 (Win32) X-Virus-Scanned: ClamAV 0.91.2/4461/Wed Oct 3 01:50:48 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13244 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: bnaujok@sgi.com Precedence: bulk X-list: xfs ------------MAhJ3q66PgIP4VwapyTDNq Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15 Content-Transfer-Encoding: 7bit A couple changes from the first xfs_reno: - Major one is that symlinks are now supported, but only owner, group and extended attributes are copied for them (not times or inode attributes). - Man page! To make this better, ideally we need some form of "swap inodes" function in the kernel, where the entire contents of the inode themselves are swapped. This form can handle any inode and without any of the dir/file/attr/etc copy/swap mechanisms we have in xfs_reno. Barry. ------------MAhJ3q66PgIP4VwapyTDNq Content-Disposition: attachment; filename=xfs_reno.patch Content-Type: application/octet-stream; name=xfs_reno.patch Content-Transfer-Encoding: Base64 Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp4ZnNkdW1wL01ha2Vm aWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKLS0tIGEveGZz ZHVtcC9NYWtlZmlsZQkyMDA3LTEwLTA0IDE0OjE2OjM5LjAwMDAwMDAwMCAr MTAwMAorKysgYi94ZnNkdW1wL01ha2VmaWxlCTIwMDctMDktMTQgMTc6MzE6 MzEuOTE2NDM3MTQwICsxMDAwCkBAIC0xNiw3ICsxNiw3IEBACiAJTG9ncy8q IGJ1aWx0IC5jZW5zdXMgaW5zdGFsbC4qIGluc3RhbGwtZGV2LiogKi5negog CiBTVUJESVJTID0gaW5jbHVkZSBsaWJybXQgXAotCWNvbW1vbiBlc3RpbWF0 ZSBmc3IgaW52ZW50b3J5IGludnV0aWwgZHVtcCByZXN0b3JlIFwKKwljb21t b24gZXN0aW1hdGUgZnNyIGludmVudG9yeSBpbnZ1dGlsIGR1bXAgcmVubyBy ZXN0b3JlIFwKIAltNCBtYW4gZG9jIHBvIGRlYmlhbiBidWlsZAogCiBkZWZh dWx0OiAkKENPTkZJR1VSRSkKCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQp4ZnNkdW1wL21hbi9tYW44L3hmc19yZW5vLjgKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CgotLS0gYS94ZnNkdW1wL21hbi9tYW44L3hm c19yZW5vLjgJMjAwNi0wNi0xNyAwMDo1ODoyNC4wMDAwMDAwMDAgKzEwMDAK KysrIGIveGZzZHVtcC9tYW4vbWFuOC94ZnNfcmVuby44CTIwMDctMTAtMDQg MTQ6MTA6MzAuMzE2MDI3Njk0ICsxMDAwCkBAIC0wLDAgKzEsMTE3IEBACisu VEggeGZzX3Jlbm8gOAorLlNIIE5BTUUKK3hmc19yZW5vIFwtIHJlbnVtYmVy IFhGUyBpbm9kZXMKKy5TSCBTWU5PUFNJUworLkIgeGZzX3Jlbm8KK1sKKy5C IFwtZm5wcXYKK10gWworLkIgXC1QCisuSSBpbnRlcnZhbAorXQorLkkgcGF0 aAorLmJyCisuQiB4ZnNfcmVubyBcLXIKKy5JIHJlY292ZXJfZmlsZQorLlNI IERFU0NSSVBUSU9OCisuQiB4ZnNfcmVubworaXMgYXBwbGljYWJsZSBvbmx5 IHRvIFhGUyBmaWxlc3lzdGVtcy4KKy5QUAorLkIgeGZzX3Jlbm8KK3JlbnVt YmVycyBpbm9kZXMuIFhGUyBzdXBwb3J0cyA2NC1iaXQgaW5vZGUgbnVtYmVy cywgYWx0aG91Z2ggYnkKK2RlZmF1bHQgaXQgd2lsbCBhdm9pZCBjcmVhdGlu ZyBpbm9kZXMgd2l0aCBudW1iZXJzIGdyZWF0ZXIgdGhhbgord2hhdCBjYW4g YmUgY29udGFpbmVkIHdpdGhpbiBhIDMyLWJpdCBudW1iZXIuIElmIGEgZmls ZXN5c3RlbSBkb2VzCitjb250YWluIGlub2RlIG51bWJlcnMgZ3JlYXRlciB0 aGFuIDMyLWJpdHMsIHRoZW4gdGhpcyBjYW4gY29uZmxpY3Qgd2l0aAorYXBw bGljYXRpb25zIHRoYXQgZG8gbm90IHN1cHBvcnQgdGhlbS4KK1RvIHJlY292 ZXIgZnJvbSB0aGlzIHNpdHVhdGlvbiBwcmV2aW91c2x5LCBhZmZlY3RlZCBm aWxlcyB3b3VsZCBuZWVkCit0byBiZSBjb3BpZWQgKGFuZCBzbyBnZXQgYSBu ZXcgaW5vZGUgbnVtYmVyKSBhbmQgdGhlIG9sZCB2ZXJzaW9uCityZW1vdmVk LiBUaGlzIGNhbiBiZSB0aW1lIGNvbnN1bWluZyBhbmQgaW1wcmFjdGljYWwg Zm9yIHZlcnkgbGFyZ2UKK2ZpbGVzIGFuZCBmaWxlc3lzdGVtcy4KKy5CIHhm c19yZW5vCitjYW4gYmUgdXNlZCB0byByZW51bWJlciBzdWNoIGlub2RlcyBx dWlja2x5LgorLkIgeGZzX3Jlbm8KK3dpbGwgY29weSB0aGUgaW5vZGVzIG9m IGFmZmVjdGVkIGZpbGVzIGFuZCBtb3ZlIHRoZSBkYXRhIGZyb20gdGhlIG9s ZAoraW5vZGUgdG8gdGhlIG5ldyB3aXRob3V0IGhhdmluZyB0byBjb3B5IHRo ZSBkYXRhLgorLkIgeGZzX3Jlbm8KK3JlbGllcyBvbiBYRlMgaW4gdGhlIGtl cm5lbCB0byBhbGxvY2F0ZSBhIG5ldyBpbm9kZSBudW1iZXIsIHNvIGlmIHRo ZQorZmlsZXN5c3RlbSBoYXMgYmVlbiBtb3VudGVkIHdpdGggdGhlCisuSSBp bm9kZTY0Cittb3VudCBvcHRpb24sIHRoZSBuZXcgaW5vZGVzIHdpbGwgcXVp dGUgcG9zc2libHkgaGF2ZSBpbm9kZSBudW1iZXJzCitncmVhdGVyIHRoYW4g MzItYml0cy4KKy5QUAorLkIgeGZzX3Jlbm8KK3Nob3VsZCBvbmx5IGJlIHVz ZWQgb24gYSBmaWxlc3lzdGVtIHdoZXJlIGl0IGlzIG5lY2Vzc2FyeSB0bwor cmVudW1iZXIgaW5vZGVzLiBVc2Ugb2YKKy5CIHhmc19yZW5vCitvbiBhIHJl Z3VsYXIgYmFzaXMgaXMKKy5JUiAibm90IHJlY29tbWVuZGVkIiAuCitBcGFy dCBmcm9tIGFwcGxpY2F0aW9uIGNvbXBhdGliaWxpdHksIHRoZXJlIGlzIG5v IHBhcnRpY3VsYXIgYWR2YW50YWdlCit0byBiZSBoYWQgZnJvbSByZW51bWJl cmluZyBpbm9kZXMuCisuUFAKKy5CIHhmc19yZW5vCit3b3JrcyBieSB0cmF2 ZXJzaW5nIGEgZGlyZWN0b3J5IHRyZWUsIHNjYW5uaW5nIGFsbCB0aGUgZGly ZWN0b3JpZXMKK2FuZCBub3Rpbmcgd2hpY2ggZmlsZXMgcmVxdWlyZSByZW51 bWJlcmluZy4gT25jZSB0aGUgc2Nhbm5pbmcgcGhhc2UKK2lzIGRvbmUsIGl0 IHdpbGwgcHJvY2VzcyB0aGUgYXBwcm9wcmlhdGUgZmlsZXMgYW5kIGRpcmVj dG9yaWVzLiBUaGUKK2RpcmVjdG9yeSdzIGFic29sdXRlIHBhdGhuYW1lIG11 c3QgYmUgZ2l2ZW4gdG8KKy5CUiB4ZnNfcmVubyAuCitUaGUgZm9sbG93aW5n IG9wdGlvbnMgYXJlIGFjY2VwdGVkIGJ5CisuQlIgeGZzX3Jlbm8gLgorLlRQ CisuQiBcLWYKK0ZvcmNlIGNvbnZlcnNpb24gb24gYWxsIGlub2RlcywgcmF0 aGVyIHRoYW4ganVzdCB0aG9zZSB3aXRoIGEgNjQtYml0Citpbm9kZSBudW1i ZXIuIFRoaXMgaXMgbm90IHBhcnRpY3VsYXJseSB1c2VmdWwgZXhjZXB0IGZv ciBkZWJ1Z2dpbmcKK3B1cnBvc2VzLgorLlRQCisuQiBcLW4KK0RvIG5vdGhp bmcsIHBlcmZvcm0gYSB0cmlhbCBydW4uCisuVFAKKy5CIFwtdgorSW5jcmVh c2VzIHRoZSB2ZXJib3NpdHkgb2YgcHJvZ3Jlc3MgYW5kIGVycm9yIG1lc3Nh Z2VzLiAgQWRkaXRpb25hbAorLkJSIFwtdiAncworY2FuIGJlIHVzZWQgdG8g ZnVydGhlciBpbmNyZWFzZSB2ZXJib3NpdHkuCisuVFAKKy5CIFwtcQorRG8g bm90IHJlcG9ydCBwcm9ncmVzcywgb25seSBlcnJvcnMuCisuVFAKKy5CIFwt cAorU2hvdyBwcm9ncmVzcyBzdGF0dXMuCisuVFAKKy5CSSBcLVAgIiBzZWNv bmRzIgorU2V0IHRoZSBpbnRlcnZhbCBmb3IgdGhlIHByb2dyZXNzIHN0YXR1 cyBpbiBzZWNvbmRzLiAgVGhlIGRlZmF1bHQgaXMgMQorc2Vjb25kLgorLlRQ CisuQiBcLXIKK1JlY292ZXIgZnJvbSBhbiBpbnRlcnJ1cHRlZCBydW4uICBJ ZgorLkIgeGZzX3Jlbm8KK2lzIGludGVycnVwdGVkLCBpdCB3aWxsIGxlYXZl IGEgZmlsZSBjYWxsZWQKKy5JIHhmc19yZW5vLnJlY292ZXIKK2luIHRoZSBk aXJlY3Rvcnkgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuICBUaGlz IGZpbGUgd2lsbAorY29udGFpbiBlbm91Z2ggaW5mb3JtYXRpb24gc28gdGhh dAorLkIgeGZzX3Jlbm8KK2NhbiBlaXRoZXIgZmluaXNoIHByb2Nlc3Npbmcg dGhlIGZpbGUgaXQgd2FzIHdvcmtpbmcgb24gd2hlbgoraW50ZXJydXB0ZWQg b3IgYmFjayBvdXQgdGhlIGxhc3QgY2hhbmdlIGl0IG1hZGUsIGRlcGVuZGlu ZyBvbiBob3cgZmFyCit0aHJvdWdoIHRoZSBwcm9jZXNzIGl0IGhhZCBwcm9n cmVzc2VkLgorLkIgeGZzX3Jlbm8KK3dpbGwgb25seSByZWNvdmVyIHRoZSBz aW5nbGUgZmlsZSBpdCB3YXMgd29ya2luZyBvbiBzbyBpdCB3aWxsIG5lZWQK K3RvIGJlIHJ1biBhZ2FpbiBvbiB0aGUgZGlyZWN0b3J5IHRvIGJlIHN1cmUg dGhhdCBhbGwgdGhlIGFwcHJvcHJpYXRlCitpbm9kZXMgaGF2ZSBiZWVuIGNv bnZlcnRlZC4KKy5TSCBFWEFNUExFUworVG8gcmVudW1iZXIgaW5vZGVzIHdp dGggNjQtYml0IGlub2RlIG51bWJlcnM6CisuSVAKKy5CICMgeGZzX3Jlbm8g LXAgL3BhdGgvdG8vZGlyZWN0b3J5CisuUFAKK1RvIHJlY292ZXIgZnJvbSBh biBpbnRlcnJ1cHRlZCBydW46CisuSVAKKy5CICMgeGZzX3Jlbm8gLXIgL3Bh dGgvdG8vZGlyZWN0b3J5L3hmc19yZW5vLnJlY292ZXIKKy5QUAorLlNIIEZJ TEVTCisuUEQKKy5UUAorLkkgL3BhdGgveGZzX3Jlbm8ucmVjb3ZlcgorcmVj b3JkcyB0aGUgc3RhdGUgd2hlcmUgcmVudW1iZXJpbmcgd2FzIGludGVycnVw dGVkLgorLlBECisuU0ggU0VFIEFMU08KKy5CUiB4ZnNfZnNyICg4KSwKKy5C UiB4ZnNfbmNoZWNrICg4KSwKKy5CUiBmc3RhYiAoNSksCisuQlIgeGZzICg1 KS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp4ZnNkdW1wL3Jl bm8vTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgot LS0gYS94ZnNkdW1wL3Jlbm8vTWFrZWZpbGUJMjAwNi0wNi0xNyAwMDo1ODoy NC4wMDAwMDAwMDAgKzEwMDAKKysrIGIveGZzZHVtcC9yZW5vL01ha2VmaWxl CTIwMDctMTAtMDIgMTc6MDY6MTguNjU4MzIwNzM4ICsxMDAwCkBAIC0wLDAg KzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDA3IFNpbGljb24gR3Jh cGhpY3MsIEluYy4gIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisjCisKK1RPUERJ UiA9IC4uCitpbmNsdWRlICQoVE9QRElSKS9pbmNsdWRlL2J1aWxkZGVmcwor CitMVENPTU1BTkQgPSB4ZnNfcmVubworQ0ZJTEVTID0geGZzX3Jlbm8uYwor TExETElCUyA9ICQoTElCQVRUUikKKworZGVmYXVsdDogJChMVENPTU1BTkQp CisKK2luY2x1ZGUgJChCVUlMRFJVTEVTKQorCitpbnN0YWxsOiBkZWZhdWx0 CisJJChJTlNUQUxMKSAtbSA3NTUgLWQgJChQS0dfQklOX0RJUikKKwkkKExU SU5TVEFMTCkgLW0gNzU1ICQoTFRDT01NQU5EKSAkKFBLR19CSU5fRElSKQor aW5zdGFsbC1kZXY6Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K eGZzZHVtcC9yZW5vL3hmc19yZW5vLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CgotLS0gYS94ZnNkdW1wL3Jlbm8veGZzX3Jlbm8uYwkyMDA2 LTA2LTE3IDAwOjU4OjI0LjAwMDAwMDAwMCArMTAwMAorKysgYi94ZnNkdW1w L3Jlbm8veGZzX3Jlbm8uYwkyMDA3LTEwLTA0IDE0OjExOjQzLjEwMjUyMTE2 MSArMTAwMApAQCAtMCwwICsxLDIwNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg KGMpIDIwMDcgU2lsaWNvbiBHcmFwaGljcywgSW5jLgorICogQWxsIFJpZ2h0 cyBSZXNlcnZlZC4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd291bGQgYmUgdXNlZnVsLAor ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAq IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg dGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sCisgKiBJbmMuLCAgNTEgRnJhbmtsaW4gU3QsIEZpZnRo IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisv KgorICogeGZzX3Jlbm8gLSByZW51bWJlciA2NC1iaXQgaW5vZGVzCisgKgor ICogeGZzX3Jlbm8gWy1mXSBbLW5dIFstcF0gWy1xXSBbLXZdIFstUCBzZWNv bmRzXSBwYXRoIC4uLgorICogeGZzX3Jlbm8gWy1yXSBwYXRoIC4uLgorICoK KyAqIFJlbnVtYmVycyBhbGwgaW5vZGVzID4gMzIgYml0cyBpbnRvIDMyIGJp dCBzcGFjZS4gUmVxdWlyZXMgdGhlIGZpbGVzeXRlbQorICogdG8gYmUgbW91 bnRlZCB3aXRoIGlub2RlMzIuCisgKgorICoJLWYJCWZvcmNlIGNvbnZlcnNp b24gb24gYWxsIGlub2RlcyByYXRoZXIgdGhhbiBqdXN0CisgKgkJCXRob3Nl IHdpdGggYSA2NGJpdCBpbm9kZSBudW1iZXIuCisgKgktbgkJbm90aGluZywg ZG8gbm90IHJlbnVtYmVyIGlub2RlcworICoJLXAJCXNob3cgcHJvZ3Jlc3Mg c3RhdHVzLgorICoJLXEJCXF1aWV0LCBkbyBub3QgcmVwb3J0IHByb2dyZXNz LCBvbmx5IGVycm9ycy4KKyAqCS12CQl2ZXJib3NlLCBtb3JlIC12J3MgbW9y ZSB2ZXJib3NlLgorICoJLVAgc2Vjb25kcwlzZXQgdGhlIGludGVydmFsIGZv ciB0aGUgcHJvZ3Jlc3Mgc3RhdHVzIGluIHNlY29uZHMuCisgKgktcgkJcmVj b3ZlciBmcm9tIGFuIGludGVycnVwdGVkIHJ1bi4KKyAqLworCisjaW5jbHVk ZSA8eGZzL3hmcy5oPgorCisjaW5jbHVkZSA8ZGlyZW50Lmg+CisjaW5jbHVk ZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGZ0 dy5oPgorI2luY2x1ZGUgPGxpYmdlbi5oPgorI2luY2x1ZGUgPG1hbGxvYy5o PgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHN0ZGludC5oPgor I2luY2x1ZGUgPHN5cy9pb2N0bC5oPgorI2luY2x1ZGUgPGF0dHIvYXR0cmli dXRlcy5oPgorI2luY2x1ZGUgPHhmcy94ZnNfZGZyYWcuaD4KKyNpbmNsdWRl IDx4ZnMveGZzX2ludW0uaD4KKworI2RlZmluZSBBVFRSQlVGU0laRQkxMDI0 CisKKyNkZWZpbmUgU0NBTl9QSEFTRQkweDAwCisjZGVmaW5lIERJUl9QSEFT RQkweDEwCS8qIG5vdGhpbmcgZG9uZSBvciBhbGwgZG9uZSAqLworI2RlZmlu ZSBESVJfUEhBU0VfMQkweDExCS8qIHRhcmdldCBkaXIgY3JlYXRlZCAqLwor I2RlZmluZSBESVJfUEhBU0VfMgkweDEyCS8qIHRlbXAgZGlyIGNyZWF0ZWQg Ki8KKyNkZWZpbmUgRElSX1BIQVNFXzMJMHgxMwkvKiBhdHRyaWJ1dGVzIGJh Y2tlZCB1cCB0byB0ZW1wICovCisjZGVmaW5lIERJUl9QSEFTRV80CTB4MTQJ LyogZGlyZW50cyBtb3ZlZCB0byB0YXJnZXQgZGlyICovCisjZGVmaW5lIERJ Ul9QSEFTRV81CTB4MTUJLyogYXR0cmlidXRlcyBhcHBsaWVkIHRvIHRhcmdl dCBkaXIgKi8KKyNkZWZpbmUgRElSX1BIQVNFXzYJMHgxNgkvKiBzcmMgZGly IHJlbW92ZWQgKi8KKyNkZWZpbmUgRElSX1BIQVNFXzcJMHgxNwkvKiB0ZW1w IGRpciByZW1vdmVkICovCisjZGVmaW5lIERJUl9QSEFTRV9NQVgJMHgxNwor I2RlZmluZSBGSUxFX1BIQVNFCTB4MjAJLyogbm90aGluZyBkb25lIG9yIGFs bCBkb25lICovCisjZGVmaW5lIEZJTEVfUEhBU0VfMQkweDIxCS8qIHRlbXAg ZmlsZSBjcmVhdGVkICovCisjZGVmaW5lIEZJTEVfUEhBU0VfMgkweDIyCS8q IHN3YXBwZWQgZXh0ZW50cyAqLworI2RlZmluZSBGSUxFX1BIQVNFXzMJMHgy MwkvKiB1bmxpbmtlZCBzb3VyY2UgKi8KKyNkZWZpbmUgRklMRV9QSEFTRV80 CTB4MjQJLyogcmVuYW1lZCB0ZW1wIHRvIHNvdXJjZSBuYW1lICovCisjZGVm aW5lIEZJTEVfUEhBU0VfTUFYCTB4MjQKKyNkZWZpbmUgU0xJTktfUEhBU0UJ MHgzMAkvKiBub3RoaW5nIGRvbmUgb3IgYWxsIGRvbmUgKi8KKyNkZWZpbmUg U0xJTktfUEhBU0VfMQkweDMxCS8qIHRlbXAgc3ltbGluayBjcmVhdGVkICov CisjZGVmaW5lIFNMSU5LX1BIQVNFXzIJMHgzMgkvKiBzeW1saW5rIGF0dHJz IGNvcGllZCAqLworI2RlZmluZSBTTElOS19QSEFTRV8zCTB4MzMJLyogdW5s aW5rZWQgc291cmNlICovCisjZGVmaW5lIFNMSU5LX1BIQVNFXzQJMHgzNAkv KiByZW5hbWVkIHRlbXAgdG8gc291cmNlIG5hbWUgKi8KKyNkZWZpbmUgU0xJ TktfUEhBU0VfTUFYCTB4MzQKKworc3RhdGljIHZvaWQgdXBkYXRlX3JlY292 ZXJmaWxlKHZvaWQpOworI2RlZmluZSBTRVRfUEhBU0UoeCkJKGN1cl9waGFz ZSA9IHgsIHVwZGF0ZV9yZWNvdmVyZmlsZSgpKQorCisjZGVmaW5lIExPR19F UlIJCTAKKyNkZWZpbmUgTE9HX05PUk1BTAkxCisjZGVmaW5lIExPR19JTkZP CTIKKyNkZWZpbmUgTE9HX0RFQlVHCTMKKyNkZWZpbmUgTE9HX05JVFRZCTQK KworI2RlZmluZSBOSF9CVUNLRVRTCTY1NTM2CisjZGVmaW5lIE5IX0hBU0go aW5vKQkobm9kZWhhc2ggKyAoKGlubykgJSBOSF9CVUNLRVRTKSkKKwordHlw ZWRlZiBzdHJ1Y3QgeworCXhmc19pbm9fdAlpbm87CisJaW50CQlmdHdfZmxh Z3M7CisJbmxpbmtfdAkJbnVtcGF0aHM7CisJY2hhcgkJKipwYXRoczsKK30g Ymlnbm9kZV90OworCit0eXBlZGVmIHN0cnVjdCB7CisJYmlnbm9kZV90CSpu b2RlczsKKwl1aW50NjRfdAlsaXN0bGVuOworCXVpbnQ2NF90CWxhc3Rub2Rl OworfSBub2RlbGlzdF90OworCitzdGF0aWMgY29uc3QgY2hhcgkqY21kX3By ZWZpeCA9ICJ4ZnNfcmVub18iOworCitzdGF0aWMgY2hhcgkJKnByb2duYW1l Oworc3RhdGljIGludAkJbG9nX2xldmVsID0gTE9HX05PUk1BTDsKK3N0YXRp YyBpbnQJCWZvcmNlX2FsbDsKK3N0YXRpYyBub2RlbGlzdF90CSpub2RlaGFz aDsKK3N0YXRpYyBpbnQJCXJlYWx1aWQ7CitzdGF0aWMgdWludDY0X3QJCW51 bWRpcm5vZGVzOworc3RhdGljIHVpbnQ2NF90CQludW1maWxlbm9kZXM7Citz dGF0aWMgdWludDY0X3QJCW51bXNsaW5rbm9kZXM7CitzdGF0aWMgdWludDY0 X3QJCW51bWRpcnNkb25lOworc3RhdGljIHVpbnQ2NF90CQludW1maWxlc2Rv bmU7CitzdGF0aWMgdWludDY0X3QJCW51bXNsaW5rc2RvbmU7CitzdGF0aWMg aW50CQlwb2xsX2ludGVydmFsOworc3RhdGljIHRpbWVfdAkJc3RhcnR0aW1l Oworc3RhdGljIGJpZ25vZGVfdAkqY3VyX25vZGU7CitzdGF0aWMgY2hhcgkJ KmN1cl90YXJnZXQ7CitzdGF0aWMgY2hhcgkJKmN1cl90ZW1wOworc3RhdGlj IGludAkJY3VyX3BoYXNlOworc3RhdGljIGludAkJaGlnaGVzdF9udW1wYXRo czsKK3N0YXRpYyBjaGFyCQkqcmVjb3Zlcl9maWxlOworc3RhdGljIGludAkJ cmVjb3Zlcl9mZDsKK3N0YXRpYyB2b2xhdGlsZSBpbnQJcG9sbF9vdXRwdXQ7 CitzdGF0aWMgaW50CQlnbG9iYWxfcnZhbDsKKworLyoKKyAqIG1lc3NhZ2Ug aGFuZGxpbmcKKyAqLworc3RhdGljIHZvaWQKK2xvZ19tZXNzYWdlKAorCWlu dAkJbGV2ZWwsCisJY2hhcgkJKmZtdCwgLi4uKQoreworCWNoYXIJCWJ1Zlsx MDI0XTsKKwl2YV9saXN0CQlhcDsKKworCWlmIChsb2dfbGV2ZWwgPCBsZXZl bCkKKwkJcmV0dXJuOworCisJdmFfc3RhcnQoYXAsIGZtdCk7CisJdnNucHJp bnRmKGJ1ZiwgMTAyNCwgZm10LCBhcCk7CisJdmFfZW5kKGFwKTsKKworCXBy aW50ZigiJWMlczogJXNcbiIsIHBvbGxfb3V0cHV0ID8gJ1xuJyA6ICdccics IHByb2duYW1lLCBidWYpOworCXBvbGxfb3V0cHV0ID0gMDsKK30KKworc3Rh dGljIHZvaWQKK2Vycl9tZXNzYWdlKAorCWNoYXIJCSpmbXQsIC4uLikKK3sK KwljaGFyCQlidWZbMTAyNF07CisJdmFfbGlzdAkJYXA7CisKKwl2YV9zdGFy dChhcCwgZm10KTsKKwl2c25wcmludGYoYnVmLCAxMDI0LCBmbXQsIGFwKTsK Kwl2YV9lbmQoYXApOworCisJZnByaW50ZihzdGRlcnIsICIlYyVzOiAlc1xu IiwgcG9sbF9vdXRwdXQgPyAnXG4nIDogJ1xyJywgcHJvZ25hbWUsIGJ1Zik7 CisJcG9sbF9vdXRwdXQgPSAwOworfQorCitzdGF0aWMgdm9pZAorZXJyX25v bWVtKHZvaWQpCit7CisJZXJyX21lc3NhZ2UoXygiT3V0IG9mIG1lbW9yeSIp KTsKK30KKworc3RhdGljIHZvaWQKK2Vycl9vcGVuKAorCWNvbnN0IGNoYXIJ KnMpCit7CisJZXJyX21lc3NhZ2UoXygiQ2Fubm90IG9wZW4gJXM6ICVzIiks IHMsIHN0cmVycm9yKGVycm5vKSk7Cit9CisKK3N0YXRpYyB2b2lkCitlcnJf bm90X3hmcygKKwljb25zdCBjaGFyIAkqcykKK3sKKwllcnJfbWVzc2FnZShf KCIlcyBpcyBub3Qgb24gYW4gWEZTIGZpbGVzeXN0ZW0iKSwgcyk7Cit9CisK K3N0YXRpYyB2b2lkCitlcnJfc3RhdCgKKwljb25zdCBjaGFyCSpzKQorewor CWVycl9tZXNzYWdlKF8oIkNhbm5vdCBzdGF0ICVzOiAlc1xuIiksIHMsIHN0 cmVycm9yKGVycm5vKSk7Cit9CisKKy8qCisgKiB1c2FnZSBtZXNzYWdlCisg Ki8KK3N0YXRpYyB2b2lkCit1c2FnZSh2b2lkKQoreworCWZwcmludGYoc3Rk ZXJyLCBfKCIlcyBbLWZucHF2XSBbLVAgPGludGVydmFsPl0gWy1yXSA8cGF0 aD5cbiIpLAorCQkJcHJvZ25hbWUpOworCWV4aXQoMSk7Cit9CisKKworLyoK KyAqIFhGUyBpbnRlcmZhY2UgZnVuY3Rpb25zCisgKi8KKworc3RhdGljIGlu dAoreGZzX2J1bGtzdGF0X3NpbmdsZShpbnQgZmQsIHhmc19pbm9fdCAqbGFz dGlwLCB4ZnNfYnN0YXRfdCAqdWJ1ZmZlcikKK3sKKwl4ZnNfZnNvcF9idWxr cmVxX3QgIGJ1bGtyZXE7CisKKwlidWxrcmVxLmxhc3RpcCA9IChfX3U2NCAq KWxhc3RpcDsKKwlidWxrcmVxLmljb3VudCA9IDE7CisJYnVsa3JlcS51YnVm ZmVyID0gdWJ1ZmZlcjsKKwlidWxrcmVxLm9jb3VudCA9IE5VTEw7CisJcmV0 dXJuIGlvY3RsKGZkLCBYRlNfSU9DX0ZTQlVMS1NUQVRfU0lOR0xFLCAmYnVs a3JlcSk7Cit9CisKK3N0YXRpYyBpbnQKK3hmc19zd2FwZXh0KGludCBmZCwg eGZzX3N3YXBleHRfdCAqc3gpCit7CisJcmV0dXJuIGlvY3RsKGZkLCBYRlNf SU9DX1NXQVBFWFQsIHN4KTsKK30KKworc3RhdGljIGludAoreGZzX2dldHhh dHRyKGludCBmZCwgc3RydWN0IGZzeGF0dHIgKmF0dHIpCit7CisJcmV0dXJu IGlvY3RsKGZkLCBYRlNfSU9DX0ZTR0VUWEFUVFIsIGF0dHIpOworfQorCitz dGF0aWMgaW50Cit4ZnNfc2V0eGF0dHIoaW50IGZkLCBzdHJ1Y3QgZnN4YXR0 ciAqYXR0cikKK3sKKwlyZXR1cm4gaW9jdGwoZmQsIFhGU19JT0NfRlNTRVRY QVRUUiwgYXR0cik7Cit9CisKKy8qCisgKiBBIGhhc2ggdGFibGUgb2YgaW5v ZGUgbnVtYmVycyBhbmQgYXNzb2NpYXRlZCBwYXRocy4KKyAqLworc3RhdGlj IG5vZGVsaXN0X3QgKgoraW5pdF9ub2RlaGFzaCh2b2lkKQoreworCWludAkJ aTsKKworCW5vZGVoYXNoID0gY2FsbG9jKE5IX0JVQ0tFVFMsIHNpemVvZihu b2RlbGlzdF90KSk7CisJaWYgKG5vZGVoYXNoID09IE5VTEwpIHsKKwkJZXJy X25vbWVtKCk7CisJCXJldHVybiBOVUxMOworCX0KKworCWZvciAoaSA9IDA7 IGkgPCBOSF9CVUNLRVRTOyBpKyspIHsKKwkJbm9kZWhhc2hbaV0ubm9kZXMg PSBOVUxMOworCQlub2RlaGFzaFtpXS5sYXN0bm9kZSA9IDA7CisJCW5vZGVo YXNoW2ldLmxpc3RsZW4gPSAwOworCX0KKworCXJldHVybiBub2RlaGFzaDsK K30KKworc3RhdGljIHZvaWQKK2ZyZWVfbm9kZWhhc2godm9pZCkKK3sKKwlp bnQJCWksIGosIGs7CisKKwlmb3IgKGkgPSAwOyBpIDwgTkhfQlVDS0VUUzsg aSsrKSB7CisJCWJpZ25vZGVfdCAqbm9kZXMgPSBub2RlaGFzaFtpXS5ub2Rl czsKKworCQlmb3IgKGogPSAwOyBqIDwgbm9kZWhhc2hbaV0ubGFzdG5vZGU7 IGorKykgeworCQkJZm9yIChrID0gMDsgayA8IG5vZGVzW2pdLm51bXBhdGhz OyBrKyspIHsKKwkJCQlmcmVlKG5vZGVzW2pdLnBhdGhzW2tdKTsKKwkJCX0K KwkJCWZyZWUobm9kZXNbal0ucGF0aHMpOworCQl9CisKKwkJZnJlZShub2Rl cyk7CisJfQorCWZyZWUobm9kZWhhc2gpOworfQorCitzdGF0aWMgbmxpbmtf dAorYWRkX3BhdGgoCisJYmlnbm9kZV90CSpub2RlLAorCWNvbnN0IGNoYXIJ KnBhdGgpCit7CisJbm9kZS0+cGF0aHMgPSByZWFsbG9jKG5vZGUtPnBhdGhz LAorCQkJICAgICAgc2l6ZW9mKGNoYXIgKikgKiAobm9kZS0+bnVtcGF0aHMg KyAxKSk7CisJaWYgKG5vZGUtPnBhdGhzID09IE5VTEwpIHsKKwkJZXJyX25v bWVtKCk7CisJCWV4aXQoMSk7CisJfQorCisJbm9kZS0+cGF0aHNbbm9kZS0+ bnVtcGF0aHNdID0gc3RyZHVwKHBhdGgpOworCWlmIChub2RlLT5wYXRoc1tu b2RlLT5udW1wYXRoc10gPT0gTlVMTCkgeworCQllcnJfbm9tZW0oKTsKKwkJ ZXhpdCgxKTsKKwl9CisKKwlub2RlLT5udW1wYXRocysrOworCWlmIChub2Rl LT5udW1wYXRocyA+IGhpZ2hlc3RfbnVtcGF0aHMpCisJCWhpZ2hlc3RfbnVt cGF0aHMgPSBub2RlLT5udW1wYXRoczsKKworCXJldHVybiBub2RlLT5udW1w YXRoczsKK30KKworc3RhdGljIGJpZ25vZGVfdCAqCithZGRfbm9kZSgKKwlu b2RlbGlzdF90CSpsaXN0LAorCXhmc19pbm9fdAlpbm8sCisJaW50CQlmdHdf ZmxhZ3MsCisJY29uc3QgY2hhcgkqcGF0aCkKK3sKKwliaWdub2RlX3QJKm5v ZGU7CisKKwlpZiAobGlzdC0+bGFzdG5vZGUgPj0gbGlzdC0+bGlzdGxlbikg eworCQlsaXN0LT5saXN0bGVuICs9IDUwMDsKKwkJbGlzdC0+bm9kZXMgPSBy ZWFsbG9jKGxpc3QtPm5vZGVzLAorCQkJCQlzaXplb2YoYmlnbm9kZV90KSAq IGxpc3QtPmxpc3RsZW4pOworCQlpZiAobGlzdC0+bm9kZXMgPT0gTlVMTCkg eworCQkJZXJyX25vbWVtKCk7CisJCQlyZXR1cm4gTlVMTDsKKwkJfQorCX0K KworCW5vZGUgPSBsaXN0LT5ub2RlcyArIGxpc3QtPmxhc3Rub2RlOworCisJ bm9kZS0+aW5vID0gaW5vOworCW5vZGUtPmZ0d19mbGFncyA9IGZ0d19mbGFn czsKKwlub2RlLT5wYXRocyA9IE5VTEw7CisJbm9kZS0+bnVtcGF0aHMgPSAw OworCWFkZF9wYXRoKG5vZGUsIHBhdGgpOworCisJbGlzdC0+bGFzdG5vZGUr KzsKKworCXJldHVybiBub2RlOworfQorCitzdGF0aWMgYmlnbm9kZV90ICoK K2ZpbmRfbm9kZSgKKwl4ZnNfaW5vX3QJaW5vKQoreworCWludAkJaTsKKwlu b2RlbGlzdF90CSpub2RlbGlzdDsKKwliaWdub2RlX3QJKm5vZGVzOworCisJ bm9kZWxpc3QgPSBOSF9IQVNIKGlubyk7CisJbm9kZXMgPSBub2RlbGlzdC0+ bm9kZXM7CisKKwlmb3IoaSA9IDA7IGkgPCBub2RlbGlzdC0+bGFzdG5vZGU7 IGkrKykgeworCQlpZiAobm9kZXNbaV0uaW5vID09IGlubykgeworCQkJcmV0 dXJuICZub2Rlc1tpXTsKKwkJfQorCX0KKworCXJldHVybiBOVUxMOworfQor CitzdGF0aWMgYmlnbm9kZV90ICoKK2FkZF9ub2RlX3BhdGgoCisJeGZzX2lu b190CWlubywKKwlpbnQJCWZ0d19mbGFncywKKwljb25zdCBjaGFyCSpwYXRo KQoreworCW5vZGVsaXN0X3QJKm5vZGVsaXN0OworCWJpZ25vZGVfdAkqbm9k ZTsKKworCWxvZ19tZXNzYWdlKExPR19OSVRUWSwgImFkZF9ub2RlX3BhdGg6 IGlubyAlbGx1LCBwYXRoICVzIiwgaW5vLCBwYXRoKTsKKworCW5vZGUgPSBm aW5kX25vZGUoaW5vKTsKKwlpZiAobm9kZSA9PSBOVUxMKSB7CisJCW5vZGVs aXN0ID0gTkhfSEFTSChpbm8pOworCQlyZXR1cm4gYWRkX25vZGUobm9kZWxp c3QsIGlubywgZnR3X2ZsYWdzLCBwYXRoKTsKKwl9CisKKwlhZGRfcGF0aChu b2RlLCBwYXRoKTsKKwlyZXR1cm4gbm9kZTsKK30KKworc3RhdGljIHZvaWQK K2R1bXBfbm9kZSgKKwljaGFyCQkqbXNnLAorCWJpZ25vZGVfdAkqbm9kZSkK K3sKKwlpbnQJCWs7CisKKwlpZiAobG9nX2xldmVsIDwgTE9HX0RFQlVHKQor CQlyZXR1cm47CisKKwlsb2dfbWVzc2FnZShMT0dfREVCVUcsICIlczogJWxs dSAlbGx1ICVzIiwgbXNnLCBub2RlLT5pbm8sCisJCQlub2RlLT5udW1wYXRo cywgbm9kZS0+cGF0aHNbMF0pOworCisJZm9yIChrID0gMTsgayA8IG5vZGUt Pm51bXBhdGhzOyBrKyspCisJCWxvZ19tZXNzYWdlKExPR19ERUJVRywgIlx0 JXMiLCBub2RlLT5wYXRoc1trXSk7Cit9CisKK3N0YXRpYyB2b2lkCitkdW1w X25vZGVoYXNoKHZvaWQpCit7CisJaW50CQlpLCBqOworCisJaWYgKGxvZ19s ZXZlbCA8IExPR19OSVRUWSkKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsg aSA8IE5IX0JVQ0tFVFM7IGkrKykgeworCQliaWdub2RlX3QJKm5vZGVzID0g bm9kZWhhc2hbaV0ubm9kZXM7CisJCWZvciAoaiA9IDA7IGogPCBub2RlaGFz aFtpXS5sYXN0bm9kZTsgaisrLCBub2RlcysrKQorCQkJZHVtcF9ub2RlKCJu b2RlaGFzaCIsIG5vZGVzKTsKKwl9Cit9CisKK3N0YXRpYyBpbnQKK2Zvcl9h bGxfbm9kZXMoCisJaW50CQkoKmZuKShiaWdub2RlX3QgKm5vZGUpLAorCWlu dAkJZnR3X2ZsYWdzLAorCWludAkJcXVpdF9vbl9lcnJvcikKK3sKKwlpbnQJ CWk7CisJaW50CQlqOworCWludAkJcnZhbCA9IDA7CisKKwlmb3IgKGkgPSAw OyBpIDwgTkhfQlVDS0VUUzsgaSsrKSB7CisJCWJpZ25vZGVfdAkqbm9kZXMg PSBub2RlaGFzaFtpXS5ub2RlczsKKworCQlmb3IgKGogPSAwOyBqIDwgbm9k ZWhhc2hbaV0ubGFzdG5vZGU7IGorKywgbm9kZXMrKykgeworCQkJaWYgKG5v ZGVzLT5mdHdfZmxhZ3MgPT0gZnR3X2ZsYWdzKSB7CisJCQkJcnZhbCA9IGZu KG5vZGVzKTsKKwkJCQlpZiAocnZhbCAmJiBxdWl0X29uX2Vycm9yKQorCQkJ CQlnb3RvIHF1aXQ7CisJCQl9CisJCX0KKwl9CisKK3F1aXQ6CisJcmV0dXJu IHJ2YWw7Cit9CisKKy8qCisgKiBBZGRzIGFwcHJvcHJpYXRlIGZpbGVzIHRv IHRoZSBpbm9kZSBoYXNoIHRhYmxlCisgKi8KK3N0YXRpYyBpbnQKK25mdHdf YWRkbm9kZXMoCisJY29uc3QgY2hhcgkqcGF0aCwKKwljb25zdCBzdHJ1Y3Qg c3RhdDY0ICpzdCwKKwlpbnQJCWZsYWdzLAorCXN0cnVjdCBGVFcJKnNudGZ3 KQoreworCWlmIChzdC0+c3RfaW5vIDw9IFhGU19NQVhJTlVNQkVSXzMyICYm ICFmb3JjZV9hbGwpCisJCXJldHVybiAwOworCisJaWYgKGZsYWdzID09IEZU V19GKQorCQludW1maWxlbm9kZXMrKzsKKwllbHNlIGlmIChmbGFncyA9PSBG VFdfRCkKKwkJbnVtZGlybm9kZXMrKzsKKwllbHNlIGlmIChmbGFncyA9PSBG VFdfU0wpCisJCW51bXNsaW5rbm9kZXMrKzsKKwllbHNlCisJCXJldHVybiAw OworCisJYWRkX25vZGVfcGF0aChzdC0+c3RfaW5vLCBmbGFncywgcGF0aCk7 CisKKwlyZXR1cm4gMDsKK30KKworLyoKKyAqIEF0dHJpYnV0ZSBjbG9uaW5n IGNvZGUgLSBtb3N0IG9mIHRoaXMgaXMgaGVyZSBiZWNhdXNlIGF0dHJfY29w eSBkb2VzIG5vdAorICogbGV0IHVzIHBpY2sgYW5kIGNob29zZSB3aGljaCBh dHRyaWJ1dGVzIHdlIHdhbnQgdG8gY29weS4KKyAqLworCithdHRyX211bHRp b3BfdAlhdHRyX29wc1tBVFRSX01BWF9NVUxUSU9QU107CisKKy8qCisgKiBH cmFiIGF0dHJpYnV0ZXMgc3BlY2lmaWVkIGluIGF0dHJfb3BzIGZyb20gc291 cmNlIGZpbGUgYW5kIHdyaXRlIHRoZW0KKyAqIG91dCBvbiB0aGUgZGVzdGlu YXRpb24gZmlsZS4KKyAqLworCitzdGF0aWMgaW50CithdHRyX3JlcGxpY2F0 ZSgKKwljaGFyCQkqc291cmNlLAorCWNoYXIJCSp0YXJnZXQsCisJaW50CQlj b3VudCkKK3sKKwlpbnQJCWosIGs7CisKKwlpZiAoYXR0cl9tdWx0aShzb3Vy Y2UsIGF0dHJfb3BzLCBjb3VudCwgQVRUUl9ET05URk9MTE9XKSA8IDApCisJ CXJldHVybiAtMTsKKworCWZvciAoayA9IDA7IGsgPCBjb3VudDsgaysrKSB7 CisJCWlmIChhdHRyX29wc1trXS5hbV9lcnJvcikgeworCQkJZXJyX21lc3Nh Z2UoXygiRXJyb3IgJWQgZ2V0dGluZyBhdHRyaWJ1dGUiKSwKKwkJCQkJYXR0 cl9vcHNba10uYW1fZXJyb3IpOworCQkJYnJlYWs7CisJCX0KKwkJYXR0cl9v cHNba10uYW1fb3Bjb2RlID0gQVRUUl9PUF9TRVQ7CisJfQorCWlmIChhdHRy X211bHRpKHRhcmdldCwgYXR0cl9vcHMsIGssIEFUVFJfRE9OVEZPTExPVykg PCAwKQorCQllcnJfbWVzc2FnZSgib24gYXR0cl9tdWx0aWYgc2V0Iik7CisJ Zm9yIChqID0gMDsgaiA8IGs7IGorKykgeworCQlpZiAoYXR0cl9vcHNbal0u YW1fZXJyb3IpIHsKKwkJCWVycl9tZXNzYWdlKF8oIkVycm9yICVkIHNldHRp bmcgYXR0cmlidXRlIiksCisJCQkJCWF0dHJfb3BzW2pdLmFtX2Vycm9yKTsK KwkJCXJldHVybiAtMTsKKwkJfQorCX0KKworCXJldHVybiAwOworfQorCisv KgorICogQ29weSBhbGwgdGhlIGF0dHJpYnV0ZXMgc3BlY2lmaWVkIGZyb20g c3JjIHRvIGRzdC4KKyAqLworCitzdGF0aWMgaW50CithdHRyX2Nsb25lX2Nv cHkoCisJY2hhcgkJKnNvdXJjZSwKKwljaGFyCQkqdGFyZ2V0LAorCWNoYXIJ CSpsaXN0X2J1ZiwKKwljaGFyCQkqYXR0cl9idWYsCisJaW50CQlidWZfbGVu LAorCWludAkJZmxhZ3MpCit7CisgICAgICAgIGF0dHJsaXN0X3QgCSphbGlz dDsKKyAgICAgICAgYXR0cmxpc3RfZW50X3QJKmF0dHI7CisgICAgICAgIGF0 dHJsaXN0X2N1cnNvcl90IGN1cnNvcjsKKyAgICAgICAgaW50CQlzcGFjZSwg aSwgajsKKwljaGFyCQkqcHRyOworCisgICAgICAgIGJ6ZXJvKChjaGFyICop JmN1cnNvciwgc2l6ZW9mKGN1cnNvcikpOworICAgICAgICBkbyB7CisgICAg ICAgICAgICAgICAgaWYgKGF0dHJfbGlzdChzb3VyY2UsIGxpc3RfYnVmLCBB VFRSQlVGU0laRSwKKyAgICAgICAgICAgICAgICAJCWZsYWdzIHwgQVRUUl9E T05URk9MTE9XLCAmY3Vyc29yKSA8IDApIHsKKwkJCWVycl9tZXNzYWdlKCJv biBhdHRyX2xpc3RmIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLTE7CisJCX0KKworICAgICAgICAgICAgICAgIGFsaXN0ID0gKGF0dHJs aXN0X3QgKilsaXN0X2J1ZjsKKworCQlzcGFjZSA9IGJ1Zl9sZW47CisJCXB0 ciA9IGF0dHJfYnVmOworICAgICAgICAgICAgICAgIGZvciAoaiA9IDAsIGkg PSAwOyBpIDwgYWxpc3QtPmFsX2NvdW50OyBpKyspIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGF0dHIgPSBBVFRSX0VOVFJZKGxpc3RfYnVmLCBpKTsK KwkJCWlmIChzcGFjZSA8IGF0dHItPmFfdmFsdWVsZW4pIHsKKwkJCQlpZiAo YXR0cl9yZXBsaWNhdGUoc291cmNlLCB0YXJnZXQsIGopIDwgMCkKKwkJCQkJ cmV0dXJuIC0xOworCQkJCWogPSAwOworCQkJCXNwYWNlID0gYnVmX2xlbjsK KwkJCQlwdHIgPSBhdHRyX2J1ZjsKKwkJCX0KKwkJCWF0dHJfb3BzW2pdLmFt X29wY29kZSA9IEFUVFJfT1BfR0VUOworCQkJYXR0cl9vcHNbal0uYW1fYXR0 cm5hbWUgPSBhdHRyLT5hX25hbWU7CisJCQlhdHRyX29wc1tqXS5hbV9hdHRy dmFsdWUgPSBwdHI7CisJCQlhdHRyX29wc1tqXS5hbV9sZW5ndGggPSAoaW50 KSBhdHRyLT5hX3ZhbHVlbGVuOworCQkJYXR0cl9vcHNbal0uYW1fZmxhZ3Mg PSBmbGFnczsKKwkJCWF0dHJfb3BzW2pdLmFtX2Vycm9yID0gMDsKKwkJCWor KzsKKwkJCXB0ciArPSBhdHRyLT5hX3ZhbHVlbGVuOworCQkJc3BhY2UgLT0g YXR0ci0+YV92YWx1ZWxlbjsKKyAgICAgICAgICAgICAgICB9CisKKwkJbG9n X21lc3NhZ2UoTE9HX05JVFRZLCAiY29weWluZyBhdHRyaWJ1dGUgJWQiLCBp KTsKKworCQlpZiAoaikgeworCQkJaWYgKGF0dHJfcmVwbGljYXRlKHNvdXJj ZSwgdGFyZ2V0LCBqKSA8IDApCisJCQkJcmV0dXJuIC0xOworCQl9CisKKyAg ICAgICAgfSB3aGlsZSAoYWxpc3QtPmFsX21vcmUpOworCisgICAgICAgIHJl dHVybiAwOworfQorCitzdGF0aWMgaW50CitjbG9uZV9hdHRyaWJzKAorCWNo YXIJCSpzb3VyY2UsCisJY2hhcgkJKnRhcmdldCkKK3sKKwljaGFyCQlsaXN0 X2J1ZltBVFRSQlVGU0laRV07CisJY2hhcgkJKmF0dHJfYnVmOworCWludAkJ cnZhbDsKKworCWF0dHJfYnVmID0gbWFsbG9jKEFUVFJfTUFYX1ZBTFVFTEVO ICogMik7CisJaWYgKGF0dHJfYnVmID09IE5VTEwpIHsKKwkJZXJyX25vbWVt KCk7CisJCXJldHVybiAtMTsKKwl9CisJcnZhbCA9IGF0dHJfY2xvbmVfY29w eShzb3VyY2UsIHRhcmdldCwgbGlzdF9idWYsIGF0dHJfYnVmLAorCQkJQVRU Ul9NQVhfVkFMVUVMRU4gKiAyLCAwKTsKKwlpZiAocnZhbCA9PSAwKQorCQly dmFsID0gYXR0cl9jbG9uZV9jb3B5KHNvdXJjZSwgdGFyZ2V0LCBsaXN0X2J1 ZiwgYXR0cl9idWYsCisJCQkJQVRUUl9NQVhfVkFMVUVMRU4gKiAyLCBBVFRS X1JPT1QpOworCWlmIChydmFsID09IDApCisJCXJ2YWwgPSBhdHRyX2Nsb25l X2NvcHkoc291cmNlLCB0YXJnZXQsIGxpc3RfYnVmLCBhdHRyX2J1ZiwKKwkJ CQlBVFRSX01BWF9WQUxVRUxFTiAqIDIsIEFUVFJfU0VDVVJFKTsKKwlmcmVl KGF0dHJfYnVmKTsKKwlyZXR1cm4gcnZhbDsKK30KKworc3RhdGljIGludAor ZHVwX2F0dHJpYnV0ZXMoCisJY2hhcgkJKnNvdXJjZSwKKwlpbnQJCXNmZCwK KwljaGFyCQkqdGFyZ2V0LAorCWludAkJdGZkKQoreworCXN0cnVjdCBzdGF0 NjQJc3Q7CisJc3RydWN0IHRpbWV2YWwJdHZbMl07CisJc3RydWN0IGZzeGF0 dHIJZnN4OworCisJaWYgKGZzdGF0NjQoc2ZkLCAmc3QpIDwgMCkgeworCQll cnJfc3RhdChzb3VyY2UpOworCQlyZXR1cm4gLTE7CisJfQorCisJaWYgKHhm c19nZXR4YXR0cihzZmQsICZmc3gpIDwgMCkgeworCQllcnJfc3RhdChzb3Vy Y2UpOworCQlyZXR1cm4gLTE7CisJfQorCisJdHZbMF0udHZfc2VjID0gc3Qu c3RfYXRpbS50dl9zZWM7CisJdHZbMF0udHZfdXNlYyA9IHN0LnN0X2F0aW0u dHZfbnNlYyAvIDEwMDA7CisJdHZbMV0udHZfc2VjID0gc3Quc3RfbXRpbS50 dl9zZWM7CisJdHZbMV0udHZfdXNlYyA9IHN0LnN0X210aW0udHZfbnNlYyAv IDEwMDA7CisKKwlpZiAoZnV0aW1lcyh0ZmQsIHR2KSA8IDApCisJCWVycl9t ZXNzYWdlKF8oIiVzOiBDYW5ub3QgdXBkYXRlIHRhcmdldCB0aW1lcyIpLCB0 YXJnZXQpOworCisJaWYgKGZjaG93bih0ZmQsIHN0LnN0X3VpZCwgc3Quc3Rf Z2lkKSA8IDApIHsKKwkJZXJyX21lc3NhZ2UoXygiJXM6IENhbm5vdCBjaGFu Z2UgdGFyZ2V0IG93bmVyc2hpcCB0byAiCisJCQkJInVpZCglZCkgZ2lkKCVk KSIpLCB0YXJnZXQsCisJCQkJc3Quc3RfdWlkLCBzdC5zdF9naWQpOworCisJ CWlmIChmY2htb2QodGZkLCBzdC5zdF9tb2RlICYgfihTX0lTVUlEIHwgU19J U0dJRCkpIDwgMCkKKwkJCWVycl9tZXNzYWdlKF8oIiVzOiBDYW5ub3QgY2hh bmdlIHRhcmdldCBtb2RlICIKKwkJCQkJInRvICglbykiKSwgdGFyZ2V0LCBz dC5zdF9tb2RlKTsKKwl9IGVsc2UgaWYgKGZjaG1vZCh0ZmQsIHN0LnN0X21v ZGUpIDwgMCkKKwkJZXJyX21lc3NhZ2UoXygiJXM6IENhbm5vdCBjaGFuZ2Ug dGFyZ2V0IG1vZGUgdG8gKCVvKSIpLAorCQkJCXRhcmdldCwgc3Quc3RfbW9k ZSk7CisKKwlpZiAoeGZzX3NldHhhdHRyKHRmZCwgJmZzeCkgPCAwKQorCQll cnJfbWVzc2FnZShfKCIlczogQ2FubmV0IHNldCB0YXJnZXQgZXh0ZW5kZWQg IgorCQkJCSJhdHRyaWJ1dGVzIiksIHRhcmdldCk7CisKKwlyZXR1cm4gY2xv bmVfYXR0cmlicyhzb3VyY2UsIHRhcmdldCk7Cit9CisKK3N0YXRpYyBpbnQK K21vdmVfZGlyZW50cygKKwljaGFyCQkqc3JjcGF0aCwKKwljaGFyCQkqdGFy Z2V0cGF0aCwKKwlpbnQJCSptb3ZlX2NvdW50KQoreworCWludAkJcnZhbCA9 IDA7CisJRElSCQkqc3JjZDsKKwlzdHJ1Y3QgZGlyZW50NjQJKmRwOworCWNo YXIJCXNyY25hbWVbUEFUSF9NQVhdOworCWNoYXIJCXRhcmdldG5hbWVbUEFU SF9NQVhdOworCisJKm1vdmVfY291bnQgPSAwOworCisJc3JjZCA9IG9wZW5k aXIoc3JjcGF0aCk7CisJaWYgKHNyY2QgPT0gTlVMTCkgeworCQllcnJfb3Bl bihzcmNwYXRoKTsKKwkJcmV0dXJuIDE7CisJfQorCisJd2hpbGUgKChkcCA9 IHJlYWRkaXI2NChzcmNkKSkgIT0gTlVMTCkgeworCQlpZiAoZHAtPmRfaW5v ID09IDAgfHwgIXN0cmNtcChkcC0+ZF9uYW1lLCAiLiIpIHx8CisJCQkJIXN0 cmNtcChkcC0+ZF9uYW1lLCAiLi4iKSkKKwkJCWNvbnRpbnVlOworCisJCWlm IChzdHJsZW4oc3JjcGF0aCkgKyAxICsgc3RybGVuKGRwLT5kX25hbWUpID49 CisJCQkJc2l6ZW9mKHNyY25hbWUpIC0gMSkgeworCisJCQllcnJfbWVzc2Fn ZShfKCIlcy8lczogTmFtZSB0b28gbG9uZyIpLCBzcmNwYXRoLAorCQkJCQlk cC0+ZF9uYW1lKTsKKwkJCXJ2YWwgPSAxOworCQkJZ290byBxdWl0OworCQl9 CisKKwkJc3ByaW50ZihzcmNuYW1lLCAiJXMvJXMiLCBzcmNwYXRoLCBkcC0+ ZF9uYW1lKTsKKwkJc3ByaW50Zih0YXJnZXRuYW1lLCAiJXMvJXMiLCB0YXJn ZXRwYXRoLCBkcC0+ZF9uYW1lKTsKKworCQlydmFsID0gcmVuYW1lKHNyY25h bWUsIHRhcmdldG5hbWUpOworCQlpZiAocnZhbCAhPSAwKSB7CisJCQllcnJf bWVzc2FnZShfKCJmYWlsZWQgdG8gcmVuYW1lOiBcJyVzXCcgdG8gXCclc1wn IiksCisJCQkJCXNyY25hbWUsIHRhcmdldG5hbWUpOworCQkJZ290byBxdWl0 OworCQl9CisKKwkJbG9nX21lc3NhZ2UoTE9HX0RFQlVHLCAicmVuYW1lICVz IC0+ICVzIiwgc3JjbmFtZSwgdGFyZ2V0bmFtZSk7CisKKwkJKCptb3ZlX2Nv dW50KSsrOworCX0KKworcXVpdDoKKwljbG9zZWRpcihzcmNkKTsKKwlyZXR1 cm4gcnZhbDsKK30KKworc3RhdGljIGludAorcHJvY2Vzc19kaXIoCisJYmln bm9kZV90CSpub2RlKQoreworCWludAkJc2ZkID0gLTE7CisJaW50CQl0ZmQg PSAtMTsKKwlpbnQJCXRhcmdldGZkID0gLTE7CisJaW50CQlydmFsID0gMDsK KwlpbnQJCW1vdmVfY291bnQgPSAwOworCWNoYXIJCSpzcmNuYW1lID0gTlVM TDsKKwljaGFyCQkqcG5hbWUgPSBOVUxMOworCXN0cnVjdCBzdGF0NjQJczE7 CisJc3RydWN0IGZzeGF0dHIgIGZzeDsKKwljaGFyCQl0YXJnZXRbUEFUSF9N QVhdID0gIiI7CisKKwlTRVRfUEhBU0UoRElSX1BIQVNFKTsKKworCWR1bXBf bm9kZSgiZGlyZWN0b3J5Iiwgbm9kZSk7CisKKwljdXJfbm9kZSA9IG5vZGU7 CisJc3JjbmFtZSA9IG5vZGUtPnBhdGhzWzBdOworCisJaWYgKHN0YXQ2NChz cmNuYW1lLCAmczEpIDwgMCkgeworCQlpZiAoZXJybm8gIT0gRU5PRU5UKSB7 CisJCQllcnJfc3RhdChzcmNuYW1lKTsKKwkJCWdsb2JhbF9ydmFsIHw9IDI7 CisJCX0KKwkJZ290byBxdWl0OworCX0KKwlpZiAoczEuc3RfaW5vIDw9IFhG U19NQVhJTlVNQkVSXzMyICYmICFmb3JjZV9hbGwpIHsKKwkJLyoKKwkJICog VGhpcyBkaXJlY3RvcnkgaGFzIGFscmVhZHkgY2hhbmdlZCBpbm8ncywgcHJv YmFibHkgZHVlCisJCSAqIHRvIGJlaW5nIG1vdmVkIGR1cmluZyBwcm9jZXNz aW5nIG9mIGEgcGFyZW50IGRpcmVjdG9yeS4KKwkJICovCisJCWxvZ19tZXNz YWdlKExPR19ERUJVRywgInByb2Nlc3NfZGlyOiBza2lwcGluZyAlcyIsIHNy Y25hbWUpOworCQlnb3RvIHF1aXQ7CisJfQorCisJcnZhbCA9IDE7CisKKwlz ZmQgPSBvcGVuKHNyY25hbWUsIE9fUkRPTkxZKTsKKwlpZiAoc2ZkIDwgMCkg eworCQllcnJfb3BlbihzcmNuYW1lKTsKKwkJZ290byBxdWl0OworCX0KKwor CWlmICghcGxhdGZvcm1fdGVzdF94ZnNfZmQoc2ZkKSkgeworCQllcnJfbm90 X3hmcyhzcmNuYW1lKTsKKwkJZ290byBxdWl0OworCX0KKworCWlmICh4ZnNf Z2V0eGF0dHIoc2ZkLCAmZnN4KSA8IDApIHsKKwkJZXJyX21lc3NhZ2UoXygi ZmFpbGVkIHRvIGdldCBpbm9kZSBhdHRyczogJXMiKSwgc3JjbmFtZSk7CisJ CWdvdG8gcXVpdDsKKwl9CisJaWYgKGZzeC5mc3hfeGZsYWdzICYgKFhGU19Y RkxBR19JTU1VVEFCTEUgfCBYRlNfWEZMQUdfQVBQRU5EKSkgeworCQllcnJf bWVzc2FnZShfKCIlczogaW1tdXRhYmxlL2FwcGVuZCwgaWdub3JpbmciKSwg c3JjbmFtZSk7CisJCWdsb2JhbF9ydmFsIHw9IDI7CisJCXJ2YWwgPSAwOwor CQlnb3RvIHF1aXQ7CisJfQorCisJLyogbWtkaXIgcGFyZW50L3RhcmdldCAq LworCXBuYW1lID0gc3RyZHVwKHNyY25hbWUpOworCWlmIChwbmFtZSA9PSBO VUxMKSB7CisJCWVycl9ub21lbSgpOworCQlnb3RvIHF1aXQ7CisJfQorCWRp cm5hbWUocG5hbWUpOworCXNwcmludGYodGFyZ2V0LCAiJXMvJXNYWFhYWFgi LCBwbmFtZSwgY21kX3ByZWZpeCk7CisJaWYgKG1rZHRlbXAodGFyZ2V0KSA9 PSBOVUxMKSB7CisJCWVycl9tZXNzYWdlKF8oIlVuYWJsZSB0byBjcmVhdGUg ZGlyZWN0b3J5IGNvcHk6ICVzIiksIHNyY25hbWUpOworCQlnb3RvIHF1aXQ7 CisJfQorCVNFVF9QSEFTRShESVJfUEhBU0VfMSk7CisKKwljdXJfdGFyZ2V0 ID0gc3RyZHVwKHRhcmdldCk7CisJaWYgKCFjdXJfdGFyZ2V0KSB7CisJCWVy cl9ub21lbSgpOworCQlnb3RvIHF1aXQ7CisJfQorCisJc3ByaW50Zih0YXJn ZXQsICIlcy8lc1hYWFhYWCIsIHBuYW1lLCBjbWRfcHJlZml4KTsKKwlpZiAo bWtkdGVtcCh0YXJnZXQpID09IE5VTEwpIHsKKwkJZXJyX21lc3NhZ2UoXygi dW5hYmxlIHRvIGNyZWF0ZSB0bXAgZGlyZWN0b3J5IGNvcHkiKSk7CisJCWdv dG8gcXVpdDsKKwl9CisJU0VUX1BIQVNFKERJUl9QSEFTRV8yKTsKKworCWN1 cl90ZW1wID0gc3RyZHVwKHRhcmdldCk7CisJaWYgKCFjdXJfdGVtcCkgewor CQllcnJfbm9tZW0oKTsKKwkJZ290byBxdWl0OworCX0KKworCXRmZCA9IG9w ZW4oY3VyX3RlbXAsIE9fUkRPTkxZKTsKKwlpZiAodGZkIDwgMCkgeworCQll cnJfb3BlbihjdXJfdGVtcCk7CisJCWdvdG8gcXVpdDsKKwl9CisKKwl0YXJn ZXRmZCA9IG9wZW4oY3VyX3RhcmdldCwgT19SRE9OTFkpOworCWlmICh0ZmQg PCAwKSB7CisJCWVycl9vcGVuKGN1cl90YXJnZXQpOworCQlnb3RvIHF1aXQ7 CisJfQorCisKKwkvKiBjb3B5IHRpbWVzdGFtcHMsIGF0dHJpYnMgYW5kIEVB cywgdG8gY3VyX3RlbXAgKi8KKwlydmFsID0gZHVwX2F0dHJpYnV0ZXMoc3Jj bmFtZSwgc2ZkLCBjdXJfdGVtcCwgdGZkKTsKKwlpZiAocnZhbCAhPSAwKSB7 CisJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byBkdXBsaWNhdGUgZGlyZWN0 b3J5IGF0dHJpYnV0ZXM6ICVzIiksCisJCQkgICAgc3JjbmFtZSk7CisJCWdv dG8gcXVpdF91bmxpbms7CisJfQorCisJU0VUX1BIQVNFKERJUl9QSEFTRV8z KTsKKworCS8qIG1vdmUgc3JjIGRpcmVudHMgdG8gY3VyX3RhcmdldCAodGhp cyBjaGFuZ2VzIHRpbWVzdGFtcHMgb24gc3JjKSAqLworCXJ2YWwgPSBtb3Zl X2RpcmVudHMoc3JjbmFtZSwgY3VyX3RhcmdldCwgJm1vdmVfY291bnQpOwor CWlmIChydmFsICE9IDApIHsKKwkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRv IG1vdmUgZGlyZWN0b3J5IGNvbnRlbnRzOiAlcyB0byAlcyIpLAorCQkJCXNy Y25hbWUsIGN1cl90YXJnZXQpOworCQkvKiB1aCBvaCwgbW92ZSBldmVyeXRo aW5nIGJhY2suLi4gKi8KKwkJaWYgKG1vdmVfY291bnQgPiAwKQorCQkJZ290 byBxdWl0X3VuZG87CisJfQorCisJU0VUX1BIQVNFKERJUl9QSEFTRV80KTsK KworCS8qIGNvcHkgdGltZXN0YW1wcywgYXR0cmlicyBhbmQgRUFzIGZyb20g Y3VyX3RlbXAgdG8gY3VyX3RhcmdldCAqLworCXJ2YWwgPSBkdXBfYXR0cmli dXRlcyhjdXJfdGVtcCwgdGZkLCBjdXJfdGFyZ2V0LCB0YXJnZXRmZCk7CisJ aWYgKHJ2YWwgIT0gMCkgeworCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8g ZHVwbGljYXRlIGRpcmVjdG9yeSBhdHRyaWJ1dGVzOiAlcyIpLAorCQkJCWN1 cl90ZW1wKTsKKwkJZ290byBxdWl0X3VubGluazsKKwl9CisKKwlTRVRfUEhB U0UoRElSX1BIQVNFXzUpOworCisJLyogcm1kaXIgc3JjICovCisJcnZhbCA9 IHJtZGlyKHNyY25hbWUpOworCWlmIChydmFsICE9IDApIHsKKwkJZXJyX21l c3NhZ2UoXygidW5hYmxlIHRvIHJlbW92ZSBkaXJlY3Rvcnk6ICVzIiksIHNy Y25hbWUpOworCQlnb3RvIHF1aXRfdW5kbzsKKwl9CisKKwlTRVRfUEhBU0Uo RElSX1BIQVNFXzYpOworCisJcnZhbCA9IHJtZGlyKGN1cl90ZW1wKTsKKwlp ZiAocnZhbCAhPSAwKQorCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8gcmVt b3ZlIHRtcCBkaXJlY3Rvcnk6ICVzIiksIGN1cl90ZW1wKTsKKworCVNFVF9Q SEFTRShESVJfUEhBU0VfNyk7CisKKwkvKiByZW5hbWUgY3VyX3RhcmdldCBz cmMgKi8KKwlydmFsID0gcmVuYW1lKGN1cl90YXJnZXQsIHNyY25hbWUpOwor CWlmIChydmFsICE9IDApIHsKKwkJLyoKKwkJICogd2UgY2FuJ3QgYWJvcnQg c2luY2UgdGhlIHNyYyBkaXIgaXMgbm93IGdvbmUuCisJCSAqIGxldCB0aGUg YWRtaW4gY2xlYW4gdGhpcyBvbmUgdXAKKwkJICovCisJCWVycl9tZXNzYWdl KF8oInVuYWJsZSB0byByZW5hbWUgZGlyZWN0b3J5OiAlcyB0byAlcyIpLAor CQkJCWN1cl90YXJnZXQsIHNyY25hbWUpOworCX0KKwlnb3RvIHF1aXQ7CisK KyBxdWl0X3VuZG86CisJaWYgKG1vdmVfZGlyZW50cyhjdXJfdGFyZ2V0LCBz cmNuYW1lLCAmbW92ZV9jb3VudCkgIT0gMCkgeworCQkvKiBvaCwgZGVhciBs b3JkLi4uIGxldCB0aGUgYWRtaW4gY2xlYW4gdGhpcyBvbmUgdXAgKi8KKwkJ ZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIG1vdmUgZGlyZWN0b3J5IGNvbnRl bnRzIGJhY2s6ICVzIHRvICVzIiksCisJCQkJY3VyX3RhcmdldCwgc3JjbmFt ZSk7CisJCWdvdG8gcXVpdDsKKwl9CisJU0VUX1BIQVNFKERJUl9QSEFTRV8z KTsKKworIHF1aXRfdW5saW5rOgorCXJtZGlyKGN1cl90YXJnZXQpOworCXJt ZGlyKGN1cl90ZW1wKTsKKworIHF1aXQ6CisKKwlTRVRfUEhBU0UoRElSX1BI QVNFKTsKKworCWlmIChzZmQgPj0gMCkKKwkJY2xvc2Uoc2ZkKTsKKwlpZiAo dGZkID49IDApCisJCWNsb3NlKHRmZCk7CisJaWYgKHRhcmdldGZkID49IDAp CisJCWNsb3NlKHRhcmdldGZkKTsKKworCWZyZWUocG5hbWUpOworCWZyZWUo Y3VyX3RhcmdldCk7CisJZnJlZShjdXJfdGVtcCk7CisKKwljdXJfdGFyZ2V0 ID0gTlVMTDsKKwljdXJfdGVtcCA9IE5VTEw7CisJY3VyX25vZGUgPSBOVUxM OworCW51bWRpcnNkb25lKys7CisJcmV0dXJuIHJ2YWw7Cit9CisKK3N0YXRp YyBpbnQKK3Byb2Nlc3NfZmlsZSgKKwliaWdub2RlX3QJKm5vZGUpCit7CisJ aW50CQlzZmQgPSAtMTsKKwlpbnQJCXRmZCA9IC0xOworCWludAkJaSA9IDA7 CisJaW50CQlydmFsID0gMDsKKwlzdHJ1Y3Qgc3RhdDY0CXMxOworCWNoYXIJ CSpzcmNuYW1lID0gTlVMTDsKKwljaGFyCQkqcG5hbWUgPSBOVUxMOworCXhm c19zd2FwZXh0X3QJc3g7CisJeGZzX2JzdGF0X3QJYnN0YXRidWY7CisJc3Ry dWN0IGZzeGF0dHIgIGZzeDsKKwljaGFyCQl0YXJnZXRbUEFUSF9NQVhdID0g IiI7CisKKwlTRVRfUEhBU0UoRklMRV9QSEFTRSk7CisKKwlkdW1wX25vZGUo ImZpbGUiLCBub2RlKTsKKworCWN1cl9ub2RlID0gbm9kZTsKKwlzcmNuYW1l ID0gbm9kZS0+cGF0aHNbMF07CisKKwliemVybygmczEsIHNpemVvZihzMSkp OworCWJ6ZXJvKCZic3RhdGJ1Ziwgc2l6ZW9mKGJzdGF0YnVmKSk7CisJYnpl cm8oJnN4LCBzaXplb2Yoc3gpKTsKKworCWlmIChzdGF0NjQoc3JjbmFtZSwg JnMxKSA8IDApIHsKKwkJaWYgKGVycm5vICE9IEVOT0VOVCkgeworCQkJZXJy X3N0YXQoc3JjbmFtZSk7CisJCQlnbG9iYWxfcnZhbCB8PSAyOworCQl9CisJ CWdvdG8gcXVpdDsKKwl9CisJaWYgKHMxLnN0X2lubyA8PSBYRlNfTUFYSU5V TUJFUl8zMiAmJiAhZm9yY2VfYWxsKQorCQkvKiB0aGlzIGZpbGUgaGFzIGNo YW5nZWQsIGFuZCBubyBsb25nZXIgbmVlZHMgcHJvY2Vzc2luZyAqLworCQln b3RvIHF1aXQ7CisKKwkvKiBvcGVuIGFuZCBzeW5jIHNvdXJjZSAqLworCXNm ZCA9IG9wZW4oc3JjbmFtZSwgT19SRFdSIHwgT19ESVJFQ1QpOworCWlmIChz ZmQgPCAwKSB7CisJCWVycl9vcGVuKHNyY25hbWUpOworCQlydmFsID0gMTsK KwkJZ290byBxdWl0OworCX0KKwlpZiAoIXBsYXRmb3JtX3Rlc3RfeGZzX2Zk KHNmZCkpIHsKKwkJZXJyX25vdF94ZnMoc3JjbmFtZSk7CisJCXJ2YWwgPSAx OworCQlnb3RvIHF1aXQ7CisJfQorCWlmIChmc3luYyhzZmQpIDwgMCkgewor CQllcnJfbWVzc2FnZShfKCJzeW5jIGZhaWxlZDogJXM6ICVzIiksCisJCQkJ c3JjbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJcnZhbCA9IDE7CisJCWdv dG8gcXVpdDsKKwl9CisKKworCS8qCisJICogQ2hlY2sgaWYgYSBtYW5kYXRv cnkgbG9jayBpcyBzZXQgb24gdGhlIGZpbGUgdG8gdHJ5IGFuZAorCSAqIGF2 b2lkIGJsb2NraW5nIGluZGVmaW5pdGVseSBvbiB0aGUgcmVhZHMgbGF0ZXIu IE5vdGUgdGhhdAorCSAqIHNvbWVvbmUgY291bGQgc3RpbGwgc2V0IGEgbWFu ZGF0b3J5IGxvY2sgYWZ0ZXIgdGhpcyBjaGVjaworCSAqIGJ1dCBiZWZvcmUg YWxsIHJlYWRzIGhhdmUgY29tcGxldGVkIHRvIGJsb2NrIHhmc19yZW5vIHJl YWRzLgorCSAqIFRoaXMgY2hhbmdlIGp1c3QgY2xvc2VzIHRoZSB3aW5kb3cg YSBiaXQuCisJICovCisJaWYgKChzMS5zdF9tb2RlICYgU19JU0dJRCkgJiYg IShzMS5zdF9tb2RlICYgU19JWEdSUCkpIHsKKwkJc3RydWN0IGZsb2NrIGZs OworCisJCWZsLmxfdHlwZSA9IEZfUkRMQ0s7CisJCWZsLmxfd2hlbmNlID0g U0VFS19TRVQ7CisJCWZsLmxfc3RhcnQgPSAob2ZmX3QpMDsKKwkJZmwubF9s ZW4gPSAwOworCQlpZiAoZmNudGwoc2ZkLCBGX0dFVExLLCAmZmwpIDwgMCAp IHsKKwkJCWlmIChsb2dfbGV2ZWwgPj0gTE9HX0RFQlVHKQorCQkJCWVycl9t ZXNzYWdlKCJsb2NraW5nIGNoZWNrIGZhaWxlZDogJXMiLAorCQkJCQkJc3Jj bmFtZSk7CisJCQlnbG9iYWxfcnZhbCB8PSAyOworCQkJZ290byBxdWl0Owor CQl9CisJCWlmIChmbC5sX3R5cGUgIT0gRl9VTkxDSykgeworCQkJaWYgKGxv Z19sZXZlbCA+PSBMT0dfREVCVUcpCisJCQkJZXJyX21lc3NhZ2UoIm1hbmRh dG9yeSBsb2NrOiAlczogaWdub3JpbmciLAorCQkJCQkJc3JjbmFtZSk7CisJ CQlnbG9iYWxfcnZhbCB8PSAyOworCQkJZ290byBxdWl0OworCQl9CisJfQor CisJaWYgKHhmc19nZXR4YXR0cihzZmQsICZmc3gpIDwgMCkgeworCQllcnJf bWVzc2FnZShfKCJmYWlsZWQgdG8gZ2V0IGlub2RlIGF0dHJzOiAlcyIpLCBz cmNuYW1lKTsKKwkJcnZhbCA9IDE7CisJCWdvdG8gcXVpdDsKKwl9CisJaWYg KGZzeC5mc3hfeGZsYWdzICYgKFhGU19YRkxBR19JTU1VVEFCTEUgfCBYRlNf WEZMQUdfQVBQRU5EKSkgeworCQllcnJfbWVzc2FnZShfKCIlczogaW1tdXRh YmxlL2FwcGVuZCwgaWdub3JpbmciKSwgc3JjbmFtZSk7CisJCWdsb2JhbF9y dmFsIHw9IDI7CisJCWdvdG8gcXVpdDsKKwl9CisKKwlydmFsID0gMTsKKwor CWlmIChyZWFsdWlkICE9IDAgJiYgcmVhbHVpZCAhPSBzMS5zdF91aWQpIHsK KwkJZXJybm8gPSBFQUNDRVM7CisJCWVycl9vcGVuKHNyY25hbWUpOworCQln b3RvIHF1aXQ7CisJfQorCisJLyogY3JlYXQgdGFyZ2V0ICovCisJcG5hbWUg PSBzdHJkdXAoc3JjbmFtZSk7CisJaWYgKHBuYW1lID09IE5VTEwpIHsKKwkJ ZXJyX25vbWVtKCk7CisJCWdvdG8gcXVpdDsKKwl9CisJZGlybmFtZShwbmFt ZSk7CisJc3ByaW50Zih0YXJnZXQsICIlcy8lc1hYWFhYWCIsIHBuYW1lLCBj bWRfcHJlZml4KTsKKwl0ZmQgPSBta3N0ZW1wKHRhcmdldCk7CisJaWYgKHRm ZCA8IDApIHsKKwkJZXJyX21lc3NhZ2UoInVuYWJsZSB0byBjcmVhdGUgZmls ZSBjb3B5Iik7CisJCWdvdG8gcXVpdDsKKwl9CisJY3VyX3RhcmdldCA9IHN0 cmR1cCh0YXJnZXQpOworCWlmIChjdXJfdGFyZ2V0ID09IE5VTEwpIHsKKwkJ ZXJyX25vbWVtKCk7CisJCWdvdG8gcXVpdDsKKwl9CisKKwlTRVRfUEhBU0Uo RklMRV9QSEFTRV8xKTsKKworCS8qIFNldHVwIGRpcmVjdCBJL08gKi8KKwlp ZiAoZmNudGwodGZkLCBGX1NFVEZMLCBPX0RJUkVDVCkgPCAwICkgeworCQll cnJfbWVzc2FnZShfKCJjb3VsZCBub3Qgc2V0IE9fRElSRUNUIGZvciAlcyBv biB0bXA6ICVzIiksCisJCQkJc3JjbmFtZSwgdGFyZ2V0KTsKKwkJdW5saW5r KHRhcmdldCk7CisJCWdvdG8gcXVpdDsKKwl9CisKKwkvKiBjb3B5IGF0dHJp YnMgJiBFQXMgdG8gdGFyZ2V0ICovCisJaWYgKGR1cF9hdHRyaWJ1dGVzKHNy Y25hbWUsIHNmZCwgdGFyZ2V0LCB0ZmQpICE9IDApIHsKKwkJZXJyX21lc3Nh Z2UoXygidW5hYmxlIHRvIGR1cGxpY2F0ZSBmaWxlIGF0dHJpYnV0ZXM6ICVz IiksCisJCQkJc3JjbmFtZSk7CisJCXVubGluayh0YXJnZXQpOworCQlnb3Rv IHF1aXQ7CisJfQorCisJaWYgKHhmc19idWxrc3RhdF9zaW5nbGUoc2ZkLCAm czEuc3RfaW5vLCAmYnN0YXRidWYpIDwgMCkgeworCQllcnJfbWVzc2FnZShf KCJ1bmFibGUgdG8gYnVsa3N0YXQgc291cmNlIGZpbGU6ICVzIiksCisJCQkJ c3JjbmFtZSk7CisJCXVubGluayh0YXJnZXQpOworCQlnb3RvIHF1aXQ7CisJ fQorCisJaWYgKGJzdGF0YnVmLmJzX2lubyAhPSBzMS5zdF9pbm8pIHsKKwkJ ZXJyX21lc3NhZ2UoXygiYnVsa3N0YXQgb2Ygc291cmNlIGZpbGUgcmV0dXJu ZWQgd3JvbmcgaW5vZGU6ICVzIiksCisJCQkJc3JjbmFtZSk7CisJCXVubGlu ayh0YXJnZXQpOworCQlnb3RvIHF1aXQ7CisJfQorCisJZnRydW5jYXRlNjQo dGZkLCBic3RhdGJ1Zi5ic19zaXplKTsKKworCS8qIHN3YXBleHRlbnRzIHNy YyB0YXJnZXQgKi8KKwlzeC5zeF9zdGF0ICAgICA9IGJzdGF0YnVmOyAvKiBz dHJ1Y3QgY29weSAqLworCXN4LnN4X3ZlcnNpb24gID0gWEZTX1NYX1ZFUlNJ T047CisJc3guc3hfZmR0YXJnZXQgPSBzZmQ7CisJc3guc3hfZmR0bXAgICAg PSB0ZmQ7CisJc3guc3hfb2Zmc2V0ICAgPSAwOworCXN4LnN4X2xlbmd0aCAg ID0gYnN0YXRidWYuYnNfc2l6ZTsKKworCS8qIFN3YXAgdGhlIGV4dGVudHMg Ki8KKwlydmFsID0geGZzX3N3YXBleHQoc2ZkLCAmc3gpOworCWlmIChydmFs IDwgMCkgeworCQlpZiAobG9nX2xldmVsID49IExPR19ERUJVRykgeworCQkJ c3dpdGNoIChlcnJubykgeworCQkJY2FzZSBFTk9UU1VQOgorCQkJCWVycl9t ZXNzYWdlKCIlczogZmlsZSB0eXBlIG5vdCBzdXBwb3J0ZWQiLAorCQkJCQlz cmNuYW1lKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgRUZBVUxUOgorCQkJCS8q IFRoZSBmaWxlIGhhcyBjaGFuZ2VkIHNpbmNlIHdlIHN0YXJ0ZWQgdGhlIGNv cHkgKi8KKwkJCQllcnJfbWVzc2FnZSgiJXM6IGZpbGUgbW9kaWZpZWQsICIK KwkJCQkJICJpbm9kZSByZW51bWJlciBhYm9ydGVkOiAlbGQiLAorCQkJCQkg c3JjbmFtZSwgYnN0YXRidWYuYnNfc2l6ZSk7CisJCQkJYnJlYWs7CisJCQlj YXNlIEVCVVNZOgorCQkJCS8qIFRpbWVzdGFtcCBoYXMgY2hhbmdlZCBvciBt bWFwJ2VkIGZpbGUgKi8KKwkJCQllcnJfbWVzc2FnZSgiJXM6IGZpbGUgYnVz eSIsIHNyY25hbWUpOworCQkJCWJyZWFrOworCQkJZGVmYXVsdDoKKwkJCQll cnJfbWVzc2FnZShfKCJTd2FwIGV4dGVudHMgZmFpbGVkOiAlczogJXMiKSwK KwkJCQkJc3JjbmFtZSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQlicmVhazsK KwkJCX0KKwkJfSBlbHNlCisJCQllcnJfbWVzc2FnZShfKCJTd2FwIGV4dGVu dHMgZmFpbGVkOiAlczogJXMiKSwKKwkJCQkJc3JjbmFtZSwgc3RyZXJyb3Io ZXJybm8pKTsKKwkJZ290byBxdWl0OworCX0KKworCWlmIChic3RhdGJ1Zi5i c19kbWV2bWFzayB8IGJzdGF0YnVmLmJzX2Rtc3RhdGUpIHsKKwkJc3RydWN0 IGZzZG1pZGF0YSBmc3NldGRtOworCisJCS8qIFNldCB0aGUgRE1BUEkgRmll bGRzLiAqLworCQlmc3NldGRtLmZzZF9kbWV2bWFzayA9IGJzdGF0YnVmLmJz X2RtZXZtYXNrOworCQlmc3NldGRtLmZzZF9wYWRkaW5nID0gMDsKKwkJZnNz ZXRkbS5mc2RfZG1zdGF0ZSA9IGJzdGF0YnVmLmJzX2Rtc3RhdGU7CisKKwkJ aWYgKGlvY3RsKHRmZCwgWEZTX0lPQ19GU1NFVERNLCAodm9pZCAqKSZmc3Nl dGRtICkgPCAwKQorCQkJZXJyX21lc3NhZ2UoXygiYXR0ZW1wdCB0byBzZXQg RE1JIGF0dHJpYnV0ZXMgIgorCQkJCQkib2YgJXMgZmFpbGVkIiksIHRhcmdl dCk7CisJfQorCisJU0VUX1BIQVNFKEZJTEVfUEhBU0VfMik7CisKKwkvKiB1 bmxpbmsgc3JjICovCisJcnZhbCA9IHVubGluayhzcmNuYW1lKTsKKwlpZiAo cnZhbCAhPSAwKSB7CisJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byByZW1v dmUgZmlsZTogJXMiKSwgc3JjbmFtZSk7CisJCWdvdG8gcXVpdDsKKwl9CisK KwlTRVRfUEhBU0UoRklMRV9QSEFTRV8zKTsKKworCS8qIHJlbmFtZSB0YXJn ZXQgc3JjICovCisJcnZhbCA9IHJlbmFtZSh0YXJnZXQsIHNyY25hbWUpOwor CWlmIChydmFsICE9IDApIHsKKwkJLyoKKwkJICogd2UgY2FuJ3QgYWJvcnQg c2luY2UgdGhlIHNyYyBmaWxlIGlzIG5vdyBnb25lLgorCQkgKiBsZXQgdGhl IGFkbWluIGNsZWFuIHRoaXMgb25lIHVwCisJCSAqLworCQllcnJfbWVzc2Fn ZShfKCJ1bmFibGUgdG8gcmVuYW1lIGZpbGU6ICVzIHRvICVzIiksCisJCQkJ dGFyZ2V0LCBzcmNuYW1lKTsKKwkJZ290byBxdWl0OworCX0KKworCVNFVF9Q SEFTRShGSUxFX1BIQVNFXzQpOworCisJLyogZm9yIGVhY2ggaGFyZGxpbmss IHVubGluayBhbmQgY3JlYXQgcG9pbnRpbmcgdG8gdGFyZ2V0ICovCisJZm9y IChpID0gMTsgaSA8IG5vZGUtPm51bXBhdGhzOyBpKyspIHsKKwkJLyogdW5s aW5rIHNyYyAqLworCQlydmFsID0gdW5saW5rKG5vZGUtPnBhdGhzW2ldKTsK KwkJaWYgKHJ2YWwgIT0gMCkgeworCQkJZXJyX21lc3NhZ2UoXygidW5hYmxl IHRvIHJlbW92ZSBmaWxlOiAlcyIpLAorCQkJCSAgICAgICBub2RlLT5wYXRo c1tpXSk7CisJCQlnb3RvIHF1aXQ7CisJCX0KKworCQlydmFsID0gbGluayhz cmNuYW1lLCBub2RlLT5wYXRoc1tpXSk7CisJCWlmIChydmFsICE9IDApIHsK KwkJCWVycl9tZXNzYWdlKCJ1bmFibGUgdG8gbGluayB0byBmaWxlOiAlcyIs IHNyY25hbWUpOworCQkJZ290byBxdWl0OworCQl9CisJCW51bWZpbGVzZG9u ZSsrOworCX0KKworIHF1aXQ6CisJY3VyX25vZGUgPSBOVUxMOworCisJU0VU X1BIQVNFKEZJTEVfUEhBU0UpOworCisJaWYgKHNmZCA+PSAwKQorCQljbG9z ZShzZmQpOworCWlmICh0ZmQgPj0gMCkKKwkJY2xvc2UodGZkKTsKKworCWZy ZWUocG5hbWUpOworCWZyZWUoY3VyX3RhcmdldCk7CisKKwljdXJfdGFyZ2V0 ID0gTlVMTDsKKworCW51bWZpbGVzZG9uZSsrOworCXJldHVybiBydmFsOwor fQorCisKK3N0YXRpYyBpbnQKK3Byb2Nlc3Nfc2xpbmsoCisJYmlnbm9kZV90 CSpub2RlKQoreworCWludAkJaSA9IDA7CisJaW50CQlydmFsID0gMDsKKwlz dHJ1Y3Qgc3RhdDY0CXN0OworCWNoYXIJCSpzcmNuYW1lID0gTlVMTDsKKwlj aGFyCQkqcG5hbWUgPSBOVUxMOworCWNoYXIJCXRhcmdldFtQQVRIX01BWF0g PSAiIjsKKwljaGFyCQlsaW5rYnVmW1BBVEhfTUFYXTsKKworCVNFVF9QSEFT RShTTElOS19QSEFTRSk7CisKKwlkdW1wX25vZGUoInN5bWxpbmsiLCBub2Rl KTsKKworCWN1cl9ub2RlID0gbm9kZTsKKwlzcmNuYW1lID0gbm9kZS0+cGF0 aHNbMF07CisKKwlpZiAobHN0YXQ2NChzcmNuYW1lLCAmc3QpIDwgMCkgewor CQlpZiAoZXJybm8gIT0gRU5PRU5UKSB7CisJCQllcnJfc3RhdChzcmNuYW1l KTsKKwkJCWdsb2JhbF9ydmFsIHw9IDI7CisJCX0KKwkJZ290byBxdWl0Owor CX0KKwlpZiAoc3Quc3RfaW5vIDw9IFhGU19NQVhJTlVNQkVSXzMyICYmICFm b3JjZV9hbGwpCisJCS8qIHRoaXMgZmlsZSBoYXMgY2hhbmdlZCwgYW5kIG5v IGxvbmdlciBuZWVkcyBwcm9jZXNzaW5nICovCisJCWdvdG8gcXVpdDsKKwor CXJ2YWwgPSAxOworCisJaSA9IHJlYWRsaW5rKHNyY25hbWUsIGxpbmtidWYs IHNpemVvZihsaW5rYnVmKSAtIDEpOworCWlmIChpIDwgMCkgeworCQllcnJf bWVzc2FnZShfKCJ1bmFibGUgdG8gcmVhZCBzeW1saW5rOiAlcyIpLCBzcmNu YW1lKTsKKwkJZ290byBxdWl0OworCX0KKwlsaW5rYnVmW2ldID0gJ1wwJzsK KworCWlmIChyZWFsdWlkICE9IDAgJiYgcmVhbHVpZCAhPSBzdC5zdF91aWQp IHsKKwkJZXJybm8gPSBFQUNDRVM7CisJCWVycl9vcGVuKHNyY25hbWUpOwor CQlnb3RvIHF1aXQ7CisJfQorCisJLyogY3JlYXRlIHRhcmdldCAqLworCXBu YW1lID0gc3RyZHVwKHNyY25hbWUpOworCWlmIChwbmFtZSA9PSBOVUxMKSB7 CisJCWVycl9ub21lbSgpOworCQlnb3RvIHF1aXQ7CisJfQorCWRpcm5hbWUo cG5hbWUpOworCisJc3ByaW50Zih0YXJnZXQsICIlcy8lc1hYWFhYWCIsIHBu YW1lLCBjbWRfcHJlZml4KTsKKwlpZiAobWt0ZW1wKHRhcmdldCkgPT0gTlVM TCkgeworCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8gY3JlYXRlIHRlbXAg c3ltbGluayBuYW1lIikpOworCQlnb3RvIHF1aXQ7CisJfQorCWN1cl90YXJn ZXQgPSBzdHJkdXAodGFyZ2V0KTsKKwlpZiAoY3VyX3RhcmdldCA9PSBOVUxM KSB7CisJCWVycl9ub21lbSgpOworCQlnb3RvIHF1aXQ7CisJfQorCisJaWYg KHN5bWxpbmsobGlua2J1ZiwgdGFyZ2V0KSAhPSAwKSB7CisJCWVycl9tZXNz YWdlKF8oInVuYWJsZSB0byBjcmVhdGUgc3ltbGluazogJXMiKSwgdGFyZ2V0 KTsKKwkJZ290byBxdWl0OworCX0KKworCVNFVF9QSEFTRShTTElOS19QSEFT RV8xKTsKKworCS8qIGNvcHkgb3duZXJzaGlwICYgRUFzIHRvIHRhcmdldCAq LworCWlmIChsY2hvd24odGFyZ2V0LCBzdC5zdF91aWQsIHN0LnN0X2dpZCkg PCAwKSB7CisJCWVycl9tZXNzYWdlKF8oIiVzOiBDYW5ub3QgY2hhbmdlIHRh cmdldCBvd25lcnNoaXAgdG8gIgorCQkJCSJ1aWQoJWQpIGdpZCglZCkiKSwg dGFyZ2V0LAorCQkJCXN0LnN0X3VpZCwgc3Quc3RfZ2lkKTsKKwkJdW5saW5r KHRhcmdldCk7CisJCWdvdG8gcXVpdDsKKwl9CisKKwlpZiAoY2xvbmVfYXR0 cmlicyhzcmNuYW1lLCB0YXJnZXQpICE9IDApIHsKKwkJZXJyX21lc3NhZ2Uo XygidW5hYmxlIHRvIGR1cGxpY2F0ZSBzeW1saW5rIGF0dHJpYnV0ZXM6ICVz IiksCisJCQkJc3JjbmFtZSk7CisJCXVubGluayh0YXJnZXQpOworCQlnb3Rv IHF1aXQ7CisJfQorCisJU0VUX1BIQVNFKFNMSU5LX1BIQVNFXzIpOworCisJ LyogdW5saW5rIHNyYyAqLworCXJ2YWwgPSB1bmxpbmsoc3JjbmFtZSk7CisJ aWYgKHJ2YWwgIT0gMCkgeworCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8g cmVtb3ZlIHN5bWxpbms6ICVzIiksIHNyY25hbWUpOworCQlnb3RvIHF1aXQ7 CisJfQorCisJU0VUX1BIQVNFKFNMSU5LX1BIQVNFXzMpOworCisJLyogcmVu YW1lIHRhcmdldCBzcmMgKi8KKwlydmFsID0gcmVuYW1lKHRhcmdldCwgc3Jj bmFtZSk7CisJaWYgKHJ2YWwgIT0gMCkgeworCQkvKgorCQkgKiB3ZSBjYW4n dCBhYm9ydCBzaW5jZSB0aGUgc3JjIGZpbGUgaXMgbm93IGdvbmUuCisJCSAq IGxldCB0aGUgYWRtaW4gY2xlYW4gdGhpcyBvbmUgdXAKKwkJICovCisJCWVy cl9tZXNzYWdlKF8oInVuYWJsZSB0byByZW5hbWUgc3ltbGluazogJXMgdG8g JXMiKSwKKwkJCQl0YXJnZXQsIHNyY25hbWUpOworCQlnb3RvIHF1aXQ7CisJ fQorCisJU0VUX1BIQVNFKFNMSU5LX1BIQVNFXzQpOworCisJLyogZm9yIGVh Y2ggaGFyZGxpbmssIHVubGluayBhbmQgY3JlYXQgcG9pbnRpbmcgdG8gdGFy Z2V0ICovCisJZm9yIChpID0gMTsgaSA8IG5vZGUtPm51bXBhdGhzOyBpKysp IHsKKwkJLyogdW5saW5rIHNyYyAqLworCQlydmFsID0gdW5saW5rKG5vZGUt PnBhdGhzW2ldKTsKKwkJaWYgKHJ2YWwgIT0gMCkgeworCQkJZXJyX21lc3Nh Z2UoXygidW5hYmxlIHRvIHJlbW92ZSBzeW1saW5rOiAlcyIpLAorCQkJCSAg ICAgICBub2RlLT5wYXRoc1tpXSk7CisJCQlnb3RvIHF1aXQ7CisJCX0KKwor CQlydmFsID0gbGluayhzcmNuYW1lLCBub2RlLT5wYXRoc1tpXSk7CisJCWlm IChydmFsICE9IDApIHsKKwkJCWVycl9tZXNzYWdlKCJ1bmFibGUgdG8gbGlu ayB0byBzeW1saW5rOiAlcyIsIHNyY25hbWUpOworCQkJZ290byBxdWl0Owor CQl9CisJCW51bXNsaW5rc2RvbmUrKzsKKwl9CisKKyBxdWl0OgorCWN1cl9u b2RlID0gTlVMTDsKKworCVNFVF9QSEFTRShTTElOS19QSEFTRSk7CisKKwlm cmVlKHBuYW1lKTsKKwlmcmVlKGN1cl90YXJnZXQpOworCisJY3VyX3Rhcmdl dCA9IE5VTEw7CisKKwludW1zbGlua3Nkb25lKys7CisJcmV0dXJuIHJ2YWw7 Cit9CisKK3N0YXRpYyBpbnQKK29wZW5fcmVjb3ZlcmZpbGUodm9pZCkKK3sK KwlyZWNvdmVyX2ZkID0gb3BlbihyZWNvdmVyX2ZpbGUsIE9fUkRXUiB8IE9f U1lOQyB8IE9fQ1JFQVQgfCBPX0VYQ0wsCisJCQkwNjAwKTsKKwlpZiAocmVj b3Zlcl9mZCA8IDApIHsKKwkJaWYgKGVycm5vID09IEVFWElTVCkKKwkJCWVy cl9tZXNzYWdlKF8oIlJlY292ZXJ5IGZpbGUgYWxyZWFkeSBleGlzdHMsIGVp dGhlciAiCisJCQkJInJ1biAnJXMgLXIgJXMnIG9yIHJlbW92ZSB0aGUgZmls ZS4iKSwKKwkJCQlwcm9nbmFtZSwgcmVjb3Zlcl9maWxlKTsKKwkJZWxzZQor CQkJZXJyX29wZW4ocmVjb3Zlcl9maWxlKTsKKwkJcmV0dXJuIDE7CisJfQor CisJaWYgKCFwbGF0Zm9ybV90ZXN0X3hmc19mZChyZWNvdmVyX2ZkKSkgewor CQllcnJfbm90X3hmcyhyZWNvdmVyX2ZpbGUpOworCQljbG9zZShyZWNvdmVy X2ZkKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0 YXRpYyB2b2lkCit1cGRhdGVfcmVjb3ZlcmZpbGUodm9pZCkKK3sKKwlzdGF0 aWMgY29uc3QgY2hhciBudWxsX2ZpbGVbXSA9ICIwXG4wXG4wXG5cbnRhcmdl dDogXG50ZW1wOiBcbmVuZFxuIjsKKwlzdGF0aWMgc2l6ZV90CWJ1Zl9zaXpl ID0gMDsKKwlzdGF0aWMgY2hhcgkqYnVmID0gTlVMTDsKKwlpbnQgCQlpLCBs ZW47CisKKwlpZiAocmVjb3Zlcl9mZCA8PSAwKQorCQlyZXR1cm47CisKKwlp ZiAoY3VyX25vZGUgPT0gTlVMTCB8fCBjdXJfcGhhc2UgPT0gMCkgeworCQkv KiBpbmJldHdlZW4gcHJvY2Vzc2luZyBvciBzdGlsbCBzY2FubmluZyAqLwor CQlsc2VlayhyZWNvdmVyX2ZkLCAwLCBTRUVLX1NFVCk7CisJCXdyaXRlKHJl Y292ZXJfZmQsIG51bGxfZmlsZSwgc2l6ZW9mKG51bGxfZmlsZSkpOworCQly ZXR1cm47CisJfQorCisJQVNTRVJUKGhpZ2hlc3RfbnVtcGF0aHMgPiAwKTsK KwlpZiAoYnVmID09IE5VTEwpIHsKKwkJYnVmX3NpemUgPSAoaGlnaGVzdF9u dW1wYXRocyArIDMpICogUEFUSF9NQVg7CisJCWJ1ZiA9IG1hbGxvYyhidWZf c2l6ZSk7CisJCWlmIChidWYgPT0gTlVMTCkgeworCQkJZXJyX25vbWVtKCk7 CisJCQlleGl0KDEpOworCQl9CisJfQorCisJbGVuID0gc3ByaW50ZihidWYs ICIlZFxuJWxsdVxuJWRcbiIsIGN1cl9waGFzZSwKKwkJCShsb25nIGxvbmcp Y3VyX25vZGUtPmlubywgY3VyX25vZGUtPmZ0d19mbGFncyk7CisKKwlmb3Ig KGkgPSAwOyBpIDwgY3VyX25vZGUtPm51bXBhdGhzOyBpKyspCisJCWxlbiAr PSBzcHJpbnRmKGJ1ZiArIGxlbiwgIiVzXG4iLCBjdXJfbm9kZS0+cGF0aHNb aV0pOworCisJbGVuICs9IHNwcmludGYoYnVmICsgbGVuLCAidGFyZ2V0OiAl c1xudGVtcDogJXNcbmVuZFxuIiwKKwkJCWN1cl90YXJnZXQsIGN1cl90ZW1w KTsKKworCUFTU0VSVChsZW4gPCBidWZfc2l6ZSk7CisKKwlsc2VlayhyZWNv dmVyX2ZkLCAwLCBTRUVLX1NFVCk7CisJZnRydW5jYXRlKHJlY292ZXJfZmQs IDApOworCXdyaXRlKHJlY292ZXJfZmQsIGJ1ZiwgbGVuKTsKK30KKworc3Rh dGljIHZvaWQKK2NsZWFudXAodm9pZCkKK3sKKwlsb2dfbWVzc2FnZShMT0df Tk9STUFMLCBfKCJJbnRlcnJ1cHRlZCAtLSBjbGVhbmluZyB1cC4uLiIpKTsK KworCWZyZWVfbm9kZWhhc2goKTsKKworCWxvZ19tZXNzYWdlKExPR19OT1JN QUwsIF8oIkRvbmUuIikpOworfQorCitzdGF0aWMgdm9pZAorc2lnaGFuZGxl cihpbnQgc2lnKQoreworCXN0YXRpYyBjaGFyCWN5Y2xlWzRdID0gIi1cXHwv IjsKKwlzdGF0aWMgdWludDY0X3QJY3VyX2N5Y2xlID0gMDsKKwlkb3VibGUJ CXBlcmNlbnQ7CisJY2hhcgkJKnR5cGVuYW1lOworCXVpbnQ2NF90CW5vZGVz LCBkb25lOworCisJYWxhcm0oMCk7CisKKwlpZiAoc2lnICE9IFNJR0FMUk0p IHsKKwkJY2xlYW51cCgpOworCQlleGl0KDEpOworCX0KKworCWlmIChjdXJf cGhhc2UgPT0gU0NBTl9QSEFTRSkgeworCQlpZiAobG9nX2xldmVsID49IExP R19JTkZPKQorCQkJZnByaW50ZihzdGRlcnIsIF8oIlxyJWxsdSBmaWxlcywg JWxsdSBkaXJzIGFuZCAlbGx1ICIKKwkJCQkic3ltbGlua3MgdG8gcmVudW1i ZXIgZm91bmQuLi4gJWMiKSwKKwkJCQkobG9uZyBsb25nKW51bWZpbGVub2Rl cywKKwkJCQkobG9uZyBsb25nKW51bWRpcm5vZGVzLAorCQkJCShsb25nIGxv bmcpbnVtc2xpbmtub2RlcywKKwkJCQljeWNsZVtjdXJfY3ljbGUgJSA0XSk7 CisJCWVsc2UKKwkJCWZwcmludGYoc3RkZXJyLCAiXHIlYyIsCisJCQkJY3lj bGVbY3VyX2N5Y2xlICUgNF0pOworCQljdXJfY3ljbGUrKzsKKwl9IGVsc2Ug eworCQlpZiAoY3VyX3BoYXNlID49IERJUl9QSEFTRSAmJiBjdXJfcGhhc2Ug PD0gRElSX1BIQVNFX01BWCkgeworCQkJbm9kZXMgPSBudW1kaXJub2RlczsK KwkJCWRvbmUgPSBudW1kaXJzZG9uZTsKKwkJCXR5cGVuYW1lID0gXygiZGly cyIpOworCSAJfSBlbHNlCisJIAlpZiAoY3VyX3BoYXNlID49IEZJTEVfUEhB U0UgJiYgY3VyX3BoYXNlIDw9IEZJTEVfUEhBU0VfTUFYKSB7CisJCQlub2Rl cyA9IG51bWZpbGVub2RlczsKKwkJCWRvbmUgPSBudW1maWxlc2RvbmU7CisJ CQl0eXBlbmFtZSA9IF8oImZpbGVzIik7CisJICAJfSBlbHNlIHsKKwkJCW5v ZGVzID0gbnVtc2xpbmtub2RlczsKKwkJCWRvbmUgPSBudW1zbGlua3Nkb25l OworCQkJdHlwZW5hbWUgPSBfKCJzeW1saW5rcyIpOworCQl9CisJCXBlcmNl bnQgPSAxMDAuMCAqIChkb3VibGUpZG9uZSAvIChkb3VibGUpbm9kZXM7CisJ CWlmIChwZXJjZW50ID4gMTAwLjApCisJCQlwZXJjZW50ID0gMTAwLjA7CisJ CWlmIChsb2dfbGV2ZWwgPj0gTE9HX0lORk8pCisJCQlmcHJpbnRmKHN0ZGVy ciwgXygiXHIlLjFmJSUsICVsbHUgb2YgJWxsdSAlcywgIgorCQkJCQkiJXUg c2Vjb25kcyBlbGFwc2VkIiksIHBlcmNlbnQsCisJCQkJCShsb25nIGxvbmcp ZG9uZSwgKGxvbmcgbG9uZylub2RlcywKKwkJCQkJdHlwZW5hbWUsIChpbnQp KHRpbWUoMCkgLSBzdGFydHRpbWUpKTsKKwkJZWxzZQorCQkJZnByaW50Zihz dGRlcnIsICJcciUuMWYlJSIsIHBlcmNlbnQpOworCX0KKwlwb2xsX291dHB1 dCA9IDE7CisJc2lnbmFsKFNJR0FMUk0sIHNpZ2hhbmRsZXIpOworCisJaWYg KHBvbGxfaW50ZXJ2YWwpCisJCWFsYXJtKHBvbGxfaW50ZXJ2YWwpOworfQor CitzdGF0aWMgaW50CityZWFkX3JlY292ZXJfZmlsZSgKKwljaGFyCQkqcmVj b3Zlcl9maWxlLAorCWJpZ25vZGVfdAkqKm5vZGUsCisJY2hhcgkJKip0YXJn ZXQsCisJY2hhcgkJKip0ZW1wLAorCWludAkJKnBoYXNlKQoreworCUZJTEUJ CSpmaWxlOworCWludAkJcnZhbCA9IDE7CisJaW5vX3QJCWlubzsKKwlpbnQJ CWZ0d19mbGFnczsKKwljaGFyCQlidWZbUEFUSF9NQVggKyAxMF07IC8qIHBh dGggKyAidGFyZ2V0OiAiICovCisJc3RydWN0IHN0YXQ2NAlzOworCWludAkJ Zmlyc3RfcGF0aDsKKworCS8qCisKKwlBIHJlY292ZXJ5IGZpbGUgc2hvdWxk IGxvb2sgbGlrZToKKworCTxwaGFzZT4KKwk8aW5vIG51bWJlcj4KKwk8ZnR3 IGZsYWdzPgorCTxmaXJzdCBwYXRoIHRvIGlub2RlPgorCTxoYXJkbGlua3Mg dG8gaW5vZGU+CisJdGFyZ2V0OiA8cGF0aCB0byB0YXJnZXQgZGlyIG9yIGZp bGU+CisJdGVtcDogPHBhdGggdG8gdGVtcCBkaXIgaWYgZGlyIHBoYXNlPgor CWVuZAorCSovCisKKwlmaWxlID0gZm9wZW4ocmVjb3Zlcl9maWxlLCAiciIp OworCWlmIChmaWxlID09IE5VTEwpIHsKKwkJZXJyX29wZW4ocmVjb3Zlcl9m aWxlKTsKKwkJcmV0dXJuIDE7CisJfQorCisJLyogcmVhZCBwaGFzZSAqLwor CSpwaGFzZSA9IDA7CisJaWYgKGZnZXRzKGJ1ZiwgUEFUSF9NQVggKyAxMCwg ZmlsZSkgPT0gTlVMTCkgeworCQllcnJfbWVzc2FnZSgiUmVjb3ZlcnkgZmFp bGVkOiB1bmFibGUgdG8gcmVhZCBwaGFzZSIpOworCQlnb3RvIHF1aXQ7CisJ fQorCWJ1ZltzdHJsZW4oYnVmKSAtIDFdID0gJ1wwJzsKKwkqcGhhc2UgPSBh dG9pKGJ1Zik7CisJaWYgKCpwaGFzZSA9PSBTQ0FOX1BIQVNFKSB7CisJCWZj bG9zZShmaWxlKTsKKwkJcmV0dXJuIDA7CisJfQorCWlmICgoKnBoYXNlIDwg RElSX1BIQVNFIHx8ICpwaGFzZSA+IERJUl9QSEFTRV9NQVgpICYmCisJCQko KnBoYXNlIDwgRklMRV9QSEFTRSB8fCAqcGhhc2UgPiBGSUxFX1BIQVNFX01B WCkpIHsKKwkJZXJyX21lc3NhZ2UoIlJlY292ZXJ5IGZhaWxlZDogZmFpbGVk IHRvIHJlYWQgdmFsaWQgcmVjb3ZlcnkgcGhhc2UiKTsKKwkJZ290byBxdWl0 OworCX0KKworCS8qIHJlYWQgaW5vZGUgbnVtYmVyICovCisJaWYgKGZnZXRz KGJ1ZiwgUEFUSF9NQVggKyAxMCwgZmlsZSkgPT0gTlVMTCkgeworCQllcnJf bWVzc2FnZSgiUmVjb3ZlcnkgZmFpbGVkOiB1bmFibGUgdG8gcmVhZCBpbm9k ZSBudW1iZXIiKTsKKwkJZ290byBxdWl0OworCX0KKwlidWZbc3RybGVuKGJ1 ZikgLSAxXSA9ICdcMCc7CisJaW5vID0gc3RydG91bGwoYnVmLCBOVUxMLCAx MCk7CisJaWYgKGlubyA9PSAwKSB7CisJCWVycl9tZXNzYWdlKCJSZWNvdmVy eSBmYWlsZWQ6IHVuYWJsZSB0byByZWFkIGlub2RlIG51bWJlciIpOworCQln b3RvIHF1aXQ7CisJfQorCisJLyogcmVhZCBmdHdfZmxhZ3MgKi8KKwlpZiAo ZmdldHMoYnVmLCBQQVRIX01BWCArIDEwLCBmaWxlKSA9PSBOVUxMKSB7CisJ CWVycl9tZXNzYWdlKCJSZWNvdmVyeSBmYWlsZWQ6IHVuYWJsZSB0byByZWFk IGZsYWdzIik7CisJCWdvdG8gcXVpdDsKKwl9CisJYnVmW3N0cmxlbihidWYp IC0gMV0gPSAnXDAnOworCWlmIChidWZbMV0gIT0gJ1wwJyB8fCAoYnVmWzBd ICE9ICcwJyAmJiBidWZbMF0gIT0gJzEnKSkgeworCQllcnJfbWVzc2FnZSgi UmVjb3ZlcnkgZmFpbGVkOiB1bmFibGUgdG8gcmVhZCBmbGFnczogJyVzJyIs IGJ1Zik7CisJCWdvdG8gcXVpdDsKKwl9CisJZnR3X2ZsYWdzID0gYXRvaShi dWYpOworCisJLyogcmVhZCBwYXRocyBhbmQgdGFyZ2V0IHBhdGggKi8KKwkq bm9kZSA9IE5VTEw7CisJKnRhcmdldCA9IE5VTEw7CisJZmlyc3RfcGF0aCA9 IDE7CisJd2hpbGUgKGZnZXRzKGJ1ZiwgUEFUSF9NQVggKyAxMCwgZmlsZSkg IT0gTlVMTCkgeworCQlidWZbc3RybGVuKGJ1ZikgLSAxXSA9ICdcMCc7CisK KwkJbG9nX21lc3NhZ2UoTE9HX0RFQlVHLCAicGF0aDogJyVzJyIsIGJ1Zik7 CisKKwkJaWYgKGJ1ZlswXSA9PSAnLycpIHsKKwkJCWlmIChzdGF0NjQoYnVm LCAmcykgPCAwKSB7CisJCQkJZXJyX21lc3NhZ2UoXygiUmVjb3ZlcnkgZmFp bGVkOiBjYW5ub3QgIgorCQkJCQkJInN0YXQgJyVzJyIpLCBidWYpOworCQkJ CWdvdG8gcXVpdDsKKwkJCX0KKwkJCWlmIChzLnN0X2lubyAhPSBpbm8pIHsK KwkJCQllcnJfbWVzc2FnZShfKCJSZWNvdmVyeSBmYWlsZWQ6IGlub2RlICIK KwkJCQkJCSJudW1iZXIgZm9yICclcycgZG9lcyBub3QgIgorCQkJCQkJIm1h dGNoIHJlY29yZGVkIG51bWJlciIpLCBidWYpOworCQkJCWdvdG8gcXVpdDsK KwkJCX0KKworCQkJaWYgKGZpcnN0X3BhdGgpIHsKKwkJCQlmaXJzdF9wYXRo ID0gMDsKKwkJCQkqbm9kZSA9IGFkZF9ub2RlX3BhdGgoaW5vLCBmdHdfZmxh Z3MsIGJ1Zik7CisJCQl9CisJCQllbHNlIHsKKwkJCQlhZGRfcGF0aCgqbm9k ZSwgYnVmKTsKKwkJCX0KKwkJfQorCQllbHNlIGlmIChzdHJuY21wKGJ1Ziwg InRhcmdldDogIiwgOCkgPT0gMCkgeworCQkJKnRhcmdldCA9IHN0cmR1cChi dWYgKyA4KTsKKwkJCWlmICgqdGFyZ2V0ID09IE5VTEwpIHsKKwkJCQllcnJf bm9tZW0oKTsKKwkJCQlnb3RvIHF1aXQ7CisJCQl9CisJCQlpZiAoc3RhdDY0 KCp0YXJnZXQsICZzKSA8IDApIHsKKwkJCQllcnJfbWVzc2FnZShfKCJSZWNv dmVyeSBmYWlsZWQ6IGNhbm5vdCAiCisJCQkJCQkic3RhdCAnJXMnIiksICp0 YXJnZXQpOworCQkJCWdvdG8gcXVpdDsKKwkJCX0KKwkJfQorCQllbHNlIGlm IChzdHJuY21wKGJ1ZiwgInRlbXA6ICIsIDYpID09IDApIHsKKwkJCSp0ZW1w ID0gc3RyZHVwKGJ1ZiArIDYpOworCQkJaWYgKCp0ZW1wID09IE5VTEwpIHsK KwkJCQllcnJfbm9tZW0oKTsKKwkJCQlnb3RvIHF1aXQ7CisJCQl9CisJCX0K KwkJZWxzZSBpZiAoc3RyY21wKGJ1ZiwgImVuZCIpID09IDApIHsKKwkJCXJ2 YWwgPSAwOworCQkJZ290byBxdWl0OworCSAJfQorCSAJZWxzZSB7CisJCQll cnJfbWVzc2FnZShfKCJSZWNvdmVyeSBmYWlsZWQ6IHVucmVjb2duaXNlZCAi CisJCQkJCSJzdHJpbmc6ICclcyciKSwgYnVmKTsKKwkJCWdvdG8gcXVpdDsK KwkJfQorCX0KKworCWVycl9tZXNzYWdlKF8oIlJlY292ZXJ5IGZhaWxlZDog ZW5kIG9mIHJlY292ZXJ5IGZpbGUgbm90IGZvdW5kIikpOworCisgcXVpdDoK KwlpZiAoKm5vZGUgPT0gTlVMTCkgeworCQllcnJfbWVzc2FnZShfKCJSZWNv dmVyeSBmYWlsZWQ6IG5vIHZhbGlkIGlub2RlIG9yIHBhdGhzICIKKwkJCQki c3BlY2lmaWVkIikpOworCQlydmFsID0gMTsKKwl9CisKKwlpZiAoKnRhcmdl dCA9PSBOVUxMKSB7CisJCWVycl9tZXNzYWdlKF8oIlJlY292ZXJ5IGZhaWxl ZDogbm8gaW5vZGUgdGFyZ2V0IHNwZWNpZmllZCIpKTsKKwkJcnZhbCA9IDE7 CisJfQorCisJZmNsb3NlKGZpbGUpOworCisJcmV0dXJuIHJ2YWw7Cit9CisK K2ludAorcmVjb3ZlcigKKwliaWdub2RlX3QJKm5vZGUsCisJY2hhcgkJKnRh cmdldCwKKwljaGFyCQkqdG5hbWUsCisJaW50CQlwaGFzZSkKK3sKKwlpbnQJ CXRmZCA9IC0xOworCWludAkJdGFyZ2V0ZmQgPSAtMTsKKwljaGFyCQkqc3Jj bmFtZSA9IE5VTEw7CisJaW50CQlydmFsID0gMDsKKwlpbnQJCWk7CisJaW50 CQltb3ZlX2NvdW50ID0gMDsKKworCWR1bXBfbm9kZSgicmVjb3ZlciIsIG5v ZGUpOworCWxvZ19tZXNzYWdlKExPR19ERUJVRywgInRhcmdldDogJXMsIHBo YXNlOiAleCIsIHRhcmdldCwgcGhhc2UpOworCisJaWYgKG5vZGUpCisJCXNy Y25hbWUgPSBub2RlLT5wYXRoc1swXTsKKworCXN3aXRjaCAocGhhc2UpIHsK KworCWNhc2UgRElSX1BIQVNFXzI6CitybXRlbXBzOgorCQlsb2dfbWVzc2Fn ZShMT0dfTk9STUFMLCBfKCJSZW1vdmluZyB0ZW1wb3JhcnkgZGlyZWN0b3J5 OiAnJXMnIiksCisJCQkJdG5hbWUpOworCQlpZiAocm1kaXIodG5hbWUpIDwg MCAmJiBlcnJubyAhPSBFTk9FTlQpIHsKKwkJCWVycl9tZXNzYWdlKF8oInVu YWJsZSB0byByZW1vdmUgZGlyZWN0b3J5OiAlcyIpLCB0bmFtZSk7CisJCQly dmFsID0gMTsKKwkJfQorCQkvKiBGQUxMIFRIUlUgKi8KKwljYXNlIERJUl9Q SEFTRV8xOgorCQlsb2dfbWVzc2FnZShMT0dfTk9STUFMLCBfKCJSZW1vdmlu ZyB0YXJnZXQgZGlyZWN0b3J5OiAnJXMnIiksCisJCQkJdGFyZ2V0KTsKKwkJ aWYgKHJtZGlyKHRhcmdldCkgPCAwICYmIGVycm5vICE9IEVOT0VOVCkgewor CQkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIHJlbW92ZSBkaXJlY3Rvcnk6 ICVzIiksCisJCQkJCXRhcmdldCk7CisJCQlydmFsID0gMTsKKwkJfQorCQli cmVhazsKKworCWNhc2UgRElSX1BIQVNFXzM6CisJCWxvZ19tZXNzYWdlKExP R19OT1JNQUwsIF8oIkNvbXBsZXRpbmcgbW92aW5nIGRpcmVjdG9yeSAiCisJ CQkJImNvbnRlbnRzOiAnJXMnIHRvICclcyciKSwgc3JjbmFtZSwgdGFyZ2V0 KTsKKwkJaWYgKG1vdmVfZGlyZW50cyhzcmNuYW1lLCB0YXJnZXQsICZtb3Zl X2NvdW50KSAhPSAwKSB7CisJCQllcnJfbWVzc2FnZShfKCJ1bmFibGUgdG8g bW92ZSBkaXJlY3RvcnkgY29udGVudHM6ICIKKwkJCQkJIiVzIHRvICVzIiks IHNyY25hbWUsIHRhcmdldCk7CisJCQkvKiB1aCBvaCwgbW92ZSBldmVyeXRo aW5nIGJhY2suLi4gKi8KKwkJCWlmIChtb3ZlX2NvdW50ID4gMCkgeworCQkJ CWlmIChtb3ZlX2RpcmVudHModGFyZ2V0LCBzcmNuYW1lLAorCQkJCQkJJm1v dmVfY291bnQpICE9IDApIHsKKwkJCQkJLyogb2gsIGRlYXIgbG9yZC4uLiBs ZXQgdGhlIGFkbWluCisJCQkJCSAqIGNsZWFuIHRoaXMgb25lIHVwICovCisJ CQkJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byBtb3ZlIGRpcmVjdG9yeSAi CisJCQkJCQkiY29udGVudHMgYmFjazogJXMgdG8gJXMiKSwKKwkJCQkJCXRh cmdldCwgc3JjbmFtZSk7CisJCQkJCWV4aXQoMSk7CisJCQkJfQorCQkJfQor CQkJZ290byBybXRlbXBzOworCQl9CisJCS8qIEZBTEwgVEhSVSAqLworCWNh c2UgRElSX1BIQVNFXzQ6CisJCWxvZ19tZXNzYWdlKExPR19OT1JNQUwsIF8o IlNldHRpbmcgYXR0cmlidXRlcyBmb3IgdGFyZ2V0ICIKKwkJCQkiZGlyZWN0 b3J5OiBcJyVzXCciKSwgdGFyZ2V0KTsKKwkJdGZkID0gb3Blbih0bmFtZSwg T19SRE9OTFkpOworCQlpZiAodGZkIDwgMCkgeworCQkJZXJyX29wZW4odG5h bWUpOworCQkJcnZhbCA9IDE7CisJCQlicmVhazsKKwkJfQorCQl0YXJnZXRm ZCA9IG9wZW4odGFyZ2V0LCBPX1JET05MWSk7CisJCWlmICh0YXJnZXRmZCA8 IDApIHsKKwkJCWVycl9vcGVuKHRhcmdldCk7CisJCQlydmFsID0gMTsKKwkJ CWJyZWFrOworCQl9CisJCXJ2YWwgPSBkdXBfYXR0cmlidXRlcyh0bmFtZSwg dGZkLCB0YXJnZXQsIHRhcmdldGZkKTsKKwkJaWYgKHJ2YWwgIT0gMCkgewor CQkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIGR1cGxpY2F0ZSBkaXJlY3Rv cnkgIgorCQkJCQkiYXR0cmlidXRlczogJXMiKSwgdG5hbWUpOworCQkJYnJl YWs7CisJCX0KKwkJY2xvc2UodGZkKTsKKwkJY2xvc2UodGFyZ2V0ZmQpOwor CQkvKiBGQUxMIFRIUlUgKi8KKwljYXNlIERJUl9QSEFTRV82OgorCQlsb2df bWVzc2FnZShMT0dfTk9STUFMLCBfKCJSZW1vdmluZyB0ZW1wb3JhcnkgZGly ZWN0b3J5OiBcJyVzXCciKSwKKwkJCQl0bmFtZSk7CisJCWlmIChybWRpcih0 bmFtZSkgPCAwICYmIGVycm5vICE9IEVOT0VOVCkgeworCQkJZXJyX21lc3Nh Z2UoXygidW5hYmxlIHRvIHJlbW92ZSBkaXJlY3Rvcnk6ICVzIiksCisJCQkJ CXRuYW1lKTsKKwkJCXJ2YWwgPSAxOworCQkJYnJlYWs7CisJCX0KKwkJLyog RkFMTCBUSFJVICovCisJY2FzZSBESVJfUEhBU0VfNToKKwkJbG9nX21lc3Nh Z2UoTE9HX05PUk1BTCwgXygiUmVtb3Zpbmcgb2xkIGRpcmVjdG9yeTogXCcl c1wnIiksCisJCQkJc3JjbmFtZSk7CisJCWlmIChybWRpcihzcmNuYW1lKSA8 IDAgJiYgZXJybm8gIT0gRU5PRU5UKSB7CisJCQllcnJfbWVzc2FnZShfKCJ1 bmFibGUgdG8gcmVtb3ZlIGRpcmVjdG9yeTogJXMiKSwKKwkJCQkJc3JjbmFt ZSk7CisJCQlydmFsID0gMTsKKwkJCWJyZWFrOworCQl9CisJCS8qIEZBTEwg VEhSVSAqLworCWNhc2UgRElSX1BIQVNFXzc6CisJCWxvZ19tZXNzYWdlKExP R19OT1JNQUwsIF8oIlJlbmFtaW5nIG5ldyBkaXJlY3RvcnkgdG8gb2xkICIK KwkJCSJkaXJlY3Rvcnk6IFwnJXNcJyAtPiBcJyVzXCciKSwgdGFyZ2V0LCBz cmNuYW1lKTsKKwkJcnZhbCA9IHJlbmFtZSh0YXJnZXQsIHNyY25hbWUpOwor CQlpZiAocnZhbCAhPSAwKSB7CisJCQkvKiB3ZSBjYW4ndCBhYm9ydCBzaW5j ZSB0aGUgc3JjIGRpciBpcyBub3cgZ29uZS4KKwkJCSAqIGxldCB0aGUgYWRt aW4gY2xlYW4gdGhpcyBvbmUgdXAKKwkJCSAqLworCQkJZXJyX21lc3NhZ2Uo XygidW5hYmxlIHRvIHJlbmFtZSBkaXJlY3Rvcnk6ICVzIHRvICVzIiksCisJ CQkJCXRhcmdldCwgc3JjbmFtZSk7CisJCQlicmVhazsKKwkJfQorCQlicmVh azsKKworCisJY2FzZSBGSUxFX1BIQVNFXzE6CisJY2FzZSBTTElOS19QSEFT RV8xOgorCQlsb2dfbWVzc2FnZShMT0dfTk9STUFMLCBfKCJVbmxpbmtpbmcg dGVtcG9yYXJ5IGZpbGU6IFwnJXNcJyIpLAorCQkJCXRhcmdldCk7CisJCXVu bGluayh0YXJnZXQpOworCQlicmVhazsKKworCWNhc2UgRklMRV9QSEFTRV8y OgorCWNhc2UgU0xJTktfUEhBU0VfMjoKKwkJbG9nX21lc3NhZ2UoTE9HX05P Uk1BTCwgXygiVW5saW5raW5nIG9sZCBmaWxlOiBcJyVzXCciKSwKKwkJCQlz cmNuYW1lKTsKKwkJcnZhbCA9IHVubGluayhzcmNuYW1lKTsKKwkJaWYgKHJ2 YWwgIT0gMCkgeworCQkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIHJlbW92 ZSBmaWxlOiAlcyIpLCBzcmNuYW1lKTsKKwkJCWJyZWFrOworCQl9CisJCS8q IEZBTEwgVEhSVSAqLworCWNhc2UgRklMRV9QSEFTRV8zOgorCWNhc2UgU0xJ TktfUEhBU0VfMzoKKwkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgXygiUmVu YW1pbmcgbmV3IGZpbGUgdG8gb2xkIGZpbGU6ICIKKwkJCQkiXCclc1wnIC0+ IFwnJXNcJyIpLCB0YXJnZXQsIHNyY25hbWUpOworCQlydmFsID0gcmVuYW1l KHRhcmdldCwgc3JjbmFtZSk7CisJCWlmIChydmFsICE9IDApIHsKKwkJCS8q IHdlIGNhbid0IGFib3J0IHNpbmNlIHRoZSBzcmMgZmlsZSBpcyBub3cgZ29u ZS4KKwkJCSAqIGxldCB0aGUgYWRtaW4gY2xlYW4gdGhpcyBvbmUgdXAKKwkJ CSAqLworCQkJZXJyX21lc3NhZ2UoXygidW5hYmxlIHRvIHJlbmFtZSBmaWxl OiAlcyB0byAlcyIpLAorCQkJCQl0YXJnZXQsIHNyY25hbWUpOworCQkJYnJl YWs7CisJCX0KKwkJLyogRkFMTCBUSFJVICovCisJY2FzZSBGSUxFX1BIQVNF XzQ6CisJY2FzZSBTTElOS19QSEFTRV80OgorCQkvKiBmb3IgZWFjaCBoYXJk bGluaywgdW5saW5rIGFuZCBjcmVhdCBwb2ludGluZyB0byB0YXJnZXQgKi8K KwkJZm9yIChpID0gMTsgaSA8IG5vZGUtPm51bXBhdGhzOyBpKyspIHsKKwkJ CWlmIChpID09IDEpCisJCQkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgXygi UmVzZXR0aW5nIGhhcmRsaW5rcyAiCisJCQkJCQkidG8gbmV3IGZpbGUiKSk7 CisKKwkJCXJ2YWwgPSB1bmxpbmsobm9kZS0+cGF0aHNbaV0pOworCQkJaWYg KHJ2YWwgIT0gMCkgeworCQkJCWVycl9tZXNzYWdlKF8oInVuYWJsZSB0byBy ZW1vdmUgZmlsZTogJXMiKSwKKwkJCQkJCW5vZGUtPnBhdGhzW2ldKTsKKwkJ CQlicmVhazsKKwkJCX0KKwkJCXJ2YWwgPSBsaW5rKHNyY25hbWUsIG5vZGUt PnBhdGhzW2ldKTsKKwkJCWlmIChydmFsICE9IDApIHsKKwkJCQllcnJfbWVz c2FnZShfKCJ1bmFibGUgdG8gbGluayB0byBmaWxlOiAlcyIpLAorCQkJCQkJ c3JjbmFtZSk7CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwkJYnJlYWs7CisJ fQorCisJaWYgKHJ2YWwgPT0gMCkgeworCQlsb2dfbWVzc2FnZShMT0dfTk9S TUFMLCBfKCJSZW1vdmluZyByZWNvdmVyIGZpbGU6IFwnJXNcJyIpLAorCQkJ CXJlY292ZXJfZmlsZSk7CisJCXVubGluayhyZWNvdmVyX2ZpbGUpOworCQls b2dfbWVzc2FnZShMT0dfTk9STUFMLCBfKCJSZWNvdmVyeSBkb25lLiIpKTsK Kwl9CisJZWxzZSB7CisJCWxvZ19tZXNzYWdlKExPR19OT1JNQUwsIF8oIkxl YXZpbmcgcmVjb3ZlciBmaWxlOiBcJyVzXCciKSwKKwkJCQlyZWNvdmVyX2Zp bGUpOworCQlsb2dfbWVzc2FnZShMT0dfTk9STUFMLCBfKCJSZWNvdmVyeSBm YWlsZWQuIikpOworCX0KKworCXJldHVybiBydmFsOworfQorCitpbnQKK21h aW4oCisJaW50CQlhcmdjLAorCWNoYXIJCSphcmd2W10pCit7CisJaW50CQlj ID0gMDsKKwlpbnQJCXJ2YWwgPSAwOworCWludAkJcV9vcHQgPSAwOworCWlu dAkJdl9vcHQgPSAwOworCWludAkJcF9vcHQgPSAwOworCWludAkJbl9vcHQg PSAwOworCWNoYXIJCXBhdGhuYW1lW1BBVEhfTUFYXTsKKwlzdHJ1Y3Qgc3Rh dDY0CXN0OworCisJcHJvZ25hbWUgPSBiYXNlbmFtZShhcmd2WzBdKTsKKwor CXNldGxvY2FsZShMQ19BTEwsICIiKTsKKwliaW5kdGV4dGRvbWFpbihQQUNL QUdFLCBMT0NBTEVESVIpOworCXRleHRkb21haW4oUEFDS0FHRSk7CisKKwl3 aGlsZSAoKGMgPSBnZXRvcHQoYXJnYywgYXJndiwgImZucHF2UDpyOiIpKSAh PSAtMSkgeworCQlzd2l0Y2ggKGMpIHsKKwkJY2FzZSAnZic6CisJCQlmb3Jj ZV9hbGwgPSAxOworCQkJYnJlYWs7CisJCWNhc2UgJ24nOgorCQkJbl9vcHQr KzsKKwkJCWJyZWFrOworCQljYXNlICdwJzoKKwkJCXBfb3B0Kys7CisJCQli cmVhazsKKwkJY2FzZSAncSc6CisJCQlpZiAodl9vcHQpCisJCQkJZXJyX21l c3NhZ2UoXygiJ3EnIG9wdGlvbiBpbmNvbXBhdGlibGUgIgorCQkJCQkJIndp dGggJ3YnIG9wdGlvbiIpKTsKKwkJCXFfb3B0Kys7CisJCQlsb2dfbGV2ZWw9 MDsKKwkJCWJyZWFrOworCQljYXNlICd2JzoKKwkJCWlmIChxX29wdCkKKwkJ CQllcnJfbWVzc2FnZShfKCIndicgb3B0aW9uIGluY29tcGF0aWJsZSAiCisJ CQkJCQkid2l0aCAncScgb3B0aW9uIikpOworCQkJdl9vcHQrKzsKKwkJCWxv Z19sZXZlbCsrOworCQkJYnJlYWs7CisJCWNhc2UgJ1AnOgorCQkJcG9sbF9p bnRlcnZhbCA9IGF0b2kob3B0YXJnKTsKKwkJCWJyZWFrOworCQljYXNlICdy JzoKKwkJCXJlY292ZXJfZmlsZSA9IG9wdGFyZzsKKwkJCWJyZWFrOworCQlk ZWZhdWx0OgorCQkJZXJyX21lc3NhZ2UoXygiJXM6IGlsbGVnYWwgb3B0aW9u IC0tICVjXG4iKSwgYyk7CisJCQl1c2FnZSgpOworCQkJLyogTk9UUkVBQ0hF RCAqLworCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAob3B0aW5kICE9IGFy Z2MgLSAxICYmIHJlY292ZXJfZmlsZSA9PSBOVUxMKSB7CisJCXVzYWdlKCk7 CisJCWV4aXQoMSk7CisJfQorCisJcmVhbHVpZCA9IGdldHVpZCgpOworCXN0 YXJ0dGltZSA9IHRpbWUoMCk7CisKKwlpbml0X25vZGVoYXNoKCk7CisKKwlz aWduYWwoU0lHQUxSTSwgc2lnaGFuZGxlcik7CisJc2lnbmFsKFNJR0FCUlQs IHNpZ2hhbmRsZXIpOworCXNpZ25hbChTSUdIVVAsIHNpZ2hhbmRsZXIpOwor CXNpZ25hbChTSUdJTlQsIHNpZ2hhbmRsZXIpOworCXNpZ25hbChTSUdRVUlU LCBzaWdoYW5kbGVyKTsKKwlzaWduYWwoU0lHVEVSTSwgc2lnaGFuZGxlcik7 CisKKwlpZiAocF9vcHQgJiYgcG9sbF9pbnRlcnZhbCA9PSAwKSB7CisJCXBv bGxfaW50ZXJ2YWwgPSAxOworCX0KKwlpZiAocG9sbF9pbnRlcnZhbCkKKwkJ YWxhcm0ocG9sbF9pbnRlcnZhbCk7CisKKwlpZiAocmVjb3Zlcl9maWxlKSB7 CisJCWJpZ25vZGVfdAkqbm9kZSA9IE5VTEw7CisJCWNoYXIJCSp0YXJnZXQg PSBOVUxMOworCQljaGFyCQkqdG5hbWUgPSBOVUxMOworCQlpbnQJCXBoYXNl ID0gMDsKKworCQlpZiAobl9vcHQpCisJCQlnb3RvIHF1aXQ7CisKKwkJLyog cmVhZCBub2RlIGluZm8gZnJvbSByZWNvdmVyeSBmaWxlICovCisJCWlmIChy ZWFkX3JlY292ZXJfZmlsZShyZWNvdmVyX2ZpbGUsICZub2RlLCAmdGFyZ2V0 LAorCQkJCSZ0bmFtZSwgJnBoYXNlKSAhPSAwKQorCQkJZXhpdCgxKTsKKwor CQlydmFsID0gcmVjb3Zlcihub2RlLCB0YXJnZXQsIHRuYW1lLCBwaGFzZSk7 CisKKwkJZnJlZSh0YXJnZXQpOworCQlmcmVlKHRuYW1lKTsKKworCQlyZXR1 cm4gcnZhbDsKKwl9CisKKwlyZWNvdmVyX2ZpbGUgPSBtYWxsb2MoUEFUSF9N QVgpOworCWlmIChyZWNvdmVyX2ZpbGUgPT0gTlVMTCkgeworCQllcnJfbm9t ZW0oKTsKKwkJZXhpdCgxKTsKKwl9CisJcmVjb3Zlcl9maWxlWzBdID0gJ1ww JzsKKworCXN0cmNweShwYXRobmFtZSwgYXJndltvcHRpbmRdKTsKKwlpZiAo cGF0aG5hbWVbMF0gIT0gJy8nKSB7CisJCWVycl9tZXNzYWdlKF8oInBhdGhu YW1lIG11c3QgYmVnaW4gd2l0aCBhIHNsYXNoICgnLycpIikpOworCQlleGl0 KDEpOworCX0KKworCWlmIChzdGF0NjQocGF0aG5hbWUsICZzdCkgPCAwKSB7 CisJCWVycl9zdGF0KHBhdGhuYW1lKTsKKwkJZXhpdCgxKTsKKwl9CisJaWYg KFNfSVNSRUcoc3Quc3RfbW9kZSkpIHsKKwkJLyogc2luZ2xlIGZpbGUgc3Bl Y2lmaWVkICovCisJCWlmIChzdC5zdF9ubGluayA+IDEpIHsKKwkJCWVycl9t ZXNzYWdlKF8oImNhbm5vdCBwcm9jZXNzIHNpbmdsZSBmaWxlIHdpdGggYSAi CisJCQkJCSJsaW5rIGNvdW50IGdyZWF0ZXIgdGhhbiAxIikpOworCQkJZXhp dCgxKTsKKwkJfQorCisJCXN0cmNweShyZWNvdmVyX2ZpbGUsIHBhdGhuYW1l KTsKKwkJZGlybmFtZShyZWNvdmVyX2ZpbGUpOworCisJCXN0cmNweShyZWNv dmVyX2ZpbGUgKyBzdHJsZW4ocmVjb3Zlcl9maWxlKSwgIi94ZnNfcmVuby5y ZWNvdmVyIik7CisJCWlmICghbl9vcHQpIHsKKwkJCWlmIChvcGVuX3JlY292 ZXJmaWxlKCkgIT0gMCkKKwkJCQlleGl0KDEpOworCQl9CisJCWFkZF9ub2Rl X3BhdGgoc3Quc3RfaW5vLCBGVFdfRiwgcGF0aG5hbWUpOworCX0KKwllbHNl IGlmIChTX0lTRElSKHN0LnN0X21vZGUpKSB7CisJCS8qIGRpcmVjdG9yeSB0 cmVlIHNwZWNpZmllZCAqLworCQlzdHJjcHkocmVjb3Zlcl9maWxlLCBwYXRo bmFtZSk7CisKKwkJc3RyY3B5KHJlY292ZXJfZmlsZSArIHN0cmxlbihyZWNv dmVyX2ZpbGUpLCAiL3hmc19yZW5vLnJlY292ZXIiKTsKKwkJaWYgKCFuX29w dCkgeworCQkJaWYgKG9wZW5fcmVjb3ZlcmZpbGUoKSAhPSAwKQorCQkJCWV4 aXQoMSk7CisJCX0KKworCQkvKiBkaXJlY3Rvcnkgc2NhbiAqLworCQlsb2df bWVzc2FnZShMT0dfSU5GTywgXygiXHJTY2FubmluZyBkaXJlY3RvcnkgdHJl ZS4uLiIpKTsKKwkJU0VUX1BIQVNFKFNDQU5fUEhBU0UpOworCQluZnR3NjQo cGF0aG5hbWUsIG5mdHdfYWRkbm9kZXMsIDEwMCwgRlRXX1BIWVMgfCBGVFdf TU9VTlQpOworCX0KKwllbHNlIHsKKwkJZXJyX21lc3NhZ2UoXygicGF0aG5h bWUgbXVzdCBiZSBlaXRoZXIgYSByZWd1bGFyIGZpbGUgIgorCQkJCSJvciBk aXJlY3RvcnkiKSk7CisJCWV4aXQoMSk7CisJfQorCisJZHVtcF9ub2RlaGFz aCgpOworCisJaWYgKG5fb3B0KSB7CisJCS8qIG4gZmxhZyBzZXQsIGRvbid0 IGRvIGFueXRoaW5nICovCisJCWlmIChudW1kaXJub2RlcykKKwkJCWxvZ19t ZXNzYWdlKExPR19OT1JNQUwsICJccldvdWxkIHByb2Nlc3MgJWQgJXMiLAor CQkJCQludW1kaXJub2RlcywgbnVtZGlybm9kZXMgPT0gMSA/CisJCQkJCQki ZGlyZWN0b3J5IiA6ICJkaXJlY3RvcmllcyIpOworCQllbHNlCisJCQlsb2df bWVzc2FnZShMT0dfTk9STUFMLCAiXHJObyBkaXJlY3RvcmllcyB0byBwcm9j ZXNzIik7CisKKwkJaWYgKG51bWZpbGVub2RlcykKKwkJCS8qIHByb2Nlc3Mg ZmlsZXMgKi8KKwkJCWxvZ19tZXNzYWdlKExPR19OT1JNQUwsICJccldvdWxk IHByb2Nlc3MgJWQgJXMiLAorCQkJCQludW1maWxlbm9kZXMsIG51bWZpbGVu b2RlcyA9PSAxID8KKwkJCQkJCSJmaWxlIiA6ICJmaWxlcyIpOworCQllbHNl CisJCQlsb2dfbWVzc2FnZShMT0dfTk9STUFMLCAiXHJObyBmaWxlcyB0byBw cm9jZXNzIik7CisJCWlmIChudW1zbGlua25vZGVzKQorCQkJLyogcHJvY2Vz cyBmaWxlcyAqLworCQkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgIlxyV291 bGQgcHJvY2VzcyAlZCAlcyIsCisJCQkJCW51bXNsaW5rbm9kZXMsIG51bXNs aW5rbm9kZXMgPT0gMSA/CisJCQkJCQkic3ltbGlueCIgOiAic3ltbGlua3Mi KTsKKwkJZWxzZQorCQkJbG9nX21lc3NhZ2UoTE9HX05PUk1BTCwgIlxyTm8g c3ltbGlua3MgdG8gcHJvY2VzcyIpOworCX0gZWxzZSB7CisJCS8qIHByb2Nl c3MgZGlyZWN0b3JpZXMgKi8KKwkJaWYgKG51bWRpcm5vZGVzKSB7CisJCQls b2dfbWVzc2FnZShMT0dfSU5GTywgXygiXHJQcm9jZXNzaW5nICVkICVzLi4u IiksCisJCQkJCW51bWRpcm5vZGVzLCBudW1kaXJub2RlcyA9PSAxID8KKwkJ CQkJICAgIF8oImRpcmVjdG9yeSIpIDogXygiZGlyZWN0b3JpZXMiKSk7CisJ CQljdXJfcGhhc2UgPSBESVJfUEhBU0U7CisJCQlydmFsID0gZm9yX2FsbF9u b2Rlcyhwcm9jZXNzX2RpciwgRlRXX0QsIDEpOworCQkJaWYgKHJ2YWwgIT0g MCkKKwkJCQlnb3RvIHF1aXQ7CisJCX0KKwkJZWxzZQorCQkJbG9nX21lc3Nh Z2UoTE9HX0lORk8sIF8oIlxyTm8gZGlyZWN0b3JpZXMgdG8gcHJvY2Vzcy4u LiIpKTsKKworCQlpZiAobnVtZmlsZW5vZGVzKSB7CisJCQkvKiBwcm9jZXNz IGZpbGVzICovCisJCQlsb2dfbWVzc2FnZShMT0dfSU5GTywgXygiXHJQcm9j ZXNzaW5nICVkICVzLi4uIiksCisJCQkJCW51bWZpbGVub2RlcywgbnVtZmls ZW5vZGVzID09IDEgPworCQkJCQkJXygiZmlsZSIpIDogXygiZmlsZXMiKSk7 CisJCQljdXJfcGhhc2UgPSBGSUxFX1BIQVNFOworCQkJZm9yX2FsbF9ub2Rl cyhwcm9jZXNzX2ZpbGUsIEZUV19GLCAwKTsKKwkJfQorCQllbHNlCisJCQls b2dfbWVzc2FnZShMT0dfSU5GTywgXygiXHJObyBmaWxlcyB0byBwcm9jZXNz Li4uIikpOworCisJCWlmIChudW1zbGlua25vZGVzKSB7CisJCQkvKiBwcm9j ZXNzIHN5bWxpbmtzICovCisJCQlsb2dfbWVzc2FnZShMT0dfSU5GTywgXygi XHJQcm9jZXNzaW5nICVkICVzLi4uIiksCisJCQkJCW51bXNsaW5rbm9kZXMs IG51bXNsaW5rbm9kZXMgPT0gMSA/CisJCQkJCQlfKCJzeW1saW5rIikgOiBf KCJzeW1saW5rcyIpKTsKKwkJCWN1cl9waGFzZSA9IFNMSU5LX1BIQVNFOwor CQkJZm9yX2FsbF9ub2Rlcyhwcm9jZXNzX3NsaW5rLCBGVFdfU0wsIDApOwor CQl9CisJCWVsc2UKKwkJCWxvZ19tZXNzYWdlKExPR19JTkZPLCBfKCJcck5v IHN5bWxpbmtzIHRvIHByb2Nlc3MuLi4iKSk7CisKKwl9CitxdWl0OgorCWZy ZWVfbm9kZWhhc2goKTsKKworCWNsb3NlKHJlY292ZXJfZmQpOworCisJaWYg KHJ2YWwgPT0gMCkKKwkJdW5saW5rKHJlY292ZXJfZmlsZSk7CisKKwlsb2df bWVzc2FnZShMT0dfREVCVUcsICJcciV1IHNlY29uZHMgZWxhcHNlZCIsIHRp bWUoMCkgLSBzdGFydHRpbWUpOworCWxvZ19tZXNzYWdlKExPR19JTkZPLCBf KCJcckRvbmUuICAgICAiKSk7CisKKwlyZXR1cm4gcnZhbCB8IGdsb2JhbF9y dmFsOworfQo= ------------MAhJ3q66PgIP4VwapyTDNq-- From owner-xfs@oss.sgi.com Wed Oct 3 22:16:05 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 22:16:08 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00, T_STOX_BOUND_090909_B autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l945G0Kk015585 for ; Wed, 3 Oct 2007 22:16:03 -0700 Received: from [134.14.55.78] (redback.melbourne.sgi.com [134.14.55.78]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id PAA23316; Thu, 4 Oct 2007 15:15:57 +1000 Message-ID: <4704780C.2020100@sgi.com> Date: Thu, 04 Oct 2007 15:20:12 +1000 From: Lachlan McIlroy Reply-To: lachlan@sgi.com User-Agent: Thunderbird 2.0.0.4 (X11/20070604) MIME-Version: 1.0 To: xfs-dev , xfs-oss Subject: review: fix infinite loop in bulkstat Content-Type: multipart/mixed; boundary="------------030308020602070609060809" X-Virus-Scanned: ClamAV 0.91.2/4463/Wed Oct 3 21:27:04 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13245 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: lachlan@sgi.com Precedence: bulk X-list: xfs This is a multi-part message in MIME format. --------------030308020602070609060809 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This fix prevents bulkstat from spinning in an infinite loop. Here 'agino' increments through the inodes in an allocation group. At the end of the innermost 'for' loop it will hold the value of the next inode to look at (ie the first inode in the next cluster/chunk). Assigning 'lastino' to 'agino' resets it to the last inode in the last inode cluster we just looked at. This causes us to look up the very same cluster and examine all the inodes all over again, and again, and again... We also want to set 'lastino' for the cases when we're not interested in the inode so that the next call to bulkstat wont re-examine the same uninteresting inodes. --------------030308020602070609060809 Content-Type: text/x-patch; name="bulkstat.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="bulkstat.diff" --- fs/xfs/xfs_itable.c_1.155 2007-10-03 13:05:22.000000000 +1000 +++ fs/xfs/xfs_itable.c 2007-10-04 12:16:46.000000000 +1000 @@ -622,8 +622,10 @@ xfs_bulkstat( /* * Skip if this inode is free. */ - if (XFS_INOBT_MASK(chunkidx) & irbp->ir_free) + if (XFS_INOBT_MASK(chunkidx) & irbp->ir_free) { + lastino = ino; continue; + } /* * Count used inodes as free so we can tell * when the chunk is used up. @@ -632,8 +634,10 @@ xfs_bulkstat( ino = XFS_AGINO_TO_INO(mp, agno, agino); bno = XFS_AGB_TO_DADDR(mp, agno, agbno); if (!xfs_bulkstat_use_dinode(mp, flags, bp, - clustidx, &dip)) + clustidx, &dip)) { + lastino = ino; continue; + } /* * If we need to do an iget, cannot hold bp. * Drop it, until starting the next cluster. @@ -694,8 +698,7 @@ xfs_bulkstat( if (end_of_ag) { agno++; agino = 0; - } else - agino = XFS_INO_TO_AGINO(mp, lastino); + } } else break; } --------------030308020602070609060809-- From owner-xfs@oss.sgi.com Wed Oct 3 23:22:12 2007 Received: with ECARTIS (v1.0.0; list xfs); Wed, 03 Oct 2007 23:22:19 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.3.0-r574664 (2007-09-11) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.0-r574664 Received: from larry.melbourne.sgi.com (larry.melbourne.sgi.com [134.14.52.130]) by oss.sgi.com (8.12.11.20060308/8.12.10/SuSE Linux 0.7) with SMTP id l946M8tl021452 for ; Wed, 3 Oct 2007 23:22:11 -0700 Received: from snort.melbourne.sgi.com (snort.melbourne.sgi.com [134.14.54.149]) by larry.melbourne.sgi.com (950413.SGI.8.6.12/950213.SGI.AUTOCF) via ESMTP id QAA25020; Thu, 4 Oct 2007 16:22:02 +1000 Received: from snort.melbourne.sgi.com (localhost [127.0.0.1]) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5) with ESMTP id l946M1dD43690191; Thu, 4 Oct 2007 16:22:02 +1000 (AEST) Received: (from dgc@localhost) by snort.melbourne.sgi.com (SGI-8.12.5/8.12.5/Submit) id l946LxEM50206151; Thu, 4 Oct 2007 16:21:59 +1000 (AEST) X-Authentication-Warning: snort.melbourne.sgi.com: dgc set sender to dgc@sgi.com using -f Date: Thu, 4 Oct 2007 16:21:59 +1000 From: David Chinner To: Lachlan McIlroy Cc: xfs-dev , xfs-oss Subject: Re: review: fix infinite loop in bulkstat Message-ID: <20071004062159.GN995458@sgi.com> References: <4704780C.2020100@sgi.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4704780C.2020100@sgi.com> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV 0.91.2/4463/Wed Oct 3 21:27:04 2007 on oss.sgi.com X-Virus-Status: Clean X-archive-position: 13246 X-ecartis-version: Ecartis v1.0.0 Sender: xfs-bounce@oss.sgi.com Errors-to: xfs-bounce@oss.sgi.com X-original-sender: dgc@sgi.com Precedence: bulk X-list: xfs On Thu, Oct 04, 2007 at 03:20:12PM +1000, Lachlan McIlroy wrote: > This fix prevents bulkstat from spinning in an infinite loop. > > Here 'agino' increments through the inodes in an allocation group. > At the end of the innermost 'for' loop it will hold the value of the > next inode to look at (ie the first inode in the next cluster/chunk). > Assigning 'lastino' to 'agino' resets it to the last inode in the > last inode cluster we just looked at. This causes us to look up > the very same cluster and examine all the inodes all over again, > and again, and again... > > We also want to set 'lastino' for the cases when we're not interested > in the inode so that the next call to bulkstat wont re-examine the > same uninteresting inodes. Looks OK. I think you shoul dalso add a comment to the effect that lastino needs to be set before continuing to process th