From owner-svn-src-head@FreeBSD.ORG Sat Jul 2 23:42:05 2011 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C7291065675; Sat, 2 Jul 2011 23:42:05 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 630398FC0A; Sat, 2 Jul 2011 23:42:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p62Ng5KS060410; Sat, 2 Jul 2011 23:42:05 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p62Ng5FJ060404; Sat, 2 Jul 2011 23:42:05 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201107022342.p62Ng5FJ060404@svn.freebsd.org> From: Alan Cox Date: Sat, 2 Jul 2011 23:42:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r223732 - in head/sys: amd64/amd64 i386/i386 i386/xen ia64/ia64 mips/mips X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jul 2011 23:42:05 -0000 Author: alc Date: Sat Jul 2 23:42:04 2011 New Revision: 223732 URL: http://svn.freebsd.org/changeset/base/223732 Log: When iterating over a paging queue, explicitly check for PG_MARKER, instead of relying on zeroed memory being interpreted as an empty PV list. Reviewed by: kib Modified: head/sys/amd64/amd64/pmap.c head/sys/i386/i386/pmap.c head/sys/i386/xen/pmap.c head/sys/ia64/ia64/pmap.c head/sys/mips/mips/pmap.c Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Sat Jul 2 23:41:11 2011 (r223731) +++ head/sys/amd64/amd64/pmap.c Sat Jul 2 23:42:04 2011 (r223732) @@ -2104,7 +2104,7 @@ pmap_collect(pmap_t locked_pmap, struct vm_page_t m, free; TAILQ_FOREACH(m, &vpq->pl, pageq) { - if (m->hold_count || m->busy) + if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy) continue; TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { va = pv->pv_va; Modified: head/sys/i386/i386/pmap.c ============================================================================== --- head/sys/i386/i386/pmap.c Sat Jul 2 23:41:11 2011 (r223731) +++ head/sys/i386/i386/pmap.c Sat Jul 2 23:42:04 2011 (r223732) @@ -2188,7 +2188,7 @@ pmap_collect(pmap_t locked_pmap, struct sched_pin(); TAILQ_FOREACH(m, &vpq->pl, pageq) { - if (m->hold_count || m->busy) + if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy) continue; TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { va = pv->pv_va; Modified: head/sys/i386/xen/pmap.c ============================================================================== --- head/sys/i386/xen/pmap.c Sat Jul 2 23:41:11 2011 (r223731) +++ head/sys/i386/xen/pmap.c Sat Jul 2 23:42:04 2011 (r223732) @@ -2012,7 +2012,7 @@ pmap_collect(pmap_t locked_pmap, struct sched_pin(); TAILQ_FOREACH(m, &vpq->pl, pageq) { - if (m->hold_count || m->busy) + if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy) continue; TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { va = pv->pv_va; Modified: head/sys/ia64/ia64/pmap.c ============================================================================== --- head/sys/ia64/ia64/pmap.c Sat Jul 2 23:41:11 2011 (r223731) +++ head/sys/ia64/ia64/pmap.c Sat Jul 2 23:42:04 2011 (r223732) @@ -774,7 +774,7 @@ get_pv_entry(pmap_t locked_pmap) vpq = &vm_page_queues[PQ_INACTIVE]; retry: TAILQ_FOREACH(m, &vpq->pl, pageq) { - if (m->hold_count || m->busy) + if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy) continue; TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { va = pv->pv_va; Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Sat Jul 2 23:41:11 2011 (r223731) +++ head/sys/mips/mips/pmap.c Sat Jul 2 23:42:04 2011 (r223732) @@ -1414,7 +1414,7 @@ get_pv_entry(pmap_t locked_pmap) vpq = &vm_page_queues[PQ_INACTIVE]; retry: TAILQ_FOREACH(m, &vpq->pl, pageq) { - if (m->hold_count || m->busy) + if ((m->flags & PG_MARKER) != 0 || m->hold_count || m->busy) continue; TAILQ_FOREACH_SAFE(pv, &m->md.pv_list, pv_list, next_pv) { va = pv->pv_va;