Age | Commit message (Collapse) | Author |
|
device_register() function -- even if it does nothing. reduces the
cpp-based blather different between architectures
idea ok'd by miod; tested on all architectures (except a few miod will
need to cleanup because he has them)
|
|
ok krw marco pedro
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef DIAGNOSTIC it too
|
|
|
|
- Defer the sending of SIGCHLD and waking the parent when a process goes
to sleep. We set a flag in the process "P_STOPPED" and schedule a
timeout that checks all processes for this flag and sends SIGCHLD
and wakes the parent on those processes that have this flag set.
- Delay the waking of the parent in psignal on SIGCONT until we've
released the SCHED_LOCK at the end.
- In issignal, check for P_SINTR as a way to see we were called from
the tsleep path with SCHED_LOCK locked and don't skip locking
in that case. (This is slightly ugly, but it works until we have
some better way).
miod@ ok (after finding and fixing an MD bug on sgi)
|
|
them, they are still in cvs.
|
|
locking around VOP_ACCESS. It can go.
|
|
setting that pre-setroot() code did (for instance a network boot)
found by phessler, tested by reyk
|
|
|
|
Pointed out by thib@
|
|
test_and_set name for some other operation, while cas is generally
used for compare and set (cmpxchg in intel land, cas in sparc land).
- Make rw locks properly MP safe (provided that rw_cas is implemented
in MD code). Most operations were MP safe except the sleep where we
could have set the "I'm sleeping" flag before actually going to sleep
so that the wakeup could miss us. Now, using the split tsleep,
we first setup the sleep (put us on the sleep queues), then set
the flag aborting the sleep if the lock has changed and then finally
go to sleep.
miod@ ok (and he's been prodding me for days to get this in)
|
|
machines. Instead -- build one solid clean MI version, and thenchange all
the architectures to use it. ok various people, tested on almost all cases.
(it is a 10094 line diff..)
|
|
|
|
miod@ ok
|
|
|
|
painfully aware of what the comment:
"This makes the algorithm O(n^2), but do you think I care?"
actually means. I started to care.
Fix up the cache_purgevfs algorithm to not be O(n^2) since it's not
preemptible anyway and while I'm here, make this code actually return
the cache entries to the pool instead of hogging them and implement a
marginally faster free list. This way we return memory to the system
when some parameters change.
miod@ ok
|
|
to wire more memory than we are allowed to.
miod@ ok
|
|
ok art@ kettenis@
|
|
to separate locking, on most modern machines this is not enough
since operations on short types touch other short types that share the
same word in memory.
Merge pg_flags and pqflags again and now use atomic operations to change
the flags. Also bump wire_count to an int and pg_version might go
int as well, just for alignment.
tested by many, many. ok miod@
|
|
multiple defines all over;
ok tedu@
|
|
ok thib
|
|
flag. This effectively makes the simplelock argument to lockmgr() fluff.
ok miod@
|
|
leave macros behind for now to keep the commit small
ok art beck miod pedro
|
|
and make sure that nothing can ever be mapped at theses addresses.
Only i386 overrides the default for now.
From mickey@, ok art@ miod@
|
|
ok pedro@, sturm@
|
|
for the list to become empty)
ok art
|
|
kmem_object) just so that we can remove them, just use pmap_extract
to get the pages to free and simplify a lot of code to not deal with
the list of intrsafe maps, intrsafe objects, etc.
miod@ ok
|
|
ok pedro@ art@
|
|
|
|
spec_read();
ok pedro@
|
|
|
|
for the list to become empty)
|
|
|
|
without letting any other exclusive locks in between. As opposed to upgrading
locks, this is easy and solves real problems.
deraadt@ ok
|
|
to "pg_flags" and "pg_version", so that they are a bit easier to work with.
Whoever uses generic names like this for a popular struct obviously doesn't
read much code.
Most architectures compile and there are no functionality changes.
deraadt@ ok ("if something fails to compile, we fix that by hand")
|
|
deraadt@ ok
|
|
|
|
currently already happens in exit1(), okay art@
|
|
a new struct. Instead of doing a huge rename and deal with the fallout
for weeks, like other projects that need no mention, we will slowly and
carefully move things out of struct proc into a new struct process.
- Create struct process and the infrastructure to create and remove them.
- Move threads in a process into struct process.
deraadt@, tedu@ ok
|
|
ok art@
|
|
random panics with kqueue under high load with many events.
tested by me
cookies for dlg@ deraadt@
ok dlg@ tedu@ art@
|
|
weren't used recursively anyway.
tested by hsoexer@ fkr@ ok pedro@
|
|
ok pedro@
|
|
from brad.
|