> Date: Sat, 1 Jun 2013 06:35:24 -0700 > From: Mike Larkin <mlar...@azathoth.net> > > Some machines (eg VMs running in VMware) display hundreds of wakeup devices, > polluting dmesg output with many lines of output. One VM dmesg I was shown > indicated 816 wakeup devices. > > Since it is unlikely that any real machines have more than 16 wakeup devices, > truncate the count at 16, and after that print '[...]' indicating there are > more. On a standard i386/amd64 console, this is about 1.5 - 2 lines of > dmesg output. > > This was requested by reyk@ and I put this diff together at the hackathon, > but I'm not particularly attached to it one way or the other. If enough > people think it's a good idea, I can commit it.
Why not stop printing them alltogether? > Index: dev/acpi/acpi.c > =================================================================== > RCS file: /cvs/src/sys/dev/acpi/acpi.c,v > retrieving revision 1.243 > diff -a -u -r1.243 acpi.c > --- dev/acpi/acpi.c 18 Apr 2013 18:30:41 -0000 1.243 > +++ dev/acpi/acpi.c 31 May 2013 20:33:20 -0000 > @@ -629,7 +629,7 @@ > struct acpi_rsdp *rsdp; > struct acpi_q *entry; > struct acpi_dsdt *p_dsdt; > - int idx; > + int idx, wakeup_dev_ct; > #ifndef SMALL_KERNEL > struct acpi_wakeq *wentry; > struct device *dev; > @@ -796,10 +796,15 @@ > > #ifndef SMALL_KERNEL > /* Display wakeup devices and lowest S-state */ > + wakeup_dev_ct = 0; > printf("%s: wakeup devices", DEVNAME(sc)); > SIMPLEQ_FOREACH(wentry, &sc->sc_wakedevs, q_next) { > - printf(" %.4s(S%d)", wentry->q_node->name, > - wentry->q_state); > + if (wakeup_dev_ct < 16) > + printf(" %.4s(S%d)", wentry->q_node->name, > + wentry->q_state); > + else if (wakeup_dev_ct == 16) > + printf(" [...]"); > + wakeup_dev_ct ++; > } > printf("\n"); > >