From owner-svn-src-head@FreeBSD.ORG Wed Sep 10 16:31:04 2014 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id A4896A9C; Wed, 10 Sep 2014 16:31:04 +0000 (UTC) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 56B501B63; Wed, 10 Sep 2014 16:31:04 +0000 (UTC) Received: from slw by zxy.spb.ru with local (Exim 4.82 (FreeBSD)) (envelope-from ) id 1XRknK-0009XD-QC; Wed, 10 Sep 2014 20:30:58 +0400 Date: Wed, 10 Sep 2014 20:30:58 +0400 From: Slawa Olhovchenkov To: John Baldwin Subject: Re: svn commit: r270759 - in head/sys: cddl/compat/opensolaris/kern cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs vm Message-ID: <20140910163058.GA7129@zxy.spb.ru> References: <201408281950.s7SJo90I047213@svn.freebsd.org> <16592453.QchvydMH6M@ralph.baldwin.cx> <20140909102517.GA22834@zxy.spb.ru> <1540004.aItdQtGhVh@ralph.baldwin.cx> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1540004.aItdQtGhVh@ralph.baldwin.cx> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-Mailman-Approved-At: Wed, 10 Sep 2014 19:08:22 +0000 Cc: src-committers@freebsd.org, Peter Wemm , Alan Cox , alc@freebsd.org, svn-src-all@freebsd.org, Dmitry Morozovsky , Andriy Gapon , Steven Hartland , "Matthew D. Fuller" , svn-src-head@freebsd.org, Nikolai Lifanov X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Sep 2014 16:31:04 -0000 On Wed, Sep 10, 2014 at 10:44:46AM -0400, John Baldwin wrote: > On Tuesday, September 09, 2014 02:25:18 PM Slawa Olhovchenkov wrote: > > On Mon, Sep 08, 2014 at 11:17:51AM -0400, John Baldwin wrote: > > > On Sunday, September 07, 2014 04:56:49 PM Slawa Olhovchenkov wrote: > > > > PS: very bad that 'data limit' don't anymore reflect application > > > > memory consumer. and very small application can adapt to 'no memory' > > > > from system. > > > > > > You can use RLIMIT_AS instead of RLIMIT_DATA. jemalloc can also be > > > configured to use sbrk(), though I think there's no way to prevent it > > > from falling back to mmap(MAP_ANON) if sbrk() fails. > > > > Formally you are right. Realy this is scorn. And I don't know how > > rightly. May be account in RLIMIT_DATA MAP_ANON? Anyway firefox don't > > run GC if malloc fail and this is bad. > > It was not intended as scorn, simply stating what options you have Hmm, this is may bad english and try to translate some russian sentence. I am try to do some tuning for satisfaction me. You proposal do some limiting, but don't delight. > available as alternatives to what you are asking for. The Firefox > behavior certainly seems unfortunate. :( However, using RLIMIT_AS > for that should work as the mmap() call malloc() makes will fail > causing malloc() to fail. However, you need RLIMIT_AS to be a bit > larger than what you would set RLIMIT_DATA to. > > As to having MAP_ANON honor RLIMIT_DATA, I'm not sure how well that > would work. I assume that was discussed as an option in the previous > threads on the topic of RLIMIT_DATA being useless with jemalloc. > I don't recall it though. Perhaps Alan can speak to whether or not > that is a good idea? What is sense of RLIMIT_DATA (as I understand)? This is signaling to application of memory consumption. Limiting RSS don't visible to application. Application must change behaviour when reach limit (run GC, switch algorithm and etc.). But mmap of big data file for scaning and processing don't touch this limit. Must be mmap of some temoprary file touch this limit? I don't know. Must be MAP_ANON touch this limit? I think yes. How to make distinction of mmap data file for processing and mmap temporary file for bypass this limit? I don't know. And again, most application don't handle correctly NULL of malloc(). I think this is depreciate of all. PS: question about jemalloc. How I can stop jemalloc to give back memory to OS for some application?