From owner-cvs-all Sun Apr 7 19:42:59 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C1B9C37B41B; Sun, 7 Apr 2002 19:42:55 -0700 (PDT) Received: (from jeff@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g382gtH49929; Sun, 7 Apr 2002 19:42:55 -0700 (PDT) (envelope-from jeff) Message-Id: <200204080242.g382gtH49929@freefall.freebsd.org> From: Jeff Roberson Date: Sun, 7 Apr 2002 19:42:55 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/vm uma_core.c uma_int.h X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG jeff 2002/04/07 19:42:55 PDT Modified files: sys/vm uma_core.c uma_int.h Log: Rework most of the bucket allocation and free code so that per cpu locks are never held across blocking operations. Also, fix two other lock order reversals that were exposed by jhb's witness change. The free path previously had a bug that would cause it to skip the free bucket list in some cases and go straight to allocating a new bucket. This has been fixed as well. These changes made the bucket handling code much cleaner and removed quite a few lock operations. This should be marginally faster now. It is now possible to call malloc w/o Giant and avoid any witness warnings. This still isn't entirely safe though because malloc_type statistics are not protected by any lock. Revision Changes Path 1.7 +191 -214 src/sys/vm/uma_core.c 1.5 +2 -1 src/sys/vm/uma_int.h To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message