Re: Reducing SIGINFO verbosity

From: Ian Lepore <ian_at_freebsd.org>
Date: Fri, 21 May 2021 01:42:20 UTC
On Thu, 2021-05-20 at 15:57 -0700, Conrad Meyer wrote:
> No, I donĒt think thereĒs any reason to default it differently on
> stable vs
> current. I think itĒs useful (and I prefer the more verbose form,
> which
> isnĒt the default).
> 
> Conrad
> 

So... there are thousands of freebsd users, who don't care about this
noisy stack trace stuff at all.  And there are dozens of freebsd
developers, and amongst them there are maybe, what... a half dozen at
best that want this info when they hit ^T?

So clearly, the right decision is to make maximal noise the default,
and not just in the development branches.  It doesn't matter how much
it bothers the users as long as a few developers are happy.

And people moan about freebsd's dwindling user base and wonder why it's
withering away.

-- Ian


> On Thu, May 20, 2021 at 11:59 John-Mark Gurney <jmg@funkthat.com>
> wrote:
> 
> > Michael Gmelin wrote this message on Thu, May 20, 2021 at 18:01
> > +0200:
> > > 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.
> > 
> > I think the original intent was to disable this on -stable or at
> > least
> > -RELEASEs, but it looks like this didn't happen.  This is VERY
> > helpful
> > for a developer, but not as helpful for most users.
> > 
> > Conrad,
> > 
> > Should this be disabled on -stable now?
> > 
> > --
> >   John-Mark Gurney                              Voice: +1 415 225
> > 5579
> > 
> >      "All that I will do, has been done, All that I have, has not."
> >