From owner-freebsd-hackers@FreeBSD.ORG Sun May 20 23:12:04 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 67B04106566B; Sun, 20 May 2012 23:12:04 +0000 (UTC) (envelope-from alc@rice.edu) Received: from mh11.mail.rice.edu (mh11.mail.rice.edu [128.42.199.30]) by mx1.freebsd.org (Postfix) with ESMTP id 381728FC0A; Sun, 20 May 2012 23:12:04 +0000 (UTC) Received: from mh11.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh11.mail.rice.edu (Postfix) with ESMTP id 456854C01A3; Sun, 20 May 2012 18:12:03 -0500 (CDT) Received: from mh11.mail.rice.edu (localhost.localdomain [127.0.0.1]) by mh11.mail.rice.edu (Postfix) with ESMTP id 43DD54C01A0; Sun, 20 May 2012 18:12:03 -0500 (CDT) X-Virus-Scanned: by amavis-2.7.0 at mh11.mail.rice.edu, auth channel Received: from mh11.mail.rice.edu ([127.0.0.1]) by mh11.mail.rice.edu (mh11.mail.rice.edu [127.0.0.1]) (amavis, port 10026) with ESMTP id p5KMCTUttkT3; Sun, 20 May 2012 18:12:03 -0500 (CDT) Received: from adsl-216-63-78-18.dsl.hstntx.swbell.net (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) (Authenticated sender: alc) by mh11.mail.rice.edu (Postfix) with ESMTPSA id C51E34C0199; Sun, 20 May 2012 18:12:02 -0500 (CDT) Message-ID: <4FB97A41.70405@rice.edu> Date: Sun, 20 May 2012 18:12:01 -0500 From: Alan Cox User-Agent: Mozilla/5.0 (X11; FreeBSD i386; rv:8.0) Gecko/20111113 Thunderbird/8.0 MIME-Version: 1.0 To: Marko Zec References: <201205200901.32613.zec@fer.hr> <201205201643.01194.zec@fer.hr> <4FB92B22.5020304@rice.edu> <201205210048.16877.zec@fer.hr> In-Reply-To: <201205210048.16877.zec@fer.hr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: alc@freebsd.org, freebsd-hackers@freebsd.org, freebsd-amd64@freebsd.org Subject: Re: superpages and kmem on amd64 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 20 May 2012 23:12:04 -0000 On 05/20/2012 17:48, Marko Zec wrote: > On Sunday 20 May 2012 19:34:26 Alan Cox wrote: > ... >>> In any case, I wish to be certain that a particular kmem virtual address >>> range is mapped to superpages - how can I enforce that at malloc time, >>> and / or find out later if I really got my kmem mapped to superpages? >>> Perhaps vm_map_lookup() could provide more info, but I'm wondering if >>> someone already wrote a wrapper function for that, which takes only the >>> base virtual address as a single argument? >> Try using pmap_mincore() to verify that the mappings are superpages. > flags = pmap_mincore(vmspace_pmap(curthread->td_proc->p_vmspace), > (vm_offset_t) addr)); > > OK, that works, and now I know my kmem chunk is on a superpage, horray!!! > Thanks! > >>> BTW, apparently malloc(size, M_TEMP, M_NOWAIT) requests fail for size> >>> 1G, even at boot time. Any ideas how to circumvent that (8.3-STABLE, >>> amd64, 4G physical RAM)? >> I suspect that you need to increase the size of your kmem map. > Huh any hints how should I achieve that? In desperation I placed > > vm.kmem_size=8G > > in /boot/loader.conf and got this: > > vm.kmem_map_free: 8123924480 > vm.kmem_map_size: 8364032 > vm.kmem_size_scale: 1 > vm.kmem_size_max: 329853485875 > vm.kmem_size_min: 0 > vm.kmem_size: 8132288512 > > but malloc(2G) still fails... Here is at least one reason why it fails: void * uma_large_malloc(int size, int wait) Note the type of "size". Can you malloc 1GB?