Event based scheduling and USB.

Alexander Motin mav at FreeBSD.org
Tue Oct 26 19:58:21 UTC 2010

Takanori Watanabe wrote:
> I updated my FreeBSD tree on laptop, to the current
> as of 18 Oct.2010, it works fine with CPU C3 state enabled,
> I think this is your achievement of event time scheduler,
> thanks!
> But when USB driver is enabled, the load average is considerablly 
> high (0.6 to 1.0) if sysctl oid kern.eventtimer.periodic is set to 0.
>  Then kern.eventtimer.periodic is set to 1, the load average goes
> to 0 quickly as before, but almost never transit to C3.
> Is this behavior expected, or something wrong?
> I noticed one of usb host controller device shares HPET irq.
> When I implement interrupt filter in uhci driver, the load average
> goes to 0 as before.
> ====
> % vmstat -i
> interrupt                          total       rate
> irq1: atkbd0                         398          2
> irq9: acpi0                          408          2
> irq12: psm0                            3          0
> irq19: ehci1                          37          0
> irq20: hpet0 uhci0                 35970        230
> irq22: ehci0                           2          0
> irq256: em0                            4          0
> irq257: ahci0                       1692         10
> Total                              38514        246
> ===

I haven't noticed that issue and it is surely not expected for me. I
will try to reproduce it.

Most likely you should be able to avoid interrupt sharing using some
additional HPET options, described at hpet(4).

> BTW, when USB port is enabled C3 transition rate gets lower.
> I think it is likely to occur. But how can I supress power 
> consumption? 

I can't say about USB, but you may try this patch to optimize some other
subsystems: http://people.freebsd.org/~mav/tm6292_idle.patch

> It's time to implement powertop for freebsd, isn't it?

Surely it is. I was even thinking about possibility to port one from
OpenSolaris, but other work distracted me. You may take it, it you wish.

Alexander Motin

More information about the freebsd-current mailing list