Age | Commit message (Collapse) | Author |
|
it's a good idea to use atomic.h operations on it. This mechanic
change updates all bit operations on p_flag to atomic_{set,clear}bits_int.
Only exception is that P_OWEUPC is set by MI code before calling
need_proftick and it's automatically cleared by ADDUPC. There's
no reason for MD handling of that flag since everyone handles it the
same way.
kettenis@ ok
|
|
the problem with lost signals in MP kernels.
miod@, kettenis@ ok
|
|
signal to is the curproc, check if it's SONPROC. That way we'll also
signotify processes on other CPUs. This gives MD code the opportunity
to actually deliver signals to other CPUs faster than the clock
interrupt (in the worst case).
This is a NOP until MD code is fixed.
miod@ ok
|
|
effectively been a no-op for quite some time now,
without promise for future usage.
ok pedro@
Testing by krw@ (earlier diff)
and Johan Mson Lindman (tybollt@solace.miun.se)
|
|
|
|
|
|
cpu_coredump() behaviour.
|
|
discussed with a few, ok tedu@
|
|
some TIOCGPGRP result fallout.
ok deraadt@
|
|
2. when delivering a STOP or CONT signal to a process, now replicate
to every thread.
makes ^Z and fg work nicer, first noticed by peter hessler.
signals and threads are not right, but this is at least a little less wrong.
|
|
uses rfork(RFTHREAD) to create threads, which are presently processes
that are a little more tightly bound together. several new syscalls
added to facilitate a userland thread library.
all conditional on RTHREADS, currently disabled.
ok deraadt
|
|
'go for it' deraadt@
|
|
(but I tend to call it ssh localhost & now when telnetd is
history). This is more localized patch, but leaves us with
a recursive lock for protecting scheduling and signal state.
Better care is taken to actually be symmetric over mi_switch.
Also, the dolock cruft in psignal can go with this solution.
Better test runs by more people for longer time has been
carried out compared to the c2k5 patch.
Long term the current mess with interruptible sleep, the
default action on stop signals and wakeup interactions need
to be revisited. ok deraadt@, art@
|
|
|
|
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.
|
|
no change in compiler assembly output.
|
|
|
|
|
|
for the same signal; deraadt@ ok
|
|
add stack_t and ucontext_t typedefs.
ok deraadt@
|
|
from Patrick Latifi <patrick.l@hermes.usherb.ca>
ok jason@ tedu@
|
|
argument. old cred only calls user suser_ucred. this will allow future
work to more flexibly implement the idea of a root process. looks like
something i saw in freebsd, but a little different.
use of suser_ucred vs suser in file system code should be looked at again,
for the moment semantics remain unchanged.
review and input from art@ testing and further review miod@
|
|
to guarantee NUL termination; from Patrick Latifi.
|
|
associated WIFCONTINUED macro as per 1003.1-2001. Adapted from FreeBSD.
A minor amount of trickiness is involved here. The value for WCONTINUED
is chosen in such a way that _WSTATUS(_WCONTINUED) == _WSTOPPED and the
WIFSTOPPED macro has been modified such that WIFSTOPPED(_WCONTINUED) !=
_WSTOPPED. This means we don't need to add an extra check to the
WIFSIGNALED and WIFSTOPPED macros. deraadt@ OK.
|
|
takes a void *. convert uiomove to take a void * as well. ok deraadt@
|
|
rescinded 22 July 1999. Proofed by myself and Theo.
|
|
|
|
Prevent two localhost crashes with proc filters.
- don't send NOTE_SIGNAL to exiting processes.
- null dereference on error condition.
from Peter Werner <peterw at ifost.org.au>
deraadt@ ok
|
|
|
|
|
|
it is setugid. deraadt@ ok
|
|
of an uninitialized variable.
millert@ ok
|
|
|
|
fault addresses and other information. (a small bug exists: in some signal
delivery cases, two PSIG records may be inserted, because postsig() is
unaware a PSIG record has already been placed. but this small bug can
stay since the siginfo_t information helps us find and fix other bugs)
|
|
Prevents a hang in the NFS code when
dumping core and pressing ^C, etc.
ok art@
|
|
well (not at all) with shortages of the vm_map where the pages are mapped
(usually kmem_map).
Try to deal with it:
- group all information the backend allocator for a pool in a separate
struct. The pool will only have a pointer to that struct.
- change the pool_init API to reflect that.
- link all pools allocating from the same allocator on a linked list.
- Since an allocator is responsible to wait for physical memory it will
only fail (waitok) when it runs out of its backing vm_map, carefully
drain pools using the same allocator so that va space is freed.
(see comments in code for caveats and details).
- change pool_reclaim to return if it actually succeeded to free some
memory, use that information to make draining easier and more efficient.
- get rid of PR_URGENT, noone uses it.
|
|
with our handling of SA_NOCLDWAIT as well as other operating systems.
From FreeBSD.
|
|
SA_NOCLDWAIT (don't create zombies) flag has been specified. This
is consistent with most other operating systems and is what XPG4.2
specifies.
|
|
(Look ma, I might have broken the tree)
|
|
saying he could not understand how this worked
|
|
|
|
nit too
|
|
|
|
|
|
rename stop -> proc_stop (stop is not a good function name).
|
|
kern_ipc_10.c for other compat modules.
|
|
on NetBSD's code, as well as some faked Posix RT extensions by me. This makes
at least simple linuxthreads tests work.
|
|
|
|
okay art@, millert@
|
|
traced proc. The vnode is in the proc and all functions need the proc.
|