Commit Graph

247 Commits

Author SHA1 Message Date
pooka
7ed98ea083 Add locking assertions to check that file systems comply with the
vnode locking protocol.
2007-08-13 13:52:45 +00:00
pooka
787d952790 Use supermarket variety vfs_vnops.c instead of homecooked routines
(that's actually a good thing here).
2007-08-13 13:51:39 +00:00
pooka
e09047007b lock and unlock vnodes according to locking protocol 2007-08-13 12:20:55 +00:00
pooka
66cdfd6744 compile in libkern __assert.c, argument order differs from libc model 2007-08-13 10:52:15 +00:00
pooka
74e8607136 track lockmgr lock status. makes lfs work again 2007-08-12 13:34:11 +00:00
pooka
643e56125f * move rump_vopwrite_fault() into history - we now support the file
system faulting in pages if it does e.g. fragment reallocation
* get rid of rumpvm_findpage() and always use uvm_pagelookup()
* determine a vnode's cleanness by flagging it as being on the work
  list if we "take" a write fault and removing it from the worklist
  once pages are flushed.  There is no work list here, but at least
  there is symmetry with the kernel.
2007-08-11 17:52:12 +00:00
pooka
c3bc94628d Play catchup with ufs/ffs changes: compile subr_specificdata.c
and emulate kmem_foo() to support the prior.
2007-08-09 20:57:22 +00:00
pooka
36c0b176cc 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)
2007-08-09 13:53:36 +00:00
pooka
c1649dbc9e * fix symlink
* actually call a couple of VOPs
2007-08-09 11:59:16 +00:00
pooka
0a371e70c2 deal with holes in getpages() 2007-08-09 11:18:13 +00:00
pooka
58b908ae12 Flush file's pages in inactive (they'll still be kept in the kernel
page page if it's enabled).  This very easily takes care of memory
management problems except for large files.
2007-08-09 09:54:36 +00:00
pooka
37698f56d6 Enable lfs in r/o mode, i.e. does not start lfs_clean-nerd and do
any real trickery.  Unfortunately this was the easy part; r/w
support is going to make ascending naked, blind, illiterate, without
food and as an atheist look trivial.
2007-08-09 09:19:30 +00:00
pooka
cb6989bfcf fool some KASSERTs 2007-08-09 09:11:57 +00:00
pooka
c36b0d0bc4 whoops, committed old signature of vrele2() 2007-08-09 09:06:44 +00:00
pooka
2c3d0e9d16 Add some stubs for lfs. 2007-08-09 08:56:44 +00:00
pooka
dfeea3487b Don't need to use MNT_FORCE here (my original test image was a bit
b0rked), but do stuff MNT_RDONLY down the file system's throat.
2007-08-09 08:33:25 +00:00
pooka
39afc34cc7 * compile subr_time.c from kern/
* some pmap stubs
2007-08-09 07:42:07 +00:00
pooka
1f47971378 pass mntflags to puffs_mount() 2007-08-08 22:45:51 +00:00
pooka
24c0b6d0d0 Provide rump_getvninfo() and use that in libp2k_lookup() to avoid an
extra getattr for stuff the file system already cached in the vnode.
2007-08-08 14:09:07 +00:00
pooka
804db68101 Make genfs_islocked return always 1 instead of 0. But these should
really get tracked ...
2007-08-08 14:07:35 +00:00
pooka
427705465b Provide rumpmachine bswap.h, which makes bswapxx() call rumpuser
directly instead of relying on a symbol in rumpkern.  I would like
to make it call the libc symbol directly, but I don't currently know
how to make it do that MI.

Makes hfs work (on i386), as it avoids endless recursion in bswap64().
Thanks to dillo for the image!
2007-08-08 13:12:08 +00:00
pooka
bbae7f4e94 Add hfs. Untested, as I couldn't find a hfs+ image for testing,
so one would be appreciated.  At least it works enough to tell me
this:

hfs: Plain HFS volumes not currently supported
2007-08-08 09:28:53 +00:00
pooka
7772c7295b * compile param.c
* move opts to a separate directory
2007-08-08 09:06:11 +00:00
pooka
258ed3740b microfrost strikes back 2007-08-08 07:53:54 +00:00
pooka
034104770f add microtime 2007-08-08 07:50:33 +00:00
pooka
22ca3a326a Compile kernel stuff with DIAGNOSTIC. 2007-08-07 21:33:13 +00:00
pooka
3ac2af6a15 support ext2fs 2007-08-07 21:26:35 +00:00
pooka
33e8054a43 refuse (not *that* refuse) to mount a r/w file system with
bs < PAGE_SIZE, it simply won't work yet.
2007-08-07 21:24:40 +00:00
pooka
f815ddfdf3 flush pages in vflushbuf() 2007-08-07 21:23:19 +00:00
pooka
d70a2a3a9d realpath() can also fail, take that into account 2007-08-07 20:40:53 +00:00
pooka
711e2ec866 always compile with -g for now 2007-08-07 20:39:54 +00:00
pooka
3c4d6d00f7 * adjust device block number based on if we're putting pages to a
fs block boudary or not
* round writes to DEV_BSIZE, just to be kosher
2007-08-07 19:43:56 +00:00
pooka
44eee227b6 remove the allocstorage param from makepage - not needed 2007-08-07 19:40:17 +00:00
pooka
7d41c1505d track dirty vm objects 2007-08-07 19:37:05 +00:00
pooka
34c0850533 When doing "ubc faults", truncate offsets to page boundary to get
the last page also if it's accessed from the middle of the page.
2007-08-07 19:14:51 +00:00
pooka
09afbbeda4 mutex_pwned - needed for kassert 2007-08-07 17:55:49 +00:00
pooka
24293880e1 in case of no error, init *error to 0 2007-08-07 16:55:22 +00:00
pooka
f5e5e38069 -I${NETBSDSRCDIR}/common/include 2007-08-07 10:30:39 +00:00
pooka
2ef1090efd more bsd.own.mk inclusion 2007-08-07 10:16:56 +00:00
pooka
b24ef6ec06 flip order of includes to get NETBSDSRCDIR. from agc 2007-08-07 10:13:31 +00:00
pooka
140d9a0ccb offset orgies, part n+1. this is still not right, but at least it's better 2007-08-07 09:03:43 +00:00
pooka
edacb82013 We can use UBC here by default now. 2007-08-06 22:22:40 +00:00
pooka
a92a4f649f Allow to de/register pathnames which should be faked as block
devices instead of faking all non-blks as blks in namei().
2007-08-06 22:20:57 +00:00
pooka
a207f90686 add quick explanation of directory structure per Hubert's request 2007-08-06 21:03:12 +00:00
pooka
01c3dea5a1 Instead of going for a PAGE_SIZE nuke, do getpages() in a more
sniper style.  Makes efs (& other file systems with bsize < PAGE_SIZE)
work better.
2007-08-06 20:46:28 +00:00
pooka
544155dcc3 implement uvm_vnp_zerorange() 2007-08-06 16:09:33 +00:00
pooka
daafee8742 Introduce RUMPs - Runnable Userspace Meta-Programs
/sys/rump contains programs which run unmodified kernel code in an
emulated userspace environment.  The kernel environment is provided
by librump.  Currently supported are a number of file systems,
which by using puffs integrate seamlessly into the system and
provide a similar user experience to if the code was running as
part of the kernel.  Potential future rumpification targets include
for example parts of the networking stack and some device drivers.

This work was supported by Google Summer of Code 2007.
2007-08-05 22:28:00 +00:00