Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 May 2001 21:56:26 -0400
From:      Alfred Perlstein <bright@rush.net>
To:        Szilveszter Adam <sziszi@petra.hos.u-szeged.hu>
Cc:        current@FreeBSD.ORG
Subject:   Re: panic: mutex vm not owned...
Message-ID:  <20010519215626.W7118@superconductor.rush.net>
In-Reply-To: <20010519225319.A10701@petra.hos.u-szeged.hu>; from sziszi@petra.hos.u-szeged.hu on Sat, May 19, 2001 at 10:53:19PM %2B0200
References:  <20010519225319.A10701@petra.hos.u-szeged.hu>

next in thread | previous in thread | raw e-mail | index | archive | help
* Szilveszter Adam <sziszi@petra.hos.u-szeged.hu> [010519 16:53] wrote:
> Hello everybody,
> 
> I guess I was just being too happy so it had to get me this time:-) I was
> building Mozilla when it struck. Today's -CURRENT, kernel & world in sync,
> no softupdates.
> 
> panic: mutex vm not owned at ../../vm/vm_page.h:328
> Debugger("panic")
> 
> Stopped at   Debugger
> 
> trace:
> Debugger
> panic
> _mtx_assert
> swp_pager_async_iodone
> _iodone
> bufdone
> bufdonebio
> ad_interrupt
> ata_intr
> fork_exit 
> fork_trampoline
> 
> Unfortunately, dumping still doesn't work, I get the old and familiar:
> dump ata0: resetting devices... panic: witness_restore: lock (sleep mutex)
> Giant not locked.
> 
> So there is no crash dump.

Thanks for the traceback, can you apply this patch then try
to get your machine to swap?


Index: swap_pager.c
===================================================================
RCS file: /home/ncvs/src/sys/vm/swap_pager.c,v
retrieving revision 1.155
diff -u -r1.155 swap_pager.c
--- swap_pager.c	2001/05/19 01:28:08	1.155
+++ swap_pager.c	2001/05/20 01:58:06
@@ -1474,8 +1474,8 @@
 		 */
 
 		mtx_unlock(&Giant);
-		mtx_lock(&vm_mtx);
 		swp_pager_async_iodone(bp);
+		mtx_lock(&vm_mtx);
 
 		splx(s);
 	}
@@ -1554,7 +1554,7 @@
 	/*
 	 * remove the mapping for kernel virtual
 	 */
-
+	mtx_lock(&vm_mtx);
 	pmap_qremove((vm_offset_t)bp->b_data, bp->b_npages);
 
 	/*
@@ -1689,6 +1689,7 @@
 	if (object)
 		vm_object_pip_wakeupn(object, bp->b_npages);
 
+	mtx_unlock(&vm_mtx);
 	/*
 	 * release the physical I/O buffer
 	 */
-- 
-Alfred Perlstein [alfred@freebsd.org]
Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.

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?20010519215626.W7118>