From owner-svn-src-user@FreeBSD.ORG Fri May 23 23:13:19 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id E293AC79; Fri, 23 May 2014 23:13:18 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id CFD252FB4; Fri, 23 May 2014 23:13:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s4NNDIqw010708; Fri, 23 May 2014 23:13:18 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s4NNDIvu010705; Fri, 23 May 2014 23:13:18 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201405232313.s4NNDIvu010705@svn.freebsd.org> From: Attilio Rao Date: Fri, 23 May 2014 23:13:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r266601 - in user/attilio/rm_vmobj_cache/sys: mips/mips vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 May 2014 23:13:19 -0000 Author: attilio Date: Fri May 23 23:13:17 2014 New Revision: 266601 URL: http://svnweb.freebsd.org/changeset/base/266601 Log: The pages returned by vm_page_alloc_freelist() will always be unmanaged, so also make them mandatory wired. Avoid to pass then VM_ALLOC_WIRED in the allocation request. Modified: user/attilio/rm_vmobj_cache/sys/mips/mips/pmap.c user/attilio/rm_vmobj_cache/sys/mips/mips/uma_machdep.c user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Modified: user/attilio/rm_vmobj_cache/sys/mips/mips/pmap.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/mips/mips/pmap.c Fri May 23 22:50:49 2014 (r266600) +++ user/attilio/rm_vmobj_cache/sys/mips/mips/pmap.c Fri May 23 23:13:17 2014 (r266601) @@ -1047,8 +1047,7 @@ pmap_alloc_direct_page(unsigned int inde { vm_page_t m; - m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, req | VM_ALLOC_WIRED | - VM_ALLOC_ZERO); + m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, req | VM_ALLOC_ZERO); if (m == NULL) return (NULL); @@ -1581,8 +1580,7 @@ retry: } } /* No free items, allocate another chunk */ - m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, VM_ALLOC_NORMAL | - VM_ALLOC_WIRED); + m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, VM_ALLOC_NORMAL); if (m == NULL) { if (try) { pv_entry_count--; Modified: user/attilio/rm_vmobj_cache/sys/mips/mips/uma_machdep.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/mips/mips/uma_machdep.c Fri May 23 22:50:49 2014 (r266600) +++ user/attilio/rm_vmobj_cache/sys/mips/mips/uma_machdep.c Fri May 23 23:13:17 2014 (r266601) @@ -49,7 +49,7 @@ uma_small_alloc(uma_zone_t zone, int byt void *va; *flags = UMA_SLAB_PRIV; - pflags = malloc2vm_flags(wait) | VM_ALLOC_WIRED; + pflags = malloc2vm_flags(wait); for (;;) { m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, pflags); Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_page.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Fri May 23 22:50:49 2014 (r266600) +++ user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Fri May 23 23:13:17 2014 (r266601) @@ -1883,6 +1883,8 @@ vm_page_alloc_init(vm_page_t m) * * The caller must always specify an allocation class. * + * The returned page will be wired. + * * allocation classes: * VM_ALLOC_NORMAL normal process request * VM_ALLOC_SYSTEM system *really* needs a page @@ -1891,7 +1893,6 @@ vm_page_alloc_init(vm_page_t m) * optional allocation flags: * VM_ALLOC_COUNT(number) the number of additional pages that the caller * intends to allocate - * VM_ALLOC_WIRED wire the allocated page * VM_ALLOC_ZERO prefer a zeroed page * * This routine may not sleep. @@ -1904,6 +1905,10 @@ vm_page_alloc_freelist(int flind, int re u_int flags; int req_class; + KASSERT((req & VM_ALLOC_WIRED) == 0, + ("vm_page_alloc_freelist: VM_ALLOC_WIRED passed in req (%x)", + req)); + req_class = req & VM_ALLOC_CLASS_MASK; /* @@ -1944,14 +1949,14 @@ vm_page_alloc_freelist(int flind, int re if ((req & VM_ALLOC_ZERO) != 0) flags = PG_ZERO; m->flags &= flags; - if ((req & VM_ALLOC_WIRED) != 0) { - /* - * The page lock is not required for wiring a page that does - * not belong to an object. - */ - atomic_add_int(&vm_cnt.v_wire_count, 1); - m->wire_count = 1; - } + + /* + * The page lock is not required for wiring a page that does + * not belong to an object. + */ + atomic_add_int(&vm_cnt.v_wire_count, 1); + m->wire_count = 1; + /* Unmanaged pages don't use "act_count". */ m->oflags = VPO_UNMANAGED; if (drop != NULL)