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.
This commit is contained in:
mrg 2010-06-17 03:13:58 +00:00
parent b6aa233709
commit 72ceb9b885

View File

@ -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 @@ static void
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 @@ uvm_pglist_add(struct vm_page *pg, struct pglist *rlist)
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;