Date: Sun, 10 Nov 2002 19:03:35 GMT From: Tor.Egge@cvsup.no.freebsd.org To: qumqats@outel.org Cc: current@FreeBSD.ORG, alfred@FreeBSD.ORG Subject: Re: Panics instead of Hard Locks Message-ID: <20021110190335E.tegge@cvsup.no.freebsd.org> In-Reply-To: <40095464.1036852016@[192.168.1.20]> References: <40095464.1036852016@[192.168.1.20]>
next in thread | previous in thread | raw e-mail | index | archive | help
----Next_Part(Sun_Nov_10_18:59:46_2002_809)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > > Since going from a SMP to nonSMP kernel the Hard Locks don't > seem to be happening. However I'm getting panics. > > I've gotten 4 'sleeping thread owns a mutex' panics and one each > of 'Assertion i != 0 failed at ../../../kern/subr_witness.c:669' > and 'Duplicate free of item 0xc3895cc0 from zone 0xc0ea63c0(VMSPACE)' The 'Duplicate free' can be caused by a race between swapout_procs() and kern_exit()+wait1(). The enclosed patch might help. Disabling swapping (sysctl vm.swap_enabled=0) can also help. - Tor Egge ----Next_Part(Sun_Nov_10_18:59:46_2002_809)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=foodiff2 Index: sys/kern/kern_exit.c =================================================================== RCS file: /home/ncvs/src/sys/kern/kern_exit.c,v retrieving revision 1.184 diff -u -r1.184 kern_exit.c --- sys/kern/kern_exit.c 15 Oct 2002 00:14:32 -0000 1.184 +++ sys/kern/kern_exit.c 10 Nov 2002 17:58:39 -0000 @@ -285,7 +285,7 @@ * Can't free the entire vmspace as the kernel stack * may be mapped within that space also. */ - if (--vm->vm_refcnt == 0) { + if (vm->vm_refcnt == 1) { if (vm->vm_shm) shmexit(p); pmap_remove_pages(vmspace_pmap(vm), vm_map_min(&vm->vm_map), Index: sys/vm/vm_map.c =================================================================== RCS file: /home/ncvs/src/sys/vm/vm_map.c,v retrieving revision 1.271 diff -u -r1.271 vm_map.c --- sys/vm/vm_map.c 9 Nov 2002 21:26:49 -0000 1.271 +++ sys/vm/vm_map.c 10 Nov 2002 17:59:40 -0000 @@ -314,11 +317,9 @@ struct vmspace *vm; GIANT_REQUIRED; - if (p == p->p_vmspace->vm_freer) { - vm = p->p_vmspace; - p->p_vmspace = NULL; - vmspace_dofree(vm); - } + vm = p->p_vmspace; + p->p_vmspace = NULL; + vmspace_free(vm); } /* ----Next_Part(Sun_Nov_10_18:59:46_2002_809)---- 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?20021110190335E.tegge>