Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F160666506
D56538.id176015.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D56538.id176015.diff
View Options
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c
--- a/lib/libkvm/kvm_proc.c
+++ b/lib/libkvm/kvm_proc.c
@@ -365,6 +365,16 @@
kp->ki_xstat = KW_EXITCODE(proc.p_xexit, proc.p_xsig);
kp->ki_acflag = proc.p_acflag;
kp->ki_lock = proc.p_lock;
+ if (proc.p_reaper != NULL) {
+ struct proc rproc;
+ if (KREAD(kd, (u_long)proc.p_reaper, &rproc)) {
+ _kvm_err(kd, kd->program,
+ "can't read reaper at %p", proc.p_reaper);
+ return (-1);
+ }
+ kp->ki_reaper = rproc.p_pid;
+ }
+ kp->ki_reapsubtree = proc.p_reapsubtree;
kp->ki_tdev_freebsd11 = kp->ki_tdev; /* truncate */
/* Per-thread items; iterate as appropriate. */
diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h
--- a/sys/compat/freebsd32/freebsd32.h
+++ b/sys/compat/freebsd32/freebsd32.h
@@ -392,7 +392,9 @@
char ki_emul[KI_EMULNAMELEN+1];
char ki_loginclass[LOGINCLASSLEN+1];
char ki_moretdname[MAXCOMLEN-TDNAMLEN+1];
- char ki_sparestrings[46];
+ char ki_sparestrings[38];
+ pid_t ki_reaper;
+ pid_t ki_reapsubtree;
int ki_spareints[KI_NSPARE_INT];
freebsd32_uint64_t ki_tdev;
int ki_oncpu;
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1235,6 +1235,8 @@
kp->ki_tdev = NODEV;
kp->ki_tdev_freebsd11 = kp->ki_tdev; /* truncate */
}
+ kp->ki_reaper = p->p_reaper->p_pid;
+ kp->ki_reapsubtree = p->p_reapsubtree;
}
/*
@@ -1494,6 +1496,8 @@
CP(*ki, *ki32, ki_fibnum);
CP(*ki, *ki32, ki_cr_flags);
CP(*ki, *ki32, ki_jid);
+ CP(*ki, *ki32, ki_reaper);
+ CP(*ki, *ki32, ki_reapsubtree);
CP(*ki, *ki32, ki_numthreads);
CP(*ki, *ki32, ki_tid);
CP(*ki, *ki32, ki_pri);
@@ -3632,3 +3636,4 @@
sysctl_debug_stop_all_proc, "I",
"");
#endif
+
diff --git a/sys/sys/user.h b/sys/sys/user.h
--- a/sys/sys/user.h
+++ b/sys/sys/user.h
@@ -186,7 +186,9 @@
* front of ki_sparestrings, and ints from the end of ki_spareints.
* That way the spare room from both arrays will remain contiguous.
*/
- char ki_sparestrings[46]; /* spare string space */
+ char ki_sparestrings[38]; /* spare string space */
+ pid_t ki_reaper; /* pid of reaper process */
+ pid_t ki_reapsubtree; /* reaper subtree id */
int ki_spareints[KI_NSPARE_INT]; /* spare room for growth */
uint64_t ki_tdev; /* controlling tty dev */
int ki_oncpu; /* Which cpu we are on */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jun 27, 3:00 PM (19 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34406959
Default Alt Text
D56538.id176015.diff (2 KB)
Attached To
Mode
D56538: kern/proc: expose reaper PID and subtree root in struct kinfo_proc
Attached
Detach File
Event Timeline
Log In to Comment