From owner-freebsd-hackers@FreeBSD.ORG Sun May 20 22:48:58 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D15C3106564A; Sun, 20 May 2012 22:48:58 +0000 (UTC) (envelope-from zec@fer.hr) Received: from mail.zvne.fer.hr (slavko2.zvne.fer.hr [161.53.66.5]) by mx1.freebsd.org (Postfix) with ESMTP id 587798FC18; Sun, 20 May 2012 22:48:57 +0000 (UTC) Received: from munja.zvne.fer.hr (161.53.66.248) by mail.zvne.fer.hr (161.53.66.5) with Microsoft SMTP Server id 14.2.298.4; Mon, 21 May 2012 00:48:55 +0200 Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Mon, 21 May 2012 00:48:23 +0200 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Mon, 21 May 2012 00:48:22 +0200 From: Marko Zec To: Alan Cox Date: Mon, 21 May 2012 00:48:16 +0200 User-Agent: KMail/1.9.10 References: <201205200901.32613.zec@fer.hr> <201205201643.01194.zec@fer.hr> <4FB92B22.5020304@rice.edu> In-Reply-To: <4FB92B22.5020304@rice.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-ID: <201205210048.16877.zec@fer.hr> X-OriginalArrivalTime: 20 May 2012 22:48:22.0826 (UTC) FILETIME=[A8E988A0:01CD36DA] 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 22:48:58 -0000 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... Thanks, Marko