Commit Graph

145 Commits

Author SHA1 Message Date
pooka
ae80a527f0 oops, backout part which wasn't supposed to go in 2007-11-07 12:11:30 +00:00
pooka
0a587be2cb Call buf_syncwait() after releasing a file system. 2007-11-07 12:08:45 +00:00
ad
d18c6ca4de Merge from vmlocking:
- pool_cache changes.
- Debugger/procfs locking fixes.
- Other minor changes.
2007-11-07 00:23:13 +00:00
ad
4f48f4962d Define ipl_cookie_t, ipl_t. 2007-11-07 00:20:22 +00:00
pooka
773d31b14b yank out extra debug printf 2007-11-06 15:25:40 +00:00
pooka
210515ea9c Fix locking issues with the anonymous pager too so that tmpfs can work. 2007-11-06 12:57:50 +00:00
pooka
7331777bf0 default to rootnode mode 0777 2007-11-06 12:26:12 +00:00
pooka
78821d0076 initialize vnode interlock when creating one 2007-11-06 12:14:37 +00:00
pooka
895e09b8c5 Sprinkle some more locking, especially to the vm. Due to some
additional fixes, it's now possible to run file systems with
spinlocks actually enabled.  The genfs_putpages() locking is still
working only due to greater powers, but I'll eventually get around to
fixing it.
2007-11-06 11:35:04 +00:00
pooka
ef11b00de6 Update to new puffs_mainloop() signature. Forgot to do this yesterday.
noticed by Kurt Schreiner on current-users
2007-11-06 10:57:35 +00:00
pooka
2525a332ae * sprinkle some locking into the vm code
* avoid extra insert+search+remove step in file systems using
  ubc_uiomove() instead of standard uiomove()
2007-11-04 19:52:14 +00:00
pooka
85efd8ec20 set mask and dirmask to 0777 by default 2007-11-04 19:42:56 +00:00
pooka
0be31eefc7 Allocate buf using getiobuf() instead of abusing the stack. 2007-11-04 19:37:29 +00:00
pooka
08ac8063af Fix some comments: thinking of it more closely, it is actually safe
to release the sleep interlock before calling cv_wait() because we
are protected by the list mutex which prevents a wakeup race.
2007-11-04 18:46:29 +00:00
pooka
18ae49a27c Make the strategy routine get the results through biowait() and
the "disk driver" (rumpuser) call biodone() to indicate the completion
of I/O.  Support for B_ASYNC is coming at some point, but I need
more locking support in the emulated vm for that.
2007-11-04 18:43:55 +00:00
pooka
2567179467 Remember to save errno before restoring it.
noticed by Lukasz on current-users
2007-11-04 17:21:08 +00:00
pooka
55ace5d0d5 Include bufq priority implementations also and link librump with
--whole-archive since the bufq priorities use link sets.
2007-10-31 17:53:38 +00:00
pooka
6cc957f067 "Support" splhigh(), requested by reinoud. But the spl emulation
code needs to be actually written soon ...
2007-10-31 16:00:26 +00:00
pooka
87f9ee4c42 Make it possible to run rumps multithreaded. This brings real
locking and makes it possible to run file systems which create
threads.  It also makes rump file system behaviour better match
file system behaviour in the kernel.
2007-10-31 15:57:19 +00:00
pooka
cb11cd8fde In uvm_estimatepageable() "estimate" pageable. 2007-10-28 18:54:17 +00:00
pooka
eff8fdc9d1 Prevent recursion in INACTIVE -> vrecycle -> inactive -> ... 2007-10-27 19:36:34 +00:00
pooka
87ffdd1649 RUMUSEROBJDIR -> RUMPUSEROBJDIR (those cold-blooded old times ...) 2007-10-26 18:03:26 +00:00
pooka
6640f4d32a It's non-trivial to say that "no, we don't have cpu counter on this
arch (rump)", so emulate it.  But this is suboptimal.  The crux of
the problem seems to be that types.h contains both information on
the machine architecture (which we want) as well as other defines
such as __HAVE_CPU_COUNTER (which we don't want).
2007-10-26 17:59:38 +00:00
pooka
ff9a260335 few stubs 2007-10-26 17:56:24 +00:00
pooka
bf494d7f8d more carefully emulate vget() and vrecycle() 2007-10-26 17:55:43 +00:00
pooka
90f8810031 In threading where available. 2007-10-26 17:36:23 +00:00
pooka
4f8627af5f define _RUMPKERNEL 2007-10-26 10:44:27 +00:00
pooka
f608ef6f7b Don't unmount file system when releasing ukfs - it's always already
unmounted at that point (or never was mounted in the first place).
2007-10-25 16:56:41 +00:00
pooka
50591a9595 "flags * (M_CANFAIL | M_NOWAIT)" is probably not correct. Use & instead.
And while committing, add other random cruft I've needed recently.
2007-10-24 15:00:37 +00:00
ad
a2a3828545 machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h 2007-10-19 11:59:34 +00:00
pooka
b16ab0b2da Compile most genfs routines directly out of the kernel sources.
Move special I/O routines to genfs_io.c to mirror kernel naming.
2007-10-17 16:48:16 +00:00
ad
11dc639958 Merge from vmlocking:
- G/C spinlockmgr() and simple_lock debugging.
- Always include the kernel_lock functions, for LKMs.
- Slightly improved subr_lockdebug code.
- Keep sizeof(struct lock) the same if LOCKDEBUG.
2007-10-11 19:45:24 +00:00
ad
7dad9f7391 Merge from vmlocking:
- Split vnode::v_flag into three fields, depending on field locking.
- simple_lock -> kmutex in a few places.
- Fix some simple locking problems.
2007-10-10 20:42:20 +00:00
ad
067cf977c9 transferlockers() is gone. 2007-10-10 18:51:43 +00:00
hannken
3856acafe2 Update the file system copy-on-write handler.
- Instead of hooking the handler on the specdev of a mounted file system
  hook directly on the `struct mount'.

- Rename from `vn_cow_*' to `fscow_*' and move to `kern/vfs_trans.c'.  Use
  `mount_*specific' instead of clobbering `struct mount' or `struct specinfo'.

- Replace the hand-made reader/writer lock with a krwlock.

- Keep `vn_cow_*' functions and mark as obsolete.

- Welcome to NetBSD 4.99.32 - `struct specinfo' changed size.

Reviewed by: Jason Thorpe <thorpej@netbsd.org>
2007-10-07 13:38:53 +00:00
pooka
eb069641c1 call biooops sync from sync 2007-09-26 21:23:24 +00:00
pooka
38cdad643b check puffs_init() return value to squelch coverity CID 4568 2007-09-26 21:21:28 +00:00
pooka
268bb1001b print 0x before hex, print proper types 2007-09-24 01:40:38 +00:00
pooka
84387d0fd3 Don't whine about wakeup() not being implemented every time it's
called.  Nobody cares unless ltsleep() is called (and it panics).
2007-09-24 01:34:27 +00:00
pooka
1d4d5500dc -DFFS_EI 2007-09-24 01:31:07 +00:00
pooka
310b3e7254 add rw_tryenter() and rw_lock_held(), inspired by Adam Hamsik 2007-09-22 11:26:42 +00:00
pooka
b795ecbe79 fsync() device fd if doing a non-B_ASYNC write. This makes the
file system safe, but less performant as the kernel, as it syncs
*all* outstanding dirty buffers.  However, we don't have much choice
in userspace currently.
2007-09-20 23:43:44 +00:00
pooka
c777421532 Expose namei. Some applications might want to call VOPs directly for
whatever reason and no need to make them implement their own copy of
namei, fun though it might be.
2007-09-18 19:59:21 +00:00
pooka
0ae64860f6 don't allocate variable-sized arrays from the stack 2007-09-12 10:24:23 +00:00
briggs
06c4139448 If !_HAVE_TIMECOUNTER, initialize 'time' instead of 'time_second.' 2007-09-11 16:33:19 +00:00
briggs
bf243579ed Define splclock() so that this will at least compile on architectures
without _HAVE_TIMECOUNTER.
2007-09-11 16:31:01 +00:00
pooka
dffee5c423 fix ukfs_readlink() to be of type ssize_t 2007-09-11 00:42:16 +00:00
pooka
850349a3c2 create generated files before running makedepend 2007-09-11 00:41:46 +00:00
pooka
99dbf2bb34 manadatory TODO-list.
Makes project appear less dead when there's something TODO.
2007-09-10 21:18:55 +00:00
pooka
ccd777c8fa Provide errno from rumpuser_{gettimeofday,close}() to be consistent. 2007-09-10 19:11:44 +00:00