Commit Graph

765 Commits

Author SHA1 Message Date
pooka 35e55460ba Since rumpfs can now be used from publically exported routines,
convert unsupported checking KASSERTs to return EOPNOTSUPP.
2009-07-22 21:06:56 +00:00
pooka 22d6f86dee regen: fh syscalls 2009-07-21 23:59:19 +00:00
pooka dd081aad70 the consumers expect the aiodone workqueue to be mpsafe. make it so. 2009-07-21 00:33:28 +00:00
pooka 9d8db640e4 describe & attach raidframe rump kernel component 2009-07-20 18:11:37 +00:00
pooka eee912bc25 Add cgd rump kernel component. 2009-07-20 18:09:20 +00:00
pooka 28631b61bf device subroutines and autoconfig support for rump. work in progress. 2009-07-20 18:04:13 +00:00
pooka d0095f0917 add crypto support for rump 2009-07-20 18:03:26 +00:00
pooka fd1eba5f43 realloc works much better if it actually uses realloc instead of malloc 2009-07-20 17:12:43 +00:00
reinoud 69a586f230 Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
2009-07-18 16:31:41 +00:00
apb 559e6ded07 Mark rumpuser_thread_exit() as __dead, to match its prototype.
Part of PR 41255 from Kurt Lidl.
2009-07-14 21:00:53 +00:00
pooka bbd95bc6d9 add reference 2009-06-30 15:28:01 +00:00
dholland 9b5247fa1c Another namei_simple like the previous ones; was added after I did the
initial sweep and I guess I missed it while merging.
2009-06-29 07:11:06 +00:00
dholland 69b592eb0c regen 2009-06-29 05:03:12 +00:00
pooka ab415fb3d5 MAXUSERS comes from Makefile.rump 2009-06-10 20:54:55 +00:00
pooka f4b516bb14 libkern is fully included in rumpkern, no need for cherry-picking
modules elsewhere.
2009-06-10 20:50:51 +00:00
pooka 98c3c6a157 indicate function of previous in comment 2009-06-10 18:36:33 +00:00
pooka 1c083dc02b Add rumpuser_dprintf(), which can be used as a "safe" debug print
routine -- the kernel printf does a lot of crud which is not always
nice and dandy especially when debugging locks.
2009-06-10 18:34:49 +00:00
pooka 3178a63559 Support VOP_MKNOD. This is so that components which need device
nodes (e.g. raidframe) can create them.
2009-06-10 12:12:23 +00:00
he 4ffd944fac Add a dummy uvm_readahead() function, to fix build issues after it
recently got added to the kernel.
OK'ed by pooka@
2009-06-10 11:41:43 +00:00
pooka ed545b8d69 check that interlock isn't null before releasing it 2009-06-09 23:26:19 +00:00
pooka 4c54895067 Checkpoint a bunch of work-in-progress: support for disk devices
and raidframe.  Raidframe works well enough to configure a raid in
the rump kernel, but the usage is "interesting" (pending some other
changes/cleanup from other parts in my tree).

These are not built by default yet.
2009-06-09 16:16:14 +00:00
pooka 698910a47a simplelocks have been supported in rump for a while, allow their use. 2009-06-09 15:53:05 +00:00
pooka 162fa5811a Nuke some bss stuff which is coming from vfs_bio via rumpvfs. 2009-06-09 14:30:06 +00:00
pooka 99616de8dc Put some spunk into deadfs. 2009-06-09 14:20:42 +00:00
pooka 13c5258c1a pool_prime emulation 2009-06-03 16:07:21 +00:00
pooka 8f814de2c0 Add user vmspace locking and remapping routines. Obviously, these
currently work only if the vmspace is local to the rump kernel.
2009-06-03 16:06:10 +00:00
pooka 2c5f264f9b implement wakeup_one 2009-06-03 15:16:42 +00:00
pooka ca254ab879 include syscalls.c 2009-06-02 23:28:53 +00:00
wiz 53b002f1fb Use Nx for NetBSD. 2009-05-28 09:41:05 +00:00
pooka f731c31fa4 Use a bunch of weak symbols to determine which network components
are present.  This works in userspace as opposed relying in link
sets, which fail miserably.  Later, when the networking stack
becomes modularized, we can move to a dynamic scheme like with file
systems.

Also, this change allows us to do proper autoconfig, namely attach
the loopback interface iff it is present.
2009-05-28 00:02:16 +00:00
pooka 9523c2be23 Add a dummyif, which doesn't actually traffic any cargo, but since
it has no backend it can always be attached and is therefore
convenient for testing ifconfig.
2009-05-27 23:41:20 +00:00
pooka 7d6e9ec774 Support IPv6 in rump. I'd have liked to introduce a netinet6
component, but due to ifdef happiness permeating the sources, it's
a compile decision for now, so netinet pulls in both inet and inet6.

One issue, one single issue: the loopback interface still needs to
be created for IPv6 to work.  I have patches to take care of it
automatically if the appropriate component (net) is present, but
they require a bit more testing before commit.
2009-05-26 23:43:39 +00:00
pooka 9c2d055f86 Filter out ENETRESET from ether_ioctl() since we aren't interested
in multicast hugging.
2009-05-26 19:03:05 +00:00
pooka c50e4e4fff add ioctl to list of compile-time translated calls 2009-05-26 15:44:35 +00:00
pooka 387cc577e1 Add BSDCan 2009 paper to SEE ALSO. 2009-05-24 23:13:49 +00:00
mlelstv 57f2ff1bb6 <sys/syscallargs.h> requires <sys/sched.h> to define cpuset_t. 2009-05-24 20:10:50 +00:00
pooka 3f019758ec forward declare struct stat to avoid implicit header dependencies 2009-05-22 12:47:39 +00:00
pooka aeedc12a43 Add compat routines for vattr translation over time_t change. 2009-05-22 10:51:54 +00:00
pooka 659f41e70a Add handrolled stat30 compat syscalls for calling post-time_t rump
kernels from pre-time_t userlands.
2009-05-22 08:59:32 +00:00
pooka ac42a021b0 Add rump_getversion(), which returns the version of NetBSD for the
rump kernel.
2009-05-22 08:34:14 +00:00
pooka 908a0b2534 fix __KERNEL_RCSID 2009-05-22 08:26:52 +00:00
pooka e11306504d Set vnode op vector properly for block devices too. Makes mounting
a real block device work again.
2009-05-19 13:42:35 +00:00
pooka 68136aad74 regen: removal of pad arguments from the public interfaces 2009-05-15 15:52:46 +00:00
pooka cd558b6419 Add rump_set_curlwp() for context switch to an existing lwp/proc. 2009-05-07 16:04:25 +00:00
pooka 825ba1eb35 Don't create unpgc thread if RUMP_THREADS is 0. The benefit is the
usual: possible to run programs using AF_LOCAL without threads.
2009-05-07 16:03:24 +00:00
pooka b142e2e100 Nuke RUMPCN_HASNTBUF. The inspiration behind it must've been ... deep. 2009-05-04 14:31:25 +00:00
pooka d98497528c set MNT_ROOTFS for the rootfs (the kernel, a logical piece of work) 2009-05-03 19:00:18 +00:00
pooka e3b3da7a9e Rename rump_cred_destroy() to rump_cred_put() -- they've been
refcounted since forever now.
2009-05-03 17:09:49 +00:00
pooka 3b98424735 define DEBUGPRINT 2009-05-03 16:53:54 +00:00
pooka f24be5ee8c Add rump_vfs_getmp(), which returns struct mount for a given path.
(yes, it does not take a reference to the mountpoint)
2009-05-03 16:01:44 +00:00