[lkp] [mm] b1f58b69ba: BUG: sleeping function called from invalid context at mm/vmalloc.c:667
FYI, we noticed the following commit: https://github.com/0day-ci/linux Joel-Fernandes/mm-vmalloc-Replace-purge_lock-spinlock-with-atomic-refcount/20161015-184633 commit b1f58b69ba586afbe70d2f3931370fc1f701d1c2 ("mm: vmalloc: Replace purge_lock spinlock with atomic refcount") in testcase: boot on test machine: qemu-system-x86_64 -enable-kvm -smp 2 -m 512M caused below changes: ++++ || fe4cd888f7 | b1f58b69ba | ++++ | boot_successes | 8 | 5 | | boot_failures | 14 | 17 | | Kernel_panic-not_syncing:VFS:Unable_to_mount_root_fs_on_unknown-block(#,#) | 2 || | calltrace:prepare_namespace| 2 || | BUG:kernel_reboot-without-warning_in_test_stage| 12 | 3 | | BUG:sleeping_function_called_from_invalid_context_at_mm/vmalloc.c | 0 | 14 | | invoked_oom-killer:gfp_mask=0x | 0 | 1 | | Mem-Info | 0 | 1 | ++++ [init] Using pid_max = 32768 [init] Started watchdog process, PID is 9385 [main] Main thread is alive. [ 13.986544] BUG: sleeping function called from invalid context at mm/vmalloc.c:667 [ 13.988089] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper/0 [ 13.989281] 1 lock held by swapper/0/0: [ 13.989935] #0: [ 13.990281] ( vmap_area_lock [ 13.990772] ){..} , at: [ 13.991264] [] __purge_vmap_area_lazy+0x28e/0x306 [ 13.992284] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.0-mm1-00158-gb1f58b6 #1 [ 13.993297] 81c03d08 8131753a 81c0b540 880014581360 [ 13.994371] 81c03d20 8108d64c 880014581120 81c03d88 [ 13.995439] 81112b31 811124e6 81c03db0 81112723 [ 13.996570] Call Trace: [ 13.996933] [] dump_stack+0x79/0x95 [ 13.997631] [] ___might_sleep+0x110/0x11f [ 13.998395] [] __purge_vmap_area_lazy+0x2d3/0x306 [ 13.999242] [] ? pmd_offset+0x19/0x49 [ 14.08] [] free_vmap_area_noflush+0x6d/0x72 [ 14.000834] [] remove_vm_area+0x84/0x90 [ 14.001575] [] __vunmap+0x36/0xae [ 14.002247] [] vfree+0x5f/0x62 [ 14.002885] [] free_thread_stack+0x54/0xcb [ 14.003656] [] put_task_stack+0x2a/0x4f [ 14.004451] [] finish_task_switch+0x188/0x1b4 [ 14.005278] [] __schedule+0x3c8/0x4a7 [ 14.006014] [] schedule+0x84/0x95 [ 14.006676] [] schedule_preempt_disabled+0x10/0x19 [ 14.007544] [] cpu_startup_entry+0x1c7/0x1cc [ 14.008386] [] rest_init+0xb3/0xb9 [ 14.009086] [] start_kernel+0x43a/0x447 [ 14.009812] [] ? early_idt_handler_array+0x120/0x120 [ 14.010702] [] x86_64_start_reservations+0x38/0x3a [ 14.011564] [] x86_64_start_kernel+0x10a/0x117 [main] Setsockopt(1 6 16ba000 5a) on fd 7 [1:2:1] [main] Setsockopt(1 9 16ba000 e3) on fd 9 [16:3:2] [main] Setsockopt(1 2d 16ba000 4) on fd 10 [1:1:1] Thanks, Xiaolong # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.8.0-mm1 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_DEBUG_RODATA=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y
[lkp] [mm] b1f58b69ba: BUG: sleeping function called from invalid context at mm/vmalloc.c:667
FYI, we noticed the following commit: https://github.com/0day-ci/linux Joel-Fernandes/mm-vmalloc-Replace-purge_lock-spinlock-with-atomic-refcount/20161015-184633 commit b1f58b69ba586afbe70d2f3931370fc1f701d1c2 ("mm: vmalloc: Replace purge_lock spinlock with atomic refcount") in testcase: boot on test machine: qemu-system-x86_64 -enable-kvm -smp 2 -m 512M caused below changes: ++++ || fe4cd888f7 | b1f58b69ba | ++++ | boot_successes | 8 | 5 | | boot_failures | 14 | 17 | | Kernel_panic-not_syncing:VFS:Unable_to_mount_root_fs_on_unknown-block(#,#) | 2 || | calltrace:prepare_namespace| 2 || | BUG:kernel_reboot-without-warning_in_test_stage| 12 | 3 | | BUG:sleeping_function_called_from_invalid_context_at_mm/vmalloc.c | 0 | 14 | | invoked_oom-killer:gfp_mask=0x | 0 | 1 | | Mem-Info | 0 | 1 | ++++ [init] Using pid_max = 32768 [init] Started watchdog process, PID is 9385 [main] Main thread is alive. [ 13.986544] BUG: sleeping function called from invalid context at mm/vmalloc.c:667 [ 13.988089] in_atomic(): 1, irqs_disabled(): 0, pid: 0, name: swapper/0 [ 13.989281] 1 lock held by swapper/0/0: [ 13.989935] #0: [ 13.990281] ( vmap_area_lock [ 13.990772] ){..} , at: [ 13.991264] [] __purge_vmap_area_lazy+0x28e/0x306 [ 13.992284] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.0-mm1-00158-gb1f58b6 #1 [ 13.993297] 81c03d08 8131753a 81c0b540 880014581360 [ 13.994371] 81c03d20 8108d64c 880014581120 81c03d88 [ 13.995439] 81112b31 811124e6 81c03db0 81112723 [ 13.996570] Call Trace: [ 13.996933] [] dump_stack+0x79/0x95 [ 13.997631] [] ___might_sleep+0x110/0x11f [ 13.998395] [] __purge_vmap_area_lazy+0x2d3/0x306 [ 13.999242] [] ? pmd_offset+0x19/0x49 [ 14.08] [] free_vmap_area_noflush+0x6d/0x72 [ 14.000834] [] remove_vm_area+0x84/0x90 [ 14.001575] [] __vunmap+0x36/0xae [ 14.002247] [] vfree+0x5f/0x62 [ 14.002885] [] free_thread_stack+0x54/0xcb [ 14.003656] [] put_task_stack+0x2a/0x4f [ 14.004451] [] finish_task_switch+0x188/0x1b4 [ 14.005278] [] __schedule+0x3c8/0x4a7 [ 14.006014] [] schedule+0x84/0x95 [ 14.006676] [] schedule_preempt_disabled+0x10/0x19 [ 14.007544] [] cpu_startup_entry+0x1c7/0x1cc [ 14.008386] [] rest_init+0xb3/0xb9 [ 14.009086] [] start_kernel+0x43a/0x447 [ 14.009812] [] ? early_idt_handler_array+0x120/0x120 [ 14.010702] [] x86_64_start_reservations+0x38/0x3a [ 14.011564] [] x86_64_start_kernel+0x10a/0x117 [main] Setsockopt(1 6 16ba000 5a) on fd 7 [1:2:1] [main] Setsockopt(1 9 16ba000 e3) on fd 9 [16:3:2] [main] Setsockopt(1 2d 16ba000 4) on fd 10 [1:1:1] Thanks, Xiaolong # # Automatically generated file; DO NOT EDIT. # Linux/x86_64 4.8.0-mm1 Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_MMU=y CONFIG_ARCH_MMAP_RND_BITS_MIN=28 CONFIG_ARCH_MMAP_RND_BITS_MAX=32 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ZONE_DMA32=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_DEBUG_RODATA=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_CONSTRUCTORS=y CONFIG_IRQ_WORK=y CONFIG_BUILDTIME_EXTABLE_SORT=y