Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F153972303
D56538.id176042.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.id176042.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,14 @@
kp->ki_xstat = KW_EXITCODE(proc.p_xexit, proc.p_xsig);
kp->ki_acflag = proc.p_acflag;
kp->ki_lock = proc.p_lock;
+ 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,8 +392,10 @@
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];
int ki_spareints[KI_NSPARE_INT];
+ pid_t ki_reaper;
+ pid_t ki_reapsubtree;
freebsd32_uint64_t ki_tdev;
int ki_oncpu;
int ki_lastcpu;
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,8 +186,10 @@
* 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 */
int ki_spareints[KI_NSPARE_INT]; /* spare room for growth */
+ pid_t ki_reaper; /* pid of reaper process */
+ pid_t ki_reapsubtree; /* reaper subtree id */
uint64_t ki_tdev; /* controlling tty dev */
int ki_oncpu; /* Which cpu we are on */
int ki_lastcpu; /* Last cpu we were on */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Apr 26, 4:54 AM (3 h, 56 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32163128
Default Alt Text
D56538.id176042.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