| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
passing the main function directly to kthread_create(9). The start_*
functions are mere stepping stones nowadays and can be pruned.
They used to contain more logic in the pre-kthread era.
While here, set `cleanerproc' and `syncerproc' during the thread
creation rather than expect the threads to set the proc pointer.
Also, rename `sched_sync' to `syncer_thread' to reduce confusion
with the scheduler-related functions.
OK kettenis@, deraadt@, mpi@
|
|
|
|
| |
OK mpi@
|
|
|
|
|
|
|
| |
curproc that does the locking or unlocking, so the proc parameter
is pointless and can be dropped.
OK mpi@, deraadt@
|
|
|
|
|
|
|
|
|
|
| |
are pushed to disk. Dangling vnodes (unlinked files still in use) and
vnodes undergoing change by long-running syscalls are identified -- and
such filesystems are marked dirty on-disk while we are suspended (in case
power is lost, a fsck will be required). Filesystems without dangling or
busy vnodes are marked clean, resulting in faster boots following
"battery died" circumstances.
Tested by numerous developers, thanks for the feedback.
|
|
|
|
|
|
|
|
| |
The distinction between preempt() and yield() stays as it is usueful
to know if a thread decided to yield by itself or if the kernel told
him to go away.
ok tedu@, guenther@
|
|
|
|
|
|
| |
torture tested on amd64, i386 and macppc
ok beck mpi stefan
"the change looks right" deraadt
|
|
|
|
|
|
|
| |
have any direct symbols used. Tested for indirect use by compiling
amd64/i386/sparc64 kernels.
ok tedu@ deraadt@
|
|
|
|
|
|
| |
objective: vnode.h doesn't include uvm_extern.h anymore.
followup changes: include uvm_extern.h or lock.h where necessary.
ok and help from deraadt
|
|
|
|
|
|
| |
yield() if the cpu is marked SHOULDYIELD.
ok miod@ tedu@ phessler@
|
|
|
|
| |
ok deraadt@
|
|
|
|
|
|
|
|
| |
and return EOPNOTSUPP directly from the VOP_* functions.
Filesystems should, at some point fill in every function
in the vop_default struct so we can get rid of the 'if'
statements in VOP_*.
|
|
|
|
|
|
| |
unrelated, and his alpha is much happier now.
OK deraadt@
|
|
|
|
| |
have been resolved.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vector setup that has questionable features (that have, as far as I can
tell never been used in practice, atleast not in OpenBSD), remove all
the gunk and favor a simple struct full of function pointers that get
set directly by each of the filesystems.
Removes gobs of ugly code and makes things simpler by a magnitude.
The only downside of this is that we loose the vnoperate feature so
the spec/fifo operations of the filesystems need to be kept in sync
with specfs and fifofs, this is no big deal as the API it self is pretty
static.
Many thanks to armani@ who pulled an earlier version of this diff to
current after c2k10 and Gabriel Kihlman on tech@ for testing.
Liked by many. "come on, find your balls" deraadt@.
|
|
|
|
|
|
|
| |
so I can twiddle them from ddb (not that I will mess with the hashmask, but
static burns).
ok tedu@
|
|
|
|
|
| |
prodded by and ok thib@
agreed by art@ and blambert@
|
|
|
|
|
|
| |
with eopnotsupp() instead;
ok blambert@
|
|
|
|
|
| |
"ap = v" comments in under 8 seconds, so it must be ok. and it compiles
too.
|
| |
|
|
|
|
| |
requested by and ok pedro
|
|
|
|
| |
ok tedu, pedro
|
|
|
|
|
|
| |
used and will never be used this way in VFS
requested by and ok pedro, ok krw, biorn
|
| |
|
|
|
|
| |
Inspiration from miod@, okay deraadt@. Tested on i386, macppc and amd64.
|
|
|
|
| |
anymore. Testing by jolan@, thanks.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
reclaimed while in this sensitive time frame. That is needed when we
don't have locks. Should fix the 'sched_sync: fsync failed' panic some
people were seeing.
Testing mostly by sturm@ and krw@, okay tedu@ and deraadt@.
|
|
|
|
|
|
|
| |
one case fixed here).
miod@ "appears to be harmless"
markus@ ok
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
everyone for the prompt review and ok of this work ;-) Yeah, that includes me
too, or maybe especially me. I am sorry.
Change the sched_lock to a mutex. This fixes, among other things, the infamous
"telnet localhost &" problem. The real bug in that case was that the sched_lock
which is by design a non-recursive lock, was recursively acquired, and not
enough releases made us hold the lock in the idle loop, blocking scheduling
on the other processors. Some of the other processors would hold the biglock though,
which made it impossible for cpu 0 to enter the kernel... A nice deadlock.
Let me just say debugging this for days just to realize that it was all fixed
in an old diff noone ever ok'd was somewhat of an anti-climax.
This diff also changes splsched to be correct for all our architectures.
|
| |
|
|
|
|
|
| |
'fsync failed' panic on amd64. discussed with and ok'd by art@, tedu@
and deraadt@. tested by many (thanks).
|
| |
|
|
|
|
|
|
|
|
| |
things such that code that only need a second-resolution uptime or wall
time, and used to get that from time.tv_secs or mono_time.tv_secs now get
this from separate time_t globals time_second and time_uptime.
ok art@ niklas@ nordin@
|
|
|
|
|
| |
from Patrick Latifi <patrick.l@hermes.usherb.ca>
ok jason@ tedu@
|
|
|
|
| |
rescinded 22 July 1999. Proofed by myself and Theo.
|
| |
|
|
|
|
|
|
|
|
|
| |
machines or some configurations or in some phase of the moon (we actually
don't know when or why) files disappeared. Since we've not been able to
track down the problem in two weeks intense debugging and we need -current
to be stable, back out everything to a state it had before UBC.
We apologise for the inconvenience.
|
|
|
|
|
|
|
| |
code is written mostly by Chuck Silvers <chuq@chuq.com>/<chs@netbsd.org>.
Tested for the past few weeks by many developers, should be in a pretty stable
state, but will require optimizations and additional cleanups.
|
|
|
|
| |
and stuff that isn't on the worklist doesn't have it set.
|
| |
|
| |
|
|
|
|
|
|
|
| |
Also, when we fail to get the lock on the vnode we want to sync, push
it ahead one second in time.
XXX - this could lead to some vnodes not being synced for a long time,
but that is better than a panic.
|
|
|
|
| |
and don't cover the ones they don't
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change VM/UVM to use buf_replacevnode to change the vnode associated
with a buffer.
Addition v_bioflag for flags written in interrupt handlers
(and read at splbio, though not strictly necessary)
Add vwaitforio and use it instead of a while loop of v_numoutput.
Fix race conditions when manipulation vnode free list
|
|
|
|
| |
From FreeBSD
|
|
|
|
| |
Snapshot-related code has been commented out.
|
| |
|
| |
|