From owner-cvs-all@FreeBSD.ORG Sat Dec 29 20:19:34 2007 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19EA216A418; Sat, 29 Dec 2007 20:19:34 +0000 (UTC) (envelope-from alc@cs.rice.edu) Received: from mail.cs.rice.edu (mail.cs.rice.edu [128.42.1.31]) by mx1.freebsd.org (Postfix) with ESMTP id D5E2913C4D3; Sat, 29 Dec 2007 20:19:33 +0000 (UTC) (envelope-from alc@cs.rice.edu) Received: from mail.cs.rice.edu (localhost.localdomain [127.0.0.1]) by mail.cs.rice.edu (Postfix) with ESMTP id 2DD8A2C2F85; Sat, 29 Dec 2007 14:02:35 -0600 (CST) X-Virus-Scanned: by amavis-2.4.0 at mail.cs.rice.edu Received: from mail.cs.rice.edu ([127.0.0.1]) by mail.cs.rice.edu (mail.cs.rice.edu [127.0.0.1]) (amavisd-new, port 10024) with LMTP id tGYnFW0F9Ho6; Sat, 29 Dec 2007 14:02:34 -0600 (CST) Received: from [216.63.78.18] (adsl-216-63-78-18.dsl.hstntx.swbell.net [216.63.78.18]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.cs.rice.edu (Postfix) with ESMTP id 529992C2F7A; Sat, 29 Dec 2007 14:02:34 -0600 (CST) Message-ID: <4776A7D9.7050002@cs.rice.edu> Date: Sat, 29 Dec 2007 14:02:33 -0600 From: Alan Cox User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.13) Gecko/20070805 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Alan Cox References: <200712291953.lBTJr52D090543@repoman.freebsd.org> In-Reply-To: <200712291953.lBTJr52D090543@repoman.freebsd.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/conf files src/sys/kern kern_exec.c src/sys/vm vm_fault.c vm_object.c vm_page.c vm_reserv.c vm_reserv.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 29 Dec 2007 20:19:34 -0000 Alan Cox wrote: >alc 2007-12-29 19:53:04 UTC > > FreeBSD src repository > > Modified files: > sys/conf files > sys/kern kern_exec.c > sys/vm vm_fault.c vm_object.c vm_page.c > Added files: > sys/vm vm_reserv.c vm_reserv.h > Log: > Add the superpage reservation system. This is "part 2 of 2" of the > machine-independent support for superpages. (The earlier part was > the rewrite of the physical memory allocator.) The remainder of the > code required for superpages support is machine-dependent and will > be added to the various pmap implementations at a later date. > > Initially, I am only supporting one large page size per architecture. > Moreover, I am only enabling the reservation system on amd64. (In > an emergency, it can be disabled by setting VM_NRESERVLEVELS to 0 > in amd64/include/vmparam.h or your kernel configuration file.) > > Revision Changes Path > 1.1261 +1 -0 src/sys/conf/files > 1.313 +8 -1 src/sys/kern/kern_exec.c > 1.238 +14 -1 src/sys/vm/vm_fault.c > 1.388 +45 -0 src/sys/vm/vm_object.c > 1.365 +50 -5 src/sys/vm/vm_page.c > 1.1 +668 -0 src/sys/vm/vm_reserv.c (new) > 1.1 +59 -0 src/sys/vm/vm_reserv.h (new) > > It's worth commenting that the reservation system by itself (without actual superpage mappings in the page table and TLB) reduces the time spent by the kernel managing memory because it coarsens the granularity at which some operations are performed. For example, I see about a 4-5% reduction in system time for "buildworld" on both a Phenom and a Core2 Duo. Alan