[Bug 226968] IRQ storm on cpu0 timer when holding down key on USB keyboard

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Mar 27 20:28:47 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=226968

--- Comment #6 from Johannes Lundberg <johalun0 at gmail.com> ---
Here output from 
# dtrace -n 'profile-997hz /arg0/ { @[func(arg0)]=count(); }'
run for about 10 seconds for each state 

First idle state

-- SNIP --
  linux_common.ko`linux_kernver                                     1
  linux.ko`linux_gettimeofday                                       1
  linux.ko`linux_sendsig                                            1
  kernel`ithread_loop                                               2
  kernel`witness_checkorder                                         2
  kernel`witness_warn                                               2
  linux.ko`0xffffffff820c2f60                                       2
  kernel`_isitmyx                                                   3
  kernel`witness_unlock                                             4
  kernel`vt_fb_bitblt_bitmap                                       11
  kernel`spinlock_exit                                             11
  kernel`cpu_idle                                                  37
  kernel`acpi_cpu_idle                                          26778


And then with cpu0:timer firing at 800k/s

-- SNIP --
  kernel`pagezero                                                   1
  linux.ko`0xffffffff820c2f60                                       1
  kernel`vt_fb_bitblt_text                                          2
  kernel`vt_fb_bitblt_bitmap                                       11
  kernel`lock_mtx                                                  16
  kernel`lock_delay                                                21
  kernel`unlock_mtx                                                31
  kernel`cpu_idle                                                  55
  kernel`callout_when                                              57
  kernel`witness_lock                                              77
  kernel`callout_reset_sbt_on                                      85
  kernel`spinlock_enter                                            99
  kernel`__mtx_lock_spin_flags                                    103
  kernel`softclock_call_cc                                        118
  kernel`ukbd_timeout                                             119
  kernel`witness_checkorder                                       150
  kernel`__mtx_assert                                             155
  kernel`usbd_in_polling_mode                                     167
  kernel`__mtx_lock_flags                                         179
  kernel`__mtx_unlock_flags                                       180
  kernel`ukbd_interrupt                                           298
  kernel`memcpy                                                   313
  kernel`witness_unlock                                           318
  kernel`spinlock_exit                                          11745
  kernel`acpi_cpu_idle                                          45519

And some procstat -ak during irq storm

root at jd2:/usr/home/johannes # procstat -ak|grep 100023
   12 100023 intr                swi4: clock (0)     mi_switch ithread_loop
fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     <running>                  
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     callout_reset_sbt_on
ukbd_timeout softclock_call_cc softclock intr_event_execute_handlers
ithread_loop fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     <running>                  
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     ukbd_timeout
softclock_call_cc softclock intr_event_execute_handlers ithread_loop fork_exit
fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     <running>                  
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     ukbd_interrupt
ukbd_timeout softclock_call_cc softclock intr_event_execute_handlers
ithread_loop fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     callout_reset_sbt_on
ukbd_timeout softclock_call_cc softclock intr_event_execute_handlers
ithread_loop fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     callout_reset_sbt_on
ukbd_timeout softclock_call_cc softclock intr_event_execute_handlers
ithread_loop fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     <running>                  
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     callout_reset_sbt_on
ukbd_timeout softclock_call_cc softclock intr_event_execute_handlers
ithread_loop fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     softclock
intr_event_execute_handlers ithread_loop fork_exit fork_trampoline 
root at jd2:/usr/home/johannes # procstat -ak | grep 100023
   12 100023 intr                swi4: clock (0)     ukbd_interrupt
ukbd_timeout softclock_call_cc softclock intr_event_execute_handlers
ithread_loop fork_exit fork_trampoline

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-usb mailing list