Hi, On reboot my system is showing kernel stack trace as : root@ds:~# reboot INIT: Sending processes the TERM signal INIT Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 2152) dropbear. Stopping network benchmark server: netserverstopped /usr/sbin/netserver (pid 2157) . Stopping system log daemon...0 Stopping kernel log daemon...0 Deconfiguring network interfaces... done. Sending all processes the TERM signal... Sending all processes the KILL signal... Unmounting remote filesystems... Deactivating swap... Unmounting local filesystems... Rebooting... Disabling non-boot CPUs ... BUG: scheduling while atomic: reboot/2210/0x00000002 Modules linked in: Preemption disabled at:[< (null)>] (null) Call Trace: [ebe09b20] [c0007094] show_stack+0x44/0x150 (unreliable) [ebe09b60] [c064f5f4] __schedule_bug+0x84/0x9c [ebe09b70] [c064c1c0] __schedule+0x510/0x5e0 [ebe09c80] [c064aea4] schedule_timeout+0x164/0x1d0 [ebe09cc0] [c064bb10] wait_for_common+0xd0/0x1b0 [ebe09d00] [c004db58] kthread_create_on_node+0xa8/0x140 [ebe09d70] [c00a42cc] _cpu_down+0x1ec/0x4e0 [ebe09de0] [c002d8a0] disable_nonboot_cpus+0x90/0x160 [ebe09e10] [c004044c] kernel_restart+0x1c/0x90 [ebe09e20] [c004069c] sys_reboot+0x1cc/0x250 [ebe09f40] [c000efe0] ret_from_syscall+0x0/0x3c --- Exception: c01 at 0xff17684 LR = 0x10000c00 BUG: scheduling while atomic: reboot/2210/0x00000002 Modules linked in: Preemption disabled at:[< (null)>] (null) Call Trace: [ebe09b90] [c0007094] show_stack+0x44/0x150 (unreliable) [ebe09bd0] [c064f5f4] __schedule_bug+0x84/0x9c [ebe09be0] [c064c1c0] __schedule+0x510/0x5e0 [ebe09cf0] [c064aea4] schedule_timeout+0x164/0x1d0 [ebe09d30] [c064bb10] wait_for_common+0xd0/0x1b0 [ebe09d70] [c00a42f8] _cpu_down+0x218/0x4e0 [ebe09de0] [c002d8a0] disable_nonboot_cpus+0x90/0x160 [ebe09e10] [c004044c] kernel_restart+0x1c/0x90 [ebe09e20] [c004069c] sys_reboot+0x1cc/0x250 [ebe09f40] [c000efe0] ret_from_syscall+0x0/0x3c --- Exception: c01 at 0xff17684 LR = 0x10000c00 and so on. Any kind of help will be appreciated. Also i want to know the significance of *0x84/0x9c* " __schedule_bug+*0x84/0x9c*"
On Tue, Mar 18, 2014 at 11:35 AM, meenakshi aggarwal <meenu23688@gmail.com>wrote:
Hi,
On reboot my system is showing kernel stack trace as :
root@ds:~# reboot
INIT: Sending processes the TERM signal INIT Stopping Dropbear SSH server: stopped /usr/sbin/dropbear (pid 2152) dropbear. Stopping network benchmark server: netserverstopped /usr/sbin/netserver (pid 2157) . Stopping system log daemon...0 Stopping kernel log daemon...0 Deconfiguring network interfaces... done. Sending all processes the TERM signal... Sending all processes the KILL signal... Unmounting remote filesystems... Deactivating swap... Unmounting local filesystems... Rebooting... Disabling non-boot CPUs ...
BUG: scheduling while atomic: reboot/2210/0x00000002 Modules linked in: Preemption disabled at:[< (null)>] (null)
Call Trace: [ebe09b20] [c0007094] show_stack+0x44/0x150 (unreliable) [ebe09b60] [c064f5f4] __schedule_bug+0x84/0x9c [ebe09b70] [c064c1c0] __schedule+0x510/0x5e0 [ebe09c80] [c064aea4] schedule_timeout+0x164/0x1d0 [ebe09cc0] [c064bb10] wait_for_common+0xd0/0x1b0 [ebe09d00] [c004db58] kthread_create_on_node+0xa8/0x140 [ebe09d70] [c00a42cc] _cpu_down+0x1ec/0x4e0 [ebe09de0] [c002d8a0] disable_nonboot_cpus+0x90/0x160 [ebe09e10] [c004044c] kernel_restart+0x1c/0x90 [ebe09e20] [c004069c] sys_reboot+0x1cc/0x250 [ebe09f40] [c000efe0] ret_from_syscall+0x0/0x3c --- Exception: c01 at 0xff17684 LR = 0x10000c00 BUG: scheduling while atomic: reboot/2210/0x00000002
Looks Like some race condition.
Modules linked in: Preemption disabled at:[< (null)>] (null)
Call Trace: [ebe09b90] [c0007094] show_stack+0x44/0x150 (unreliable) [ebe09bd0] [c064f5f4] __schedule_bug+0x84/0x9c [ebe09be0] [c064c1c0] __schedule+0x510/0x5e0 [ebe09cf0] [c064aea4] schedule_timeout+0x164/0x1d0 [ebe09d30] [c064bb10] wait_for_common+0xd0/0x1b0 [ebe09d70] [c00a42f8] _cpu_down+0x218/0x4e0 [ebe09de0] [c002d8a0] disable_nonboot_cpus+0x90/0x160 [ebe09e10] [c004044c] kernel_restart+0x1c/0x90 [ebe09e20] [c004069c] sys_reboot+0x1cc/0x250 [ebe09f40] [c000efe0] ret_from_syscall+0x0/0x3c --- Exception: c01 at 0xff17684 LR = 0x10000c00
and so on.
Any kind of help will be appreciated.
Also i want to know the significance of *0x84/0x9c*
" __schedule_bug+*0x84/0x9c*"
This is offset(*0x84/0x9c*) from the function(__schedule_bug) where the next branching was done or call to a function was made. In this case at address " __schedule_bug+0x84/0x9c" function 'show_stack' was called.
_______________________________________________
Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Thanks and Regards Pramod
On Tue, 18 Mar 2014 11:35:06 +0530, meenakshi aggarwal said:
Also i want to know the significance of *0x84/0x9c*
" __schedule_bug+*0x84/0x9c*"
That's saying that __schedule_bug is 0x9c bytes long, and we were at 0x84 bytes into it. So even without a disassembly, we know we were down towards the end of the function.
[ebe09b70] [c064c1c0] __schedule+0x510/0x5e0 [ebe09c80] [c064aea4] schedule_timeout+0x164/0x1d0 [ebe09cc0] [c064bb10] wait_for_common+0xd0/0x1b0 [ebe09d00] [c004db58] kthread_create_on_node+0xa8/0x140 [ebe09d70] [c00a42cc] _cpu_down+0x1ec/0x4e0 [ebe09de0] [c002d8a0] disable_nonboot_cpus+0x90/0x160 [ebe09e10] [c004044c] kernel_restart+0x1c/0x90 [ebe09e20] [c004069c] sys_reboot+0x1cc/0x250
So we were in the reboot() syscall, and one of the functions did something that put the thread in "atomic" context - basically "We're doing something important taht can't be interrupted or other threads run that might mess things up".. Which is OK as long as you don't try to call the scheduler. Unfortunately, wait_for_common() tried to call the scheduler.... What kernel version is this? I thought most of the schedule-while-atomic bugs had been hunted down and fixed.
participants (3)
-
meenakshi aggarwal -
pramod gurav -
Valdis.Kletnieks@vt.edu