From owner-cvs-all@FreeBSD.ORG Fri Apr 4 18:41:12 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E95E1106566B; Fri, 4 Apr 2008 18:41:12 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D2CFC8FC1C; Fri, 4 Apr 2008 18:41:12 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m34IfCph094820; Fri, 4 Apr 2008 18:41:12 GMT (envelope-from alc@repoman.freebsd.org) Received: (from alc@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m34IfCmE094819; Fri, 4 Apr 2008 18:41:12 GMT (envelope-from alc) Message-Id: <200804041841.m34IfCmE094819@repoman.freebsd.org> From: Alan Cox Date: Fri, 4 Apr 2008 18:41:12 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/i386/i386 pmap.c src/sys/kern kern_mbuf.c src/sys/vm uma.h uma_core.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Apr 2008 18:41:13 -0000 alc 2008-04-04 18:41:12 UTC FreeBSD src repository Modified files: sys/i386/i386 pmap.c sys/kern kern_mbuf.c sys/vm uma.h uma_core.c Log: Reintroduce UMA_SLAB_KMAP; however, change its spelling to UMA_SLAB_KERNEL for consistency with its sibling UMA_SLAB_KMEM. (UMA_SLAB_KMAP met its original demise in revision 1.30 of vm/uma_core.c.) UMA_SLAB_KERNEL is now required by the jumbo frame allocators. Without it, UMA cannot correctly return pages from the jumbo frame zones to the VM system because it resets the pages' object field to NULL instead of the kernel object. In more detail, the jumbo frame zones are created with the option UMA_ZONE_REFCNT. This causes UMA to overwrite the pages' object field with the address of the slab. However, when UMA wants to release these pages, it doesn't know how to restore the object field, so it sets it to NULL. This change teaches UMA how to reset the object field to the kernel object. Crashes reported by: kris Fix tested by: kris Fix discussed with: jeff MFC after: 6 weeks Revision Changes Path 1.614 +3 -1 src/sys/i386/i386/pmap.c 1.40 +2 -1 src/sys/kern/kern_mbuf.c 1.32 +1 -0 src/sys/vm/uma.h 1.149 +4 -0 src/sys/vm/uma_core.c