Hi Christoph, FYI, this commit helps expose more information (a warning with backtrace) on a previously clueless kernel crash. git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master commit a25982c15ae5298520033cd5848a82adf6a97376 Author: Christoph Lameter AuthorDate: Thu Mar 6 11:05:21 2014 +1100 Commit: Stephen Rothwell CommitDate: Thu Mar 6 18:13:33 2014 +1100 percpu: add preemption checks to __this_cpu ops We define a check function in order to avoid trouble with the include files. Then the higher level __this_cpu macros are modified to invoke the preemption check. Signed-off-by: Christoph Lameter Acked-by: Ingo Molnar Cc: Tejun Heo Signed-off-by: Andrew Morton +-------------------------------------------------------+------------+------------+---------------+ | | 26d02cfa38 | a25982c15a | next-20140306 | +-------------------------------------------------------+------------+------------+---------------+ | boot_successes | 72 | 0 | 0 | | boot_failures | 8 | 20 | 19 | | BUG:kernel_test_crashed | 1 | | | | BUG:kernel_boot_crashed | 6 | | | | BUG:kernel_boot_hang | 1 | | | | BUG:using__this_cpu_add()in_preemptible_code:swapper | 0 | 20 | 19 | | backtrace:getname_kernel | 0 | 6 | 10 | | backtrace:run_init_process | 0 | 6 | 10 | | BUG:using__this_cpu_add()in_preemptible_code:kthreadd | 0 | 3 | 1 | | backtrace:__this_cpu_preempt_check | 0 | 1 | | | backtrace:do_fork | 0 | 1 | | | backtrace:kthreadd | 0 | 1 | | | backtrace:do_execve | 0 | 1 | | +-------------------------------------------------------+------------+------------+---------------+ [ 107.002146] #2: MTPAV on parallel port at 0x378 [ 107.138481] random: nonblocking pool is initialized [ 107.276022] Freeing unused kernel memory: 800K (d2c49000 - d2d11000) [ 107.417645] BUG: using __this_cpu_add() in preemptible [00000000] code: swapper/0/1 [ 107.703813] caller is __this_cpu_preempt_check+0x3b/0x60 [ 107.852357] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.0-rc5-next-20140306-06952-g0ffb2fe #1 [ 108.157111] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 108.319103] 00000000 00000000 d343deec d22ec747 00000000 d343df10 d13efdcd d290362c [ 108.685150] d343df28 00000000 d34403d8 00000001 d343df28 d0745000 d343df58 d13efe2b [ 109.086205] d343df28 00000028 d2902c14 d2a74fc6 68745f5f 635f7369 615f7570 29286464 [ 109.512575] Call Trace: [ 109.718526] [] dump_stack+0x4b/0x75 [ 109.927550] [] check_preemption_disabled+0xcd/0xe0 [ 110.138792] [] __this_cpu_preempt_check+0x3b/0x60 [ 110.351853] [] ? preempt_count_add+0x4b/0xa0 [ 110.564753] [] kmem_cache_alloc+0xc2/0x190 [ 110.776294] [] ? getname_kernel+0x3f/0x80 [ 110.983777] [] getname_kernel+0x3f/0x80 [ 111.181555] [] run_init_process+0xd/0x20 [ 111.381971] [] kernel_init+0x32/0xe0 [ 111.578459] [] ret_from_kernel_thread+0x1b/0x30 [ 111.768674] [] ? rest_init+0x70/0x70 git bisect start 0ffb2fe7b9c30082876fa3a17da018bf0632cf03 09de192242d86ede449146ac423effca53bc1810 -- git bisect bad 439cde1f3d8230f858c0a55902381d24cd7a2df2 # 03:37 0- 4 Merge branch 'akpm/master' git bisect good ce34778eb4d9fa0aaaeae76c1068026ee5255fd7 # 04:14 20+ 5 Merge branch 'akpm-current/current' git bisect good 117314461e82adabb6b78dcb03259da75b50833b # 04:30 20+ 4 mm: don't implictly include linux/mm.h in linux/sched.h git bisect bad 9d58cf7a388c1b4a06cb335980eb1bb1352ba876 # 04:35 0- 1 scheduler: replace __get_cpu_var with this_cpu_ptr git bisect bad b2ff2cfebad92bebfca28bad650045821ed270c4 # 04:41 0- 6 tracing: replace __get_cpu_var uses with this_cpu_ptr git bisect good 6fb77936481538ba05726345d86af4b39128a8a9 # 05:03 20+ 4 arm: move arm_dma_limit to setup_dma_zone git bisect good d1cea07efbfa2723ca1b83d3a69d1f1000896d4d # 06:15 20+ 10 modules: use raw_cpu_write for initialization of per cpu refcount. git bisect bad a25982c15ae5298520033cd5848a82adf6a97376 # 06:23 0- 3 percpu: add preemption checks to __this_cpu ops git bisect good 26d02cfa385067c39c0407b022c01a011c2fbb51 # 06:46 20+ 3 net: replace __this_cpu_inc in route.c with raw_cpu_inc # first bad commit: [a25982c15ae5298520033cd5848a82adf6a97376] percpu: add preemption checks to __this_cpu ops git bisect good 26d02cfa385067c39c0407b022c01a011c2fbb51 # 07:23 60+ 8 net: replace __this_cpu_inc in route.c with raw_cpu_inc git bisect bad 0ffb2fe7b9c30082876fa3a17da018bf0632cf03 # 07:23 0- 19 Add linux-next specific files for 20140306 git bisect good cb19098c9fa7af13a3efbe02076e8a4b17d86e38 # 07:59 60+ 8 Revert "percpu: add preemption checks to __this_cpu ops" git bisect good c3bebc71c4bcdafa24b506adf0c1de3c1f77e2e0 # 08:22 60+ 1 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net git bisect bad 0ffb2fe7b9c30082876fa3a17da018bf0632cf03 # 08:22 0- 19 Add linux-next specific files for 20140306 Thanks, Fengguang