From owner-cvs-src@FreeBSD.ORG Thu Jan 25 10:20:48 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8371216A400; Thu, 25 Jan 2007 10:20:48 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.sick.ru (cell.sick.ru [217.72.144.68]) by mx1.freebsd.org (Postfix) with ESMTP id 07FBD13C4A5; Thu, 25 Jan 2007 10:20:47 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.sick.ru (glebius@localhost [127.0.0.1]) by cell.sick.ru (8.13.4/8.13.3) with ESMTP id l0PAKjNT006209 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 25 Jan 2007 13:20:45 +0300 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.sick.ru (8.13.4/8.13.1/Submit) id l0PAKjsg006208; Thu, 25 Jan 2007 13:20:45 +0300 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.sick.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 25 Jan 2007 13:20:45 +0300 From: Gleb Smirnoff To: Mohan Srinivasan Message-ID: <20070125102045.GJ4485@FreeBSD.org> References: <200701242249.l0OMnCfj018178@repoman.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline In-Reply-To: <200701242249.l0OMnCfj018178@repoman.freebsd.org> User-Agent: Mutt/1.5.6i Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/vm uma_core.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jan 2007 10:20:48 -0000 Mohan, On Wed, Jan 24, 2007 at 10:49:12PM +0000, Mohan Srinivasan wrote: M> mohans 2007-01-24 22:49:12 UTC M> M> FreeBSD src repository M> M> Modified files: M> sys/vm uma_core.c M> Log: M> Fix for a bug where only one process (of multiple) blocked on M> maxpages on a zone is woken up, with the rest never being woken up as M> a result of the ZFLAG_FULL flag being cleared. Wakeup all such blocked M> procsses instead. This change introduces a thundering herd, but since M> this should be relatively infrequent, optimizing this (by introducing M> a count of blocked processes, for example) may be premature. M> M> Reviewd by: ups@ I hope this should fix some problems, we are observing. Thanks for working on this! But I wonder, can the following happen. Under high memory pressure, a zone with a limit is exhausted and several processes are waiting for memory in this zone. Then a few items are freed, and they are freed to the per cpu cache, not to the zone cache. Thus, the wakeup() isn't issued, and waiting processes keep waiting forever. Then, some new processes can allocate an item from the per cpu cache and free it back to the per cpu cache, and again waiting processes won't be waked. I've observed and sshd sleeping on "zonelim", while I was successfully working via another ssh session. -- Totus tuus, Glebius. GLEBIUS-RIPN GLEB-RIPE