Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Feb 2002 00:28:43 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Polstra <jdp@polstra.com>
Cc:        <current@FreeBSD.ORG>, <markm@FreeBSD.ORG>
Subject:   Re: Panics in ffs_clusteracct with todays -current
Message-ID:  <20020205000829.A22758-100000@gamplex.bde.org>
In-Reply-To: <XFMail.20020203205249.jdp@polstra.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020205000829.A22758-100000>