From owner-freebsd-stable@FreeBSD.ORG Mon Mar 5 19:17:34 2007 Return-Path: X-Original-To: stable@freebsd.org Delivered-To: freebsd-stable@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id D14D316A403 for ; Mon, 5 Mar 2007 19:17:34 +0000 (UTC) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (comp.chem.msu.su [158.250.32.97]) by mx1.freebsd.org (Postfix) with ESMTP id C1E9013C4A7 for ; Mon, 5 Mar 2007 19:17:33 +0000 (UTC) (envelope-from yar@comp.chem.msu.su) Received: from comp.chem.msu.su (localhost [127.0.0.1]) by comp.chem.msu.su (8.13.4/8.13.4) with ESMTP id l25JHFDQ072191; Mon, 5 Mar 2007 22:17:15 +0300 (MSK) (envelope-from yar@comp.chem.msu.su) Received: (from yar@localhost) by comp.chem.msu.su (8.13.4/8.13.4/Submit) id l25JHEqh072190; Mon, 5 Mar 2007 22:17:15 +0300 (MSK) (envelope-from yar) Date: Mon, 5 Mar 2007 22:17:14 +0300 From: Yar Tikhiy To: Mikhail Teterin Message-ID: <20070305191714.GF57253@comp.chem.msu.su> References: <20070227205351.GA72597@ravenloft.kiev.ua> <20070305035945.GA71660@xor.obsecurity.org> <20070305132350.GB57253@comp.chem.msu.su> <200703051314.29902@aldan> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <200703051314.29902@aldan> User-Agent: Mutt/1.5.9i Cc: stable@freebsd.org, Alex Kozlov , Kris Kennaway Subject: Re: panic: kmem_malloc(16384): kmem_map too small: md-mounted /tmp filled up X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Mar 2007 19:17:34 -0000 On Mon, Mar 05, 2007 at 01:14:29PM -0500, Mikhail Teterin wrote: > On Monday 05 March 2007 08:23, Yar Tikhiy wrote: > = > How will it break them? šswap backing only touches swap if there is > = > memory pressure, i.e. precisely the situation in which malloc backing > = > will panic. > = > = I forgot that in BSD swap wouldn't be allocated in advance to its > = consumers. šThen removing the -M flag and making swap backing the > = default is a very sound choice. šThank you for correcting me. > > Yar, would you change the man-page's advice and the default, then? Yes, I'll be glad to if no objections arise until I finish updating my CURRENT machine, i.e., tomorrow. :-) > Someone still needs to look into the panic... Who would that be? Obviously, Mr(s). Someone. :-) The md case exposes a quite tangled nature of the problem. Funnily enough, kernel malloc() cannot just fail in the case because it must not fail if called with M_WAITOK. This means that the system has quite a rough choice: - put the requesting thread to sleep forever; - grow kmem_map, eventually sacrifice all RAM to the greedy thread and die sooner or later; - panic immediately. If all malloc() callers in the kernel were ready to deal with allocation failure, the system could just tell the greedy thread to buzz off. But too many kernel parts depend on malloc(M_WAITOK) never failing. Perhaps it's the root of the problem. -- Yar