From owner-freebsd-current Mon Feb 4 5:26:33 2002 Delivered-To: freebsd-current@freebsd.org Received: from mailman.zeta.org.au (mailman.zeta.org.au [203.26.10.16]) by hub.freebsd.org (Postfix) with ESMTP id CB66237B41A; Mon, 4 Feb 2002 05:26:27 -0800 (PST) Received: from bde.zeta.org.au (bde.zeta.org.au [203.2.228.102]) by mailman.zeta.org.au (8.9.3/8.8.7) with ESMTP id AAA16059; Tue, 5 Feb 2002 00:26:21 +1100 Date: Tue, 5 Feb 2002 00:28:43 +1100 (EST) From: Bruce Evans X-X-Sender: To: John Polstra Cc: , Subject: Re: Panics in ffs_clusteracct with todays -current In-Reply-To: Message-ID: <20020205000829.A22758-100000@gamplex.bde.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG On Sun, 3 Feb 2002, John Polstra wrote: > The kernel from today's current (CVSupped 3 Feb 2002 around 17:40 > PST) can't stay up for more than a few minutes without getting a > page-not-present panic at line 1815 of ufs/ffs/ffs_alloc.c revision > 1.86. It is in this code: > > /* > * Find the size of the cluster going backward. > */ > start = blkno - 1; > end = start - fs->fs_contigsumsize; > if (end < 0) > end = -1; > mapp = &freemapp[start / NBBY]; > map = *mapp--; > ^^^^^ > BANG! This was broken by a recent change to the type of NBBY. `start' is apparently negative (it would be for blkno == 0). Small negative values of `start' used to give an index of 0 in freemapp (not even small negative, since integer division bogusly rounds negative values towards 0). They now give an index of about 0x1fffffff on 32-bit machines. I also got panics in vm. The vm code apparently trapped while trying to map the preposterous address generated by the above. This patch just backs out the change to NBBY. %%% Index: types.h =================================================================== RCS file: /home/ncvs/src/sys/sys/types.h,v retrieving revision 1.50 diff -u -2 -r1.50 types.h --- types.h 3 Feb 2002 11:36:59 -0000 1.50 +++ types.h 4 Feb 2002 13:08:05 -0000 @@ -172,5 +172,5 @@ #ifndef _POSIX_SOURCE -#define NBBY 8U /* number of bits in a byte */ +#define NBBY 8 /* number of bits in a byte */ /* %%% Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message