Project

General

Profile

Bug #140

BUG: scheduling while atomic: rmmod

Added by Linus Lüssing over 10 years ago. Updated over 4 years ago.

Status:
Closed
Priority:
High
Assignee:
-
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

Description

Commit 7f32f2e8d97150ba5b80410dda86b01b0879fe8d (batman-adv: use rcu callbacks when freeing batman_if) introduces this bug and is still valid on current head of master branch (6336988932cae06a632f1534b6dbf4106acfc178).

I could trigger this with two VMs (2.6.29.6) connected with each other. The call trace appears when removing the module again.

[ 2517.041002] batman_adv: B.A.T.M.A.N. advanced devel (compatibility version 12) loaded
[ 2517.344410] batman_adv: bat0: Adding interface: eth1
[ 2517.346528] batman_adv: bat0: The MTU of interface eth1 is too small (1500)
to handle the transport of batman-adv packets. Packets going over this interface
will be fragmented on layer2 which could impact the performance. Setting the MTU to 1527 would solve the problem.
[ 2517.355936] batman_adv: bat0: Interface activated: eth1
[ 2517.418926] batman_adv: bat0: Adding interface: eth2
[ 2517.421059] batman_adv: bat0: The MTU of interface eth2 is too small (1500)
to handle the transport of batman-adv packets. Packets going over this interface
will be fragmented on layer2 which could impact the performance. Setting the MTU to 1527 would solve the problem.
[ 2517.478851] batman_adv: bat0: Interface activated: eth2
[ 2522.997380] batman_adv: bat0: Interface deactivated: eth1
[ 2522.999743] batman_adv: bat0: Removing interface: eth1
[ 2523.002569] batman_adv: bat0: Interface deactivated: eth2
[ 2523.004800] batman_adv: bat0: Removing interface: eth2
[ 2523.059381] BUG: scheduling while atomic: rmmod/5792/0x10000100
[ 2523.061848] Modules linked in: batman_adv(-) [last unloaded: batman_adv]
[ 2523.064749] 
[ 2523.065989] Pid: 5792, comm: rmmod Not tainted (2.6.29.6 #1) Bochs
[ 2523.068390] EIP: 0060:[<c103edfc>] EFLAGS: 00000292 CPU: 0
[ 2523.070775] EIP is at vprintk+0x262/0x285
[ 2523.072893] EAX: c1750dec EBX: ce665ed1 ECX: 0000b6b6 EDX: 00000046
[ 2523.075561] ESI: c1790ec2 EDI: 0000000f EBP: ce665f00 ESP: ce665ea8
[ 2523.078004]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[ 2523.080405] CR0: 8005003b CR2: b7ee1920 CR3: 0fb57000 CR4: 00000690
[ 2523.082957] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 2523.085436] DR6: ffff0ff0 DR7: 00000400
[ 2523.126448] Call Trace:
[ 2523.127943]  [<d2155a9a>] ? _purge_orig+0x168/0x170 [batman_adv]
[ 2523.130441]  [<c14219ac>] printk+0xf/0x11
[ 2523.132304]  [<d2154ac9>] hardif_disable_interface+0x36/0x10c [batman_adv]
[ 2523.134961]  [<d2154bb0>] hardif_remove_interface+0x11/0x3c [batman_adv]
[ 2523.137507]  [<d2154e43>] hardif_remove_interfaces+0x21/0x3a [batman_adv]
[ 2523.140210]  [<d2156d67>] batman_exit+0x17/0x9c [batman_adv]
[ 2523.142506]  [<c105eabf>] sys_delete_module+0x1a7/0x200
[ 2523.144680]  [<c108bd64>] ? remove_vma+0x46/0x4c
[ 2523.146722]  [<c108c953>] ? do_munmap+0x20a/0x225
[ 2523.148881]  [<c101ce7a>] syscall_call+0x7/0xb
[ 2523.150883]  [<c1420000>] ? migration_call+0x3b2/0x3c9

History

#1

Updated by Marek Lindner over 10 years ago

Are you sure this bug was introduced with revision 1821 ? The error message "scheduling while atomic" indicates that the module sleeps but runs in a context which does not allow sleeping. I don't see how that could have been introduced with 1821. Furthermore, the backtrace points to _purge_orig() ...

#2

Updated by Linus Lüssing over 10 years ago

Hi Marek. Hmm, I'm also not quite sure now if this commit introduced it or if it just made a race condition which existed before visible (due to the extra call_rcu() maybe). However, I couldn't reproduce this bug with an earlier revision yet.

#3

Updated by Marek Lindner over 10 years ago

  • Status changed from New to Closed

Fixed in r1856.

#4

Updated by Sven Eckelmann over 4 years ago

  • Target version set to 2011.0.0
  • Description updated (diff)

Also available in: Atom PDF