Fix it a bit & wait for the dust to settle. Also, enable UBC by default.

ffs in userspace on top of puffs/p2k/rump is now stable enough to
host a make -j4 kernel build (well, at least my kernel build ...
but, yes, I am currently running that kernel on my desktop)
This commit is contained in:
pooka 2007-08-09 13:53:36 +00:00
parent c1649dbc9e
commit 36c0b176cc
4 changed files with 11 additions and 9 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: ext2fs.c,v 1.1 2007/08/07 21:26:37 pooka Exp $ */
/* $NetBSD: ext2fs.c,v 1.2 2007/08/09 13:53:36 pooka Exp $ */
/*
* Copyright (c) 2007 Antti Kantee. All Rights Reserved.
@ -80,7 +80,7 @@ main(int argc, char *argv[])
args.fspec = argv[0];
rv = p2k_run_fs(&ext2fs_vfsops, argv[0], argv[1], mntflags,
&args, sizeof(args), pflags | PUFFS_KFLAG_NOCACHE_PAGE);
&args, sizeof(args), pflags);
if (rv)
err(1, "mount");

View File

@ -1,4 +1,4 @@
/* $NetBSD: ffs.c,v 1.1 2007/08/05 22:28:02 pooka Exp $ */
/* $NetBSD: ffs.c,v 1.2 2007/08/09 13:53:36 pooka Exp $ */
/*
* Copyright (c) 2007 Antti Kantee. All Rights Reserved.
@ -80,7 +80,7 @@ main(int argc, char *argv[])
args.fspec = argv[0];
rv = p2k_run_fs(&ffs_vfsops, argv[0], argv[1], mntflags,
&args, sizeof(args), pflags | PUFFS_KFLAG_NOCACHE_PAGE);
&args, sizeof(args), pflags);
if (rv)
err(1, "mount");

View File

@ -1,4 +1,4 @@
/* $NetBSD: genfs.c,v 1.10 2007/08/09 11:59:16 pooka Exp $ */
/* $NetBSD: genfs.c,v 1.11 2007/08/09 13:53:36 pooka Exp $ */
/*
* Copyright (c) 2007 Antti Kantee. All Rights Reserved.
@ -197,6 +197,8 @@ genfs_getpages(void *v)
printf("first page offset 0x%x\n", (int)(curoff + bufoff));
for (i = 0; i < count; i++, bufoff += PAGE_SIZE) {
if (curoff + bufoff >= endoff)
break;
pg = rumpvm_findpage(&vp->v_uobj, curoff + bufoff);
printf("got page %p (off 0x%x)\n", pg, (int)(curoff+bufoff));
if (pg == NULL) {
@ -206,6 +208,7 @@ genfs_getpages(void *v)
}
ap->a_m[i] = pg;
}
*ap->a_count = i;
rumpuser_free(tmpbuf);
@ -239,7 +242,7 @@ genfs_do_putpages(struct vnode *vp, off_t startoff, off_t endoff, int flags,
struct buf buf;
struct uvm_object *uobj = &vp->v_uobj;
struct vm_page *pg, *pg_next;
voff_t smallest = -1;
voff_t smallest;
voff_t curoff, bufoff;
size_t xfersize;
int bshift = vp->v_mount->mnt_fs_bshift;
@ -247,6 +250,7 @@ genfs_do_putpages(struct vnode *vp, off_t startoff, off_t endoff, int flags,
restart:
/* check if all pages are clean */
smallest = -1;
for (pg = TAILQ_FIRST(&uobj->memq); pg; pg = pg_next) {
pg_next = TAILQ_NEXT(pg, listq);
if (pg->flags & PG_CLEAN) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: vm.c,v 1.7 2007/08/09 08:56:45 pooka Exp $ */
/* $NetBSD: vm.c,v 1.8 2007/08/09 13:53:36 pooka Exp $ */
/*
* Copyright (c) 2007 Antti Kantee. All Rights Reserved.
@ -137,8 +137,6 @@ rump_vopwrite_fault(struct vnode *vp, voff_t offset, size_t len,
if (rv)
return rv;
assert(npages == len2npages(offset, len));
return 0;
}