From owner-freebsd-stable@FreeBSD.ORG Tue Dec 20 14:02:03 2011 Return-Path: Delivered-To: freebsd-stable@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18C301065675 for ; Tue, 20 Dec 2011 14:02:03 +0000 (UTC) (envelope-from ganael.laplanche@martymac.org) Received: from data.galacsys.net (webmail.galacsys.net [217.24.81.215]) by mx1.freebsd.org (Postfix) with ESMTP id BC65E8FC28 for ; Tue, 20 Dec 2011 14:02:02 +0000 (UTC) Received: from martymac.org (webmail.galacsys.net [217.24.81.215]) by data.galacsys.net (Postfix) with ESMTP id 7E0021713A5; Tue, 20 Dec 2011 15:02:01 +0100 (CET) From: "Ganael LAPLANCHE" To: Andriy Gapon , Tijl Coosemans X-Openwebmail-Date: Tue, 20 Dec 2011 16:02:01 +0200 Message-Id: <20111220134716.M62917@martymac.org> In-Reply-To: <4EF05F27.8030902@FreeBSD.org> References: <20111220080437.M63044@martymac.org> <4EF05F27.8030902@FreeBSD.org> X-Mailer: Open WebMail 2.01 20030425 X-OriginatingIP: 157.99.64.43 (ganael.laplanche@martymac.org) MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Date: Tue, 20 Dec 2011 15:02:01 +0100 (CET) Cc: freebsd-stable@FreeBSD.org Subject: Re: Using mmap(2) with a hint address 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: Tue, 20 Dec 2011 14:02:03 -0000 Hi Andriy, Hi Tijl, On Tue, 20 Dec 2011 12:10:47 +0200, Andriy Gapon wrote > Can the following code explain what you are seeing? > [...] Yes, for sure. I had seen this part of the code but, to be honest, had not understood the meaning of this computation. On Tue, 20 Dec 2011 11:10:26 +0100, Tijl Coosemans wrote > FreeBSD reserves quite a bit of space for brk(2) style heap. Your > program will work if you use higher addresses. > > You can also shrink the reserved space either system wide by setting > kern.maxdsiz sysctl in /boot/loader.conf, or in your program > by setting the maximum RLIMIT_DATA with setrlimit(2). Thanks for the explanation! Reducing reserved space for data segment seems to work. But there is still something I don't understand : on the Linux machine where I ran my test program, the current RLIMIT_DATA is set to 0xffffffff/0xffffffff and I can manage to mmap at address 0x20000000. If I set the same limit on FreeBSD, I won't get the mapping at 0x20000000. So, there *is* a difference of behaviour between the two systems, but I don't understand why. Thanks to both of you, Best regards, -- Ganael LAPLANCHE http://www.martymac.org | http://contribs.martymac.org FreeBSD: martymac , http://www.FreeBSD.org