| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
We did not reach a consensus about using SMR to unlock single_thread_set()
so there's no point in keeping this change.
|
|
|
|
|
|
|
| |
Currently all iterations are done under KERNEL_LOCK() and therefor use
the *_LOCKED() variant.
From and ok claudio@
|
|
|
|
|
|
|
|
|
| |
ps_xsig" (sysctl.h r1.198 and friends) FILL_KPROC requires W_EXITCODE from there.
cc -static -pie -o ps keyword.o nlist.o print.o ps.o utf8.o -lkvm
ld: error: undefined symbol: W_EXITCODE
>>> referenced by kvm_proc2.c:293 (/usr/src/lib/libkvm/kvm_proc2.c:293)
[...]
|
|
|
|
|
|
|
|
|
| |
Allows us to determine how long a process has been running, even if the
UTC clock jumps.
With help from bluhm@ and millert@, who squashed several bugs.
ok bluhm@ millert@
|
|
|
|
|
|
|
|
| |
you'll see one, or neither.
'u' - process installed unveils, but not yet locked with unveil(0,0)
or pledge w/o "unveil"
'U' - process has installed unveils, and locked.
ok rob
|
|
|
|
| |
ok guenther@ yasuoka@
|
|
|
|
|
|
| |
initial thread
ok jsing@ kettenis@
|
|
|
|
|
|
|
|
|
| |
kvm_getprocs.
basically cope with the number of procs growing between when we get
the size and when we get the list.
ok guenther@
|
|
|
|
| |
ok guenther
|
|
|
|
| |
ok guenther
|
|
|
|
|
|
|
|
|
|
|
| |
PS_{ZOMBIE,EMBRYO} on the process instead of peeking into the process's
thread data. This eliminates the need for the thread-level SDEAD state.
Change kvm_getprocs() (both the sysctl() and kvm backends) to report the
"most active" scheduler state for the process's threads.
tweaks kettenis@
feedback and ok matthew@
|
| |
|
|
|
|
|
|
|
|
|
| |
struct ucred; struct process then directly links to the ucred
Based on a discussion at c2k10 or so before noting that FreeBSD and
NetBSD did this too.
ok matthew@
|
| |
|
|
|
|
|
|
| |
in file info. Drop some unnecessary casts and unused variables too.
ok millert@
|
|
|
|
|
|
|
|
| |
make it a list of processes, and change P_NOZOMBIE and P_STOPPED from thread
flags to process flags. Add allprocess list for the code that just wants
to see processes.
ok tedu@
|
|
|
|
|
|
|
| |
Treat failure to KREAD teh pcredd or ucreds to be errors insteading of
continuing with bogus data.
ok deraadt@ millert@
|
| |
|
|
|
|
|
| |
any kernel addresses information.
ok guenther
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
thread information.
Add a KERN_PROC_SHOW_THREADS flag that has to be set in order to get the
thread info and make it off by default. This creates backwards compatibility
for applications that relied on a given size/number of items to be returned.
Modify ps(1) and top(1) accordingly.
Okay guenther@.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This expands the already bloated FILL_KPROC macro to take an extra
parameter that indicates if the callee is a thread or a process.
The userland bits are adjusted accordingly and ps(1) and top(1) now
display per thread usage times when -H is used.
Also pkill(1) had to be adjusted so that duplicates don't pop up.
libkvm does basically the same thing as the kernel bits.
Okay guenther@.
|
|
|
|
|
|
|
| |
of per-rthread. Handling of per-thread tick and runtime counters
inspired by how FreeBSD does it.
ok kettenis@
|
|
|
|
|
|
|
|
|
|
|
| |
and add an 'rtableid' keyword to ps.
Add rtable id, thread id, and socket splice info to struct kinfo_file2
and make fstat display socket splice information.
Remove old KVM_PROC2 and kinfo_proc2 interfaces; bump libkvm major
Socket splice info and corrections from bluhm@ "Lovely" deraadt@
|
|
|
|
|
|
|
|
| |
problem has been tracked down. This fixes the sharing of the signal
handling state: shared bits go in sigacts, per-rthread bits goes in
struct proc.
ok deraadt@
|
|
|
|
|
|
| |
until they're zombies and then send them signals (for intr mounts). Until
that is untangled, the sigacts change is unsafe. sthen@ was the victim
for this one
|
|
|
|
|
|
| |
to handle that with the sigacts change.
problem observed and diagnosed by claudio@ and kettenis@
|
|
|
|
|
|
|
|
|
|
|
|
| |
be shared (p_sigignore, p_sigcatch, P_NOCLDSTOP, P_NOCLDWAIT) moves
to struct sigacts, wihle stuff that should be per rthread (ps_oldmask,
SAS_OLDMASK, ps_sigstk) moves to struct proc. Treat the coredumping
state bits (ps_sig, ps_code, ps_type, ps_sigval) as per-rthread
until our locking around coredumping is better.
Oh, and remove the old SunOS-compat ps_usertramp member.
"I like the sound of this" tedu@
|
|
|
|
|
|
|
|
|
| |
in libkvm with the stable-ABI versions that are currently named
KERN_PROC2, kvm_get{proc,argv,envv}2(). The latter names and symbols
will continue to be supported for a few releases.
Committing now that they ports people have had a couple releases
to update pkgs that usd the old functions
|
|
|
|
|
|
|
|
|
| |
so that the process-level stuff is to/from struct process and not
struct proc. This fixes a bunch of problem cases in rthreads.
Based on earlier work by blambert and myself, but mostly written
at c2k10.
Tested by many: deraadt, sthen, krw, ray, and in snapshots
|
|
|
|
|
|
|
| |
KERN_FILE2 (or their libkvm wrappers) for more information than the
running implementation knows how to provide.
ok millert@ deraadt@
|
|
/dev/mem to be direct instead of going through kvm_getprocs(), as
that function is going to get more an more broken as we move stuff
from struct proc to struct process for rthreads. To minimize the
code copying, put the common logic of filling in a kinfo_proc2
structure into a macro FILL_KPROC2() in <sys/sysctl.h> for use from
both the kernel and user-space. This also hides the KERN_PROC
#define behind "#if defined(_KERNEL)||defined(_LIBKVM)", as it's
deprecated.
Positive feedback from millert and blambert; so committing to unblock
further rthreads work.
|