From owner-freebsd-stable Tue Dec 5 22:51:42 2000 From owner-freebsd-stable@FreeBSD.ORG Tue Dec 5 22:51:38 2000 Return-Path: <owner-freebsd-stable@FreeBSD.ORG> Delivered-To: freebsd-stable@freebsd.org Received: from earth.backplane.com (placeholder-dcat-1076843399.broadbandoffice.net [64.47.83.135]) by hub.freebsd.org (Postfix) with ESMTP id 2FBA137B400 for <stable@freebsd.org>; Tue, 5 Dec 2000 22:51:38 -0800 (PST) Received: (from dillon@localhost) by earth.backplane.com (8.11.1/8.9.3) id eB66p0c91421; Tue, 5 Dec 2000 22:51:00 -0800 (PST) (envelope-from dillon) Date: Tue, 5 Dec 2000 22:51:00 -0800 (PST) From: Matt Dillon <dillon@earth.backplane.com> Message-Id: <200012060651.eB66p0c91421@earth.backplane.com> To: Barry Lustig <barry@lustig.com> Cc: stable@freebsd.org, Garance A Drosihn <drosih@rpi.edu> Subject: Re: VMware hanging References: <20001118231633.A85206@evilcode.com> <200011190635.eAJ6ZRS94516@grumpy.dyndns.org> <20001118230305.A83848@evilcode.com> <20001119151138.A7434@bsdvm.jtjang.idv.tw> <200011192202.eAJM2cG03593@billy-club.village.org> <200011192239.eAJMdDa90818@earth.backplane.com> <200011192308.eAJN8q714360@whizzo.transsys.com> <200011192324.eAJNO1891133@earth.backplane.com> <20001205232913.15317.qmail@devious.lustig.com> <200012060019.eB60JgJ88193@earth.backplane.com> <20001206023936.15587.qmail@devious.lustig.com> <200012060324.eB63OvG90385@earth.backplane.com> <20001206051514.15819.qmail@devious.lustig.com> Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Ok, your system appears to be locked up in the buffer cache code. Something (probably vmware) created over 1800 dirty buffers. The high water mark is less then 500. (kgdb) print numdirtybuffers $8 = 0x71f <--------- oops (kgdb) print hidirtybuffers $9 = 0x1e7 I believe what is going on here is that some process is writing data through the filesystem and bypassing the low-memory bwillwrite() code. I'm going to hazzard a guess that it could be writev(), which missed my bwillwrite() patch. Please try the patch below. If it isn't this it's got to be something similar, somewhere. -Matt Index: kern/sys_generic.c =================================================================== RCS file: /home/ncvs/src/sys/kern/sys_generic.c,v retrieving revision 1.55.2.8 diff -u -r1.55.2.8 sys_generic.c --- kern/sys_generic.c 2000/11/26 02:30:04 1.55.2.8 +++ kern/sys_generic.c 2000/12/06 06:49:33 @@ -494,6 +494,7 @@ } #endif cnt = auio.uio_resid; + bwillwrite(); if ((error = fo_write(fp, &auio, fp->f_cred, 0, p))) { if (auio.uio_resid != cnt && (error == ERESTART || error == EINTR || error == EWOULDBLOCK)) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message