Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Mar 1999 00:10:27 -0800 (PST)
From:      Matthew Dillon <dillon@apollo.backplane.com>
To:        Matthew Jacob <mjacob@feral.com>, freebsd-hackers@FreeBSD.ORG
Subject:   Re: Panic in FFS/4.0 as of yesterday - update
Message-ID:  <199903010810.AAA42400@apollo.backplane.com>
References:  <Pine.LNX.4.04.9902260950020.985-100000@feral-gw>    

next in thread | previous in thread | raw e-mail | index | archive | help
    New test patches are available for the getnewbuf() bug.  And a couple more
    bugs found.  Only the 'VFS_BIO Fixed to getnewbuf' patch is described in
    this email.
	
	http://www.backplane.com/FreeBSD4/

    The patch needs more extensive testing.

    Bugs fixed:

	* getnewbuf() recursion reduced to 1 level.  5 levels is too deep for
	  some VFS stacks and can overflow the supervisor stack.

	* A number of low-memory deadlock situations fixed by redoing the
	  way buffers are written out and freed up.

	* numfreebuffer, numdirtybuffer accounting fixed - it was broken.

    Old Bugs not fixed:

	* I/O saturation is still a problem.  There is no easy solution -
	  even reverting to synchronous I/O doesn't help because the STEST
	  script starts up 50 processes doing writes.  This isn't a serious
	  bug under normal operating conditions but it is annoying.

    New bugs found ( and not fixed ):

	* exec_map can only hold 16 exec'ing processes at once.  It needs a
	  counter and a sleep/wait.

	  Sometimes when I ran Matt J's 'breakit' script, a background program
	  would 'Abort trap' out instantly on startup because more then 16
	  were doing an exec at once.  This can only occur in a low-memory
	  or heavy-I/O situation.

	* Another bug in vfs.ffs.doreallocblks found.

	  When writing large files ( running Matt J's STEST again ) with
	  doreallocblks on and softupdates enabled, blocks associated with
	  the file are apparently reallocated as the file is being written.

	  When writing 50 4MB files ( 200MB ), over 350MB of disk space can
	  be used during the test because softupdates is unable to get in
	  and sync the bitmaps.  If the test is paused, softupdates catches
	  up.  Otherwise you can run out of disk space.

	  Also, if the filesystem runs out of space during the test, 
	  aka 'filesystem full', softupdates sometimes panics with the error:

		panic: softdep_setup_blkmapdep: found block

	* Possible hang with NFS ( still under test ).  Sometimes NFS gets
	  into loops during flushdirtybuffers() where it tries to rewrite the
	  same block over and over again.  I don't know why yet.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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