From owner-cvs-src-old@FreeBSD.ORG Tue Jul 27 20:35:02 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32E8E1065686 for ; Tue, 27 Jul 2010 20:35:02 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 375DA8FC20 for ; Tue, 27 Jul 2010 20:35:00 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id o6RKZ0QZ008900 for ; Tue, 27 Jul 2010 20:35:00 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id o6RKZ0ch008899 for cvs-src-old@freebsd.org; Tue, 27 Jul 2010 20:35:00 GMT (envelope-from jhb@repoman.freebsd.org) Message-Id: <201007272035.o6RKZ0ch008899@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to jhb@repoman.freebsd.org using -f From: John Baldwin Date: Tue, 27 Jul 2010 20:33:50 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/amd64/include vmparam.h src/sys/arm/include vmparam.h src/sys/i386/include vmparam.h src/sys/ia64/include vmparam.h src/sys/mips/include vmparam.h src/sys/powerpc/include vmparam.h src/sys/sparc64/include vmparam.h src/sys/sun4v/include ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Jul 2010 20:35:02 -0000 jhb 2010-07-27 20:33:50 UTC FreeBSD src repository Modified files: sys/amd64/include vmparam.h sys/arm/include vmparam.h sys/i386/include vmparam.h sys/ia64/include vmparam.h sys/mips/include vmparam.h sys/powerpc/include vmparam.h sys/sparc64/include vmparam.h sys/sun4v/include vmparam.h sys/sys pcpu.h sys/vm vm_phys.c vm_phys.h Log: SVN rev 210550 on 2010-07-27 20:33:50Z by jhb Very rough first cut at NUMA support for the physical page allocator. For now it uses a very dumb first-touch allocation policy. This will change in the future. - Each architecture indicates the maximum number of supported memory domains via a new VM_NDOMAIN parameter in . - Each cpu now has a PCPU_GET(domain) member to indicate the memory domain a CPU belongs to. Domain values are dense and numbered from 0. - When a platform supports multiple domains, the default freelist (VM_FREELIST_DEFAULT) is split up into N freelists, one for each domain. The MD code is required to populate an array of mem_affinity structures. Each entry in the array defines a range of memory (start and end) and a domain for the range. Multiple entries may be present for a single domain. The list is terminated by an entry where all fields are zero. This array of structures is used to split up phys_avail[] regions that fall in VM_FREELIST_DEFAULT into per-domain freelists. - Each memory domain has a separate lookup-array of freelists that is used when fulfulling a physical memory allocation. Right now the per-domain freelists are listed in a round-robin order for each domain. In the future a table such as the ACPI SLIT table may be used to order the per-domain lookup lists based on the penalty for each memory domain relative to a specific domain. The lookup lists may be examined via a new vm.phys.lookup_lists sysctl. - The first-touch policy is implemented by using PCPU_GET(domain) to pick a lookup list when allocating memory. Reviewed by: alc Revision Changes Path 1.61 +7 -0 src/sys/amd64/include/vmparam.h 1.15 +7 -0 src/sys/arm/include/vmparam.h 1.50 +7 -0 src/sys/i386/include/vmparam.h 1.22 +7 -0 src/sys/ia64/include/vmparam.h 1.8 +7 -0 src/sys/mips/include/vmparam.h 1.19 +7 -0 src/sys/powerpc/include/vmparam.h 1.22 +7 -0 src/sys/sparc64/include/vmparam.h 1.8 +7 -0 src/sys/sun4v/include/vmparam.h 1.45 +1 -0 src/sys/sys/pcpu.h 1.15 +140 -7 src/sys/vm/vm_phys.c 1.8 +9 -0 src/sys/vm/vm_phys.h