Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2021 10:09:28 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Michael Gmelin <freebsd@grem.de>
Cc:        "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>
Subject:   Re: Reducing SIGINFO verbosity
Message-ID:  <CAOtMX2i-_baXgQ8_yM-jSeGX7hj4kbn0XP=csq1%2B%2BPN8D4m85w@mail.gmail.com>
In-Reply-To: <20210520180155.3e23500e@bsd64.grem.de>
References:  <20210520180155.3e23500e@bsd64.grem.de>

next in thread | previous in thread | raw e-mail | index | archive | help
--0000000000009312cd05c2c52b8f
Content-Type: text/plain; charset="UTF-8"

On Thu, May 20, 2021 at 10:05 AM Michael Gmelin <freebsd@grem.de> wrote:

> Hi,
>
> I'm leaving this here, mostly so that others (or future me) can google
> it up.
>
> Traditionally, CTRL-t would give a one-line output + whatever the
> process specific signal handler comes up with:
>
>   # sleep 120 <--- hits CTRL-t
>   load: 0.27  cmd: sleep 38162 [nanslp] 0.64r 0.00u 0.00s 0% 1780k
>   sleep: about 119 second(s) left out of the original 120
>
>   # cat <--- hits CTRL-t
>   load: 0.02  cmd: cat 24379 [ttyin] 0.63r 0.00u 0.00s 0% 2308k
>
>
> On 13 I get:
>
>   # sleep 120 <--- hits CTRL-t
>   load: 0.12  cmd: sleep 3241 [nanslp] 0.52r 0.00u 0.00s 0% 2172k
>   mi_switch+0xc1 sleepq_catch_signals+0x2e6 sleepq_timedwait_sig+0x12
>   _sleep+0x199 kern_clock_nanosleep+0x1e1 sys_nanosleep+0x3b
>   amd64_syscall+0x10c fast_syscall_common+0xf8 sleep: about 119
>   second(s) left out of the original 120
>
>   # cat <--- hits CTRL-t
>   load: 0.09  cmd: cat 3240 [ttyin] 0.23r 0.00u 0.00s 0% 2300k
>   mi_switch+0xc1 sleepq_catch_signals+0x2e6 sleepq_wait_sig+0x9
>   _cv_wait_sig+0xe4 tty_wait+0x1c ttydisc_read+0x2ac ttydev_read+0x56
>   devfs_read_f+0xd5 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c
>   fast_syscall_common+0xf8
>
> which is quite way too verbose when checking the progress of
> long-running processes, like cp, dd, or poudriere. Especially as CTRL-t
> is part of the user experience to me - I use it to interact with the
> machine outside of debugging software issues.
>
> Setting
>
>   sysctl kern.tty_info_kstacks=0
>   echo kern.tty_info_kstacks=0 >>/etc/sysctl.conf
>
> fixes this permanently.
>
> Apparently, this was enabled by default on purpose[0], so that people
> find the feature (which certainly worked ^_^), but I think it would
> been worth mentioning the sysctl somewhere in the release notes/errata,
> so that people understand how to disable it again.
>
> Best
> Michael
>
> [0]
> https://cgit.freebsd.org/src/commit/sys/kern/tty_info.c?h=releng/13.0&id=508a6e84e785f642545b81c3ecb325685a2e56a7
>
> --
> Michael Gmelin
>

I tend to agree.  I'm already using to using procstat to see a stuck
process's stacks, so I don't need to see them during ctrl-T, too.
-Alan

--0000000000009312cd05c2c52b8f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr">On Thu, May 20, 2021 at 10:05 AM Michael Gmelin &lt;<a href=3D"mailt=
o:freebsd@grem.de">freebsd@grem.de</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex">Hi,<br>
<br>
I&#39;m leaving this here, mostly so that others (or future me) can google<=
br>
it up.<br>
<br>
Traditionally, CTRL-t would give a one-line output + whatever the<br>
process specific signal handler comes up with:<br>
<br>
=C2=A0 # sleep 120 &lt;--- hits CTRL-t<br>
=C2=A0 load: 0.27=C2=A0 cmd: sleep 38162 [nanslp] 0.64r 0.00u 0.00s 0% 1780=
k<br>
=C2=A0 sleep: about 119 second(s) left out of the original 120<br>
<br>
=C2=A0 # cat &lt;--- hits CTRL-t<br>
=C2=A0 load: 0.02=C2=A0 cmd: cat 24379 [ttyin] 0.63r 0.00u 0.00s 0% 2308k<b=
r>
<br>
<br>
On 13 I get:<br>
<br>
=C2=A0 # sleep 120 &lt;--- hits CTRL-t<br>
=C2=A0 load: 0.12=C2=A0 cmd: sleep 3241 [nanslp] 0.52r 0.00u 0.00s 0% 2172k=
<br>
=C2=A0 mi_switch+0xc1 sleepq_catch_signals+0x2e6 sleepq_timedwait_sig+0x12<=
br>
=C2=A0 _sleep+0x199 kern_clock_nanosleep+0x1e1 sys_nanosleep+0x3b<br>
=C2=A0 amd64_syscall+0x10c fast_syscall_common+0xf8 sleep: about 119<br>
=C2=A0 second(s) left out of the original 120<br>
<br>
=C2=A0 # cat &lt;--- hits CTRL-t<br>
=C2=A0 load: 0.09=C2=A0 cmd: cat 3240 [ttyin] 0.23r 0.00u 0.00s 0% 2300k<br=
>
=C2=A0 mi_switch+0xc1 sleepq_catch_signals+0x2e6 sleepq_wait_sig+0x9<br>
=C2=A0 _cv_wait_sig+0xe4 tty_wait+0x1c ttydisc_read+0x2ac ttydev_read+0x56<=
br>
=C2=A0 devfs_read_f+0xd5 dofileread+0x81 sys_read+0xbc amd64_syscall+0x10c<=
br>
=C2=A0 fast_syscall_common+0xf8 <br>
<br>
which is quite way too verbose when checking the progress of<br>
long-running processes, like cp, dd, or poudriere. Especially as CTRL-t<br>
is part of the user experience to me - I use it to interact with the<br>
machine outside of debugging software issues.<br>
<br>
Setting<br>
<br>
=C2=A0 sysctl kern.tty_info_kstacks=3D0<br>
=C2=A0 echo kern.tty_info_kstacks=3D0 &gt;&gt;/etc/sysctl.conf<br>
<br>
fixes this permanently.<br>
<br>
Apparently, this was enabled by default on purpose[0], so that people<br>
find the feature (which certainly worked ^_^), but I think it would<br>
been worth mentioning the sysctl somewhere in the release notes/errata,<br>
so that people understand how to disable it again.<br>
<br>
Best<br>
Michael<br>
<br>
[0]<a href=3D"https://cgit.freebsd.org/src/commit/sys/kern/tty_info.c?h=3Dr=
eleng/13.0&amp;id=3D508a6e84e785f642545b81c3ecb325685a2e56a7" rel=3D"norefe=
rrer" target=3D"_blank">https://cgit.freebsd.org/src/commit/sys/kern/tty_in=
fo.c?h=3Dreleng/13.0&amp;id=3D508a6e84e785f642545b81c3ecb325685a2e56a7</a><=
br>
<br>
-- <br>
Michael Gmelin<br></blockquote><div><br></div><div>I tend to agree.=C2=A0 I=
&#39;m already using to using procstat to see a stuck process&#39;s stacks,=
 so I don&#39;t need to see them during ctrl-T, too.</div><div>-Alan<br></d=
iv></div></div>

--0000000000009312cd05c2c52b8f--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2i-_baXgQ8_yM-jSeGX7hj4kbn0XP=csq1%2B%2BPN8D4m85w>