Page MenuHomeFreeBSD

Don't request CTLTYPE_OPAQUE if we can't print them.
ClosedPublic

Authored by gallatin on Jul 3 2017, 1:30 PM.
Tags
None
Referenced Files
F168747705: D11461.id30351.diff
Sat, Aug 29, 11:00 PM
F168742267: D11461.diff
Sat, Aug 29, 10:19 PM
Unknown Object (File)
Wed, Aug 19, 1:52 AM
Unknown Object (File)
Tue, Aug 18, 1:58 PM
Unknown Object (File)
Mon, Aug 17, 8:47 PM
Unknown Object (File)
Sun, Aug 16, 8:24 PM
Unknown Object (File)
Sat, Aug 15, 9:50 PM
Unknown Object (File)
Sat, Aug 15, 2:13 AM
Subscribers
None

Details

Summary

The intent is to skip expensive sysctls like tcp_pcblist unless
they are explicitly asked for. These opaqueue sysctls don't show
up in sysctl -a, but they do generate output that winds up being
just dropped by sysctl, unless the user specifically asked to
see binary/hex output or opaques.

On a loaded system, this reduces the time to run
sysctl -a by a factor of 4 or so:

c059.ord001.dev# /usr/bin/time /sbin/sysctl -a > /dev/null

0.17 real         0.01 user         0.11 sys

c059.ord001.dev# /usr/bin/time /sbin/sysctl.old -a > /dev/null

0.75 real         0.01 user         0.50 sys

(and a factor of 2 or so on an unloaded system)

Unintentionally requesting some of these opaque sysctls
when debugging a sick machine can be enough to push things
over the edge sometimes.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 10272
Build 10690: arc lint + arc unit

Event Timeline

This revision is now accepted and ready to land.Jul 3 2017, 6:27 PM
This revision was automatically updated to reflect the committed changes.