Module Name: src Committed By: mrg Date: Thu Jun 17 03:13:58 UTC 2010
Modified Files: src/sys/uvm: uvm_pglist.c Log Message: disable some DEBUG code uvm_pglist_add() that has severe performance problems with large mappings. i've seen my system hang for a total of 45 seconds when radeondrm is opened by X11, and it is the checks in this function that take so long. To generate a diff of this commit: cvs rdiff -u -r1.45 -r1.46 src/sys/uvm/uvm_pglist.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/uvm/uvm_pglist.c diff -u src/sys/uvm/uvm_pglist.c:1.45 src/sys/uvm/uvm_pglist.c:1.46 --- src/sys/uvm/uvm_pglist.c:1.45 Tue Mar 10 03:27:24 2009 +++ src/sys/uvm/uvm_pglist.c Thu Jun 17 03:13:58 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: uvm_pglist.c,v 1.45 2009/03/10 03:27:24 nonaka Exp $ */ +/* $NetBSD: uvm_pglist.c,v 1.46 2010/06/17 03:13:58 mrg Exp $ */ /*- * Copyright (c) 1997 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: uvm_pglist.c,v 1.45 2009/03/10 03:27:24 nonaka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uvm_pglist.c,v 1.46 2010/06/17 03:13:58 mrg Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -82,7 +82,7 @@ uvm_pglist_add(struct vm_page *pg, struct pglist *rlist) { int free_list, color, pgflidx; -#ifdef DEBUG +#ifdef NOT_DEBUG struct vm_page *tp; #endif @@ -95,7 +95,7 @@ free_list = uvm_page_lookup_freelist(pg); color = VM_PGCOLOR_BUCKET(pg); pgflidx = (pg->flags & PG_ZERO) ? PGFL_ZEROS : PGFL_UNKNOWN; -#ifdef DEBUG +#ifdef NOT_DEBUG for (tp = LIST_FIRST(&uvm.page_free[ free_list].pgfl_buckets[color].pgfl_queues[pgflidx]); tp != NULL;