From owner-svn-src-user@FreeBSD.ORG Sat May 24 13:25:07 2014 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3CAB9AE6; Sat, 24 May 2014 13:25:07 +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 110512B96; Sat, 24 May 2014 13:25:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s4ODP6EF095687; Sat, 24 May 2014 13:25:06 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s4ODP6tq095685; Sat, 24 May 2014 13:25:06 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201405241325.s4ODP6tq095685@svn.freebsd.org> From: Attilio Rao Date: Sat, 24 May 2014 13:25:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r266616 - user/attilio/rm_vmobj_cache/sys/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: Sat, 24 May 2014 13:25:07 -0000 Author: attilio Date: Sat May 24 13:25:06 2014 New Revision: 266616 URL: http://svnweb.freebsd.org/changeset/base/266616 Log: - Assert that VM_ALLOC_WIRED must be provided for unmanaged pages allocation - Document wiring mandatory for unamanged pages Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_page.c user/attilio/rm_vmobj_cache/sys/vm/vm_page.h Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_page.c ============================================================================== --- user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Sat May 24 13:00:49 2014 (r266615) +++ user/attilio/rm_vmobj_cache/sys/vm/vm_page.c Sat May 24 13:25:06 2014 (r266616) @@ -1450,7 +1450,7 @@ vm_page_alloc(vm_object_t object, vm_pin struct vnode *vp = NULL; vm_object_t m_object; vm_page_t m, mpred; - int flags, req_class; + int flags, req_class, unmanaged; mpred = 0; /* XXX: pacify gcc */ KASSERT((object != NULL) == ((req & VM_ALLOC_NOOBJ) == 0) && @@ -1462,6 +1462,10 @@ vm_page_alloc(vm_object_t object, vm_pin if (object != NULL) VM_OBJECT_ASSERT_WLOCKED(object); + unmanaged = (object == NULL || (object->flags & OBJ_UNMANAGED) != 0); + KASSERT(unmanaged == 0 || (req & VM_ALLOC_WIRED) != 0, + ("vm_page_alloc: unamanaged but unwired request req(%x)", req)); + req_class = req & VM_ALLOC_CLASS_MASK; /* @@ -1585,8 +1589,7 @@ vm_page_alloc(vm_object_t object, vm_pin flags |= PG_NODUMP; m->flags = flags; m->aflags = 0; - m->oflags = object == NULL || (object->flags & OBJ_UNMANAGED) != 0 ? - VPO_UNMANAGED : 0; + m->oflags = (unmanaged != 0) ? VPO_UNMANAGED : 0; m->busy_lock = VPB_UNBUSIED; if ((req & (VM_ALLOC_NOBUSY | VM_ALLOC_NOOBJ | VM_ALLOC_SBUSY)) == 0) m->busy_lock = VPB_SINGLE_EXCLUSIVER; Modified: user/attilio/rm_vmobj_cache/sys/vm/vm_page.h ============================================================================== --- user/attilio/rm_vmobj_cache/sys/vm/vm_page.h Sat May 24 13:00:49 2014 (r266615) +++ user/attilio/rm_vmobj_cache/sys/vm/vm_page.h Sat May 24 13:25:06 2014 (r266616) @@ -171,6 +171,7 @@ struct vm_page { * under PV management cannot be paged out via the * object/vm_page_t because there is no knowledge of their pte * mappings, and such pages are also not on any PQ queue. + * VPO_UNMANAGED pages are also mandatory wired. * */ #define VPO_UNUSED01 0x01 /* --available-- */