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;