kern/114654: [patch] make vm_page_max_wired tunnable at run time
Eugene Grosbein
eugen at grosbein.pp.ru
Tue Jul 17 11:50:04 UTC 2007
>Number: 114654
>Category: kern
>Synopsis: [patch] make vm_page_max_wired tunnable at run time
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Tue Jul 17 11:50:02 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator: Eugene Grosbein
>Release: FreeBSD 6.2-STABLE i386
>Organization:
Svyaz-Service JSC
>Environment:
System: FreeBSD grosbein.pp.ru 6.2-STABLE FreeBSD 6.2-STABLE #0: Tue Jul 17 19:23:09 KRAST 2007 eu at grosbein.pp.ru:/usr/obj/usr/local/src/sys/DADV i386
>Description:
The kernel limits number of pages mlock()'ed by a process
to one third of vm.stats.vm.v_free_count to prevent damage
from broken processes. However, sometimes there is a need to allow
a process to mlock() more than half of free pages pool,
one example is /usr/ports/sysutils/memtest.
Let's make vm_page_max_wired tunnable at run time.
>How-To-Repeat:
I've installed second 1Gb memory module to my system and
want to quick-check (most part of) it. I've raised kern.maxdsize
but the kernel still does not allow memtest to mlock() so many pages.
Yes, I know the best method is to boot the system from floppy
of CD with special memory tester. But I'd glad to see this
way allowed too.
>Fix:
Running kernel with the following patch, I may increase
sysctl vm.max_wired value upto, say, 1.5Gb
for the system having 2Gb RAM and still run memtest from X.org's
xterm session (top shows "1802M Free" here).
--- sys/vm/vm_pageout.c.orig Tue Jul 17 19:18:56 2007
+++ sys/vm/vm_pageout.c Tue Jul 17 19:33:52 2007
@@ -203,6 +203,8 @@
int vm_pageout_page_count = VM_PAGEOUT_PAGE_COUNT;
int vm_page_max_wired; /* XXX max # of wired pages system-wide */
+SYSCTL_INT(_vm, OID_AUTO, max_wired,
+ CTLFLAG_RW, &vm_page_max_wired, 0, "System-wide limit to wired page count");
#if !defined(NO_SWAPPING)
static void vm_pageout_map_deactivate_pages(vm_map_t, long);
Eugene Grosbein
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list