From owner-cvs-src@FreeBSD.ORG Wed Jul 30 20:39:52 2003 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2D31E37B401; Wed, 30 Jul 2003 20:39:52 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BE11E43F85; Wed, 30 Jul 2003 20:39:51 -0700 (PDT) (envelope-from bmilekic@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h6V3dp0U006125; Wed, 30 Jul 2003 20:39:51 -0700 (PDT) (envelope-from bmilekic@repoman.freebsd.org) Received: (from bmilekic@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h6V3dpH9006124; Wed, 30 Jul 2003 20:39:51 -0700 (PDT) Message-Id: <200307310339.h6V3dpH9006124@repoman.freebsd.org> From: Bosko Milekic Date: Wed, 30 Jul 2003 20:39:51 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/alpha/alpha pmap.c src/sys/amd64/amd64 pmap.c src/sys/i386/i386 pmap.c src/sys/ia64/ia64 pmap.c src/sys/powerpc/powerpc pmap.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 31 Jul 2003 03:39:52 -0000 bmilekic 2003/07/30 20:39:51 PDT FreeBSD src repository Modified files: sys/alpha/alpha pmap.c sys/amd64/amd64 pmap.c sys/i386/i386 pmap.c sys/ia64/ia64 pmap.c sys/powerpc/powerpc pmap.c Log: Make sure that when the PV ENTRY zone is created in pmap, that it's created not only with UMA_ZONE_VM but also with UMA_ZONE_NOFREE. In the i386 case in particular, the pmap code would hook a special page allocation routine that allocated from kernel_map and not kmem_map, and so when/if the pageout daemon drained the zones, it could actually push out slabs from the PV ENTRY zone but call UMA's default page_free, which resulted in pages allocated from kernel_map being freed to kmem_map; bad. kmem_free() ignores the return value of the vm_map_delete and just returns. I'm not sure what the exact repercussions could be, but it doesn't look good. In the PAE case on i386, we also set-up a zone in pmap, so be conservative for now and make that zone also ZONE_NOFREE and ZONE_VM. Do this for the pmap zones for the other archs too, although in some cases it may not be entirely necessarily. We'd rather be safe than sorry at this point. Perhaps all UMA_ZONE_VM zones should by default be also UMA_ZONE_NOFREE? May fix some of silby's crashes on the PV ENTRY zone. Revision Changes Path 1.132 +1 -1 src/sys/alpha/alpha/pmap.c 1.427 +1 -1 src/sys/amd64/amd64/pmap.c 1.420 +3 -2 src/sys/i386/i386/pmap.c 1.117 +2 -2 src/sys/ia64/ia64/pmap.c 1.62 +2 -2 src/sys/powerpc/powerpc/pmap.c