linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Busy looping iwl3945 driver
@ 2011-12-01 10:33 Zdenek Kabelac
  2011-12-01 11:07 ` Zdenek Kabelac
  0 siblings, 1 reply; 3+ messages in thread
From: Zdenek Kabelac @ 2011-12-01 10:33 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: linux-wireless

Hi

Today I've noticed  100% CPU occupied by kworker thread - which
appeared to be the result of some  iwl3945 driver interaction.

Here are some trace of some tasks from that moment.
It looked like when I've then even tried to run 'mc' of  'ifconfig' -
they could not start since some device lock was kept busy.

The problem was most probably caused by doing suspend when attached to
the wireless network  and resuming in wired docking station,
without having the previous wireless AP available.

My hw -  T61, 4G, C2D, iwl3945 wifi,   X86_64 kernel 3.2.0-rc3
Only reboot fixed this problem.


 NetworkManager  D 0000000000000000     0   648      1 0x00000004
  ffff8801301157e8 0000000000000046 ffffffff814d9fe4 0000000000000000
  ffff8801301157f8 ffff88012c968000 0000000000000000 ffff880130115fd8
  ffff880130115fd8 ffff880130115fd8 ffffffff81a0d020 ffff88012c968000
 Call Trace:
  [<ffffffff814d9fe4>] ? __schedule+0x994/0xb50
  [<ffffffff814da23f>] schedule+0x3f/0x60
  [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
  [<ffffffffa033984f>] ? ieee80211_ifa_changed+0x9f/0x150 [mac80211]
  [<ffffffffa033984f>] ? ieee80211_ifa_changed+0x9f/0x150 [mac80211]
  [<ffffffffa033984f>] ieee80211_ifa_changed+0x9f/0x150 [mac80211]
  [<ffffffff814e17e3>] notifier_call_chain+0x93/0x100
  [<ffffffff81082cf8>] __blocking_notifier_call_chain+0x78/0xb0
  [<ffffffff81082d46>] blocking_notifier_call_chain+0x16/0x20
  [<ffffffff814856b6>] __inet_del_ifa+0xb6/0x290
  [<ffffffff8148633e>] inet_rtm_deladdr+0x10e/0x160
  [<ffffffff81436544>] rtnetlink_rcv_msg+0x124/0x2e0
  [<ffffffff81436420>] ? __rtnl_unlock+0x20/0x20
  [<ffffffff81446c49>] netlink_rcv_skb+0xa9/0xd0
  [<ffffffff81434465>] rtnetlink_rcv+0x25/0x40
  [<ffffffff81446580>] netlink_unicast+0x2c0/0x310
  [<ffffffff81446886>] netlink_sendmsg+0x2b6/0x310
  [<ffffffff81410458>] ? sock_update_classid+0xb8/0x1f0
  [<ffffffff81409cee>] sock_sendmsg+0x10e/0x1e0
  [<ffffffff8140babd>] ? sock_recvmsg+0x18d/0x210
  [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
  [<ffffffff8112dd2c>] ? might_fault+0x9c/0xb0
  [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
  [<ffffffff814191c6>] ? verify_iovec+0x56/0xd0
  [<ffffffff8140c116>] __sys_sendmsg+0x376/0x380
  [<ffffffff81161458>] ? fget_light+0x48/0x3b0
  [<ffffffff811614f1>] ? fget_light+0xe1/0x3b0
  [<ffffffff81161458>] ? fget_light+0x48/0x3b0
  [<ffffffff8118149f>] ? mntput+0x1f/0x30
  [<ffffffff8140db19>] sys_sendmsg+0x49/0x90
  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b



avahi-daemon    D 0000000000000246     0   667      1 0x00000000
 ffff880127df5ba8 0000000000000046 0000000000000000 0000000000000000
 ffff880127df5bb8 ffff880128be4600 0000000000000000 ffff880127df5fd8
 ffff880127df5fd8 ffff880127df5fd8 ffff88012ca72300 ffff880128be4600
Call Trace:
 [<ffffffff814da23f>] schedule+0x3f/0x60
 [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] rtnl_lock+0x17/0x20
 [<ffffffff8148ff6f>] ip_mc_leave_group+0x2f/0x180
 [<ffffffff8145b2f4>] do_ip_setsockopt+0x6d4/0xdb0
 [<ffffffff81409cee>] ? sock_sendmsg+0x10e/0x1e0
 [<ffffffff8116a1fc>] ? pipe_write+0x2ec/0x5b0
 [<ffffffff811a1b43>] ? fsnotify+0x93/0x600
 [<ffffffff8140d6f1>] ? sys_sendto+0x101/0x130
 [<ffffffff8145bad6>] ip_setsockopt+0x36/0xb0
 [<ffffffff8147dcab>] udp_setsockopt+0x1b/0x40
 [<ffffffff8140e574>] sock_common_setsockopt+0x14/0x20
 [<ffffffff8140d8ff>] sys_setsockopt+0x7f/0xe0
 [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b


wpa_supplicant  D 0000000000000246     0   770      1 0x00000000
 ffff880127c17908 0000000000000046 0000000000000000 0000000000000000
 ffff880127c17918 ffff880127e02300 0000000000000000 ffff880127c17fd8
 ffff880127c17fd8 ffff880127c17fd8 ffff88012ca72300 ffff880127e02300
Call Trace:
 [<ffffffff814da23f>] schedule+0x3f/0x60
 [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] rtnl_lock+0x17/0x20
 [<ffffffffa02ec1d5>] nl80211_pre_doit+0xf5/0x190 [cfg80211]
 [<ffffffff81447263>] genl_rcv_msg+0x1c3/0x250
 [<ffffffff814470a0>] ? genl_rcv+0x40/0x40
 [<ffffffff81446c49>] netlink_rcv_skb+0xa9/0xd0
 [<ffffffff81447085>] genl_rcv+0x25/0x40
 [<ffffffff81446580>] netlink_unicast+0x2c0/0x310
 [<ffffffff81446886>] netlink_sendmsg+0x2b6/0x310
 [<ffffffff81410458>] ? sock_update_classid+0xb8/0x1f0
 [<ffffffff81409cee>] sock_sendmsg+0x10e/0x1e0
 [<ffffffff8140babd>] ? sock_recvmsg+0x18d/0x210
 [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
 [<ffffffff8112dd2c>] ? might_fault+0x9c/0xb0
 [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
 [<ffffffff814191c6>] ? verify_iovec+0x56/0xd0
 [<ffffffff8140c116>] __sys_sendmsg+0x376/0x380
 [<ffffffff8106a904>] ? set_current_blocked+0x34/0x60
 [<ffffffff8100bee1>] ? fpu_finit+0x21/0x40
 [<ffffffff8100bf4a>] ? init_fpu+0x4a/0x180
 [<ffffffff8100d198>] ? restore_i387_xstate+0xc8/0x1d0
 [<ffffffff811615bf>] ? fget_light+0x1af/0x3b0
 [<ffffffff814ddedb>] ? _raw_spin_unlock_irq+0x3b/0x60
 [<ffffffff8140db19>] sys_sendmsg+0x49/0x90
 [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b



ntpd            D 0000000000000246     0 21324      1 0x00000000
 ffff880127adfca8 0000000000000046 0000000000000000 0000000000000000
 ffff880127adfcb8 ffff880127f5c600 0000000000000000 ffff880127adffd8
 ffff880127adffd8 ffff880127adffd8 ffff8800379e4600 ffff880127f5c600
Call Trace:
 [<ffffffff814da23f>] schedule+0x3f/0x60
 [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] rtnl_lock+0x17/0x20
 [<ffffffff81428165>] dev_ioctl+0x3c5/0x660
 [<ffffffff81090b80>] ? lockdep_init_map+0xf0/0x590
 [<ffffffff814092ad>] sock_do_ioctl+0x5d/0x70
 [<ffffffff81409339>] sock_ioctl+0x79/0x2f0
 [<ffffffff811736f8>] do_vfs_ioctl+0x98/0x570
 [<ffffffff814dddf5>] ? _raw_spin_unlock+0x35/0x60
 [<ffffffff8115d7cd>] ? fd_install+0x7d/0x100
 [<ffffffff811615bf>] ? fget_light+0x1af/0x3b0
 [<ffffffff81173c61>] sys_ioctl+0x91/0xa0
 [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b



Here I've tried  'mc'  and rmmod of iwl3945 (which had in fact open count == 0)



mc              D 0000000000000000     0 12325  12174 0x00000000
 ffff880007a77ca8 0000000000000046 ffffffff814d9fe4 0000000000000000
 ffff880007a77cb8 ffff880037918000 0000000000000000 ffff880007a77fd8
 ffff880007a77fd8 ffff880007a77fd8 ffffffff81a0d020 ffff880037918000
Call Trace:
 [<ffffffff814d9fe4>] ? __schedule+0x994/0xb50
 [<ffffffff814da23f>] schedule+0x3f/0x60
 [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
 [<ffffffff81434437>] rtnl_lock+0x17/0x20
 [<ffffffff81428165>] dev_ioctl+0x3c5/0x660
 [<ffffffff81090b80>] ? lockdep_init_map+0xf0/0x590
 [<ffffffff814092ad>] sock_do_ioctl+0x5d/0x70
 [<ffffffff81409339>] sock_ioctl+0x79/0x2f0
 [<ffffffff811736f8>] do_vfs_ioctl+0x98/0x570
 [<ffffffff814dddf5>] ? _raw_spin_unlock+0x35/0x60
 [<ffffffff8115d7cd>] ? fd_install+0x7d/0x100
 [<ffffffff811615bf>] ? fget_light+0x1af/0x3b0
 [<ffffffff81173c61>] sys_ioctl+0x91/0xa0
 [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
rmmod           D 0000000000000000     0 12340  22112 0x00000000
 ffff880051811bf8 0000000000000046 ffffffff814d9fe4 ffffffff814d5fd1
 0000000000000001 ffff8800b0cd8000 0000000000000046 ffff880051811fd8
 ffff880051811fd8 ffff880051811fd8 ffff880136d44600 ffff8800b0cd8000
Call Trace:
 [<ffffffff814d9fe4>] ? __schedule+0x994/0xb50
 [<ffffffff814d5fd1>] ? __slab_free+0x233/0x3aa
 [<ffffffff814da23f>] schedule+0x3f/0x60
 [<ffffffff814dd265>] rwsem_down_failed_common+0xc5/0x160
 [<ffffffff814dd313>] rwsem_down_write_failed+0x13/0x20
 [<ffffffff812d2733>] call_rwsem_down_write_failed+0x13/0x20
 [<ffffffff81082a07>] ? blocking_notifier_chain_unregister+0x27/0xe0
 [<ffffffff814dc629>] ? down_write+0x89/0xb0
 [<ffffffff81082a07>] ? blocking_notifier_chain_unregister+0x27/0xe0
 [<ffffffff81082a07>] blocking_notifier_chain_unregister+0x27/0xe0
 [<ffffffff81485cd8>] unregister_inetaddr_notifier+0x18/0x20
 [<ffffffffa03380b6>] ieee80211_unregister_hw+0x46/0x120 [mac80211]
 [<ffffffffa03b4779>] iwl3945_pci_remove+0x57/0x300 [iwl3945]
 [<ffffffff814dde62>] ? _raw_spin_unlock_irqrestore+0x42/0x80
 [<ffffffff812ee156>] pci_device_remove+0x46/0x110
 [<ffffffff813926bc>] __device_release_driver+0x7c/0xe0
 [<ffffffff81392fc8>] driver_detach+0xd8/0xe0
 [<ffffffff813924f1>] bus_remove_driver+0x91/0x110
 [<ffffffff813937b2>] driver_unregister+0x62/0xa0
 [<ffffffff812ecf94>] pci_unregister_driver+0x44/0xc0
 [<ffffffffa03b4a32>] iwl3945_exit+0x10/0x17 [iwl3945]
 [<ffffffff810a169e>] sys_delete_module+0x16e/0x250
 [<ffffffff8109647f>] ? trace_hardirqs_on_caller+0x1f/0x1b0
 [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b



Here is  'pert record -a -g'

# Overhead          Command               Shared Object
                       Symbol
# ........  ...............  ..........................
...........................................
#
    97.57%      kworker/u:3  [kernel.kallsyms]           [k] lock_timer_base
                |
                --- lock_timer_base
                    try_to_del_timer_sync
                    del_timer_sync
                    iwl3945_send_tx_power
                    ieee80211_bss_info_change_notify
                    ieee80211_sta_eosp_irqsafe
                    ieee80211_sta_eosp_irqsafe
                    ieee80211_stop_tx_ba_cb
                    ieee80211_stop_tx_ba_cb
                    ieee80211_stop_tx_ba_cb
                    ieee80211_stop_tx_ba_cb
                    process_one_work
                    worker_thread
                    kthread
                    kernel_thread_helper

     0.38%      kworker/u:3  [kernel.kallsyms]           [k] ioread32
                |
                --- ioread32
                   |
                   |--37.76%-- iwl_legacy_send_bt_config
                   |          iwl3945_rx_queue_restock
                   |          iwl3945_irq_tasklet
                   |          tasklet_action
                   |          __do_softirq
                   |          call_softirq
                   |          do_softirq
                   |          irq_exit
                   |          __irqentry_text_start
                   |          ret_from_intr
                   |          try_to_del_timer_sync
                   |          del_timer_sync
                   |          iwl3945_send_tx_power
                   |          ieee80211_bss_info_change_notify
                   |          ieee80211_sta_eosp_irqsafe
                   |          ieee80211_sta_eosp_irqsafe
                   |          ieee80211_stop_tx_ba_cb
                   |          ieee80211_stop_tx_ba_cb
                   |          ieee80211_stop_tx_ba_cb
                   |          ieee80211_stop_tx_ba_cb
                   |          process_one_work
                   |          worker_thread
                   |          kthread
                   |          kernel_thread_helper
                   |
                   |--31.13%-- iwl3945_irq_tasklet
                   |          tasklet_action
                   |          __do_softirq
                   |          call_softirq
                   |          do_softirq
                   |          irq_exit
                   |          |
                   |          |--92.86%-- __irqentry_text_start
                   |          |          ret_from_intr
                   |          |          try_to_del_timer_sync
                   |          |          del_timer_sync
                   |          |          iwl3945_send_tx_power
                   |          |          ieee80211_bss_info_change_notify
                   |          |          ieee80211_sta_eosp_irqsafe
                   |          |          ieee80211_sta_eosp_irqsafe
                   |          |          ieee80211_stop_tx_ba_cb
                   |          |          ieee80211_stop_tx_ba_cb
                   |          |          ieee80211_stop_tx_ba_cb
                   |          |          ieee80211_stop_tx_ba_cb
                   |          |          process_one_work
                   |          |          worker_thread
                   |          |          kthread
                   |          |          kernel_thread_helper
                   |          |
                   |           --7.14%-- smp_apic_timer_interrupt
                   |                     apic_timer_interrupt
                   |                     try_to_del_timer_sync
                   |                     del_timer_sync
                   |                     iwl3945_send_tx_power
                   |                     ieee80211_bss_info_change_notify
                   |                     ieee80211_sta_eosp_irqsafe
                   |                     ieee80211_sta_eosp_irqsafe
                   |                     ieee80211_stop_tx_ba_cb
                   |                     ieee80211_stop_tx_ba_cb
                   |                     ieee80211_stop_tx_ba_cb
                   |                     ieee80211_stop_tx_ba_cb
                   |                     process_one_work
                   |                     worker_thread
                   |                     kthread
                   |                     kernel_thread_helper
                   |
                    --31.12%-- iwl_legacy_add_beacon_time
                              handle_irq_event_percpu
                              handle_irq_event
                              handle_edge_irq
                              handle_irq
                              __irqentry_text_start
                              ret_from_intr
                              try_to_del_timer_sync
                              del_timer_sync
                              iwl3945_send_tx_power
                              ieee80211_bss_info_change_notify
                              ieee80211_sta_eosp_irqsafe
                              ieee80211_sta_eosp_irqsafe
                              ieee80211_stop_tx_ba_cb
                              ieee80211_stop_tx_ba_cb
                              ieee80211_stop_tx_ba_cb
                              ieee80211_stop_tx_ba_cb
                              process_one_work
                              worker_thread
                              kthread
                              kernel_thread_helper

     0.27%      kworker/u:3  [kernel.kallsyms]           [k] read_hpet
....

Zdenek

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Busy looping iwl3945 driver
  2011-12-01 10:33 Busy looping iwl3945 driver Zdenek Kabelac
@ 2011-12-01 11:07 ` Zdenek Kabelac
  2011-12-01 12:00   ` Stanislaw Gruszka
  0 siblings, 1 reply; 3+ messages in thread
From: Zdenek Kabelac @ 2011-12-01 11:07 UTC (permalink / raw)
  To: Linux Kernel Mailing List; +Cc: linux-wireless

Ahh

Seems to be related to this thread:

https://lkml.org/lkml/2011/11/29/102



2011/12/1 Zdenek Kabelac <zdenek.kabelac@gmail.com>:
> Hi
>
> Today I've noticed  100% CPU occupied by kworker thread - which
> appeared to be the result of some  iwl3945 driver interaction.
>
> Here are some trace of some tasks from that moment.
> It looked like when I've then even tried to run 'mc' of  'ifconfig' -
> they could not start since some device lock was kept busy.
>
> The problem was most probably caused by doing suspend when attached to
> the wireless network  and resuming in wired docking station,
> without having the previous wireless AP available.
>
> My hw -  T61, 4G, C2D, iwl3945 wifi,   X86_64 kernel 3.2.0-rc3
> Only reboot fixed this problem.
>
>
>  NetworkManager  D 0000000000000000     0   648      1 0x00000004
>  ffff8801301157e8 0000000000000046 ffffffff814d9fe4 0000000000000000
>  ffff8801301157f8 ffff88012c968000 0000000000000000 ffff880130115fd8
>  ffff880130115fd8 ffff880130115fd8 ffffffff81a0d020 ffff88012c968000
>  Call Trace:
>  [<ffffffff814d9fe4>] ? __schedule+0x994/0xb50
>  [<ffffffff814da23f>] schedule+0x3f/0x60
>  [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
>  [<ffffffffa033984f>] ? ieee80211_ifa_changed+0x9f/0x150 [mac80211]
>  [<ffffffffa033984f>] ? ieee80211_ifa_changed+0x9f/0x150 [mac80211]
>  [<ffffffffa033984f>] ieee80211_ifa_changed+0x9f/0x150 [mac80211]
>  [<ffffffff814e17e3>] notifier_call_chain+0x93/0x100
>  [<ffffffff81082cf8>] __blocking_notifier_call_chain+0x78/0xb0
>  [<ffffffff81082d46>] blocking_notifier_call_chain+0x16/0x20
>  [<ffffffff814856b6>] __inet_del_ifa+0xb6/0x290
>  [<ffffffff8148633e>] inet_rtm_deladdr+0x10e/0x160
>  [<ffffffff81436544>] rtnetlink_rcv_msg+0x124/0x2e0
>  [<ffffffff81436420>] ? __rtnl_unlock+0x20/0x20
>  [<ffffffff81446c49>] netlink_rcv_skb+0xa9/0xd0
>  [<ffffffff81434465>] rtnetlink_rcv+0x25/0x40
>  [<ffffffff81446580>] netlink_unicast+0x2c0/0x310
>  [<ffffffff81446886>] netlink_sendmsg+0x2b6/0x310
>  [<ffffffff81410458>] ? sock_update_classid+0xb8/0x1f0
>  [<ffffffff81409cee>] sock_sendmsg+0x10e/0x1e0
>  [<ffffffff8140babd>] ? sock_recvmsg+0x18d/0x210
>  [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
>  [<ffffffff8112dd2c>] ? might_fault+0x9c/0xb0
>  [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
>  [<ffffffff814191c6>] ? verify_iovec+0x56/0xd0
>  [<ffffffff8140c116>] __sys_sendmsg+0x376/0x380
>  [<ffffffff81161458>] ? fget_light+0x48/0x3b0
>  [<ffffffff811614f1>] ? fget_light+0xe1/0x3b0
>  [<ffffffff81161458>] ? fget_light+0x48/0x3b0
>  [<ffffffff8118149f>] ? mntput+0x1f/0x30
>  [<ffffffff8140db19>] sys_sendmsg+0x49/0x90
>  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
>
>
>
> avahi-daemon    D 0000000000000246     0   667      1 0x00000000
>  ffff880127df5ba8 0000000000000046 0000000000000000 0000000000000000
>  ffff880127df5bb8 ffff880128be4600 0000000000000000 ffff880127df5fd8
>  ffff880127df5fd8 ffff880127df5fd8 ffff88012ca72300 ffff880128be4600
> Call Trace:
>  [<ffffffff814da23f>] schedule+0x3f/0x60
>  [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] rtnl_lock+0x17/0x20
>  [<ffffffff8148ff6f>] ip_mc_leave_group+0x2f/0x180
>  [<ffffffff8145b2f4>] do_ip_setsockopt+0x6d4/0xdb0
>  [<ffffffff81409cee>] ? sock_sendmsg+0x10e/0x1e0
>  [<ffffffff8116a1fc>] ? pipe_write+0x2ec/0x5b0
>  [<ffffffff811a1b43>] ? fsnotify+0x93/0x600
>  [<ffffffff8140d6f1>] ? sys_sendto+0x101/0x130
>  [<ffffffff8145bad6>] ip_setsockopt+0x36/0xb0
>  [<ffffffff8147dcab>] udp_setsockopt+0x1b/0x40
>  [<ffffffff8140e574>] sock_common_setsockopt+0x14/0x20
>  [<ffffffff8140d8ff>] sys_setsockopt+0x7f/0xe0
>  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
>
>
> wpa_supplicant  D 0000000000000246     0   770      1 0x00000000
>  ffff880127c17908 0000000000000046 0000000000000000 0000000000000000
>  ffff880127c17918 ffff880127e02300 0000000000000000 ffff880127c17fd8
>  ffff880127c17fd8 ffff880127c17fd8 ffff88012ca72300 ffff880127e02300
> Call Trace:
>  [<ffffffff814da23f>] schedule+0x3f/0x60
>  [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] rtnl_lock+0x17/0x20
>  [<ffffffffa02ec1d5>] nl80211_pre_doit+0xf5/0x190 [cfg80211]
>  [<ffffffff81447263>] genl_rcv_msg+0x1c3/0x250
>  [<ffffffff814470a0>] ? genl_rcv+0x40/0x40
>  [<ffffffff81446c49>] netlink_rcv_skb+0xa9/0xd0
>  [<ffffffff81447085>] genl_rcv+0x25/0x40
>  [<ffffffff81446580>] netlink_unicast+0x2c0/0x310
>  [<ffffffff81446886>] netlink_sendmsg+0x2b6/0x310
>  [<ffffffff81410458>] ? sock_update_classid+0xb8/0x1f0
>  [<ffffffff81409cee>] sock_sendmsg+0x10e/0x1e0
>  [<ffffffff8140babd>] ? sock_recvmsg+0x18d/0x210
>  [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
>  [<ffffffff8112dd2c>] ? might_fault+0x9c/0xb0
>  [<ffffffff8112dce3>] ? might_fault+0x53/0xb0
>  [<ffffffff814191c6>] ? verify_iovec+0x56/0xd0
>  [<ffffffff8140c116>] __sys_sendmsg+0x376/0x380
>  [<ffffffff8106a904>] ? set_current_blocked+0x34/0x60
>  [<ffffffff8100bee1>] ? fpu_finit+0x21/0x40
>  [<ffffffff8100bf4a>] ? init_fpu+0x4a/0x180
>  [<ffffffff8100d198>] ? restore_i387_xstate+0xc8/0x1d0
>  [<ffffffff811615bf>] ? fget_light+0x1af/0x3b0
>  [<ffffffff814ddedb>] ? _raw_spin_unlock_irq+0x3b/0x60
>  [<ffffffff8140db19>] sys_sendmsg+0x49/0x90
>  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
>
>
>
> ntpd            D 0000000000000246     0 21324      1 0x00000000
>  ffff880127adfca8 0000000000000046 0000000000000000 0000000000000000
>  ffff880127adfcb8 ffff880127f5c600 0000000000000000 ffff880127adffd8
>  ffff880127adffd8 ffff880127adffd8 ffff8800379e4600 ffff880127f5c600
> Call Trace:
>  [<ffffffff814da23f>] schedule+0x3f/0x60
>  [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] rtnl_lock+0x17/0x20
>  [<ffffffff81428165>] dev_ioctl+0x3c5/0x660
>  [<ffffffff81090b80>] ? lockdep_init_map+0xf0/0x590
>  [<ffffffff814092ad>] sock_do_ioctl+0x5d/0x70
>  [<ffffffff81409339>] sock_ioctl+0x79/0x2f0
>  [<ffffffff811736f8>] do_vfs_ioctl+0x98/0x570
>  [<ffffffff814dddf5>] ? _raw_spin_unlock+0x35/0x60
>  [<ffffffff8115d7cd>] ? fd_install+0x7d/0x100
>  [<ffffffff811615bf>] ? fget_light+0x1af/0x3b0
>  [<ffffffff81173c61>] sys_ioctl+0x91/0xa0
>  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
>
>
>
> Here I've tried  'mc'  and rmmod of iwl3945 (which had in fact open count == 0)
>
>
>
> mc              D 0000000000000000     0 12325  12174 0x00000000
>  ffff880007a77ca8 0000000000000046 ffffffff814d9fe4 0000000000000000
>  ffff880007a77cb8 ffff880037918000 0000000000000000 ffff880007a77fd8
>  ffff880007a77fd8 ffff880007a77fd8 ffffffff81a0d020 ffff880037918000
> Call Trace:
>  [<ffffffff814d9fe4>] ? __schedule+0x994/0xb50
>  [<ffffffff814da23f>] schedule+0x3f/0x60
>  [<ffffffff814db1c2>] mutex_lock_nested+0x1b2/0x3f0
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] ? rtnl_lock+0x17/0x20
>  [<ffffffff81434437>] rtnl_lock+0x17/0x20
>  [<ffffffff81428165>] dev_ioctl+0x3c5/0x660
>  [<ffffffff81090b80>] ? lockdep_init_map+0xf0/0x590
>  [<ffffffff814092ad>] sock_do_ioctl+0x5d/0x70
>  [<ffffffff81409339>] sock_ioctl+0x79/0x2f0
>  [<ffffffff811736f8>] do_vfs_ioctl+0x98/0x570
>  [<ffffffff814dddf5>] ? _raw_spin_unlock+0x35/0x60
>  [<ffffffff8115d7cd>] ? fd_install+0x7d/0x100
>  [<ffffffff811615bf>] ? fget_light+0x1af/0x3b0
>  [<ffffffff81173c61>] sys_ioctl+0x91/0xa0
>  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
> rmmod           D 0000000000000000     0 12340  22112 0x00000000
>  ffff880051811bf8 0000000000000046 ffffffff814d9fe4 ffffffff814d5fd1
>  0000000000000001 ffff8800b0cd8000 0000000000000046 ffff880051811fd8
>  ffff880051811fd8 ffff880051811fd8 ffff880136d44600 ffff8800b0cd8000
> Call Trace:
>  [<ffffffff814d9fe4>] ? __schedule+0x994/0xb50
>  [<ffffffff814d5fd1>] ? __slab_free+0x233/0x3aa
>  [<ffffffff814da23f>] schedule+0x3f/0x60
>  [<ffffffff814dd265>] rwsem_down_failed_common+0xc5/0x160
>  [<ffffffff814dd313>] rwsem_down_write_failed+0x13/0x20
>  [<ffffffff812d2733>] call_rwsem_down_write_failed+0x13/0x20
>  [<ffffffff81082a07>] ? blocking_notifier_chain_unregister+0x27/0xe0
>  [<ffffffff814dc629>] ? down_write+0x89/0xb0
>  [<ffffffff81082a07>] ? blocking_notifier_chain_unregister+0x27/0xe0
>  [<ffffffff81082a07>] blocking_notifier_chain_unregister+0x27/0xe0
>  [<ffffffff81485cd8>] unregister_inetaddr_notifier+0x18/0x20
>  [<ffffffffa03380b6>] ieee80211_unregister_hw+0x46/0x120 [mac80211]
>  [<ffffffffa03b4779>] iwl3945_pci_remove+0x57/0x300 [iwl3945]
>  [<ffffffff814dde62>] ? _raw_spin_unlock_irqrestore+0x42/0x80
>  [<ffffffff812ee156>] pci_device_remove+0x46/0x110
>  [<ffffffff813926bc>] __device_release_driver+0x7c/0xe0
>  [<ffffffff81392fc8>] driver_detach+0xd8/0xe0
>  [<ffffffff813924f1>] bus_remove_driver+0x91/0x110
>  [<ffffffff813937b2>] driver_unregister+0x62/0xa0
>  [<ffffffff812ecf94>] pci_unregister_driver+0x44/0xc0
>  [<ffffffffa03b4a32>] iwl3945_exit+0x10/0x17 [iwl3945]
>  [<ffffffff810a169e>] sys_delete_module+0x16e/0x250
>  [<ffffffff8109647f>] ? trace_hardirqs_on_caller+0x1f/0x1b0
>  [<ffffffff814e562b>] system_call_fastpath+0x16/0x1b
>
>
>
> Here is  'pert record -a -g'
>
> # Overhead          Command               Shared Object
>                       Symbol
> # ........  ...............  ..........................
> ...........................................
> #
>    97.57%      kworker/u:3  [kernel.kallsyms]           [k] lock_timer_base
>                |
>                --- lock_timer_base
>                    try_to_del_timer_sync
>                    del_timer_sync
>                    iwl3945_send_tx_power
>                    ieee80211_bss_info_change_notify
>                    ieee80211_sta_eosp_irqsafe
>                    ieee80211_sta_eosp_irqsafe
>                    ieee80211_stop_tx_ba_cb
>                    ieee80211_stop_tx_ba_cb
>                    ieee80211_stop_tx_ba_cb
>                    ieee80211_stop_tx_ba_cb
>                    process_one_work
>                    worker_thread
>                    kthread
>                    kernel_thread_helper
>
>     0.38%      kworker/u:3  [kernel.kallsyms]           [k] ioread32
>                |
>                --- ioread32
>                   |
>                   |--37.76%-- iwl_legacy_send_bt_config
>                   |          iwl3945_rx_queue_restock
>                   |          iwl3945_irq_tasklet
>                   |          tasklet_action
>                   |          __do_softirq
>                   |          call_softirq
>                   |          do_softirq
>                   |          irq_exit
>                   |          __irqentry_text_start
>                   |          ret_from_intr
>                   |          try_to_del_timer_sync
>                   |          del_timer_sync
>                   |          iwl3945_send_tx_power
>                   |          ieee80211_bss_info_change_notify
>                   |          ieee80211_sta_eosp_irqsafe
>                   |          ieee80211_sta_eosp_irqsafe
>                   |          ieee80211_stop_tx_ba_cb
>                   |          ieee80211_stop_tx_ba_cb
>                   |          ieee80211_stop_tx_ba_cb
>                   |          ieee80211_stop_tx_ba_cb
>                   |          process_one_work
>                   |          worker_thread
>                   |          kthread
>                   |          kernel_thread_helper
>                   |
>                   |--31.13%-- iwl3945_irq_tasklet
>                   |          tasklet_action
>                   |          __do_softirq
>                   |          call_softirq
>                   |          do_softirq
>                   |          irq_exit
>                   |          |
>                   |          |--92.86%-- __irqentry_text_start
>                   |          |          ret_from_intr
>                   |          |          try_to_del_timer_sync
>                   |          |          del_timer_sync
>                   |          |          iwl3945_send_tx_power
>                   |          |          ieee80211_bss_info_change_notify
>                   |          |          ieee80211_sta_eosp_irqsafe
>                   |          |          ieee80211_sta_eosp_irqsafe
>                   |          |          ieee80211_stop_tx_ba_cb
>                   |          |          ieee80211_stop_tx_ba_cb
>                   |          |          ieee80211_stop_tx_ba_cb
>                   |          |          ieee80211_stop_tx_ba_cb
>                   |          |          process_one_work
>                   |          |          worker_thread
>                   |          |          kthread
>                   |          |          kernel_thread_helper
>                   |          |
>                   |           --7.14%-- smp_apic_timer_interrupt
>                   |                     apic_timer_interrupt
>                   |                     try_to_del_timer_sync
>                   |                     del_timer_sync
>                   |                     iwl3945_send_tx_power
>                   |                     ieee80211_bss_info_change_notify
>                   |                     ieee80211_sta_eosp_irqsafe
>                   |                     ieee80211_sta_eosp_irqsafe
>                   |                     ieee80211_stop_tx_ba_cb
>                   |                     ieee80211_stop_tx_ba_cb
>                   |                     ieee80211_stop_tx_ba_cb
>                   |                     ieee80211_stop_tx_ba_cb
>                   |                     process_one_work
>                   |                     worker_thread
>                   |                     kthread
>                   |                     kernel_thread_helper
>                   |
>                    --31.12%-- iwl_legacy_add_beacon_time
>                              handle_irq_event_percpu
>                              handle_irq_event
>                              handle_edge_irq
>                              handle_irq
>                              __irqentry_text_start
>                              ret_from_intr
>                              try_to_del_timer_sync
>                              del_timer_sync
>                              iwl3945_send_tx_power
>                              ieee80211_bss_info_change_notify
>                              ieee80211_sta_eosp_irqsafe
>                              ieee80211_sta_eosp_irqsafe
>                              ieee80211_stop_tx_ba_cb
>                              ieee80211_stop_tx_ba_cb
>                              ieee80211_stop_tx_ba_cb
>                              ieee80211_stop_tx_ba_cb
>                              process_one_work
>                              worker_thread
>                              kthread
>                              kernel_thread_helper
>
>     0.27%      kworker/u:3  [kernel.kallsyms]           [k] read_hpet
> ....
>
> Zdenek

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Busy looping iwl3945 driver
  2011-12-01 11:07 ` Zdenek Kabelac
@ 2011-12-01 12:00   ` Stanislaw Gruszka
  0 siblings, 0 replies; 3+ messages in thread
From: Stanislaw Gruszka @ 2011-12-01 12:00 UTC (permalink / raw)
  To: Zdenek Kabelac; +Cc: Linux Kernel Mailing List, linux-wireless

Hi Zdenek

On Thu, Dec 01, 2011 at 12:07:24PM +0100, Zdenek Kabelac wrote:
> Seems to be related to this thread:
> 
> https://lkml.org/lkml/2011/11/29/102

Try to revert f785d83a19bca326f79d127a413e35769afc0105 for
now, proper fix is on the way.

Stanislaw 

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2011-12-01 11:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-01 10:33 Busy looping iwl3945 driver Zdenek Kabelac
2011-12-01 11:07 ` Zdenek Kabelac
2011-12-01 12:00   ` Stanislaw Gruszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).