aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2018-10-22 17:42:57 +0000
committerConrad Meyer <cem@FreeBSD.org>2018-10-22 17:42:57 +0000
commit93940996fd80c08c681cb38642457e41218476fe (patch)
treea64b949719df54b58273f1947c975bea028085f3
parent2801dd08d714dfbcc435f34187298c9f5a92d37e (diff)
downloadsrc-93940996fd80c08c681cb38642457e41218476fe.tar.gz
src-93940996fd80c08c681cb38642457e41218476fe.zip
Conditionalize kern.tty_info_kstacks feature on STACKS option
Fix tinderbox (mips XLPN32) after r339471. Reported by: tinderbox X-MFC-With: r339471 Sponsored by: Dell EMC Isilon
Notes
Notes: svn path=/head/; revision=339605
-rw-r--r--sys/kern/tty_info.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/kern/tty_info.c b/sys/kern/tty_info.c
index 598db728e210..378e1bc64284 100644
--- a/sys/kern/tty_info.c
+++ b/sys/kern/tty_info.c
@@ -236,10 +236,12 @@ sbuf_tty_drain(void *a, const char *d, int len)
return (-ENXIO);
}
+#ifdef STACK
static bool tty_info_kstacks = false;
SYSCTL_BOOL(_kern, OID_AUTO, tty_info_kstacks, CTLFLAG_RWTUN,
&tty_info_kstacks, 0,
"Enable printing kernel stack(9) traces on ^T (tty info)");
+#endif
/*
* Report on state of foreground process group.
@@ -248,13 +250,16 @@ void
tty_info(struct tty *tp)
{
struct timeval rtime, utime, stime;
+#ifdef STACK
struct stack stack;
+ int sterr;
+#endif
struct proc *p, *ppick;
struct thread *td, *tdpick;
const char *stateprefix, *state;
struct sbuf sb;
long rss;
- int load, pctcpu, sterr;
+ int load, pctcpu;
pid_t pid;
char comm[MAXCOMLEN + 1];
struct rusage ru;
@@ -329,6 +334,7 @@ tty_info(struct tty *tp)
else
state = "unknown";
pctcpu = (sched_pctcpu(td) * 10000 + FSCALE / 2) >> FSHIFT;
+#ifdef STACK
if (tty_info_kstacks) {
stack_zero(&stack);
if (TD_IS_SWAPPED(td) || TD_IS_RUNNING(td))
@@ -338,6 +344,7 @@ tty_info(struct tty *tp)
sterr = 0;
}
}
+#endif
thread_unlock(td);
if (p->p_state == PRS_NEW || p->p_state == PRS_ZOMBIE)
rss = 0;
@@ -359,8 +366,10 @@ tty_info(struct tty *tp)
(long)stime.tv_sec, stime.tv_usec / 10000,
pctcpu / 100, rss);
+#ifdef STACK
if (tty_info_kstacks && sterr == 0)
stack_sbuf_print_flags(&sb, &stack, M_NOWAIT);
+#endif
out:
sbuf_finish(&sb);