:
:
: Hi,
:
:ever since this commit: ...
:
:dillon 2000/11/18 15:06:27 PST
:
: Modified files:
: sys/kern vfs_bio.c vfs_cluster.c vfs_subr.c
Hmm. Very odd. It's catching a fully valid file page which is
marked partially dirty, less then a kilobyte in size, mapped
into memory but not associated with a buffer. m->dirty is
0xFC (roughly equivalent to 3584 bytes, but the file is only 932
bytes long.
I'm not sure how it is possible for the above situation to
occur. No, I take that back... I see one possibility related
to ftruncate()ing a file, where a file is partially dirtied, mapped
into memory, and then ftruncate()ed. I'll look into that.
This is -current, it could be related to the ongoing work in -current, it
has been reported to the list that -j buildworlds don't survive long but
I don't know if that is true on single-cpu -current's or just for MP
current's.
You can revert my KASSERT to get rid of the panic but at this time I
think my KASSERT is correct, and some piece of code somewhere is
blowing something up.
I would recommend *NOT* using -current for a production news machine!!!!
If you can repeat the problem under -stable (which has the same patch
set), that will give me more of a base to work from. I'll track down the
one case I can think of to see if I can reproduce the bug.
-Matt
Index: sys/vm/vm_pageout.c
===================================================================
RCS file: /home/ncvs/src/sys/vm/vm_pageout.c,v
retrieving revision 1.151.2.5
diff -u -r1.151.2.5 vm_pageout.c
--- vm_pageout.c 2000/11/26 02:55:14 1.151.2.5
+++ vm_pageout.c 2000/12/10 22:50:43
@@ -372,7 +372,7 @@
*/
for (i = 0; i < count; i++) {
- KASSERT(mc[i]->valid == VM_PAGE_BITS_ALL && mc[i]->dirty ==
VM_PAGE_BITS_ALL, ("vm_pageout_flush page %p index %d/%d: partially dirty page",
mc[i], i, count));
+ KASSERT(mc[i]->valid == VM_PAGE_BITS_ALL, ("vm_pageout_flush page %p
+index %d/%d: partially dirty page", mc[i], i, count));
vm_page_io_start(mc[i]);
vm_page_protect(mc[i], VM_PROT_READ);
}
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message