yamt
e8abff70f2
constify pagerops.
2007-12-01 10:40:27 +00:00
dsl
956bff160a
Temporarily make 'atomic_add_int()' a non-atomic add so the build suceeds.
...
At some point the functions will (presumably) make their way into either
libc or libutil.
2007-11-30 21:48:40 +00:00
pooka
21913eabe5
Rototill.
...
Ok, ok, a few more words about it: stop holding puffs_cc as a holy
value and passing it around to almost every possible place (popquiz:
which kernel variable does this remind you of?). Instead, pass
the natural choice, puffs_usermount, and fetch puffs_cc via
puffs_cc_getcc() only in routines which actually need it. This
not only simplifies code, but (thanks to the introduction of
puffs_cc_getcc()) enables constructs which weren't previously sanely
possible, say layering as a curious example.
There's still a little to do on this front, but this was the major
fs interface blast.
2007-11-30 19:02:28 +00:00
pooka
6a3d9a187d
Remove "puffs_cid" from the puffs interface following l-removal
...
from the kernel vfs interfaces. puffs_cc_getcaller(pcc) can be
used now should the same information be desired.
2007-11-27 11:31:17 +00:00
dogcow
1e02f40f0f
fallout from the not-quite-complete curlwp removal.
...
I'm not sure why I had to monkey about with the includes to get VFS_SYNC to
reappear.
2007-11-27 09:14:21 +00:00
pooka
61e8303e9d
Remove the "struct lwp *" argument from all VFS and VOP interfaces.
...
The general trend is to remove it from all kernel interfaces and
this is a start. In case the calling lwp is desired, curlwp should
be used.
quick consensus on tech-kern
2007-11-26 19:01:26 +00:00
pooka
5251a48396
support cv_broadcast()
2007-11-19 14:17:22 +00:00
pooka
2632ba6df4
Implement cv_timedwait(), requested by Reinoud.
2007-11-17 20:50:18 +00:00
pooka
8f1126a23d
Shield against returning EJUSTRETURN from relookup()
2007-11-14 15:01:46 +00:00
pooka
f48aa71ad4
fix build (hi rmind!)
2007-11-11 17:18:47 +00:00
pooka
655af89222
Fix more uninitialized uses of variables.
...
noticed by lukasz.siemiradzki
2007-11-10 18:03:15 +00:00
pooka
f94895de17
Cast void * to intptr_t before casting to int and vice versa.
...
Fixes 64bit compilation warnings. reported by moof & wiz
2007-11-08 10:57:19 +00:00
pooka
7e0d71a369
Execute I/O in a separate thread for async I/O where previously
...
everything was written/read in caller context.
Also, make the "kernel" lock recursive. It works better that way ...
2007-11-07 18:59:18 +00:00
pooka
b1a1a009b6
final splash of ketchup after source update: init/fini mountspecific
2007-11-07 16:31:21 +00:00
pooka
6fd64d7496
implement _kernel_lock{,_unlock}()
2007-11-07 16:24:22 +00:00
pooka
a4fdbff490
fix pool cache line alignment code (hi ad)
2007-11-07 16:22:22 +00:00
pooka
55a3e632c4
remove accidentally committed debugging code
2007-11-07 15:51:07 +00:00
pooka
eabd71f058
Emulate spls by using pthread rwlocks: splfoo() takes a read lock
...
and when doing processing in an interrupt (effectively when calling
biodone()), we take the write lock.
2007-11-07 15:41:18 +00:00
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