:> : David.
:>
:> With softupdates turned on? Softupdates has known problems when a
:> disk runs out of space.
:
:didn't kirk just fix that?
:
: __--_|\ Julian Elischer
I don't recall it being fixed.
The pmap panics are more telling. Softupdates has no known bugs that
cause a pmap panic, but nothing else in the system is currently known to
cause a pmap panic either except bad hardware.
But the fact that the bug is occuring in the same place -- during the
vm_pageout_page_stats() call, could indicate a bug rather then hardware.
The vm_pageout_page_stats() procedure is really scary -- it's doing a
bunch of things outside of splvm() that probably should be inside
splvm(), like checking to see if a page is deactivateable and then
only entering splvm() to deactivate it (but what if the page changed
state after the check but before entering splvm()?). There are a couple
of places in the kernel where the VM system tries to 'optimize' scans
by dealing with side effects instead of splvm()ing, and this is one of
them.
I think it may be worth having David do a quick patch to see if it
helps. David, try the following brute-force patch and see if it helps.
Also, is this an SMP box or not?
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
Index: vm_pageout.c
===================================================================
RCS file: /home/ncvs/src/sys/vm/vm_pageout.c,v
retrieving revision 1.151
diff -u -r1.151 vm_pageout.c
--- vm_pageout.c 1999/12/11 16:13:02 1.151
+++ vm_pageout.c 2000/02/23 17:23:23
@@ -1151,6 +1151,7 @@
int pcount,tpcount; /* Number of pages to check */
static int fullintervalcount = 0;
int page_shortage;
+ int s0;
page_shortage =
(cnt.v_inactive_target + cnt.v_cache_max + cnt.v_free_min) -
@@ -1159,6 +1160,8 @@
if (page_shortage <= 0)
return;
+ s0 = splvm();
+
pcount = cnt.v_active_count;
fullintervalcount += vm_pageout_stats_interval;
if (fullintervalcount < vm_pageout_full_stats_interval) {
@@ -1227,6 +1230,7 @@
m = next;
}
+ splx(s0);
}
static int
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message