linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: fyi: scheduling while atomic dmesg output 3.12-rc1
       [not found] <1379439942.2012.16.camel@joe-AO722>
@ 2013-09-18  9:19 ` Arend van Spriel
  2013-09-18 13:57   ` Hauke Mehrtens
  0 siblings, 1 reply; 4+ messages in thread
From: Arend van Spriel @ 2013-09-18  9:19 UTC (permalink / raw)
  To: Joe Perches
  Cc: brcm80211-dev-list, linux-wireless, Hauke Mehrtens,
	Rafał Miłecki

[-- Attachment #1: Type: text/plain, Size: 5260 bytes --]

On 09/17/2013 07:45 PM, Joe Perches wrote:
> <3>[   11.206312] BUG: scheduling while atomic: NetworkManager/866/0x00000200

Thanks, Joe

I got a report on this few days ago. It was introduced by bcma API 
change and I already sent email to the committer of that change, ie. 
Hauke Mehrtens. Hope it will be settled soon how to fix this.

Gr. AvS

> <4>[   11.206325] Modules linked in: snd_hda_codec_realtek arc4 brcmsmac cordic brcmutil b43 mac80211 joydev cfg80211 ssb acer_wmi sparse_keymap snd_hda_intel snd_hda_codec snd_hwdep snd_pcm i2c_piix4 psmouse serio_raw k10temp snd_page_alloc snd_seq_midi snd_seq_midi_event snd_rawmidi snd_seq snd_seq_device snd_timer radeon bcma video snd wmi mac_hid parport_pc ppdev ttm rfcomm bnep bluetooth soundcore drm_kms_helper drm i2c_algo_bit binfmt_misc lp parport r8169 mii
> <4>[   11.206419] CPU: 0 PID: 866 Comm: NetworkManager Not tainted 3.12.0-rc1+ #41
> <4>[   11.206424] Hardware name: Acer AO725/ZA10_BZ, BIOS V2.12 04/16/2013
> <4>[   11.206430]  00000000 00000000 f159b828 c15e711b 00000000 f159b840 c15e3ffb c17ab9d0
> <4>[   11.206446]  f6c84320 00000362 00000200 f159b8cc c15eb79c c12de6a0 00000000 f159b8f0
> <4>[   11.206461]  f7bb69b0 f159b86c c106259e 00000000 c19b9940 c19b9940 f159b8bc c106323d
> <4>[   11.206476] Call Trace:
> <4>[   11.206494]  [<c15e711b>] dump_stack+0x41/0x52
> <4>[   11.206503]  [<c15e3ffb>] __schedule_bug+0x4e/0x5c
> <4>[   11.206512]  [<c15eb79c>] __schedule+0x78c/0x7a0
> <4>[   11.206523]  [<c12de6a0>] ? timerqueue_add+0x50/0xb0
> <4>[   11.206534]  [<c106259e>] ? enqueue_hrtimer+0x1e/0x70
> <4>[   11.206544]  [<c106323d>] ? __hrtimer_start_range_ns+0x16d/0x460
> <4>[   11.206552]  [<c15ebf73>] schedule+0x23/0x60
> <4>[   11.206560]  [<c15eab9c>] schedule_hrtimeout_range_clock+0xbc/0x160
> <4>[   11.206569]  [<c10626c0>] ? update_rmtp+0x90/0x90
> <4>[   11.206578]  [<c1063586>] ? hrtimer_start_range_ns+0x26/0x30
> <4>[   11.206586]  [<c15eac57>] schedule_hrtimeout_range+0x17/0x20
> <4>[   11.206594]  [<c104d13d>] usleep_range+0x3d/0x40
> <4>[   11.206612]  [<f88a0e27>] bcma_pcie_mdio_set_phy.isra.3+0x47/0x70 [bcma]
> <4>[   11.206626]  [<f88a0efa>] bcma_pcie_mdio_write.isra.4+0xaa/0xc0 [bcma]
> <4>[   11.206640]  [<f88a10d8>] bcma_pcie_mdio_writeread.isra.6.constprop.13+0x18/0x30 [bcma]
> <4>[   11.206653]  [<f88a1128>] bcma_core_pci_power_save+0x38/0x70 [bcma]
> <4>[   11.206666]  [<f88a126f>] bcma_core_pci_up+0x1f/0x50 [bcma]
> <4>[   11.206693]  [<f8eb523e>] brcms_c_up+0xee/0x3b0 [brcmsmac]
> <4>[   11.206712]  [<f8eab890>] brcms_up+0x20/0x30 [brcmsmac]
> <4>[   11.206731]  [<f8eac1a7>] brcms_ops_start+0x247/0x2e0 [brcmsmac]
> <4>[   11.206740]  [<c15e420a>] ? printk+0x4d/0x4f
> <4>[   11.206750]  [<c15278b0>] ? fib_rules_event+0x20/0x190
> <4>[   11.206798]  [<f941464c>] ieee80211_do_open+0x2fc/0xca0 [mac80211]
> <4>[   11.206807]  [<c1064dae>] ? __raw_notifier_call_chain+0x1e/0x30
> <4>[   11.206815]  [<c1064ddf>] ? raw_notifier_call_chain+0x1f/0x30
> <4>[   11.206856]  [<f941504d>] ieee80211_open+0x5d/0x60 [mac80211]
> <4>[   11.206867]  [<c151225b>] __dev_open+0xab/0x140
> <4>[   11.206875]  [<c15ed044>] ? _raw_spin_unlock_bh+0x14/0x20
> <4>[   11.206884]  [<c1512521>] __dev_change_flags+0x81/0x160
> <4>[   11.206893]  [<c15126b1>] dev_change_flags+0x21/0x60
> <4>[   11.206902]  [<c151d58d>] do_setlink+0x2bd/0x810
> <4>[   11.206913]  [<c12f6b22>] ? nla_parse+0x22/0xa0
> <4>[   11.206921]  [<c151f85e>] rtnl_newlink+0x36e/0x560
> <4>[   11.206932]  [<c1532b00>] ? __netlink_sendskb+0x10/0x120
> <4>[   11.206942]  [<c1268f74>] ? security_sock_rcv_skb+0x14/0x20
> <4>[   11.206951]  [<c1521200>] ? sk_run_filter+0x4a0/0x540
> <4>[   11.206960]  [<c129ee83>] ? apparmor_capable+0x23/0x70
> <4>[   11.206968]  [<c126956c>] ? security_capable+0x1c/0x30
> <4>[   11.206977]  [<c151f356>] rtnetlink_rcv_msg+0x86/0x220
> <4>[   11.206988]  [<c114a41a>] ? __kmalloc_track_caller+0x4a/0x150
> <4>[   11.206997]  [<c1507453>] ? __skb_recv_datagram+0xc3/0x3d0
> <4>[   11.207006]  [<c1504a60>] ? __alloc_skb+0x60/0x250
> <4>[   11.207014]  [<c151f2d0>] ? __rtnl_unlock+0x20/0x20
> <4>[   11.207022]  [<c1535506>] netlink_rcv_skb+0x86/0xa0
> <4>[   11.207030]  [<c151be9c>] rtnetlink_rcv+0x1c/0x30
> <4>[   11.207038]  [<c1534e74>] netlink_unicast+0x134/0x1a0
> <4>[   11.207046]  [<c1535122>] netlink_sendmsg+0x242/0x3e0
> <4>[   11.207055]  [<c14fb9f5>] sock_sendmsg+0x85/0xc0
> <4>[   11.207064]  [<c12e3535>] ? _copy_from_user+0x35/0x50
> <4>[   11.207072]  [<c15069af>] ? verify_iovec+0x3f/0xb0
> <4>[   11.207080]  [<c14fbcc9>] ___sys_sendmsg+0x299/0x2b0
> <4>[   11.207087]  [<c14fbd30>] ? kernel_sendmsg+0x50/0x50
> <4>[   11.207097]  [<c14f9f45>] ? sockfd_lookup_light+0x25/0x70
> <4>[   11.207107]  [<c107500d>] ? update_curr+0x12d/0x1e0
> <4>[   11.207116]  [<c10724a0>] ? __enqueue_entity+0x70/0x80
> <4>[   11.207124]  [<c1072405>] ? __dequeue_entity+0x25/0x40
> <4>[   11.207133]  [<c1073b16>] ? set_next_entity+0xa6/0xc0
> <4>[   11.207141]  [<c14fca2e>] __sys_sendmsg+0x3e/0x70
> <4>[   11.207149]  [<c14fca76>] SyS_sendmsg+0x16/0x20
> <4>[   11.207157]  [<c14fd193>] SyS_socketcall+0x2d3/0x300
> <4>[   11.207166]  [<c15f4c5b>] ? do_IRQ+0x4b/0xc0
> <4>[   11.207238]  [<c15f4681>] sysenter_do_call+0x12/0x22
>
>
>


[-- Attachment #2: Fwd: brcmsmac follow up.eml --]
[-- Type: application/x-extension-eml, Size: 112303 bytes --]

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

* Re: fyi: scheduling while atomic dmesg output 3.12-rc1
  2013-09-18  9:19 ` fyi: scheduling while atomic dmesg output 3.12-rc1 Arend van Spriel
@ 2013-09-18 13:57   ` Hauke Mehrtens
  2013-09-18 17:11     ` Arend van Spriel
  0 siblings, 1 reply; 4+ messages in thread
From: Hauke Mehrtens @ 2013-09-18 13:57 UTC (permalink / raw)
  To: Arend van Spriel
  Cc: Joe Perches, brcm80211-dev-list, linux-wireless,
	Rafał Miłecki

On 09/18/2013 11:19 AM, Arend van Spriel wrote:
> On 09/17/2013 07:45 PM, Joe Perches wrote:
>> <3>[   11.206312] BUG: scheduling while atomic:
>> NetworkManager/866/0x00000200
> 
> Thanks, Joe
> 
> I got a report on this few days ago. It was introduced by bcma API
> change and I already sent email to the committer of that change, ie.
> Hauke Mehrtens. Hope it will be settled soon how to fix this.
> 
> Gr. AvS

Hi,

I see four solutions for the problem:

1. convert the usleep_range(1000, 2000) into udelay(1000) in
drivers/bcma/driver_pci.c

2. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up()
so that it does not get called by brcmsmac.

3. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up()
and move the call to somewhere out of the big spin lock.

4. convert the big brmcsmac spin lock into a mutex lock and use an
additional spin lock for the parts where it is actually needed.

For 3.12 I am for solution 1 or 2 and for the long term 3.13? I am for
solution 4, but that needs bigger changes.

Hauke

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

* Re: fyi: scheduling while atomic dmesg output 3.12-rc1
  2013-09-18 13:57   ` Hauke Mehrtens
@ 2013-09-18 17:11     ` Arend van Spriel
  2013-09-27  6:25       ` Rafał Miłecki
  0 siblings, 1 reply; 4+ messages in thread
From: Arend van Spriel @ 2013-09-18 17:11 UTC (permalink / raw)
  To: Hauke Mehrtens
  Cc: Joe Perches, brcm80211-dev-list, linux-wireless,
	Rafał Miłecki

On 09/18/2013 03:57 PM, Hauke Mehrtens wrote:
> On 09/18/2013 11:19 AM, Arend van Spriel wrote:
>> On 09/17/2013 07:45 PM, Joe Perches wrote:
>>> <3>[   11.206312] BUG: scheduling while atomic:
>>> NetworkManager/866/0x00000200
>>
>> Thanks, Joe
>>
>> I got a report on this few days ago. It was introduced by bcma API
>> change and I already sent email to the committer of that change, ie.
>> Hauke Mehrtens. Hope it will be settled soon how to fix this.
>>
>> Gr. AvS
>
> Hi,
>
> I see four solutions for the problem:
>
> 1. convert the usleep_range(1000, 2000) into udelay(1000) in
> drivers/bcma/driver_pci.c
>
> 2. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up()
> so that it does not get called by brcmsmac.
>
> 3. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up()
> and move the call to somewhere out of the big spin lock.
>
> 4. convert the big brmcsmac spin lock into a mutex lock and use an
> additional spin lock for the parts where it is actually needed.
>
> For 3.12 I am for solution 1 or 2 and for the long term 3.13? I am for
> solution 4, but that needs bigger changes.

Agree. When looking into this I considered option 4 would be a bigger 
work, but I agree we should aim for that in the long term. For the short 
term I would say option 2 makes sense although I guess the power_save 
call is there for a reason. So I will also look if option 3 is doable.

Regards,
Arend



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

* Re: fyi: scheduling while atomic dmesg output 3.12-rc1
  2013-09-18 17:11     ` Arend van Spriel
@ 2013-09-27  6:25       ` Rafał Miłecki
  0 siblings, 0 replies; 4+ messages in thread
From: Rafał Miłecki @ 2013-09-27  6:25 UTC (permalink / raw)
  To: Arend van Spriel
  Cc: Hauke Mehrtens, Joe Perches, brcm80211 development,
	linux-wireless

2013/9/18 Arend van Spriel <arend@broadcom.com>:
> On 09/18/2013 03:57 PM, Hauke Mehrtens wrote:
>>
>> On 09/18/2013 11:19 AM, Arend van Spriel wrote:
>>>
>>> On 09/17/2013 07:45 PM, Joe Perches wrote:
>>>>
>>>> <3>[   11.206312] BUG: scheduling while atomic:
>>>> NetworkManager/866/0x00000200
>>>
>>>
>>> Thanks, Joe
>>>
>>> I got a report on this few days ago. It was introduced by bcma API
>>> change and I already sent email to the committer of that change, ie.
>>> Hauke Mehrtens. Hope it will be settled soon how to fix this.
>>>
>>> Gr. AvS
>>
>>
>> Hi,
>>
>> I see four solutions for the problem:
>>
>> 1. convert the usleep_range(1000, 2000) into udelay(1000) in
>> drivers/bcma/driver_pci.c
>>
>> 2. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up()
>> so that it does not get called by brcmsmac.
>>
>> 3. remove the call of bcma_core_pci_power_save() from bcma_core_pci_up()
>> and move the call to somewhere out of the big spin lock.
>>
>> 4. convert the big brmcsmac spin lock into a mutex lock and use an
>> additional spin lock for the parts where it is actually needed.
>>
>> For 3.12 I am for solution 1 or 2 and for the long term 3.13? I am for
>> solution 4, but that needs bigger changes.
>
>
> Agree. When looking into this I considered option 4 would be a bigger work,
> but I agree we should aim for that in the long term. For the short term I
> would say option 2 makes sense although I guess the power_save call is there
> for a reason. So I will also look if option 3 is doable.

I'm OK with that (sorry, was on holidays for the last week).

-- 
Rafał

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

end of thread, other threads:[~2013-09-27  6:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1379439942.2012.16.camel@joe-AO722>
2013-09-18  9:19 ` fyi: scheduling while atomic dmesg output 3.12-rc1 Arend van Spriel
2013-09-18 13:57   ` Hauke Mehrtens
2013-09-18 17:11     ` Arend van Spriel
2013-09-27  6:25       ` Rafał Miłecki

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).