Subject: Re: netbsd-4 LFS problems
To: Konrad Schroder <perseant@hhhh.org>
From: Chris Ross <cross+netbsd@distal.com>
List: current-users
Date: 07/16/2007 10:16:03
On Jul 10, 2007, at 19:07, Konrad Schroder wrote:
> Try revision 1.208 of sys/ufs/lfs/lfs_vnops.c, I think that should
> fix it. I am having a hard time making my test system go into that
> bit of code, so the fix is by inspection only; please let me know
> how it works out for you (either way).
There are a few changes between netbsd-4 and 1.208 of lfs_vnops.c,
many of which won't work. I left the pagedaemon_proc ->
pagedaemon_lwp and preempt() calls et al alone, and just hand-applied:
diff -u -r1.193.2.2 -r1.208
--- lfs_vnops.c 5 Jun 2007 20:35:03 -0000 1.193.2.2
+++ lfs_vnops.c 10 Jul 2007 23:06:24 -0000 1.208
@@ -2283,7 +2285,6 @@
if (check_dirty(fs, vp, startoffset, endoffset, blkeof,
ap->a_flags, 0, &busypg) < 0) {
simple_unlock(&vp->v_interlock);
- sp->vp = NULL;
simple_lock(&vp->v_interlock);
write_and_wait(fs, vp, busypg, seglocked,
NULL);
@@ -2291,6 +2292,7 @@
lfs_release_finfo(fs);
lfs_segunlock(fs);
}
+ sp->vp = NULL;
goto get_seglock;
}
I presume this is the relevant piece, yes? I'm not sure why
delaying setting vp to NULL would help, since the ASSERT that failed
was that it *wasn't* NULL, but. :-) We'll see.
I have been running the netbsd-4 LFS code for a couple weeks now
without seeing that problem recur, so I'm not sure what sort of test
I can perform. And, it looks like IPF has changed since I last built
the kernel, so I'm going to rebuild userland, at which point the new
kernel with the above change should run. (LFS seemed to work,
networking just doesn't. :-) )
I'll let you know if I have any problems with it. I'll just leave
it running with the above line moved. It'll either fail, or not, and
if not I'm not 100% sure that tells us much, but...
Thanks...
- Chris