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:
parent
c1649dbc9e
commit
36c0b176cc
@ -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");
|
||||
|
||||
|
@ -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");
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user