Page MenuHomeFreeBSD

Add device_quiet_children() and device_has_quiet_children()
Needs ReviewPublic

Authored by imp on Apr 21 2018, 7:18 PM.

Details

Reviewers
cperciva
jhb
Summary

If you add a child to a device that has quiet children, we'll
automatically set the quiet flag on the children.

This is indended for things like CPU that have a large amount of
repetition in booting.

Use device_quiet_children to silence verbose CPU probe messages.

Test Plan

boot and notice a lot fewer devices

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 16251
Build 16201: arc lint + arc unit

Event Timeline

imp created this revision.Apr 21 2018, 7:18 PM
imp edited the test plan for this revision. (Show Details)Apr 21 2018, 7:25 PM
imp added reviewers: cperciva, jhb.

Works for me. Two minor questions about the code (see comments inline).

sys/dev/acpica/acpi_cpu.c
311

Is it intentional that cpu0 remains "noisy"? I don't object to this; but it's not quite what the summary says.

sys/kern/subr_bus.c
1832

Should we set device_quiet_children here too? I'd assume that if a device is so noisy that we want to quiet its children, we would also want to quiet its grandchildren.

imp updated this revision to Diff 41717.Apr 21 2018, 11:29 PM
imp edited the test plan for this revision. (Show Details)
  • Add device_quiet_children() and device_has_quiet_children()
  • Use device_quiet_children to silence verbose CPU probe messages.
  • Put the CPU starting on one line.

Tested on EC2 x1.32xlarge (72 CPUs) and c5.18xlarge (128 CPUs) instances. Aside from making the console output far less verbose, the c5.18xlarge kernel boot time (measured from entering hammer_time to when init enters userland) dropped from 18.78 s to 11.75 s, and the x1.32xlarge kernel boot time dropped from 45.71 s to 36.33 s.

Please commit!