lockdep warning: console vs. mem hotplug
Subsystems (2)
Since commit f975237b7682 ("printk: use printk_safe buffers in printk") I observe lockdep warnings on s390 when doing memory hotplug:
[ 132.379220] ======================================================
[ 132.379220] [ INFO: possible circular locking dependency detected ]
[ 132.379221] 4.11.0-rc3 #330 Not tainted
[ 132.379221] -------------------------------------------------------
[ 132.379222] sh/708 is trying to acquire lock:
[ 132.379222] (&(&sclp_con_lock)->rlock){-.-...}, at: [<000000000074524a>] sclp_console_write+0x4a/0x2b8
[ 132.379224]
[ 132.379224] but task is already holding lock:
[ 132.379224] (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340
[ 132.379226]
[ 132.379227] which lock already depends on the new lock.
[ 132.379227]
[ 132.379227]
[ 132.379228] the existing dependency chain (in reverse order) is:
[ 132.379228]
[ 132.379229] -> #2 (&(&zone->lock)->rlock){..-...}:
[ 132.379230] validate_chain.isra.22+0xb36/0xd18
[ 132.379231] __lock_acquire+0x650/0x880
[ 132.379231] lock_acquire+0x24e/0x2b0
[ 132.379232] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379232] get_page_from_freelist+0x548/0xf30
[ 132.379233] __alloc_pages_nodemask+0x1c8/0x14c0
[ 132.379233] allocate_slab+0xde/0x668
[ 132.379233] new_slab+0x94/0xa8
[ 132.379234] ___slab_alloc.constprop.66+0x556/0x578
[ 132.379234] __slab_alloc.isra.62.constprop.65+0x74/0xa8
[ 132.379235] kmem_cache_alloc+0x136/0x4b8
[ 132.379235] __debug_object_init+0xaa/0x448
[ 132.379236] debug_object_activate+0x182/0x238
[ 132.379236] mod_timer+0xe6/0x450
[ 132.379236] prandom_reseed+0x44/0x50
[ 132.379237] do_one_initcall+0xa2/0x150
[ 132.379237] kernel_init_freeable+0x228/0x2d8
[ 132.379238] kernel_init+0x2a/0x138
[ 132.379238] kernel_thread_starter+0x6/0xc
[ 132.379239] kernel_thread_starter+0x0/0xc
[ 132.379239]
[ 132.379239] -> #1 (&(&base->lock)->rlock){-.-.-.}:
[ 132.379241] validate_chain.isra.22+0xb36/0xd18
[ 132.379242] __lock_acquire+0x650/0x880
[ 132.379242] lock_acquire+0x24e/0x2b0
[ 132.379242] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379243] lock_timer_base+0x78/0xa8
[ 132.379243] mod_timer+0xba/0x450
[ 132.379244] sclp_console_write+0x262/0x2b8
[ 132.379244] console_unlock+0x4a6/0x658
[ 132.379245] register_console+0x31c/0x430
[ 132.379245] sclp_console_init+0x152/0x170
[ 132.379245] console_init+0x3a/0x58
[ 132.379246] start_kernel+0x350/0x480
[ 132.379246] _stext+0x20/0x80
[ 132.379246]
[ 132.379247] -> #0 (&(&sclp_con_lock)->rlock){-.-...}:
[ 132.379249] check_prev_add+0x150/0x648
[ 132.379249] validate_chain.isra.22+0xb36/0xd18
[ 132.379249] __lock_acquire+0x650/0x880
[ 132.379250] lock_acquire+0x24e/0x2b0
[ 132.379250] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379251] sclp_console_write+0x4a/0x2b8
[ 132.379251] console_unlock+0x4a6/0x658
[ 132.379252] vprintk_emit+0x33e/0x350
[ 132.379252] vprintk_default+0x44/0x58
[ 132.379252] printk+0x4e/0x58
[ 132.379253] __offline_isolated_pages+0x1a0/0x340
[ 132.379253] offline_isolated_pages_cb+0x2e/0x40
[ 132.379254] walk_system_ram_range+0x96/0xe8
[ 132.379254] __offline_pages.constprop.43+0x6da/0x918
[ 132.379255] memory_subsys_offline+0x6a/0xa0
[ 132.379255] device_offline+0x84/0xd8
[ 132.379255] store_mem_state+0xfe/0x120
[ 132.379256] kernfs_fop_write+0x126/0x1d0
[ 132.379256] __vfs_write+0x46/0x140
[ 132.379257] vfs_write+0xb8/0x1a8
[ 132.379257] SyS_write+0x66/0xc0
[ 132.379257] system_call+0xc4/0x240
[ 132.379258]
[ 132.379258] other info that might help us debug this:
[ 132.379258]
[ 132.379259] Chain exists of:
[ 132.379259] &(&sclp_con_lock)->rlock --> &(&base->lock)->rlock --> &(&zone->lock)->rlock
[ 132.379262]
[ 132.379262] Possible unsafe locking scenario:
[ 132.379262]
[ 132.379263] CPU0 CPU1
[ 132.379263] ---- ----
[ 132.379264] lock(&(&zone->lock)->rlock);
[ 132.379265] lock(&(&base->lock)->rlock);
[ 132.379266] lock(&(&zone->lock)->rlock);
[ 132.379267] lock(&(&sclp_con_lock)->rlock);
[ 132.379268]
[ 132.379268] *** DEADLOCK ***
[ 132.379269]
[ 132.379269] 10 locks held by sh/708:
[ 132.379269] #0: (sb_writers#4){.+.+.+}, at: [<0000000000345d4a>] vfs_write+0xa2/0x1a8
[ 132.379272] #1: (&of->mutex){+.+.+.}, at: [<00000000003e5e60>] kernfs_fop_write+0xd8/0x1d0
[ 132.379273] #2: (s_active#180){.+.+.+}, at: [<00000000003e5e6c>] kernfs_fop_write+0xe4/0x1d0
[ 132.379275] #3: (device_hotplug_lock){+.+...}, at: [<000000000069bb58>] lock_device_hotplug_sysfs+0x30/0x68
[ 132.379277] #4: (memory_add_remove_lock){+.+...}, at: [<000000000031cfe6>] mem_hotplug_begin+0x3e/0xd0
[ 132.379279] #5: (mem_hotplug.lock){++++.+}, at: [<000000000031cfa8>] mem_hotplug_begin+0x0/0xd0
[ 132.379281] #6: (mem_hotplug.lock#2){+.+...}, at: [<000000000031d02c>] mem_hotplug_begin+0x84/0xd0
[ 132.379283] #7: (&dev->mutex){......}, at: [<000000000069d55c>] device_offline+0x5c/0xd8
[ 132.379285] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340
[ 132.379287] #9: (console_lock){+.+...}, at: [<00000000001bdc02>] vprintk_emit+0x332/0x350Here's another one using a different console:
[ 66.522890] ======================================================
[ 66.522890] [ INFO: possible circular locking dependency detected ]
[ 66.522891] 4.11.0-rc2-00237-g2e287c0 #119 Not tainted
[ 66.522891] -------------------------------------------------------
[ 66.522892] sh/822 is trying to acquire lock:
[ 66.522892] (&console_sch_key){-.-...}, at: [<00000000007573f0>] raw3215_write+0x58/0x208
[ 66.522894] but task is already holding lock:
[ 66.522894] (&(&zone->lock)->rlock){..-...}, at: [<00000000002ae3da>] __offline_isolated_pages+0x302/0x370
[ 66.522897] which lock already depends on the new lock.
[ 66.522898] the existing dependency chain (in reverse order) is:
[ 66.522899] -> #4 (&(&zone->lock)->rlock){..-...}:
[ 66.522901] validate_chain.isra.10+0xb7a/0xda8
[ 66.522901] __lock_acquire+0x62c/0x850
[ 66.522902] lock_acquire+0x254/0x2b8
[ 66.522902] _raw_spin_lock_irqsave+0x70/0xb8
[ 66.522903] get_page_from_freelist+0x4e2/0xf28
[ 66.522903] __alloc_pages_nodemask+0x1fa/0x1528
[ 66.522904] allocate_slab+0xf2/0x6c0
[ 66.522904] new_slab+0x94/0xa8
[ 66.522905] ___slab_alloc.constprop.22+0x570/0x590
[ 66.522905] __slab_alloc.isra.16.constprop.21+0x74/0xa8
[ 66.522906] kmem_cache_alloc+0x13c/0x4b0
[ 66.522906] __debug_object_init+0x5c/0x468
[ 66.522907] hrtimer_init+0x42/0x1d8
[ 66.522907] init_dl_task_timer+0x3a/0x58
[ 66.522908] __sched_fork.isra.5+0x7e/0xe8
[ 66.522908] init_idle+0x7a/0x278
[ 66.522908] fork_idle+0xa4/0xb8
[ 66.522909] idle_threads_init+0x64/0xc8
[ 66.522909] smp_init+0x2e/0x110
[ 66.522910] kernel_init_freeable+0x16c/0x2e0
[ 66.522910] kernel_init+0x2a/0x148
[ 66.522911] kernel_thread_starter+0x6/0xc
[ 66.522911] kernel_thread_starter+0x0/0xc
[ 66.522912] -> #3 (&rq->lock){-.-.-.}:
[ 66.522914] validate_chain.isra.10+0xb7a/0xda8
[ 66.522914] __lock_acquire+0x62c/0x850
[ 66.522915] lock_acquire+0x254/0x2b8
[ 66.522915] _raw_spin_lock+0x60/0xa0
[ 66.522916] task_fork_fair+0x54/0x118
[ 66.522916] sched_fork+0x13e/0x2a0
[ 66.522916] copy_process+0x642/0x1e80
[ 66.522917] _do_fork+0xc2/0x6d0
[ 66.522917] kernel_thread+0x4e/0x60
[ 66.522918] rest_init+0x42/0x170
[ 66.522918] start_kernel+0x464/0x478
[ 66.522918] _stext+0x20/0x80
[ 66.522919] -> #2 (&p->pi_lock){-.-.-.}:
[ 66.522921] validate_chain.isra.10+0xb7a/0xda8
[ 66.522922] __lock_acquire+0x62c/0x850
[ 66.522922] lock_acquire+0x254/0x2b8
[ 66.522922] _raw_spin_lock_irqsave+0x70/0xb8
[ 66.522923] try_to_wake_up+0x4a/0x5f8
[ 66.522924] autoremove_wake_function+0x2e/0x88
[ 66.522924] __wake_up_common+0x76/0xc0
[ 66.522924] __wake_up+0x54/0x68
[ 66.522925] ccw_device_verify_done+0xae/0x268
[ 66.522925] ccw_request_handler+0x422/0x560
[ 66.522926] do_cio_interrupt+0x224/0x2a0
[ 66.522926] __handle_irq_event_percpu+0x1a6/0x440
[ 66.522927] handle_irq_event_percpu+0x38/0x88
[ 66.522927] handle_percpu_irq+0x84/0xb0
[ 66.522928] generic_handle_irq+0x42/0x60
[ 66.522928] do_IRQ+0x86/0xc8
[ 66.522929] io_int_handler+0x104/0x294
[ 66.522929] enabled_wait+0x72/0x140
[ 66.522930] enabled_wait+0x5a/0x140
[ 66.522930] arch_cpu_idle+0x32/0x50
[ 66.522930] default_idle_call+0x52/0x68
[ 66.522931] do_idle+0x10e/0x160
[ 66.522931] cpu_startup_entry+0x3e/0x48
[ 66.522932] start_kernel+0x464/0x478
[ 66.522932] _stext+0x20/0x80
[ 66.522933] -> #1 (&priv->wait_q){-.-...}:
[ 66.522935] validate_chain.isra.10+0xb7a/0xda8
[ 66.522935] __lock_acquire+0x62c/0x850
[ 66.522935] lock_acquire+0x254/0x2b8
[ 66.522936] _raw_spin_lock_irqsave+0x70/0xb8
[ 66.522936] __wake_up+0x3a/0x68
[ 66.522937] ccw_device_recog_done+0x28e/0x2c8
[ 66.522937] snsid_callback+0x324/0x390
[ 66.522938] ccw_request_handler+0x480/0x560
[ 66.522938] do_cio_interrupt+0x224/0x2a0
[ 66.522939] __handle_irq_event_percpu+0x1a6/0x440
[ 66.522939] handle_irq_event_percpu+0x38/0x88
[ 66.522940] handle_percpu_irq+0x84/0xb0
[ 66.522940] generic_handle_irq+0x42/0x60
[ 66.522940] do_IRQ+0x86/0xc8
[ 66.522941] io_int_handler+0x104/0x294
[ 66.522941] _raw_spin_unlock_irq+0x4e/0x78
[ 66.522942] _raw_spin_unlock_irq+0x4a/0x78
[ 66.522942] ccw_device_enable_console+0x9a/0x180
[ 66.522943] con3215_init+0x110/0x1b8
[ 66.522943] console_init+0x3a/0x58
[ 66.522944] start_kernel+0x33a/0x478
[ 66.522944] _stext+0x20/0x80
[ 66.522945] -> #0 (&console_sch_key){-.-...}:
[ 66.522947] check_prev_add+0x160/0x6e8
[ 66.522947] validate_chain.isra.10+0xb7a/0xda8
[ 66.522948] __lock_acquire+0x62c/0x850
[ 66.522948] lock_acquire+0x254/0x2b8
[ 66.522948] _raw_spin_lock_irqsave+0x70/0xb8
[ 66.522949] raw3215_write+0x58/0x208
[ 66.522949] con3215_write+0x8e/0xf8
[ 66.522950] console_unlock+0x49a/0x670
[ 66.522950] vprintk_emit+0x308/0x378
[ 66.522951] vprintk_default+0x44/0x58
[ 66.522951] printk+0x4e/0x60
[ 66.522952] __offline_isolated_pages+0x168/0x370
[ 66.522952] offline_isolated_pages_cb+0x2e/0x40
[ 66.522953] walk_system_ram_range+0x92/0xf0
[ 66.522953] __offline_pages.constprop.9+0x74a/0x988
[ 66.522954] memory_subsys_offline+0x6c/0xa0
[ 66.522954] device_offline+0x84/0xe0
[ 66.522954] store_mem_state+0xfe/0x120
[ 66.522955] kernfs_fop_write+0x124/0x1c8
[ 66.522955] __vfs_write+0x36/0x140
[ 66.522956] vfs_write+0xb8/0x1a0
[ 66.522956] SyS_write+0x66/0xc0
[ 66.522957] system_call+0xc4/0x240[ 66.522957] other info that might help us debug this: [ 66.522958] Chain exists of: [ 66.522958] &console_sch_key --> &rq->lock --> &(&zone->lock)->rlock [ 66.522961] Possible unsafe locking scenario: [ 66.522962] CPU0 CPU1 [ 66.522962] ---- ---- [ 66.522963] lock(&(&zone->lock)->rlock); [ 66.522964] lock(&rq->lock); [ 66.522965] lock(&(&zone->lock)->rlock); [ 66.522966] lock(&console_sch_key);
[ 66.522967] *** DEADLOCK ***
[ 66.522968] 10 locks held by sh/822:
[ 66.522968] #0: (sb_writers#5){.+.+.+}, at: [<000000000034f9c2>] vfs_write+0xa2/0x1a0
[ 66.522970] #1: (&of->mutex){+.+.+.}, at: [<00000000003f1afe>] kernfs_fop_write+0xd6/0x1c8
[ 66.522972] #2: (s_active#53){.+.+.+}, at: [<00000000003f1b0a>] kernfs_fop_write+0xe2/0x1c8
[ 66.522974] #3: (device_hotplug_lock){+.+...}, at: [<00000000006adb70>] lock_device_hotplug_sysfs+0x30/0x70
[ 66.522976] #4: (memory_add_remove_lock){+.+...}, at: [<0000000000328e16>] mem_hotplug_begin+0x3e/0xd0
[ 66.522978] #5: (mem_hotplug.lock){++++.+}, at: [<0000000000328dd8>] mem_hotplug_begin+0x0/0xd0
[ 66.522980] #6: (mem_hotplug.lock#2){+.+...}, at: [<0000000000328e5c>] mem_hotplug_begin+0x84/0xd0
[ 66.522982] #7: (&dev->mutex){......}, at: [<00000000006af41c>] device_offline+0x5c/0xe0
[ 66.522984] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002ae3da>] __offline_isolated_pages+0x302/0x370
[ 66.522986] #9: (console_lock){+.+...}, at: [<00000000001c2c84>] vprintk_emit+0x2fc/0x378Config attached.
Regards,
Sebastian
#
# Automatically generated file; DO NOT EDIT.
# Linux/s390 4.11.0-rc2 Kernel Configuration
#CONFIG_MMU=yCONFIG_ZONE_DMA=yCONFIG_CPU_BIG_ENDIAN=yCONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set CONFIG_GENERIC_HWEIGHT=yCONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_GENERIC_LOCKBREAK=yCONFIG_PGSTE=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_KEXEC=yCONFIG_AUDIT_ARCH=yCONFIG_NO_IOPORT_MAP=y
# CONFIG_PCI_QUIRKS is not set CONFIG_ARCH_SUPPORTS_UPROBES=yCONFIG_S390=yCONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_PGTABLE_LEVELS=4 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_IRQ_WORK=yCONFIG_BUILDTIME_EXTABLE_SORT=y CONFIG_THREAD_INFO_IN_TASK=y
#
# General setup
#CONFIG_INIT_ENV_ARG_LIMIT=32CONFIG_CROSS_COMPILE=""
# CONFIG_COMPILE_TEST is not setCONFIG_LOCALVERSION=""CONFIG_LOCALVERSION_AUTO=yCONFIG_HAVE_KERNEL_GZIP=yCONFIG_HAVE_KERNEL_BZIP2=yCONFIG_HAVE_KERNEL_LZMA=yCONFIG_HAVE_KERNEL_XZ=yCONFIG_HAVE_KERNEL_LZO=yCONFIG_HAVE_KERNEL_LZ4=yCONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
# CONFIG_KERNEL_XZ is not set
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not setCONFIG_DEFAULT_HOSTNAME="(none)"CONFIG_SWAP=yCONFIG_SYSVIPC=yCONFIG_SYSVIPC_SYSCTL=yCONFIG_POSIX_MQUEUE=yCONFIG_POSIX_MQUEUE_SYSCTL=yCONFIG_CROSS_MEMORY_ATTACH=yCONFIG_FHANDLE=y
# CONFIG_USELIB is not setCONFIG_AUDIT=yCONFIG_HAVE_ARCH_AUDITSYSCALL=yCONFIG_AUDITSYSCALL=yCONFIG_AUDIT_WATCH=yCONFIG_AUDIT_TREE=y
#
# IRQ subsystem
#CONFIG_GENERIC_MSI_IRQ=yCONFIG_SPARSE_IRQ=yCONFIG_GENERIC_TIME_VSYSCALL=yCONFIG_GENERIC_CLOCKEVENTS=y
#
# Timers subsystem
#CONFIG_TICK_ONESHOT=yCONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not setCONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ is not setCONFIG_HIGH_RES_TIMERS=y
#
# CPU/Task time and stats accounting
#CONFIG_VIRT_CPU_ACCOUNTING=yCONFIG_VIRT_CPU_ACCOUNTING_NATIVE=yCONFIG_BSD_PROCESS_ACCT=yCONFIG_BSD_PROCESS_ACCT_V3=yCONFIG_TASKSTATS=yCONFIG_TASK_DELAY_ACCT=yCONFIG_TASK_XACCT=yCONFIG_TASK_IO_ACCOUNTING=y
#
# RCU Subsystem
#CONFIG_PREEMPT_RCU=y
# CONFIG_RCU_EXPERT is not setCONFIG_SRCU=yCONFIG_TASKS_RCU=yCONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not setCONFIG_BUILD_BIN2C=yCONFIG_IKCONFIG=yCONFIG_IKCONFIG_PROC=yCONFIG_LOG_BUF_SHIFT=17CONFIG_LOG_CPU_MAX_BUF_SHIFT=12CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=yCONFIG_CGROUPS=yCONFIG_PAGE_COUNTER=yCONFIG_MEMCG=yCONFIG_MEMCG_SWAP=yCONFIG_MEMCG_SWAP_ENABLED=yCONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not setCONFIG_CGROUP_WRITEBACK=yCONFIG_CGROUP_SCHED=yCONFIG_FAIR_GROUP_SCHED=yCONFIG_CFS_BANDWIDTH=yCONFIG_RT_GROUP_SCHED=yCONFIG_CGROUP_PIDS=y
# CONFIG_CGROUP_RDMA is not setCONFIG_CGROUP_FREEZER=yCONFIG_CGROUP_HUGETLB=yCONFIG_CPUSETS=yCONFIG_PROC_PID_CPUSET=yCONFIG_CGROUP_DEVICE=yCONFIG_CGROUP_CPUACCT=yCONFIG_CGROUP_PERF=y
# CONFIG_CGROUP_BPF is not set
# CONFIG_CGROUP_DEBUG is not setCONFIG_SOCK_CGROUP_DATA=yCONFIG_CHECKPOINT_RESTORE=yCONFIG_NAMESPACES=yCONFIG_UTS_NS=yCONFIG_IPC_NS=yCONFIG_USER_NS=yCONFIG_PID_NS=yCONFIG_NET_NS=yCONFIG_SCHED_AUTOGROUP=y
# CONFIG_SYSFS_DEPRECATED is not setCONFIG_RELAY=yCONFIG_BLK_DEV_INITRD=yCONFIG_INITRAMFS_SOURCE=""CONFIG_RD_GZIP=yCONFIG_RD_BZIP2=yCONFIG_RD_LZMA=yCONFIG_RD_XZ=yCONFIG_RD_LZO=yCONFIG_RD_LZ4=yCONFIG_INITRAMFS_COMPRESSION=".gz"CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not setCONFIG_SYSCTL=yCONFIG_ANON_INODES=yCONFIG_SYSCTL_EXCEPTION_TRACE=yCONFIG_BPF=yCONFIG_EXPERT=yCONFIG_MULTIUSER=y
# CONFIG_SGETMASK_SYSCALL is not setCONFIG_SYSFS_SYSCALL=y
# CONFIG_SYSCTL_SYSCALL is not setCONFIG_POSIX_TIMERS=yCONFIG_KALLSYMS=yCONFIG_KALLSYMS_ALL=y
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not setCONFIG_KALLSYMS_BASE_RELATIVE=yCONFIG_PRINTK=yCONFIG_PRINTK_NMI=yCONFIG_BUG=yCONFIG_ELF_CORE=yCONFIG_BASE_FULL=yCONFIG_FUTEX=yCONFIG_HAVE_FUTEX_CMPXCHG=yCONFIG_EPOLL=yCONFIG_SIGNALFD=yCONFIG_TIMERFD=yCONFIG_EVENTFD=yCONFIG_BPF_SYSCALL=yCONFIG_SHMEM=yCONFIG_AIO=yCONFIG_ADVISE_SYSCALLS=yCONFIG_USERFAULTFD=yCONFIG_MEMBARRIER=y
# CONFIG_EMBEDDED is not setCONFIG_HAVE_PERF_EVENTS=y
# CONFIG_PC104 is not set
#
# Kernel Performance Events And Counters
#CONFIG_PERF_EVENTS=y
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_SLUB_DEBUG=y
# CONFIG_SLUB_MEMCG_SYSFS_ON is not set
# CONFIG_COMPAT_BRK is not set
# CONFIG_SLAB is not setCONFIG_SLUB=y
# CONFIG_SLOB is not set
# CONFIG_SLAB_FREELIST_RANDOM is not set CONFIG_SLUB_CPU_PARTIAL=y
# CONFIG_SYSTEM_DATA_VERIFICATION is not set CONFIG_PROFILING=yCONFIG_TRACEPOINTS=yCONFIG_KEXEC_CORE=yCONFIG_OPROFILE=mCONFIG_HAVE_OPROFILE=yCONFIG_KPROBES=yCONFIG_JUMP_LABEL=y CONFIG_STATIC_KEYS_SELFTEST=y
# CONFIG_UPROBES is not set
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_ARCH_USE_BUILTIN_BSWAP=y CONFIG_KRETPROBES=yCONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=yCONFIG_HAVE_NMI=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_CONTIGUOUS=y CONFIG_GENERIC_SMP_IDLE_THREAD=y CONFIG_ARCH_HAS_SET_MEMORY=y CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_ARCH_JUMP_LABEL=y CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y CONFIG_HAVE_CMPXCHG_LOCAL=y CONFIG_HAVE_CMPXCHG_DOUBLE=y CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y CONFIG_HAVE_ARCH_SECCOMP_FILTER=y CONFIG_SECCOMP_FILTER=y
# CONFIG_CC_STACKPROTECTOR is not set CONFIG_HAVE_VIRT_CPU_ACCOUNTING=y CONFIG_ARCH_HAS_SCALED_CPUTIME=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y CONFIG_HAVE_ARCH_SOFT_DIRTY=y CONFIG_HAVE_MOD_ARCH_SPECIFIC=y CONFIG_MODULES_USE_ELF_RELA=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_EXIT_THREAD=y CONFIG_HAVE_COPY_THREAD_TLS=y
# CONFIG_HAVE_ARCH_HASH is not set
# CONFIG_ISA_BUS_API is not set CONFIG_CLONE_BACKWARDS2=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OLD_SIGACTION=y CONFIG_COMPAT_OLD_SIGACTION=y
# CONFIG_CPU_NO_EFFICIENT_FFS is not set
# CONFIG_HAVE_ARCH_VMAP_STACK is not set
# CONFIG_ARCH_OPTIONAL_KERNEL_RWX is not set # CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT is not set CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y CONFIG_STRICT_KERNEL_RWX=y CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y CONFIG_STRICT_MODULE_RWX=y
#
# GCOV-based kernel profiling
#
# CONFIG_GCOV_KERNEL is not setCONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not setCONFIG_SLABINFO=yCONFIG_RT_MUTEXES=yCONFIG_BASE_SMALL=0CONFIG_MODULES=yCONFIG_MODULE_FORCE_LOAD=yCONFIG_MODULE_UNLOAD=yCONFIG_MODULE_FORCE_UNLOAD=yCONFIG_MODVERSIONS=yCONFIG_MODULE_SRCVERSION_ALL=y
# CONFIG_MODULE_SIG is not set
# CONFIG_MODULE_COMPRESS is not setCONFIG_MODULES_TREE_LOOKUP=yCONFIG_BLOCK=yCONFIG_BLK_SCSI_REQUEST=yCONFIG_BLK_DEV_BSG=yCONFIG_BLK_DEV_BSGLIB=y
# CONFIG_BLK_DEV_INTEGRITY is not set
# CONFIG_BLK_DEV_ZONED is not setCONFIG_BLK_DEV_THROTTLING=y
# CONFIG_BLK_CMDLINE_PARSER is not set
# CONFIG_BLK_WBT is not setCONFIG_BLK_DEBUG_FS=y
# CONFIG_BLK_SED_OPAL is not set
#
# Partition Types
#CONFIG_PARTITION_ADVANCED=y
# CONFIG_ACORN_PARTITION is not set
# CONFIG_AIX_PARTITION is not set
# CONFIG_OSF_PARTITION is not set
# CONFIG_AMIGA_PARTITION is not set
# CONFIG_ATARI_PARTITION is not setCONFIG_IBM_PARTITION=y
# CONFIG_MAC_PARTITION is not setCONFIG_MSDOS_PARTITION=yCONFIG_BSD_DISKLABEL=yCONFIG_MINIX_SUBPARTITION=yCONFIG_SOLARIS_X86_PARTITION=yCONFIG_UNIXWARE_DISKLABEL=y
# CONFIG_LDM_PARTITION is not set
# CONFIG_SGI_PARTITION is not set
# CONFIG_ULTRIX_PARTITION is not set
# CONFIG_SUN_PARTITION is not set
# CONFIG_KARMA_PARTITION is not setCONFIG_EFI_PARTITION=y
# CONFIG_SYSV68_PARTITION is not set
# CONFIG_CMDLINE_PARTITION is not setCONFIG_BLOCK_COMPAT=yCONFIG_BLK_MQ_PCI=yCONFIG_BLK_MQ_VIRTIO=y
#
# IO Schedulers
#CONFIG_IOSCHED_NOOP=yCONFIG_IOSCHED_DEADLINE=yCONFIG_IOSCHED_CFQ=yCONFIG_CFQ_GROUP_IOSCHED=yCONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not setCONFIG_DEFAULT_IOSCHED="deadline"
# CONFIG_MQ_IOSCHED_DEADLINE is not setCONFIG_PREEMPT_NOTIFIERS=yCONFIG_ASN1=mCONFIG_ARCH_INLINE_SPIN_TRYLOCK=yCONFIG_ARCH_INLINE_SPIN_TRYLOCK_BH=yCONFIG_ARCH_INLINE_SPIN_LOCK=yCONFIG_ARCH_INLINE_SPIN_LOCK_BH=yCONFIG_ARCH_INLINE_SPIN_LOCK_IRQ=yCONFIG_ARCH_INLINE_SPIN_LOCK_IRQSAVE=yCONFIG_ARCH_INLINE_SPIN_UNLOCK=yCONFIG_ARCH_INLINE_SPIN_UNLOCK_BH=yCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQ=yCONFIG_ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE=yCONFIG_ARCH_INLINE_READ_TRYLOCK=yCONFIG_ARCH_INLINE_READ_LOCK=yCONFIG_ARCH_INLINE_READ_LOCK_BH=yCONFIG_ARCH_INLINE_READ_LOCK_IRQ=yCONFIG_ARCH_INLINE_READ_LOCK_IRQSAVE=yCONFIG_ARCH_INLINE_READ_UNLOCK=yCONFIG_ARCH_INLINE_READ_UNLOCK_BH=yCONFIG_ARCH_INLINE_READ_UNLOCK_IRQ=yCONFIG_ARCH_INLINE_READ_UNLOCK_IRQRESTORE=yCONFIG_ARCH_INLINE_WRITE_TRYLOCK=yCONFIG_ARCH_INLINE_WRITE_LOCK=yCONFIG_ARCH_INLINE_WRITE_LOCK_BH=yCONFIG_ARCH_INLINE_WRITE_LOCK_IRQ=yCONFIG_ARCH_INLINE_WRITE_LOCK_IRQSAVE=yCONFIG_ARCH_INLINE_WRITE_UNLOCK=yCONFIG_ARCH_INLINE_WRITE_UNLOCK_BH=yCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQ=yCONFIG_ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE=yCONFIG_UNINLINE_SPIN_UNLOCK=yCONFIG_ARCH_SUPPORTS_ATOMIC_RMW=yCONFIG_MUTEX_SPIN_ON_OWNER=yCONFIG_RWSEM_SPIN_ON_OWNER=yCONFIG_LOCK_SPIN_ON_OWNER=yCONFIG_FREEZER=yCONFIG_HAVE_LIVEPATCH=yCONFIG_LIVEPATCH=y
#
# Processor type and features
#CONFIG_HAVE_MARCH_Z900_FEATURES=yCONFIG_HAVE_MARCH_Z990_FEATURES=yCONFIG_HAVE_MARCH_Z9_109_FEATURES=yCONFIG_HAVE_MARCH_Z10_FEATURES=yCONFIG_HAVE_MARCH_Z196_FEATURES=y
# CONFIG_HAVE_MARCH_ZEC12_FEATURES is not set
# CONFIG_HAVE_MARCH_Z13_FEATURES is not set
# CONFIG_MARCH_Z900 is not set
# CONFIG_MARCH_Z990 is not set
# CONFIG_MARCH_Z9_109 is not set
# CONFIG_MARCH_Z10 is not setCONFIG_MARCH_Z196=y
# CONFIG_MARCH_ZEC12 is not set
# CONFIG_MARCH_Z13 is not set
# CONFIG_MARCH_Z900_TUNE is not set
# CONFIG_MARCH_Z990_TUNE is not set
# CONFIG_MARCH_Z9_109_TUNE is not set
# CONFIG_MARCH_Z10_TUNE is not set
# CONFIG_MARCH_Z196_TUNE is not setCONFIG_MARCH_ZEC12_TUNE=y
# CONFIG_MARCH_Z13_TUNE is not set
# CONFIG_TUNE_DEFAULT is not set
# CONFIG_TUNE_Z900 is not set
# CONFIG_TUNE_Z990 is not set
# CONFIG_TUNE_Z9_109 is not set
# CONFIG_TUNE_Z10 is not set
# CONFIG_TUNE_Z196 is not setCONFIG_TUNE_ZEC12=y
# CONFIG_TUNE_Z13 is not setCONFIG_64BIT=yCONFIG_COMPAT=yCONFIG_SYSVIPC_COMPAT=yCONFIG_KEYS_COMPAT=yCONFIG_SMP=yCONFIG_NR_CPUS=64CONFIG_HOTPLUG_CPU=y
# CONFIG_NODES_SPAN_OTHER_NODES is not set
# CONFIG_NUMA is not setCONFIG_SCHED_SMT=yCONFIG_SCHED_MC=yCONFIG_SCHED_BOOK=yCONFIG_SCHED_DRAWER=yCONFIG_SCHED_TOPOLOGY=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not setCONFIG_PREEMPT=yCONFIG_PREEMPT_COUNT=yCONFIG_HZ_100=y
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not setCONFIG_HZ=100CONFIG_SCHED_HRTICK=y
#
# Memory setup
#CONFIG_ARCH_SPARSEMEM_ENABLE=yCONFIG_ARCH_SPARSEMEM_DEFAULT=yCONFIG_ARCH_SELECT_MEMORY_MODEL=yCONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=yCONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=yCONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=yCONFIG_FORCE_MAX_ZONEORDER=9CONFIG_SELECT_MEMORY_MODEL=yCONFIG_SPARSEMEM_MANUAL=yCONFIG_SPARSEMEM=yCONFIG_HAVE_MEMORY_PRESENT=yCONFIG_SPARSEMEM_EXTREME=yCONFIG_SPARSEMEM_VMEMMAP_ENABLE=yCONFIG_SPARSEMEM_VMEMMAP=yCONFIG_HAVE_MEMBLOCK=yCONFIG_HAVE_MEMBLOCK_NODE_MAP=yCONFIG_HAVE_MEMBLOCK_PHYS_MAP=yCONFIG_NO_BOOTMEM=yCONFIG_MEMORY_ISOLATION=y
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not setCONFIG_MEMORY_HOTPLUG=yCONFIG_MEMORY_HOTPLUG_SPARSE=y
# CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE is not setCONFIG_MEMORY_HOTREMOVE=yCONFIG_SPLIT_PTLOCK_CPUS=4CONFIG_MEMORY_BALLOON=yCONFIG_BALLOON_COMPACTION=yCONFIG_COMPACTION=yCONFIG_MIGRATION=yCONFIG_PHYS_ADDR_T_64BIT=yCONFIG_BOUNCE=yCONFIG_VIRT_TO_BUS=yCONFIG_MMU_NOTIFIER=yCONFIG_KSM=yCONFIG_DEFAULT_MMAP_MIN_ADDR=4096CONFIG_TRANSPARENT_HUGEPAGE=yCONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not setCONFIG_TRANSPARENT_HUGE_PAGECACHE=yCONFIG_CLEANCACHE=yCONFIG_FRONTSWAP=yCONFIG_CMA=yCONFIG_CMA_DEBUG=yCONFIG_CMA_DEBUGFS=yCONFIG_CMA_AREAS=7CONFIG_MEM_SOFT_DIRTY=yCONFIG_ZSWAP=yCONFIG_ZPOOL=yCONFIG_ZBUD=m
# CONFIG_Z3FOLD is not setCONFIG_ZSMALLOC=m
# CONFIG_PGTABLE_MAPPING is not setCONFIG_ZSMALLOC_STAT=yCONFIG_IDLE_PAGE_TRACKING=yCONFIG_PACK_STACK=yCONFIG_CHECK_STACK=yCONFIG_STACK_GUARD=256
# CONFIG_WARN_DYNAMIC_STACK is not set
#
# I/O subsystem
#CONFIG_QDIO=yCONFIG_PCI=yCONFIG_PCI_NR_FUNCTIONS=64
# CONFIG_PCIEPORTBUS is not setCONFIG_PCI_BUS_ADDR_T_64BIT=yCONFIG_PCI_MSI=y
# CONFIG_PCI_MSI_IRQ_DOMAIN is not setCONFIG_PCI_DEBUG=y
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
# CONFIG_PCI_STUB is not set
# CONFIG_PCI_IOV is not set
# CONFIG_PCI_PRI is not set
# CONFIG_PCI_PASID is not setCONFIG_HOTPLUG_PCI=y
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not setCONFIG_HOTPLUG_PCI_S390=y
#
# DesignWare PCI Core Support
#
#
# PCI host controller drivers
#CONFIG_PCI_DOMAINS=yCONFIG_HAS_IOMEM=yCONFIG_IOMMU_HELPER=yCONFIG_NEED_SG_DMA_LENGTH=yCONFIG_NEED_DMA_MAP_STATE=yCONFIG_CHSC_SCH=yCONFIG_SCM_BUS=yCONFIG_EADM_SCH=m
#
# Dump support
#
# CONFIG_CRASH_DUMP is not set
#
# Executable file formats / Emulations
#CONFIG_BINFMT_ELF=yCONFIG_COMPAT_BINFMT_ELF=yCONFIG_ELFCORE=yCONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=yCONFIG_BINFMT_SCRIPT=y
# CONFIG_HAVE_AOUT is not setCONFIG_BINFMT_MISC=mCONFIG_COREDUMP=yCONFIG_SECCOMP=y
#
# Power Management
#CONFIG_ARCH_HIBERNATION_POSSIBLE=yCONFIG_HIBERNATE_CALLBACKS=yCONFIG_HIBERNATION=yCONFIG_ARCH_SAVE_PAGE_KEYS=yCONFIG_PM_STD_PARTITION=""CONFIG_PM_SLEEP=yCONFIG_PM_SLEEP_SMP=y
# CONFIG_PM_AUTOSLEEP is not set
# CONFIG_PM_WAKELOCKS is not setCONFIG_PM=y
# CONFIG_PM_DEBUG is not set
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not setCONFIG_NET=yCONFIG_NET_INGRESS=yCONFIG_NET_EGRESS=y
#
# Networking options
#CONFIG_PACKET=yCONFIG_PACKET_DIAG=mCONFIG_UNIX=yCONFIG_UNIX_DIAG=mCONFIG_XFRM=yCONFIG_XFRM_ALGO=mCONFIG_XFRM_USER=m
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
# CONFIG_XFRM_STATISTICS is not setCONFIG_XFRM_IPCOMP=mCONFIG_NET_KEY=m
# CONFIG_NET_KEY_MIGRATE is not setCONFIG_IUCV=yCONFIG_AFIUCV=m
# CONFIG_SMC is not setCONFIG_INET=yCONFIG_IP_MULTICAST=yCONFIG_IP_ADVANCED_ROUTER=y
# CONFIG_IP_FIB_TRIE_STATS is not setCONFIG_IP_MULTIPLE_TABLES=yCONFIG_IP_ROUTE_MULTIPATH=yCONFIG_IP_ROUTE_VERBOSE=yCONFIG_IP_ROUTE_CLASSID=y
# CONFIG_IP_PNP is not setCONFIG_NET_IPIP=mCONFIG_NET_IPGRE_DEMUX=mCONFIG_NET_IP_TUNNEL=mCONFIG_NET_IPGRE=mCONFIG_NET_IPGRE_BROADCAST=yCONFIG_IP_MROUTE=yCONFIG_IP_MROUTE_MULTIPLE_TABLES=yCONFIG_IP_PIMSM_V1=yCONFIG_IP_PIMSM_V2=yCONFIG_SYN_COOKIES=yCONFIG_NET_IPVTI=mCONFIG_NET_UDP_TUNNEL=m
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not setCONFIG_INET_AH=mCONFIG_INET_ESP=m
# CONFIG_INET_ESP_OFFLOAD is not setCONFIG_INET_IPCOMP=mCONFIG_INET_XFRM_TUNNEL=mCONFIG_INET_TUNNEL=mCONFIG_INET_XFRM_MODE_TRANSPORT=mCONFIG_INET_XFRM_MODE_TUNNEL=mCONFIG_INET_XFRM_MODE_BEET=mCONFIG_INET_DIAG=mCONFIG_INET_TCP_DIAG=mCONFIG_INET_UDP_DIAG=m
# CONFIG_INET_RAW_DIAG is not set
# CONFIG_INET_DIAG_DESTROY is not setCONFIG_TCP_CONG_ADVANCED=yCONFIG_TCP_CONG_BIC=mCONFIG_TCP_CONG_CUBIC=yCONFIG_TCP_CONG_WESTWOOD=mCONFIG_TCP_CONG_HTCP=mCONFIG_TCP_CONG_HSTCP=mCONFIG_TCP_CONG_HYBLA=mCONFIG_TCP_CONG_VEGAS=m
# CONFIG_TCP_CONG_NV is not setCONFIG_TCP_CONG_SCALABLE=mCONFIG_TCP_CONG_LP=mCONFIG_TCP_CONG_VENO=mCONFIG_TCP_CONG_YEAH=mCONFIG_TCP_CONG_ILLINOIS=m
# CONFIG_TCP_CONG_DCTCP is not set
# CONFIG_TCP_CONG_CDG is not set
# CONFIG_TCP_CONG_BBR is not setCONFIG_DEFAULT_CUBIC=y
# CONFIG_DEFAULT_RENO is not setCONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not setCONFIG_IPV6=yCONFIG_IPV6_ROUTER_PREF=y
# CONFIG_IPV6_ROUTE_INFO is not set
# CONFIG_IPV6_OPTIMISTIC_DAD is not setCONFIG_INET6_AH=mCONFIG_INET6_ESP=m
# CONFIG_INET6_ESP_OFFLOAD is not setCONFIG_INET6_IPCOMP=mCONFIG_IPV6_MIP6=mCONFIG_INET6_XFRM_TUNNEL=mCONFIG_INET6_TUNNEL=mCONFIG_INET6_XFRM_MODE_TRANSPORT=mCONFIG_INET6_XFRM_MODE_TUNNEL=mCONFIG_INET6_XFRM_MODE_BEET=mCONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=mCONFIG_IPV6_VTI=mCONFIG_IPV6_SIT=m
# CONFIG_IPV6_SIT_6RD is not setCONFIG_IPV6_NDISC_NODETYPE=yCONFIG_IPV6_TUNNEL=mCONFIG_IPV6_GRE=m
# CONFIG_IPV6_FOU is not set
# CONFIG_IPV6_FOU_TUNNEL is not setCONFIG_IPV6_MULTIPLE_TABLES=yCONFIG_IPV6_SUBTREES=y
# CONFIG_IPV6_MROUTE is not set
# CONFIG_IPV6_SEG6_LWTUNNEL is not set
# CONFIG_IPV6_SEG6_HMAC is not set
# CONFIG_NETLABEL is not setCONFIG_NETWORK_SECMARK=yCONFIG_NET_PTP_CLASSIFY=y
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
# CONFIG_NETFILTER is not set
# CONFIG_IP_DCCP is not setCONFIG_IP_SCTP=mCONFIG_NET_SCTPPROBE=m
# CONFIG_SCTP_DBG_OBJCNT is not setCONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not setCONFIG_SCTP_COOKIE_HMAC_MD5=y
# CONFIG_SCTP_COOKIE_HMAC_SHA1 is not setCONFIG_INET_SCTP_DIAG=mCONFIG_RDS=mCONFIG_RDS_RDMA=mCONFIG_RDS_TCP=mCONFIG_RDS_DEBUG=y
# CONFIG_TIPC is not set
# CONFIG_ATM is not setCONFIG_L2TP=mCONFIG_L2TP_DEBUGFS=mCONFIG_L2TP_V3=yCONFIG_L2TP_IP=mCONFIG_L2TP_ETH=mCONFIG_STP=mCONFIG_GARP=mCONFIG_BRIDGE=mCONFIG_BRIDGE_IGMP_SNOOPING=y
# CONFIG_BRIDGE_VLAN_FILTERING is not setCONFIG_VLAN_8021Q=mCONFIG_VLAN_8021Q_GVRP=y
# CONFIG_VLAN_8021Q_MVRP is not set
# CONFIG_DECNET is not setCONFIG_LLC=m
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_PHONET is not set
# CONFIG_6LOWPAN is not set
# CONFIG_IEEE802154 is not setCONFIG_NET_SCHED=y
#
# Queueing/Scheduling
#CONFIG_NET_SCH_CBQ=mCONFIG_NET_SCH_HTB=mCONFIG_NET_SCH_HFSC=mCONFIG_NET_SCH_PRIO=mCONFIG_NET_SCH_MULTIQ=mCONFIG_NET_SCH_RED=mCONFIG_NET_SCH_SFB=mCONFIG_NET_SCH_SFQ=mCONFIG_NET_SCH_TEQL=mCONFIG_NET_SCH_TBF=mCONFIG_NET_SCH_GRED=mCONFIG_NET_SCH_DSMARK=mCONFIG_NET_SCH_NETEM=mCONFIG_NET_SCH_DRR=mCONFIG_NET_SCH_MQPRIO=mCONFIG_NET_SCH_CHOKE=mCONFIG_NET_SCH_QFQ=mCONFIG_NET_SCH_CODEL=mCONFIG_NET_SCH_FQ_CODEL=m
# CONFIG_NET_SCH_FQ is not set
# CONFIG_NET_SCH_HHF is not set
# CONFIG_NET_SCH_PIE is not setCONFIG_NET_SCH_INGRESS=mCONFIG_NET_SCH_PLUG=m
#
# Classification
#CONFIG_NET_CLS=yCONFIG_NET_CLS_BASIC=mCONFIG_NET_CLS_TCINDEX=mCONFIG_NET_CLS_ROUTE4=mCONFIG_NET_CLS_FW=mCONFIG_NET_CLS_U32=mCONFIG_CLS_U32_PERF=yCONFIG_CLS_U32_MARK=yCONFIG_NET_CLS_RSVP=mCONFIG_NET_CLS_RSVP6=mCONFIG_NET_CLS_FLOW=mCONFIG_NET_CLS_CGROUP=yCONFIG_NET_CLS_BPF=m
# CONFIG_NET_CLS_FLOWER is not set
# CONFIG_NET_CLS_MATCHALL is not set
# CONFIG_NET_EMATCH is not setCONFIG_NET_CLS_ACT=yCONFIG_NET_ACT_POLICE=mCONFIG_NET_ACT_GACT=mCONFIG_GACT_PROB=yCONFIG_NET_ACT_MIRRED=m
# CONFIG_NET_ACT_SAMPLE is not setCONFIG_NET_ACT_NAT=mCONFIG_NET_ACT_PEDIT=mCONFIG_NET_ACT_SIMP=mCONFIG_NET_ACT_SKBEDIT=mCONFIG_NET_ACT_CSUM=m
# CONFIG_NET_ACT_VLAN is not set
# CONFIG_NET_ACT_BPF is not set
# CONFIG_NET_ACT_SKBMOD is not set
# CONFIG_NET_ACT_IFE is not set
# CONFIG_NET_ACT_TUNNEL_KEY is not set
# CONFIG_NET_CLS_IND is not setCONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not setCONFIG_DNS_RESOLVER=y
# CONFIG_BATMAN_ADV is not set
# CONFIG_OPENVSWITCH is not set
# CONFIG_VSOCKETS is not set
# CONFIG_NETLINK_DIAG is not set
# CONFIG_MPLS is not set
# CONFIG_HSR is not set
# CONFIG_NET_SWITCHDEV is not set
# CONFIG_NET_L3_MASTER_DEV is not set
# CONFIG_NET_NCSI is not setCONFIG_RPS=yCONFIG_RFS_ACCEL=yCONFIG_XPS=yCONFIG_CGROUP_NET_PRIO=yCONFIG_CGROUP_NET_CLASSID=yCONFIG_NET_RX_BUSY_POLL=yCONFIG_BQL=yCONFIG_BPF_JIT=yCONFIG_NET_FLOW_LIMIT=y
#
# Network testing
#CONFIG_NET_PKTGEN=mCONFIG_NET_TCPPROBE=m
# CONFIG_NET_DROP_MONITOR is not set
# CONFIG_CAN is not set
# CONFIG_AF_RXRPC is not set
# CONFIG_AF_KCM is not set
# CONFIG_STREAM_PARSER is not setCONFIG_FIB_RULES=y
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
# CONFIG_CAIF is not set
# CONFIG_CEPH_LIB is not set
# CONFIG_NFC is not set
# CONFIG_PSAMPLE is not set
# CONFIG_NET_IFE is not set
# CONFIG_LWTUNNEL is not setCONFIG_DST_CACHE=yCONFIG_GRO_CELLS=y
# CONFIG_NET_DEVLINK is not setCONFIG_MAY_USE_DEVLINK=yCONFIG_HAVE_EBPF_JIT=y
# CONFIG_PCMCIA is not setCONFIG_CCW=y
#
# Device Drivers
#
#
# Generic Driver Options
#CONFIG_UEVENT_HELPER=y CONFIG_UEVENT_HELPER_PATH="" CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE=""
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set CONFIG_ALLOW_DEV_COREDUMP=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_DEBUG_DEVRES is not set
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set # CONFIG_TEST_ASYNC_DRIVER_PROBE is not set CONFIG_SYS_HYPERVISOR=y
# CONFIG_GENERIC_CPU_DEVICES is not set CONFIG_GENERIC_CPU_AUTOPROBE=y
# CONFIG_DMA_SHARED_BUFFER is not set
# CONFIG_DMA_CMA is not set
#
# Bus devices
#CONFIG_CONNECTOR=yCONFIG_PROC_EVENTS=y
# CONFIG_MTD is not set
# CONFIG_OF is not set
# CONFIG_PARPORT is not setCONFIG_BLK_DEV=y
# CONFIG_BLK_DEV_NULL_BLK is not set
# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set
# CONFIG_ZRAM is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not setCONFIG_BLK_DEV_LOOP=mCONFIG_BLK_DEV_LOOP_MIN_COUNT=8CONFIG_BLK_DEV_CRYPTOLOOP=m
# CONFIG_BLK_DEV_DRBD is not setCONFIG_BLK_DEV_NBD=m
# CONFIG_BLK_DEV_SKD is not setCONFIG_BLK_DEV_OSD=m
# CONFIG_BLK_DEV_SX8 is not setCONFIG_BLK_DEV_RAM=yCONFIG_BLK_DEV_RAM_COUNT=16CONFIG_BLK_DEV_RAM_SIZE=32768CONFIG_CDROM_PKTCDVD=mCONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not setCONFIG_ATA_OVER_ETH=m
#
# S/390 block device drivers
#CONFIG_BLK_DEV_XPRAM=mCONFIG_DCSSBLK=mCONFIG_DASD=yCONFIG_DASD_PROFILE=yCONFIG_DASD_ECKD=yCONFIG_DASD_FBA=yCONFIG_DASD_DIAG=yCONFIG_DASD_EER=yCONFIG_SCM_BLOCK=mCONFIG_SCM_BLOCK_CLUSTER_WRITE=yCONFIG_VIRTIO_BLK=y
# CONFIG_VIRTIO_BLK_SCSI is not set
# CONFIG_BLK_DEV_RBD is not set
# CONFIG_BLK_DEV_RSXX is not set
# CONFIG_BLK_DEV_NVME is not set
# CONFIG_NVME_RDMA is not set
# CONFIG_NVME_FC is not set
# CONFIG_NVME_TARGET is not set
#
# Misc devices
#
# CONFIG_SENSORS_LIS3LV02D is not set
# CONFIG_DUMMY_IRQ is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
# CONFIG_TIFM_CORE is not setCONFIG_ENCLOSURE_SERVICES=m
# CONFIG_HP_ILO is not set
# CONFIG_SRAM is not set
# CONFIG_C2PORT is not set
#
# EEPROM support
#
# CONFIG_EEPROM_93CX6 is not set
# CONFIG_CB710_CORE is not set
#
# Texas Instruments shared transport line discipline #
#
# Altera FPGA firmware download module
#
#
# Intel MIC Bus Driver
#
#
# SCIF Bus Driver
#
#
# VOP Bus Driver
#
#
# Intel MIC Host Driver
#
#
# Intel MIC Card Driver
#
#
# SCIF Driver
#
#
# Intel MIC Coprocessor State Management (COSM) Drivers #
#
# VOP Driver
#
# CONFIG_GENWQE is not set
# CONFIG_ECHO is not set
# CONFIG_CXL_BASE is not set
# CONFIG_CXL_AFU_DRIVER_OPS is not set
#
# SCSI device support
#CONFIG_SCSI_MOD=yCONFIG_RAID_ATTRS=mCONFIG_SCSI=yCONFIG_SCSI_DMA=yCONFIG_SCSI_NETLINK=y
# CONFIG_SCSI_MQ_DEFAULT is not setCONFIG_SCSI_PROC_FS=y
#
# SCSI support type (disk, tape, CD-ROM)
#CONFIG_BLK_DEV_SD=yCONFIG_CHR_DEV_ST=mCONFIG_CHR_DEV_OSST=mCONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not setCONFIG_CHR_DEV_SG=yCONFIG_CHR_DEV_SCH=mCONFIG_SCSI_ENCLOSURE=mCONFIG_SCSI_CONSTANTS=yCONFIG_SCSI_LOGGING=y
# CONFIG_SCSI_SCAN_ASYNC is not set
#
# SCSI Transports
#CONFIG_SCSI_SPI_ATTRS=mCONFIG_SCSI_FC_ATTRS=yCONFIG_SCSI_ISCSI_ATTRS=mCONFIG_SCSI_SAS_ATTRS=mCONFIG_SCSI_SAS_LIBSAS=mCONFIG_SCSI_SAS_HOST_SMP=yCONFIG_SCSI_SRP_ATTRS=mCONFIG_SCSI_LOWLEVEL=yCONFIG_ISCSI_TCP=m
# CONFIG_ISCSI_BOOT_SYSFS is not set
# CONFIG_SCSI_CXGB3_ISCSI is not set
# CONFIG_SCSI_CXGB4_ISCSI is not set
# CONFIG_SCSI_BNX2_ISCSI is not set
# CONFIG_BE2ISCSI is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_HPSA is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_3W_SAS is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_MVSAS is not set
# CONFIG_SCSI_MVUMI is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_SCSI_ESAS2R is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_MPT3SAS is not set
# CONFIG_SCSI_MPT2SAS is not set
# CONFIG_SCSI_UFSHCD is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_LIBFC is not set
# CONFIG_SCSI_SNIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_AM53C974 is not set
# CONFIG_SCSI_WD719X is not setCONFIG_SCSI_DEBUG=mCONFIG_ZFCP=y
# CONFIG_SCSI_PMCRAID is not set
# CONFIG_SCSI_PM8001 is not set
# CONFIG_SCSI_BFA_FC is not setCONFIG_SCSI_VIRTIO=m
# CONFIG_SCSI_CHELSIO_FCOE is not setCONFIG_SCSI_DH=yCONFIG_SCSI_DH_RDAC=mCONFIG_SCSI_DH_HP_SW=mCONFIG_SCSI_DH_EMC=mCONFIG_SCSI_DH_ALUA=mCONFIG_SCSI_OSD_INITIATOR=mCONFIG_SCSI_OSD_ULD=mCONFIG_SCSI_OSD_DPRINT_SENSE=1
# CONFIG_SCSI_OSD_DEBUG is not set
# CONFIG_MD is not set
# CONFIG_TARGET_CORE is not set
# CONFIG_FUSION is not set
#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
# CONFIG_FIREWIRE_NOSY is not setCONFIG_NETDEVICES=yCONFIG_NET_CORE=yCONFIG_BONDING=mCONFIG_DUMMY=mCONFIG_EQUALIZER=m
# CONFIG_NET_FC is not setCONFIG_IFB=m
# CONFIG_NET_TEAM is not setCONFIG_MACVLAN=mCONFIG_MACVTAP=mCONFIG_VXLAN=m
# CONFIG_GENEVE is not set
# CONFIG_GTP is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not setCONFIG_TUN=mCONFIG_TAP=m
# CONFIG_TUN_VNET_CROSS_LE is not setCONFIG_VETH=mCONFIG_VIRTIO_NET=mCONFIG_NLMON=m
# CONFIG_ARCNET is not set
#
# CAIF transport drivers
#CONFIG_ETHERNET=y
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_NET_VENDOR_ADAPTEC is not set
# CONFIG_NET_VENDOR_AGERE is not set
# CONFIG_NET_VENDOR_ALACRITECH is not set
# CONFIG_NET_VENDOR_ALTEON is not set
# CONFIG_ALTERA_TSE is not set
# CONFIG_NET_VENDOR_AMAZON is not set
# CONFIG_NET_VENDOR_AMD is not set
# CONFIG_NET_VENDOR_AQUANTIA is not set
# CONFIG_NET_VENDOR_ARC is not set
# CONFIG_NET_VENDOR_ATHEROS is not set
# CONFIG_NET_VENDOR_AURORA is not set
# CONFIG_NET_CADENCE is not set
# CONFIG_NET_VENDOR_BROADCOM is not set
# CONFIG_NET_VENDOR_BROCADE is not set
# CONFIG_NET_VENDOR_CAVIUM is not set
# CONFIG_NET_VENDOR_CHELSIO is not set
# CONFIG_NET_VENDOR_CISCO is not set
# CONFIG_DNET is not set
# CONFIG_NET_VENDOR_DEC is not set
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
# CONFIG_NET_VENDOR_EXAR is not set
# CONFIG_NET_VENDOR_HP is not set
# CONFIG_NET_VENDOR_INTEL is not set
# CONFIG_JME is not set
# CONFIG_NET_VENDOR_MARVELL is not setCONFIG_NET_VENDOR_MELLANOX=yCONFIG_MLX4_EN=mCONFIG_MLX4_CORE=mCONFIG_MLX4_DEBUG=y
# CONFIG_MLX5_CORE is not set
# CONFIG_MLXSW_CORE is not set
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MYRI is not set
# CONFIG_FEALNX is not set
# CONFIG_NET_VENDOR_NATSEMI is not set
# CONFIG_NET_VENDOR_NETRONOME is not set
# CONFIG_NET_VENDOR_NVIDIA is not set
# CONFIG_NET_VENDOR_OKI is not set
# CONFIG_ETHOC is not set
# CONFIG_NET_PACKET_ENGINE is not set
# CONFIG_NET_VENDOR_QLOGIC is not set
# CONFIG_NET_VENDOR_QUALCOMM is not set
# CONFIG_NET_VENDOR_REALTEK is not set
# CONFIG_NET_VENDOR_RENESAS is not set
# CONFIG_NET_VENDOR_RDC is not set
# CONFIG_NET_VENDOR_ROCKER is not set
# CONFIG_NET_VENDOR_SAMSUNG is not set
# CONFIG_NET_VENDOR_SEEQ is not set
# CONFIG_NET_VENDOR_SILAN is not set
# CONFIG_NET_VENDOR_SIS is not set
# CONFIG_NET_VENDOR_SOLARFLARE is not set
# CONFIG_NET_VENDOR_SMSC is not set
# CONFIG_NET_VENDOR_STMICRO is not set
# CONFIG_NET_VENDOR_SUN is not set
# CONFIG_NET_VENDOR_TEHUTI is not set
# CONFIG_NET_VENDOR_TI is not set
# CONFIG_NET_VENDOR_VIA is not set
# CONFIG_NET_VENDOR_WIZNET is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
# CONFIG_PHYLIB is not setCONFIG_PPP=mCONFIG_PPP_BSDCOMP=mCONFIG_PPP_DEFLATE=m
# CONFIG_PPP_FILTER is not setCONFIG_PPP_MPPE=m
# CONFIG_PPP_MULTILINK is not setCONFIG_PPPOE=mCONFIG_PPTP=mCONFIG_PPPOL2TP=mCONFIG_PPP_ASYNC=mCONFIG_PPP_SYNC_TTY=m
# CONFIG_SLIP is not setCONFIG_SLHC=m
#
# S/390 network device drivers
#CONFIG_LCS=mCONFIG_CTCM=mCONFIG_NETIUCV=mCONFIG_SMSGIUCV=mCONFIG_SMSGIUCV_EVENT=mCONFIG_QETH=yCONFIG_QETH_L2=yCONFIG_QETH_L3=yCONFIG_QETH_IPV6=yCONFIG_CCWGROUP=y
#
# Host-side USB support is needed for USB Network Adapter support #
#
# Enable WiMAX (Networking options) to see the WiMAX drivers #
# CONFIG_WAN is not set
# CONFIG_VMXNET3 is not set
# CONFIG_NVM is not set
#
# Input device support
#CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set
# CONFIG_INPUT_SPARSEKMAP is not set
# CONFIG_INPUT_MATRIXKMAP is not set
#
# Userland interfaces
#
# CONFIG_INPUT_MOUSEDEV is not set
# CONFIG_INPUT_JOYDEV is not set
# CONFIG_INPUT_EVDEV is not set
# CONFIG_INPUT_EVBUG is not set
#
# Input Device Drivers
#
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
# CONFIG_INPUT_JOYSTICK is not set
# CONFIG_INPUT_TABLET is not set
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set
# CONFIG_RMI4_CORE is not set
#
# Hardware I/O ports
#
# CONFIG_SERIO is not set
# CONFIG_GAMEPORT is not set
#
# Character devices
#CONFIG_TTY=yCONFIG_UNIX98_PTYS=yCONFIG_LEGACY_PTYS=yCONFIG_LEGACY_PTY_COUNT=0
# CONFIG_SERIAL_NONSTANDARD is not set
# CONFIG_NOZOMI is not set
# CONFIG_N_GSM is not set
# CONFIG_TRACE_SINK is not setCONFIG_DEVMEM=y
# CONFIG_DEVKMEM is not set
#
# Serial drivers
#
# CONFIG_SERIAL_8250 is not set
#
# Non-8250 serial port support
#
# CONFIG_SERIAL_UARTLITE is not set
# CONFIG_SERIAL_JSM is not set
# CONFIG_SERIAL_SCCNXP is not set
# CONFIG_SERIAL_ALTERA_JTAGUART is not set
# CONFIG_SERIAL_ALTERA_UART is not set
# CONFIG_SERIAL_ARC is not set
# CONFIG_SERIAL_RP2 is not set
# CONFIG_SERIAL_FSL_LPUART is not set
# CONFIG_SERIAL_DEV_BUS is not set
# CONFIG_TTY_PRINTK is not setCONFIG_HVC_DRIVER=yCONFIG_HVC_IUCV=yCONFIG_VIRTIO_CONSOLE=y
# CONFIG_IPMI_HANDLER is not setCONFIG_HW_RANDOM=m
# CONFIG_HW_RANDOM_TIMERIOMEM is not setCONFIG_HW_RANDOM_VIRTIO=mCONFIG_HW_RANDOM_TPM=m
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not setCONFIG_RAW_DRIVER=mCONFIG_MAX_RAW_DEVS=256CONFIG_HANGCHECK_TIMER=mCONFIG_TCG_TPM=y
# CONFIG_TCG_VTPM_PROXY is not setCONFIG_DEVPORT=y
#
# S/390 character device drivers
#CONFIG_TN3270=yCONFIG_TN3270_TTY=yCONFIG_TN3270_FS=yCONFIG_TN3270_CONSOLE=yCONFIG_TN3215=yCONFIG_TN3215_CONSOLE=yCONFIG_CCW_CONSOLE=yCONFIG_SCLP_TTY=yCONFIG_SCLP_CONSOLE=yCONFIG_SCLP_VT220_TTY=yCONFIG_SCLP_VT220_CONSOLE=yCONFIG_SCLP_ASYNC=mCONFIG_SCLP_ASYNC_ID="000000000"CONFIG_HMC_DRV=m
# CONFIG_SCLP_OFB is not setCONFIG_S390_TAPE=m
#
# S/390 tape hardware support
#CONFIG_S390_TAPE_34XX=mCONFIG_S390_TAPE_3590=mCONFIG_VMLOGRDR=mCONFIG_VMCP=yCONFIG_MONREADER=mCONFIG_MONWRITER=mCONFIG_S390_VMUR=m
# CONFIG_XILLYBUS is not set
#
# I2C support
#
# CONFIG_I2C is not set
# CONFIG_SPI is not set
# CONFIG_SPMI is not set
# CONFIG_HSI is not set
#
# PPS support
#CONFIG_PPS=m
# CONFIG_PPS_DEBUG is not set
#
# PPS clients support
#
# CONFIG_PPS_CLIENT_KTIMER is not set
# CONFIG_PPS_CLIENT_LDISC is not set
# CONFIG_PPS_CLIENT_GPIO is not set
#
# PPS generators support
#
#
# PTP clock support
#CONFIG_PTP_1588_CLOCK=m
#
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. #
# CONFIG_GPIOLIB is not set
# CONFIG_W1 is not set
# CONFIG_POWER_AVS is not set
# CONFIG_POWER_RESET is not set
# CONFIG_POWER_SUPPLY is not set
# CONFIG_HWMON is not set
# CONFIG_THERMAL is not setCONFIG_WATCHDOG=yCONFIG_WATCHDOG_CORE=yCONFIG_WATCHDOG_NOWAYOUT=y
# CONFIG_WATCHDOG_SYSFS is not set
#
# Watchdog Device Drivers
#CONFIG_SOFT_WATCHDOG=m
# CONFIG_XILINX_WATCHDOG is not set
# CONFIG_CADENCE_WATCHDOG is not set
# CONFIG_DW_WATCHDOG is not set
# CONFIG_MAX63XX_WATCHDOG is not set
# CONFIG_ALIM7101_WDT is not set
# CONFIG_I6300ESB_WDT is not setCONFIG_DIAG288_WATCHDOG=m
#
# PCI-based Watchdog Cards
#
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
#
# Watchdog Pretimeout Governors
#
# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not setCONFIG_SSB_POSSIBLE=y
#
# Sonics Silicon Backplane
#
# CONFIG_SSB is not setCONFIG_BCMA_POSSIBLE=y
#
# Broadcom specific AMBA
#
# CONFIG_BCMA is not set
#
# Multifunction device drivers
#
# CONFIG_MFD_CORE is not set
# CONFIG_HTC_PASIC3 is not set
# CONFIG_LPC_ICH is not set
# CONFIG_LPC_SCH is not set
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
# CONFIG_MFD_MT6397 is not set
# CONFIG_MFD_RDC321X is not set
# CONFIG_MFD_RTSX_PCI is not set
# CONFIG_MFD_SM501 is not set
# CONFIG_ABX500_CORE is not set
# CONFIG_MFD_SYSCON is not set
# CONFIG_MFD_TI_AM335X_TSCADC is not set
# CONFIG_MFD_TMIO is not set
# CONFIG_MFD_VX855 is not set
# CONFIG_REGULATOR is not set
# CONFIG_MEDIA_SUPPORT is not set
#
# Graphics support
#
# CONFIG_DRM is not set
#
# ACP (Audio CoProcessor) Configuration
#
# CONFIG_DRM_LIB_RANDOM is not set
#
# Frame buffer Devices
#
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
# CONFIG_VGASTATE is not set
# CONFIG_SOUND is not set
#
# HID support
#
# CONFIG_HID is not setCONFIG_USB_OHCI_LITTLE_ENDIAN=y
# CONFIG_USB_SUPPORT is not set
# CONFIG_UWB is not set
# CONFIG_MMC is not set
# CONFIG_MEMSTICK is not set
# CONFIG_NEW_LEDS is not set
# CONFIG_ACCESSIBILITY is not setCONFIG_INFINIBAND=m
# CONFIG_INFINIBAND_USER_MAD is not setCONFIG_INFINIBAND_USER_ACCESS=mCONFIG_INFINIBAND_USER_MEM=yCONFIG_INFINIBAND_ON_DEMAND_PAGING=yCONFIG_INFINIBAND_ADDR_TRANS=yCONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
# CONFIG_INFINIBAND_MTHCA is not setCONFIG_MLX4_INFINIBAND=m
# CONFIG_INFINIBAND_NES is not set
# CONFIG_INFINIBAND_OCRDMA is not set
# CONFIG_INFINIBAND_IPOIB is not set
# CONFIG_INFINIBAND_SRP is not set
# CONFIG_INFINIBAND_ISER is not set
# CONFIG_INFINIBAND_RDMAVT is not set
# CONFIG_RDMA_RXE is not set
# CONFIG_DMADEVICES is not set
#
# DMABUF options
#
# CONFIG_SYNC_FILE is not set
# CONFIG_AUXDISPLAY is not set
# CONFIG_UIO is not set
# CONFIG_VFIO is not set
# CONFIG_VIRT_DRIVERS is not setCONFIG_VIRTIO=y
#
# Virtio drivers
#
# CONFIG_VIRTIO_PCI is not setCONFIG_VIRTIO_BALLOON=m
# CONFIG_VIRTIO_INPUT is not set
# CONFIG_VIRTIO_MMIO is not set
#
# Microsoft Hyper-V guest support
#
# CONFIG_STAGING is not set
#
# Hardware Spinlock drivers
#
#
# Clock Source drivers
#
# CONFIG_ATMEL_PIT is not set
# CONFIG_SH_TIMER_CMT is not set
# CONFIG_SH_TIMER_MTU2 is not set
# CONFIG_SH_TIMER_TMU is not set
# CONFIG_EM_TIMER_STI is not set
# CONFIG_MAILBOX is not setCONFIG_IOMMU_API=yCONFIG_IOMMU_SUPPORT=y
#
# Generic IOMMU Pagetable Support
#CONFIG_S390_IOMMU=y
#
# Remoteproc drivers
#
# CONFIG_REMOTEPROC is not set
#
# Rpmsg drivers
#
#
# SOC (System On Chip) specific Drivers
#
#
# Broadcom SoC drivers
#
# CONFIG_SUNXI_SRAM is not set
# CONFIG_SOC_TI is not set
# CONFIG_SOC_ZTE is not set
# CONFIG_PM_DEVFREQ is not set
# CONFIG_EXTCON is not set
# CONFIG_MEMORY is not set
# CONFIG_IIO is not set
# CONFIG_NTB is not set
# CONFIG_VME_BUS is not set
# CONFIG_PWM is not setCONFIG_ARM_GIC_MAX_NR=1
# CONFIG_IPACK_BUS is not set
# CONFIG_RESET_CONTROLLER is not set
# CONFIG_FMC is not set
#
# PHY Subsystem
#
# CONFIG_GENERIC_PHY is not set
# CONFIG_PHY_PXA_28NM_HSIC is not set
# CONFIG_PHY_PXA_28NM_USB2 is not set
# CONFIG_BCM_KONA_USB2_PHY is not set
# CONFIG_POWERCAP is not set
# CONFIG_MCB is not set
#
# Performance monitor support
#
# CONFIG_RAS is not set
#
# Android
#
# CONFIG_ANDROID is not set
# CONFIG_LIBNVDIMM is not set
# CONFIG_DEV_DAX is not set
# CONFIG_NVMEM is not set
# CONFIG_STM is not set
# CONFIG_INTEL_TH is not set
#
# FPGA Configuration Support
#
# CONFIG_FPGA is not set
#
# FSI support
#
# CONFIG_FSI is not set
#
# File systems
#
# CONFIG_EXT2_FS is not set
# CONFIG_EXT3_FS is not setCONFIG_EXT4_FS=yCONFIG_EXT4_USE_FOR_EXT2=yCONFIG_EXT4_FS_POSIX_ACL=yCONFIG_EXT4_FS_SECURITY=yCONFIG_EXT4_ENCRYPTION=yCONFIG_EXT4_FS_ENCRYPTION=y
# CONFIG_EXT4_DEBUG is not setCONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not setCONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_XFS_FS is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not setCONFIG_BTRFS_FS=yCONFIG_BTRFS_FS_POSIX_ACL=y
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set
# CONFIG_BTRFS_DEBUG is not set
# CONFIG_BTRFS_ASSERT is not set
# CONFIG_NILFS2_FS is not set
# CONFIG_F2FS_FS is not set
# CONFIG_FS_DAX is not setCONFIG_FS_POSIX_ACL=yCONFIG_EXPORTFS=y
# CONFIG_EXPORTFS_BLOCK_OPS is not setCONFIG_FILE_LOCKING=yCONFIG_MANDATORY_FILE_LOCKING=yCONFIG_FS_ENCRYPTION=yCONFIG_FSNOTIFY=yCONFIG_DNOTIFY=yCONFIG_INOTIFY_USER=yCONFIG_FANOTIFY=y
# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not setCONFIG_QUOTA=yCONFIG_QUOTA_NETLINK_INTERFACE=yCONFIG_PRINT_QUOTA_WARNING=y
# CONFIG_QUOTA_DEBUG is not setCONFIG_QUOTA_TREE=mCONFIG_QFMT_V1=mCONFIG_QFMT_V2=mCONFIG_QUOTACTL=yCONFIG_AUTOFS4_FS=mCONFIG_FUSE_FS=yCONFIG_CUSE=mCONFIG_OVERLAY_FS=m
# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
#
# Caches
#CONFIG_FSCACHE=m
# CONFIG_FSCACHE_STATS is not set
# CONFIG_FSCACHE_HISTOGRAM is not set
# CONFIG_FSCACHE_DEBUG is not set
# CONFIG_FSCACHE_OBJECT_LIST is not setCONFIG_CACHEFILES=m
# CONFIG_CACHEFILES_DEBUG is not set
# CONFIG_CACHEFILES_HISTOGRAM is not set
#
# CD-ROM/DVD Filesystems
#
# CONFIG_ISO9660_FS is not set
# CONFIG_UDF_FS is not set
#
# DOS/FAT/NT Filesystems
#
# CONFIG_MSDOS_FS is not set
# CONFIG_VFAT_FS is not set
# CONFIG_NTFS_FS is not set
#
# Pseudo filesystems
#CONFIG_PROC_FS=yCONFIG_PROC_KCORE=yCONFIG_PROC_SYSCTL=yCONFIG_PROC_PAGE_MONITOR=yCONFIG_PROC_CHILDREN=yCONFIG_KERNFS=yCONFIG_SYSFS=yCONFIG_TMPFS=yCONFIG_TMPFS_POSIX_ACL=yCONFIG_TMPFS_XATTR=yCONFIG_HUGETLBFS=yCONFIG_HUGETLB_PAGE=yCONFIG_ARCH_HAS_GIGANTIC_PAGE=yCONFIG_CONFIGFS_FS=m
# CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set
# CONFIG_NLS is not set
# CONFIG_DLM is not set
#
# Kernel hacking
#CONFIG_TRACE_IRQFLAGS_SUPPORT=y
#
# printk and dmesg options # CONFIG_PRINTK_TIME=y CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 CONFIG_DYNAMIC_DEBUG=y
#
# Compile-time checks and compiler options
#CONFIG_DEBUG_INFO=y
# CONFIG_DEBUG_INFO_REDUCED is not set
# CONFIG_DEBUG_INFO_SPLIT is not setCONFIG_DEBUG_INFO_DWARF4=yCONFIG_GDB_SCRIPTS=yCONFIG_ENABLE_WARN_DEPRECATED=yCONFIG_ENABLE_MUST_CHECK=yCONFIG_FRAME_WARN=1024
# CONFIG_STRIP_ASM_SYMS is not setCONFIG_READABLE_ASM=yCONFIG_UNUSED_SYMBOLS=y
# CONFIG_PAGE_OWNER is not setCONFIG_DEBUG_FS=yCONFIG_HEADERS_CHECK=yCONFIG_DEBUG_SECTION_MISMATCH=yCONFIG_SECTION_MISMATCH_WARN_ONLY=y
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not setCONFIG_MAGIC_SYSRQ=yCONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1CONFIG_MAGIC_SYSRQ_SERIAL=yCONFIG_DEBUG_KERNEL=y
#
# Memory Debugging
#CONFIG_PAGE_EXTENSION=y CONFIG_DEBUG_PAGEALLOC=y
# CONFIG_DEBUG_PAGEALLOC_ENABLE_DEFAULT is not set # CONFIG_PAGE_POISONING is not set
# CONFIG_DEBUG_PAGE_REF is not set
# CONFIG_DEBUG_RODATA_TEST is not set CONFIG_DEBUG_OBJECTS=y CONFIG_DEBUG_OBJECTS_SELFTEST=y CONFIG_DEBUG_OBJECTS_FREE=y CONFIG_DEBUG_OBJECTS_TIMERS=y CONFIG_DEBUG_OBJECTS_WORK=y CONFIG_DEBUG_OBJECTS_RCU_HEAD=y CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 CONFIG_SLUB_DEBUG_ON=yCONFIG_SLUB_STATS=y CONFIG_HAVE_DEBUG_KMEMLEAK=y
# CONFIG_DEBUG_KMEMLEAK is not set CONFIG_DEBUG_STACK_USAGE=y CONFIG_DEBUG_VM=y CONFIG_DEBUG_VM_VMACACHE=y CONFIG_DEBUG_VM_RB=y CONFIG_DEBUG_VM_PGFLAGS=y CONFIG_DEBUG_MEMORY_INIT=y CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m
# CONFIG_DEBUG_PER_CPU_MAPS is not set CONFIG_ARCH_HAS_KCOV=y
# CONFIG_KCOV is not set CONFIG_DEBUG_SHIRQ=y
#
# Debug Lockups and Hangs
#CONFIG_DETECT_HUNG_TASK=yCONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not setCONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0CONFIG_WQ_WATCHDOG=y
# CONFIG_PANIC_ON_OOPS is not setCONFIG_PANIC_ON_OOPS_VALUE=0CONFIG_PANIC_TIMEOUT=0CONFIG_SCHED_DEBUG=yCONFIG_SCHED_INFO=yCONFIG_SCHEDSTATS=y
# CONFIG_SCHED_STACK_END_CHECK is not setCONFIG_DEBUG_TIMEKEEPING=yCONFIG_DEBUG_PREEMPT=y
#
# Lock Debugging (spinlocks, mutexes, etc...)
#CONFIG_DEBUG_RT_MUTEXES=yCONFIG_DEBUG_SPINLOCK=yCONFIG_DEBUG_MUTEXES=yCONFIG_DEBUG_WW_MUTEX_SLOWPATH=yCONFIG_DEBUG_LOCK_ALLOC=yCONFIG_PROVE_LOCKING=yCONFIG_LOCKDEP=yCONFIG_LOCK_STAT=yCONFIG_DEBUG_LOCKDEP=yCONFIG_DEBUG_ATOMIC_SLEEP=yCONFIG_DEBUG_LOCKING_API_SELFTESTS=y
# CONFIG_LOCK_TORTURE_TEST is not set
# CONFIG_WW_MUTEX_SELFTEST is not setCONFIG_TRACE_IRQFLAGS=yCONFIG_STACKTRACE=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_KOBJECT_RELEASE is not setCONFIG_DEBUG_BUGVERBOSE=yCONFIG_DEBUG_LIST=y
# CONFIG_DEBUG_PI_LIST is not setCONFIG_DEBUG_SG=yCONFIG_DEBUG_NOTIFIERS=yCONFIG_DEBUG_CREDENTIALS=y
#
# RCU Debugging
#CONFIG_PROVE_RCU=y
# CONFIG_PROVE_RCU_REPEATEDLY is not set
# CONFIG_SPARSE_RCU_POINTER is not setCONFIG_TORTURE_TEST=m
# CONFIG_RCU_PERF_TEST is not setCONFIG_RCU_TORTURE_TEST=m
# CONFIG_RCU_TORTURE_TEST_SLOW_PREINIT is not set
# CONFIG_RCU_TORTURE_TEST_SLOW_INIT is not set
# CONFIG_RCU_TORTURE_TEST_SLOW_CLEANUP is not setCONFIG_RCU_CPU_STALL_TIMEOUT=300
# CONFIG_RCU_TRACE is not set
# CONFIG_RCU_EQS_DEBUG is not set
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not setCONFIG_NOTIFIER_ERROR_INJECTION=mCONFIG_PM_NOTIFIER_ERROR_INJECT=m
# CONFIG_NETDEV_NOTIFIER_ERROR_INJECT is not setCONFIG_FAULT_INJECTION=yCONFIG_FAILSLAB=yCONFIG_FAIL_PAGE_ALLOC=yCONFIG_FAIL_MAKE_REQUEST=yCONFIG_FAIL_IO_TIMEOUT=yCONFIG_FAIL_FUTEX=yCONFIG_FAULT_INJECTION_DEBUG_FS=yCONFIG_FAULT_INJECTION_STACKTRACE_FILTER=yCONFIG_LATENCYTOP=yCONFIG_NOP_TRACER=yCONFIG_HAVE_FUNCTION_TRACER=yCONFIG_HAVE_FUNCTION_GRAPH_TRACER=yCONFIG_HAVE_DYNAMIC_FTRACE=yCONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=yCONFIG_HAVE_FTRACE_MCOUNT_RECORD=yCONFIG_HAVE_SYSCALL_TRACEPOINTS=yCONFIG_TRACER_MAX_TRACE=yCONFIG_TRACE_CLOCK=yCONFIG_RING_BUFFER=yCONFIG_EVENT_TRACING=yCONFIG_CONTEXT_SWITCH_TRACER=yCONFIG_RING_BUFFER_ALLOW_SWAP=yCONFIG_TRACING=yCONFIG_GENERIC_TRACER=yCONFIG_TRACING_SUPPORT=yCONFIG_FTRACE=yCONFIG_FUNCTION_TRACER=yCONFIG_FUNCTION_GRAPH_TRACER=yCONFIG_IRQSOFF_TRACER=yCONFIG_PREEMPT_TRACER=yCONFIG_SCHED_TRACER=y
# CONFIG_HWLAT_TRACER is not setCONFIG_FTRACE_SYSCALLS=yCONFIG_TRACER_SNAPSHOT=yCONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP=yCONFIG_BRANCH_PROFILE_NONE=y
# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
# CONFIG_PROFILE_ALL_BRANCHES is not setCONFIG_STACK_TRACER=yCONFIG_BLK_DEV_IO_TRACE=y
# CONFIG_KPROBE_EVENTS is not set
# CONFIG_UPROBE_EVENTS is not set
# CONFIG_PROBE_EVENTS is not setCONFIG_DYNAMIC_FTRACE=yCONFIG_DYNAMIC_FTRACE_WITH_REGS=yCONFIG_FUNCTION_PROFILER=yCONFIG_FTRACE_MCOUNT_RECORD=y
# CONFIG_FTRACE_STARTUP_TEST is not setCONFIG_TRACING_MAP=yCONFIG_HIST_TRIGGERS=y
# CONFIG_TRACEPOINT_BENCHMARK is not set
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_RING_BUFFER_STARTUP_TEST is not setCONFIG_TRACE_ENUM_MAP_FILE=y
#
# Runtime Testing
#CONFIG_LKDTM=mCONFIG_TEST_LIST_SORT=y
# CONFIG_TEST_SORT is not setCONFIG_KPROBES_SANITY_TEST=y
# CONFIG_BACKTRACE_SELF_TEST is not setCONFIG_RBTREE_TEST=yCONFIG_INTERVAL_TREE_TEST=mCONFIG_PERCPU_TEST=mCONFIG_ATOMIC64_SELFTEST=y
# CONFIG_TEST_HEXDUMP is not setCONFIG_TEST_STRING_HELPERS=yCONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_PRINTF is not set
# CONFIG_TEST_BITMAP is not set
# CONFIG_TEST_UUID is not set
# CONFIG_TEST_RHASHTABLE is not set
# CONFIG_TEST_HASH is not setCONFIG_DMA_API_DEBUG=y
# CONFIG_TEST_LKM is not set
# CONFIG_TEST_USER_COPY is not setCONFIG_TEST_BPF=m
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_MEMTEST is not set
# CONFIG_TEST_STATIC_KEYS is not set
# CONFIG_BUG_ON_DATA_CORRUPTION is not set
# CONFIG_SAMPLES is not setCONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=yCONFIG_ARCH_WANTS_UBSAN_NO_NULL=y
# CONFIG_UBSAN is not setCONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y
# CONFIG_STRICT_DEVMEM is not setCONFIG_S390_PTDUMP=yCONFIG_EARLY_PRINTK=y
#
# Security options
#CONFIG_KEYS=y
# CONFIG_PERSISTENT_KEYRINGS is not set
# CONFIG_BIG_KEYS is not set
# CONFIG_TRUSTED_KEYS is not setCONFIG_ENCRYPTED_KEYS=y
# CONFIG_KEY_DH_OPERATIONS is not set
# CONFIG_SECURITY_DMESG_RESTRICT is not setCONFIG_SECURITY=yCONFIG_SECURITYFS=yCONFIG_SECURITY_NETWORK=y
# CONFIG_SECURITY_NETWORK_XFRM is not set
# CONFIG_SECURITY_PATH is not setCONFIG_LSM_MMAP_MIN_ADDR=65536CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=yCONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
# CONFIG_HARDENED_USERCOPY is not set
# CONFIG_STATIC_USERMODEHELPER is not setCONFIG_SECURITY_SELINUX=yCONFIG_SECURITY_SELINUX_BOOTPARAM=yCONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0CONFIG_SECURITY_SELINUX_DISABLE=yCONFIG_SECURITY_SELINUX_DEVELOP=yCONFIG_SECURITY_SELINUX_AVC_STATS=yCONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0
# CONFIG_SECURITY_SMACK is not set
# CONFIG_SECURITY_TOMOYO is not set
# CONFIG_SECURITY_APPARMOR is not set
# CONFIG_SECURITY_LOADPIN is not set
# CONFIG_SECURITY_YAMA is not setCONFIG_INTEGRITY=y
# CONFIG_INTEGRITY_SIGNATURE is not setCONFIG_INTEGRITY_AUDIT=yCONFIG_IMA=yCONFIG_IMA_MEASURE_PCR_IDX=10CONFIG_IMA_LSM_RULES=y
# CONFIG_IMA_TEMPLATE is not setCONFIG_IMA_NG_TEMPLATE=y
# CONFIG_IMA_SIG_TEMPLATE is not setCONFIG_IMA_DEFAULT_TEMPLATE="ima-ng"CONFIG_IMA_DEFAULT_HASH_SHA1=y
# CONFIG_IMA_DEFAULT_HASH_SHA256 is not set
# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set
# CONFIG_IMA_DEFAULT_HASH_WP512 is not setCONFIG_IMA_DEFAULT_HASH="sha1"
# CONFIG_IMA_WRITE_POLICY is not set
# CONFIG_IMA_READ_POLICY is not setCONFIG_IMA_APPRAISE=y
# CONFIG_EVM is not setCONFIG_DEFAULT_SECURITY_SELINUX=y
# CONFIG_DEFAULT_SECURITY_DAC is not setCONFIG_DEFAULT_SECURITY="selinux"CONFIG_XOR_BLOCKS=yCONFIG_CRYPTO=y
#
# Crypto core or helper
#CONFIG_CRYPTO_ALGAPI=yCONFIG_CRYPTO_ALGAPI2=yCONFIG_CRYPTO_AEAD=yCONFIG_CRYPTO_AEAD2=yCONFIG_CRYPTO_BLKCIPHER=yCONFIG_CRYPTO_BLKCIPHER2=yCONFIG_CRYPTO_HASH=yCONFIG_CRYPTO_HASH2=yCONFIG_CRYPTO_RNG=yCONFIG_CRYPTO_RNG2=yCONFIG_CRYPTO_RNG_DEFAULT=yCONFIG_CRYPTO_AKCIPHER2=yCONFIG_CRYPTO_AKCIPHER=mCONFIG_CRYPTO_KPP2=yCONFIG_CRYPTO_KPP=mCONFIG_CRYPTO_ACOMP2=yCONFIG_CRYPTO_RSA=mCONFIG_CRYPTO_DH=mCONFIG_CRYPTO_ECDH=mCONFIG_CRYPTO_MANAGER=yCONFIG_CRYPTO_MANAGER2=yCONFIG_CRYPTO_USER=mCONFIG_CRYPTO_MANAGER_DISABLE_TESTS=yCONFIG_CRYPTO_GF128MUL=yCONFIG_CRYPTO_NULL=yCONFIG_CRYPTO_NULL2=y
# CONFIG_CRYPTO_PCRYPT is not setCONFIG_CRYPTO_WORKQUEUE=yCONFIG_CRYPTO_CRYPTD=m
# CONFIG_CRYPTO_MCRYPTD is not setCONFIG_CRYPTO_AUTHENC=mCONFIG_CRYPTO_TEST=mCONFIG_CRYPTO_ENGINE=m
#
# Authenticated Encryption with Associated Data
#CONFIG_CRYPTO_CCM=mCONFIG_CRYPTO_GCM=mCONFIG_CRYPTO_CHACHA20POLY1305=mCONFIG_CRYPTO_SEQIV=yCONFIG_CRYPTO_ECHAINIV=m
#
# Block modes
#CONFIG_CRYPTO_CBC=yCONFIG_CRYPTO_CTR=yCONFIG_CRYPTO_CTS=yCONFIG_CRYPTO_ECB=yCONFIG_CRYPTO_LRW=mCONFIG_CRYPTO_PCBC=mCONFIG_CRYPTO_XTS=yCONFIG_CRYPTO_KEYWRAP=m
#
# Hash modes
#
# CONFIG_CRYPTO_CMAC is not setCONFIG_CRYPTO_HMAC=yCONFIG_CRYPTO_XCBC=mCONFIG_CRYPTO_VMAC=m
#
# Digest
#CONFIG_CRYPTO_CRC32C=yCONFIG_CRYPTO_CRC32=mCONFIG_CRYPTO_CRCT10DIF=mCONFIG_CRYPTO_GHASH=mCONFIG_CRYPTO_POLY1305=mCONFIG_CRYPTO_MD4=mCONFIG_CRYPTO_MD5=yCONFIG_CRYPTO_MICHAEL_MIC=mCONFIG_CRYPTO_RMD128=mCONFIG_CRYPTO_RMD160=mCONFIG_CRYPTO_RMD256=mCONFIG_CRYPTO_RMD320=mCONFIG_CRYPTO_SHA1=yCONFIG_CRYPTO_SHA256=yCONFIG_CRYPTO_SHA512=m
# CONFIG_CRYPTO_SHA3 is not setCONFIG_CRYPTO_TGR192=mCONFIG_CRYPTO_WP512=m
#
# Ciphers
#CONFIG_CRYPTO_AES=y
# CONFIG_CRYPTO_AES_TI is not setCONFIG_CRYPTO_ANUBIS=mCONFIG_CRYPTO_ARC4=mCONFIG_CRYPTO_BLOWFISH=mCONFIG_CRYPTO_BLOWFISH_COMMON=mCONFIG_CRYPTO_CAMELLIA=mCONFIG_CRYPTO_CAST_COMMON=mCONFIG_CRYPTO_CAST5=mCONFIG_CRYPTO_CAST6=mCONFIG_CRYPTO_DES=mCONFIG_CRYPTO_FCRYPT=mCONFIG_CRYPTO_KHAZAD=mCONFIG_CRYPTO_SALSA20=mCONFIG_CRYPTO_CHACHA20=mCONFIG_CRYPTO_SEED=mCONFIG_CRYPTO_SERPENT=mCONFIG_CRYPTO_TEA=mCONFIG_CRYPTO_TWOFISH=mCONFIG_CRYPTO_TWOFISH_COMMON=m
#
# Compression
#CONFIG_CRYPTO_DEFLATE=mCONFIG_CRYPTO_LZO=yCONFIG_CRYPTO_842=mCONFIG_CRYPTO_LZ4=mCONFIG_CRYPTO_LZ4HC=m
#
# Random Number Generation
#
# CONFIG_CRYPTO_ANSI_CPRNG is not set CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y
# CONFIG_CRYPTO_DRBG_HASH is not set
# CONFIG_CRYPTO_DRBG_CTR is not set CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y CONFIG_CRYPTO_USER_API=m CONFIG_CRYPTO_USER_API_HASH=m CONFIG_CRYPTO_USER_API_SKCIPHER=m CONFIG_CRYPTO_USER_API_RNG=m CONFIG_CRYPTO_USER_API_AEAD=m CONFIG_CRYPTO_HASH_INFO=yCONFIG_CRYPTO_HW=yCONFIG_ZCRYPT=mCONFIG_PKEY=mCONFIG_CRYPTO_SHA1_S390=m CONFIG_CRYPTO_SHA256_S390=m CONFIG_CRYPTO_SHA512_S390=m CONFIG_CRYPTO_DES_S390=m CONFIG_CRYPTO_AES_S390=mCONFIG_S390_PRNG=mCONFIG_CRYPTO_GHASH_S390=m CONFIG_CRYPTO_CRC32_S390=y
# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set CONFIG_CRYPTO_DEV_VIRTIO=m CONFIG_ASYMMETRIC_KEY_TYPE=y CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m CONFIG_X509_CERTIFICATE_PARSER=m
# CONFIG_PKCS7_MESSAGE_PARSER is not set
#
# Certificates for signature checking
#
# CONFIG_SYSTEM_TRUSTED_KEYRING is not setCONFIG_BINARY_PRINTF=y
#
# Library routines
#CONFIG_RAID6_PQ=yCONFIG_BITREVERSE=y
# CONFIG_HAVE_ARCH_BITREVERSE is not setCONFIG_GENERIC_NET_UTILS=yCONFIG_GENERIC_FIND_FIRST_BIT=yCONFIG_GENERIC_IO=yCONFIG_ARCH_USE_CMPXCHG_LOCKREF=yCONFIG_CRC_CCITT=mCONFIG_CRC16=yCONFIG_CRC_T10DIF=mCONFIG_CRC_ITU_T=mCONFIG_CRC32=y
# CONFIG_CRC32_SELFTEST is not setCONFIG_CRC32_SLICEBY8=y
# CONFIG_CRC32_SLICEBY4 is not set
# CONFIG_CRC32_SARWATE is not set
# CONFIG_CRC32_BIT is not setCONFIG_CRC7=mCONFIG_LIBCRC32C=yCONFIG_CRC8=m
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
# CONFIG_RANDOM32_SELFTEST is not setCONFIG_842_COMPRESS=mCONFIG_842_DECOMPRESS=mCONFIG_ZLIB_INFLATE=yCONFIG_ZLIB_DEFLATE=yCONFIG_LZO_COMPRESS=yCONFIG_LZO_DECOMPRESS=yCONFIG_LZ4_COMPRESS=mCONFIG_LZ4HC_COMPRESS=mCONFIG_LZ4_DECOMPRESS=yCONFIG_XZ_DEC=yCONFIG_XZ_DEC_X86=yCONFIG_XZ_DEC_POWERPC=yCONFIG_XZ_DEC_IA64=yCONFIG_XZ_DEC_ARM=yCONFIG_XZ_DEC_ARMTHUMB=yCONFIG_XZ_DEC_SPARC=yCONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not setCONFIG_DECOMPRESS_GZIP=yCONFIG_DECOMPRESS_BZIP2=yCONFIG_DECOMPRESS_LZMA=yCONFIG_DECOMPRESS_XZ=yCONFIG_DECOMPRESS_LZO=yCONFIG_DECOMPRESS_LZ4=yCONFIG_INTERVAL_TREE=yCONFIG_RADIX_TREE_MULTIORDER=yCONFIG_ASSOCIATIVE_ARRAY=yCONFIG_HAS_DMA=yCONFIG_DMA_NOOP_OPS=y
# CONFIG_DMA_VIRT_OPS is not setCONFIG_CPU_RMAP=yCONFIG_DQL=yCONFIG_GLOB=y
# CONFIG_GLOB_SELFTEST is not setCONFIG_NLATTR=yCONFIG_CLZ_TAB=yCONFIG_CORDIC=m
# CONFIG_DDR is not setCONFIG_IRQ_POLL=yCONFIG_MPILIB=mCONFIG_OID_REGISTRY=m
# CONFIG_SG_SPLIT is not setCONFIG_SG_POOL=yCONFIG_ARCH_HAS_SG_CHAIN=yCONFIG_SBITMAP=y
#
# Virtualization
#CONFIG_PFAULT=yCONFIG_CMM=mCONFIG_CMM_IUCV=yCONFIG_APPLDATA_BASE=yCONFIG_APPLDATA_MEM=mCONFIG_APPLDATA_OS=mCONFIG_APPLDATA_NET_SUM=mCONFIG_S390_HYPFS_FS=yCONFIG_HAVE_KVM=yCONFIG_HAVE_KVM_IRQCHIP=yCONFIG_HAVE_KVM_IRQFD=yCONFIG_HAVE_KVM_IRQ_ROUTING=yCONFIG_HAVE_KVM_EVENTFD=yCONFIG_KVM_ASYNC_PF=yCONFIG_KVM_ASYNC_PF_SYNC=yCONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=yCONFIG_KVM_VFIO=yCONFIG_HAVE_KVM_INVALID_WAKEUPS=yCONFIG_VIRTUALIZATION=yCONFIG_KVM=mCONFIG_KVM_S390_UCONTROL=yCONFIG_VHOST_NET=mCONFIG_VHOST=m
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not setCONFIG_S390_GUEST=yCONFIG_S390_GUEST_OLD_TRANSPORT=y
Cc Michal, Linus, Peter, Thomas, Andrew, Martin
// I kept only lockdep splats from the original report and cut off .configs // full version:
// lkml.kernel.org/r/alpine.LFD.2.20.1703201736070.1753@schleppi
Sebastian, thanks.
On (03/20/17 17:43), Sebastian Ott wrote:
[..]
Quoted 84 lines
Since commit
f975237b7682("printk: useprintk_safebuffers in printk") I observe lockdep warnings on s390 when doing memory hotplug:[ 132.379220] ====================================================== [ 132.379220] [ INFO: possible circular locking dependency detected ] [ 132.379221] 4.11.0-rc3 #330 Not tainted [ 132.379221] ------------------------------------------------------- [ 132.379222] sh/708 is trying to acquire lock: [ 132.379222] (&(&sclp_con_lock)->rlock){-.-...}, at: [<000000000074524a>] sclp_console_write+0x4a/0x2b8 [ 132.379224] [ 132.379224] but task is already holding lock: [ 132.379224] (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340 [ 132.379226] [ 132.379227] which lock already depends on the new lock. [ 132.379227] [ 132.379227] [ 132.379228] the existing dependency chain (in reverse order) is: [ 132.379228] [ 132.379229] -> #2 (&(&zone->lock)->rlock){..-...}: [ 132.379230] validate_chain.isra.22+0xb36/0xd18 [ 132.379231] __lock_acquire+0x650/0x880 [ 132.379231] lock_acquire+0x24e/0x2b0 [ 132.379232] _raw_spin_lock_irqsave+0x70/0xb8 [ 132.379232] get_page_from_freelist+0x548/0xf30 [ 132.379233] __alloc_pages_nodemask+0x1c8/0x14c0 [ 132.379233] allocate_slab+0xde/0x668 [ 132.379233] new_slab+0x94/0xa8 [ 132.379234] ___slab_alloc.constprop.66+0x556/0x578 [ 132.379234] __slab_alloc.isra.62.constprop.65+0x74/0xa8 [ 132.379235] kmem_cache_alloc+0x136/0x4b8 [ 132.379235] __debug_object_init+0xaa/0x448 [ 132.379236] debug_object_activate+0x182/0x238 [ 132.379236] mod_timer+0xe6/0x450 [ 132.379236] prandom_reseed+0x44/0x50 [ 132.379237] do_one_initcall+0xa2/0x150 [ 132.379237] kernel_init_freeable+0x228/0x2d8 [ 132.379238] kernel_init+0x2a/0x138 [ 132.379238] kernel_thread_starter+0x6/0xc [ 132.379239] kernel_thread_starter+0x0/0xc [ 132.379239] [ 132.379239] -> #1 (&(&base->lock)->rlock){-.-.-.}: [ 132.379241] validate_chain.isra.22+0xb36/0xd18 [ 132.379242] __lock_acquire+0x650/0x880 [ 132.379242] lock_acquire+0x24e/0x2b0 [ 132.379242] _raw_spin_lock_irqsave+0x70/0xb8 [ 132.379243] lock_timer_base+0x78/0xa8 [ 132.379243] mod_timer+0xba/0x450 [ 132.379244] sclp_console_write+0x262/0x2b8 [ 132.379244] console_unlock+0x4a6/0x658 [ 132.379245] register_console+0x31c/0x430 [ 132.379245] sclp_console_init+0x152/0x170 [ 132.379245] console_init+0x3a/0x58 [ 132.379246] start_kernel+0x350/0x480 [ 132.379246] _stext+0x20/0x80 [ 132.379246] [ 132.379247] -> #0 (&(&sclp_con_lock)->rlock){-.-...}: [ 132.379249] check_prev_add+0x150/0x648 [ 132.379249] validate_chain.isra.22+0xb36/0xd18 [ 132.379249] __lock_acquire+0x650/0x880 [ 132.379250] lock_acquire+0x24e/0x2b0 [ 132.379250] _raw_spin_lock_irqsave+0x70/0xb8 [ 132.379251] sclp_console_write+0x4a/0x2b8 [ 132.379251] console_unlock+0x4a6/0x658 [ 132.379252] vprintk_emit+0x33e/0x350 [ 132.379252] vprintk_default+0x44/0x58 [ 132.379252] printk+0x4e/0x58 [ 132.379253] __offline_isolated_pages+0x1a0/0x340 [ 132.379253] offline_isolated_pages_cb+0x2e/0x40 [ 132.379254] walk_system_ram_range+0x96/0xe8 [ 132.379254] __offline_pages.constprop.43+0x6da/0x918 [ 132.379255] memory_subsys_offline+0x6a/0xa0 [ 132.379255] device_offline+0x84/0xd8 [ 132.379255] store_mem_state+0xfe/0x120 [ 132.379256] kernfs_fop_write+0x126/0x1d0 [ 132.379256] __vfs_write+0x46/0x140 [ 132.379257] vfs_write+0xb8/0x1a8 [ 132.379257] SyS_write+0x66/0xc0 [ 132.379257] system_call+0xc4/0x240 [ 132.379258] [ 132.379258] other info that might help us debug this: [ 132.379258] [ 132.379259] Chain exists of: [ 132.379259] &(&sclp_con_lock)->rlock --> &(&base->lock)->rlock --> &(&zone->lock)->rlock [ 132.379262]
Quoted 8 lines
[ 132.379262] Possible unsafe locking scenario: [ 132.379262] [ 132.379263] CPU0 CPU1 [ 132.379263] ---- ---- [ 132.379264] lock(&(&zone->lock)->rlock); [ 132.379265] lock(&(&base->lock)->rlock); [ 132.379266] lock(&(&zone->lock)->rlock); [ 132.379267] lock(&(&sclp_con_lock)->rlock);
after a rather quick look.
as far as I understand it, the problem here is that we have the following chains
a) mod_timer() -> __debug_object_init() -> __alloc_pages_nodemask()
takes zone->lock under timer base->lock so this adds a "base->lock -> zone->lock" dependency
b) console_unlock() -> sclp_console_write() -> lock_timer_base()
because sclp_console_write() calls add_timer() under sclp console spin_lock. this one adds a "sclp_con_lock -> base->lock" dependency
c) __offline_isolated_pages() -> printk() -> sclp_console_write()
calls printk under zone->lock. pr_info("remove from free list %lx %d %lx\n", pfn, 1 << order, end_pfn);
so it's a "zone->lock -> sclp_con_lock -> base->lock" dependency.
which conflicts with (a).a1) as an additional complication, (a) can also printk() from __debug_object_init(),
for example see debug_print_object(). which probably can result in
mod_timer() -> printk() -> mod_timer() -> base->lock *** deadlock
so may be we can consider switching to printk_safe in debug_print_object(). but this is not directly related to the lockdep splat above.
so we probably can
1) move pr_info() out of zone->lock in __offline_isolated_pages(). meh...
2) switch to printk_deferred() in __offline_isolated_pages(). meh.. there might a bunch of other printks done from under zone->lock.
3) move add_timer() out of sclp_con_lock console in sclp_console_write(). well, there can be other consoles that do something similar.
4) ... something smart.
need to look more at the second lockdep splat, but looks more or less similar.
-ss
Quoted 161 lines
[ 132.379268] *** DEADLOCK *** [ 132.379269] [ 132.379269] 10 locks held by sh/708: [ 132.379269] #0: (sb_writers#4){.+.+.+}, at: [<0000000000345d4a>] vfs_write+0xa2/0x1a8 [ 132.379272] #1: (&of->mutex){+.+.+.}, at: [<00000000003e5e60>] kernfs_fop_write+0xd8/0x1d0 [ 132.379273] #2: (s_active#180){.+.+.+}, at: [<00000000003e5e6c>] kernfs_fop_write+0xe4/0x1d0 [ 132.379275] #3: (device_hotplug_lock){+.+...}, at: [<000000000069bb58>] lock_device_hotplug_sysfs+0x30/0x68 [ 132.379277] #4: (memory_add_remove_lock){+.+...}, at: [<000000000031cfe6>] mem_hotplug_begin+0x3e/0xd0 [ 132.379279] #5: (mem_hotplug.lock){++++.+}, at: [<000000000031cfa8>] mem_hotplug_begin+0x0/0xd0 [ 132.379281] #6: (mem_hotplug.lock#2){+.+...}, at: [<000000000031d02c>] mem_hotplug_begin+0x84/0xd0 [ 132.379283] #7: (&dev->mutex){......}, at: [<000000000069d55c>] device_offline+0x5c/0xd8 [ 132.379285] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340 [ 132.379287] #9: (console_lock){+.+...}, at: [<00000000001bdc02>] vprintk_emit+0x332/0x350Here's another one using a different console:
[ 66.522890] ====================================================== [ 66.522890] [ INFO: possible circular locking dependency detected ] [ 66.522891] 4.11.0-rc2-00237-g2e287c0 #119 Not tainted [ 66.522891] ------------------------------------------------------- [ 66.522892] sh/822 is trying to acquire lock: [ 66.522892] (&console_sch_key){-.-...}, at: [<00000000007573f0>] raw3215_write+0x58/0x208 [ 66.522894] but task is already holding lock: [ 66.522894] (&(&zone->lock)->rlock){..-...}, at: [<00000000002ae3da>] __offline_isolated_pages+0x302/0x370 [ 66.522897] which lock already depends on the new lock. [ 66.522898] the existing dependency chain (in reverse order) is: [ 66.522899] -> #4 (&(&zone->lock)->rlock){..-...}: [ 66.522901] validate_chain.isra.10+0xb7a/0xda8 [ 66.522901] __lock_acquire+0x62c/0x850 [ 66.522902] lock_acquire+0x254/0x2b8 [ 66.522902] _raw_spin_lock_irqsave+0x70/0xb8 [ 66.522903] get_page_from_freelist+0x4e2/0xf28 [ 66.522903] __alloc_pages_nodemask+0x1fa/0x1528 [ 66.522904] allocate_slab+0xf2/0x6c0 [ 66.522904] new_slab+0x94/0xa8 [ 66.522905] ___slab_alloc.constprop.22+0x570/0x590 [ 66.522905] __slab_alloc.isra.16.constprop.21+0x74/0xa8 [ 66.522906] kmem_cache_alloc+0x13c/0x4b0 [ 66.522906] __debug_object_init+0x5c/0x468 [ 66.522907] hrtimer_init+0x42/0x1d8 [ 66.522907] init_dl_task_timer+0x3a/0x58 [ 66.522908] __sched_fork.isra.5+0x7e/0xe8 [ 66.522908] init_idle+0x7a/0x278 [ 66.522908] fork_idle+0xa4/0xb8 [ 66.522909] idle_threads_init+0x64/0xc8 [ 66.522909] smp_init+0x2e/0x110 [ 66.522910] kernel_init_freeable+0x16c/0x2e0 [ 66.522910] kernel_init+0x2a/0x148 [ 66.522911] kernel_thread_starter+0x6/0xc [ 66.522911] kernel_thread_starter+0x0/0xc [ 66.522912] -> #3 (&rq->lock){-.-.-.}: [ 66.522914] validate_chain.isra.10+0xb7a/0xda8 [ 66.522914] __lock_acquire+0x62c/0x850 [ 66.522915] lock_acquire+0x254/0x2b8 [ 66.522915] _raw_spin_lock+0x60/0xa0 [ 66.522916] task_fork_fair+0x54/0x118 [ 66.522916] sched_fork+0x13e/0x2a0 [ 66.522916] copy_process+0x642/0x1e80 [ 66.522917] _do_fork+0xc2/0x6d0 [ 66.522917] kernel_thread+0x4e/0x60 [ 66.522918] rest_init+0x42/0x170 [ 66.522918] start_kernel+0x464/0x478 [ 66.522918] _stext+0x20/0x80 [ 66.522919] -> #2 (&p->pi_lock){-.-.-.}: [ 66.522921] validate_chain.isra.10+0xb7a/0xda8 [ 66.522922] __lock_acquire+0x62c/0x850 [ 66.522922] lock_acquire+0x254/0x2b8 [ 66.522922] _raw_spin_lock_irqsave+0x70/0xb8 [ 66.522923] try_to_wake_up+0x4a/0x5f8 [ 66.522924] autoremove_wake_function+0x2e/0x88 [ 66.522924] __wake_up_common+0x76/0xc0 [ 66.522924] __wake_up+0x54/0x68 [ 66.522925] ccw_device_verify_done+0xae/0x268 [ 66.522925] ccw_request_handler+0x422/0x560 [ 66.522926] do_cio_interrupt+0x224/0x2a0 [ 66.522926] __handle_irq_event_percpu+0x1a6/0x440 [ 66.522927] handle_irq_event_percpu+0x38/0x88 [ 66.522927] handle_percpu_irq+0x84/0xb0 [ 66.522928] generic_handle_irq+0x42/0x60 [ 66.522928] do_IRQ+0x86/0xc8 [ 66.522929] io_int_handler+0x104/0x294 [ 66.522929] enabled_wait+0x72/0x140 [ 66.522930] enabled_wait+0x5a/0x140 [ 66.522930] arch_cpu_idle+0x32/0x50 [ 66.522930] default_idle_call+0x52/0x68 [ 66.522931] do_idle+0x10e/0x160 [ 66.522931] cpu_startup_entry+0x3e/0x48 [ 66.522932] start_kernel+0x464/0x478 [ 66.522932] _stext+0x20/0x80 [ 66.522933] -> #1 (&priv->wait_q){-.-...}: [ 66.522935] validate_chain.isra.10+0xb7a/0xda8 [ 66.522935] __lock_acquire+0x62c/0x850 [ 66.522935] lock_acquire+0x254/0x2b8 [ 66.522936] _raw_spin_lock_irqsave+0x70/0xb8 [ 66.522936] __wake_up+0x3a/0x68 [ 66.522937] ccw_device_recog_done+0x28e/0x2c8 [ 66.522937] snsid_callback+0x324/0x390 [ 66.522938] ccw_request_handler+0x480/0x560 [ 66.522938] do_cio_interrupt+0x224/0x2a0 [ 66.522939] __handle_irq_event_percpu+0x1a6/0x440 [ 66.522939] handle_irq_event_percpu+0x38/0x88 [ 66.522940] handle_percpu_irq+0x84/0xb0 [ 66.522940] generic_handle_irq+0x42/0x60 [ 66.522940] do_IRQ+0x86/0xc8 [ 66.522941] io_int_handler+0x104/0x294 [ 66.522941] _raw_spin_unlock_irq+0x4e/0x78 [ 66.522942] _raw_spin_unlock_irq+0x4a/0x78 [ 66.522942] ccw_device_enable_console+0x9a/0x180 [ 66.522943] con3215_init+0x110/0x1b8 [ 66.522943] console_init+0x3a/0x58 [ 66.522944] start_kernel+0x33a/0x478 [ 66.522944] _stext+0x20/0x80 [ 66.522945] -> #0 (&console_sch_key){-.-...}: [ 66.522947] check_prev_add+0x160/0x6e8 [ 66.522947] validate_chain.isra.10+0xb7a/0xda8 [ 66.522948] __lock_acquire+0x62c/0x850 [ 66.522948] lock_acquire+0x254/0x2b8 [ 66.522948] _raw_spin_lock_irqsave+0x70/0xb8 [ 66.522949] raw3215_write+0x58/0x208 [ 66.522949] con3215_write+0x8e/0xf8 [ 66.522950] console_unlock+0x49a/0x670 [ 66.522950] vprintk_emit+0x308/0x378 [ 66.522951] vprintk_default+0x44/0x58 [ 66.522951] printk+0x4e/0x60 [ 66.522952] __offline_isolated_pages+0x168/0x370 [ 66.522952] offline_isolated_pages_cb+0x2e/0x40 [ 66.522953] walk_system_ram_range+0x92/0xf0 [ 66.522953] __offline_pages.constprop.9+0x74a/0x988 [ 66.522954] memory_subsys_offline+0x6c/0xa0 [ 66.522954] device_offline+0x84/0xe0 [ 66.522954] store_mem_state+0xfe/0x120 [ 66.522955] kernfs_fop_write+0x124/0x1c8 [ 66.522955] __vfs_write+0x36/0x140 [ 66.522956] vfs_write+0xb8/0x1a0 [ 66.522956] SyS_write+0x66/0xc0 [ 66.522957] system_call+0xc4/0x240[ 66.522957] other info that might help us debug this: [ 66.522958] Chain exists of: [ 66.522958] &console_sch_key --> &rq->lock --> &(&zone->lock)->rlock [ 66.522961] Possible unsafe locking scenario: [ 66.522962] CPU0 CPU1 [ 66.522962] ---- ---- [ 66.522963] lock(&(&zone->lock)->rlock); [ 66.522964] lock(&rq->lock); [ 66.522965] lock(&(&zone->lock)->rlock); [ 66.522966] lock(&console_sch_key);[ 66.522967] *** DEADLOCK ***[ 66.522968] 10 locks held by sh/822: [ 66.522968] #0: (sb_writers#5){.+.+.+}, at: [<000000000034f9c2>] vfs_write+0xa2/0x1a0 [ 66.522970] #1: (&of->mutex){+.+.+.}, at: [<00000000003f1afe>] kernfs_fop_write+0xd6/0x1c8 [ 66.522972] #2: (s_active#53){.+.+.+}, at: [<00000000003f1b0a>] kernfs_fop_write+0xe2/0x1c8 [ 66.522974] #3: (device_hotplug_lock){+.+...}, at: [<00000000006adb70>] lock_device_hotplug_sysfs+0x30/0x70 [ 66.522976] #4: (memory_add_remove_lock){+.+...}, at: [<0000000000328e16>] mem_hotplug_begin+0x3e/0xd0 [ 66.522978] #5: (mem_hotplug.lock){++++.+}, at: [<0000000000328dd8>] mem_hotplug_begin+0x0/0xd0 [ 66.522980] #6: (mem_hotplug.lock#2){+.+...}, at: [<0000000000328e5c>] mem_hotplug_begin+0x84/0xd0 [ 66.522982] #7: (&dev->mutex){......}, at: [<00000000006af41c>] device_offline+0x5c/0xe0 [ 66.522984] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002ae3da>] __offline_isolated_pages+0x302/0x370 [ 66.522986] #9: (console_lock){+.+...}, at: [<00000000001c2c84>] vprintk_emit+0x2fc/0x378
[..]
Quoted 1 line
3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write().
^^^^^^^^^^^^ I take it back. Won't improve anything. -ss
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]
Quoted 11 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.
Quoted 5 lines
3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the __offline_isolated_pages(). not the best solution I can think of, but the simplest one.
---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
mm/page_alloc.c +1 -1
@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM -pr_info ("remove from free list %lx %d %lx\n" , +printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);#endif list_del (&page->lru);
Quoted 35 lines · On Sat, 25 Mar 2017 09:04:42 +0900 Sergey Senozhatsky…
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]Quoted 11 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.Quoted 5 lines
3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/page_alloc.c +0
-0
mm/page_alloc.c __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) · line 7711
Quoted 8 lines
mm/page_alloc.c +1
-1@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM -pr_info ("remove from free list %lx %d %lx\n" , +printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);#endif list_del (&page->lru);
My fear is that this will trigger for any printk in page_alloc.c under the zone lock.
-- Steve
Quoted 19 lines · Steven Rostedt
Quoted 19 lines
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/page_alloc.c +0
-1@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM - pr_info("remove from free list %lx %d %lx\n",
Quoted 8 lines
mm/page_alloc.c __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) · line 7711
Quoted 4 lines
mm/page_alloc.c +1
-0+printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);#endif list_del (&page->lru);My fear is that this will trigger for any printk in
page_alloc.cunder the zone lock.
absolutely true.
I Cc'd debugobjects, mm and sclp_console maintainers because the real (smart) solution to the problem is somewhere there.
another problem (not reported) is that we have conflicting dependencies
mod_timer -> sclp_console sclp_console -> mod_timer
which can result in a deadlock:
mod_timer -> debugobjects -> printk -> sclp_console -> mod_timer
this one, I think, can be addressed by switching to a printk_safe in debugobjects.
// I'm traveling now. there will be delays in replies, sorry.
-ss
Quoted 17 lines · Sergey Senozhatsky
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]Quoted 15 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.
Quoted 7 lines
Quoted 1 line
4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.
It does. No complaint from lockdep.
Quoted 35 lines · Sergey Senozhatsky
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]Quoted 11 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.Quoted 5 lines
3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/page_alloc.c +0
-0
mm/page_alloc.c __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) · line 7711
Quoted 8 lines
mm/page_alloc.c +1
-1@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM -pr_info ("remove from free list %lx %d %lx\n" , +printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);#endif list_del (&page->lru);
I believe this is not a proper fix. Although this code is ugly and maybe it doesn't really need zone->lock because that should be the page allocator internal thing the problem is that printk shouldn't impose such a subtle dependency on locks. Why does the timer needs to allocate at all?
Signature · 2 lines
Michal Hocko SUSE Labs
Quoted 42 lines · Michal Hocko
Quoted 41 lines · Sergey Senozhatsky
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]Quoted 11 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.Quoted 5 lines
3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/page_alloc.c +1
-1@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM -pr_info ("remove from free list %lx %d %lx\n" , +printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);
Quoted 8 lines
mm/page_alloc.c __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) · line 7711
Quoted 2 lines
mm/page_alloc.c +0
-0#endif list_del (&page->lru);I believe this is not a proper fix. Although this code is ugly and maybe it doesn't really need
zone->lockbecause that should be the page allocator internal thing the problem is that printk shouldn't impose such a subtle dependency on locks. Why does the timer needs to allocate at all?
printk/console use timers to postpone flushing of buffers. There are often more consequent printks. The code wants to wait a bit and flush them together eventually. At the same time, it wants to set a deadline for the flushing. It makes sure that they will get flushed in a reasonable time even when the buffer is not full. It is questionable but it makes some sense.
In each case, the timer code is used also by scheduler and we probably need to use scheduler from printk.
Regarding the timer code. The problem seems to be with static timers. They call debug_object_init() when the timer is used for the first time. See the special handling of not-found objects in debug_object_activate().
Now, __debug_object_init() calls fill_pool() that allocates the memory. A solution would be to either use static struct kmem_cache for statically defined timers and avoid the allocation. Or we should call fill_pool() asynchronously from a safe context.
What do you think?
Best Regards,
Petr
Quoted 59 lines · Petr Mladek
Quoted 42 lines · Michal Hocko
Quoted 41 lines · Sergey Senozhatsky
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]Quoted 11 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.Quoted 5 lines
3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.4) ... something smart.
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)mm/page_alloc.c +1
-1@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM -pr_info ("remove from free list %lx %d %lx\n" , +printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);Quoted 8 lines
mm/page_alloc.c __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) · line 7711
Quoted 2 lines
mm/page_alloc.c +0
-0#endif list_del (&page->lru);I believe this is not a proper fix. Although this code is ugly and maybe it doesn't really need
zone->lockbecause that should be the page allocator internal thing the problem is that printk shouldn't impose such a subtle dependency on locks. Why does the timer needs to allocate at all?printk/console use timers to postpone flushing of buffers. There are often more consequent printks. The code wants to wait a bit and flush them together eventually. At the same time, it wants to set a deadline for the flushing. It makes sure that they will get flushed in a reasonable time even when the buffer is not full. It is questionable but it makes some sense.
Quoted 7 lines
In each case, the timer code is used also by scheduler and we probably need to use scheduler from printk.
Regarding the timer code. The problem seems to be with static timers. They call
debug_object_init()when the timer is used for the first time. See the special handling of not-found objects indebug_object_activate().
Thanks for the clarification!
Quoted 3 lines
Now,
__debug_object_init()callsfill_pool()that allocates the memory. A solution would be to either use static structkmem_cache
I am not sure what do you mean by that.
Quoted 2 lines
for statically defined timers and avoid the allocation. Or we should call
fill_pool()asynchronously from a safe context.
I think we should avoid the allocation completely. It is GFP_ATOMIC and so likely to fail under heavy memory pressure. Async fill will make it slightly more complicated but still unreliable.
Quoted 1 line
What do you think?
Why cannot we simply embed this debugging data into the timer itself? It will make the structure larger (I didn't check how much) but this is an opt in feature so it should be acceptable.
A subtle dependecny on the allocator is really bad and we should get rid of it.
Signature · 2 lines
Michal Hocko SUSE Labs
Quoted 28 lines · Michal Hocko
Quoted 19 lines · Petr Mladek
Quoted 18 lines · Michal Hocko
Quoted 17 lines · Sergey Senozhatsky
On (03/21/17 13:44), Sergey Senozhatsky wrote:
[..]Quoted 15 lines
so we probably can
1) move
pr_info()out ofzone->lockin__offline_isolated_pages(). meh...2) switch to
printk_deferred()in__offline_isolated_pages(). meh.. there might a bunch of other printks done from underzone->lock.3) move
add_timer()out ofsclp_con_lockconsole insclp_console_write(). well, there can be other consoles that do something similar.Quoted 7 lines
Quoted 3 lines
Quoted 3 lines
Quoted 1 line
4) ... something smart.
Regarding the timer code. The problem seems to be with static timers. They call
debug_object_init()when the timer is used for the first time. See the special handling of not-found objects indebug_object_activate().
Quoted 7 lines
Thanks for the clarification!
Quoted 3 lines
Now,
__debug_object_init()callsfill_pool()that allocates the memory. A solution would be to either use static structkmem_cacheI am not sure what do you mean by that.
The problem is when the timer is defined using DEFINE_TIMER() and initialized using __TIMER_INITIALIZER().
I had an unclear idea about extending the macro to define also the needed structure that might later be used by debug_object_init() instead of taking it from the pool.
I am sorry for the confusion with struct kmem_cache. It is the type of the pointer that is passed when allocating the memory in fill_pool(). It seems we actually need struct debug_obj. But it might be even more complicated.
Quoted 7 lines
Quoted 2 lines
for statically defined timers and avoid the allocation. Or we should call
fill_pool()asynchronously from a safe context.I think we should avoid the allocation completely. It is
GFP_ATOMICand so likely to fail under heavy memory pressure. Async fill will make it slightly more complicated but still unreliable.
Quoted 5 lines
Quoted 1 line
What do you think?
Why cannot we simply embed this debugging data into the timer itself? It will make the structure larger (I didn't check how much) but this is an opt in feature so it should be acceptable.
This sounds reasonable to me.
Quoted 2 lines
A subtle dependecny on the allocator is really bad and we should get rid of it.
Yup.
Best Regards,
Petr
On (03/28/17 16:22), Michal Hocko wrote:
[..]
Quoted 10 lines
Quoted 10 lines
Sebastian, does this change make lockdep happy?
it removes console drivers from the
__offline_isolated_pages(). not the best solution I can think of, but the simplest one.---
mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 15 lines
mm/page_alloc.c __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn) · line 7711
Quoted 13 lines
mm/page_alloc.c +1
-1@@ -7705,7 +7705,7 @@ __offline_isolated_pages(unsigned long start_pfn, unsigned long end_pfn)BUG_ON (!PageBuddy (page)); order =page_order (page);#ifdef CONFIG_DEBUG_VM -pr_info ("remove from free list %lx %d %lx\n" , +printk_deferred (KERN_INFO "remove from free list %lx %d %lx\n" , pfn,1 << order, end_pfn);#endif list_del (&page->lru);I believe this is not a proper fix.
oh, absolutely. I hate it. didn't really propose it as a fix. mostly did it just to verify that there are no other lock inversions behind the one that has been reported (lockdep turns off itself when it detects the first lock dependency inversion).
Quoted 4 lines
Although this code is ugly and maybe it doesn't really need
zone->lockbecause that should be the page allocator internal thing the problem is that printk shouldn't impose such a subtle dependency on locks. Why does the timer needs to allocate at all?
I believe Petr has answered your questions. sorry for the delay.
-ss
Hello Sergey,
Quoted 7 lines · Sergey Senozhatsky
// I kept only lockdep splats from the original report and cut off .configs // full version:
// lkml.kernel.org/r/alpine.LFD.2.20.1703201736070.1753@schleppiQuoted 2 lines · Sebastian Ott
Since commit
f975237b7682("printk: useprintk_safebuffers in printk") I observe lockdep warnings on s390 when doing memory hotplug:
When using the sclp console I can no longer recreate that lockdep warning but the other one is still present:
[ 347.644660] ======================================================
[ 347.644660] WARNING: possible circular locking dependency detected
[ 347.644661] 4.13.0-rc2 #146 Not tainted
[ 347.644661] ------------------------------------------------------
[ 347.644662] sh/770 is trying to acquire lock:
[ 347.644662] (&console_sch_key){-.-...}, at: [<0000000000763d80>] raw3215_write+0x58/0x208
[ 347.644665] but task is already holding lock:
[ 347.644665] (&(&zone->lock)->rlock){-.-...}, at: [<00000000002b693e>] __offline_isolated_pages+0x316/0x388
[ 347.644668] which lock already depends on the new lock.
[ 347.644669] the existing dependency chain (in reverse order) is:
[ 347.644670] -> #4 (&(&zone->lock)->rlock){-.-...}:
[ 347.644672] validate_chain.isra.10+0xb56/0xd88
[ 347.644673] __lock_acquire+0x62c/0x850
[ 347.644673] lock_acquire+0x254/0x2b8
[ 347.644674] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644674] get_page_from_freelist+0x446/0xf30
[ 347.644675] __alloc_pages_nodemask+0x200/0x1568
[ 347.644675] allocate_slab+0xf0/0x658
[ 347.644676] new_slab+0x94/0xa8
[ 347.644677] ___slab_alloc.constprop.23+0x55e/0x580
[ 347.644677] __slab_alloc.isra.17.constprop.22+0x74/0xa8
[ 347.644678] kmem_cache_alloc+0x13c/0x4b0
[ 347.644678] __debug_object_init+0x5c/0x468
[ 347.644679] hrtimer_init+0x42/0x1d8
[ 347.644679] init_dl_task_timer+0x3a/0x58
[ 347.644680] __sched_fork.isra.2+0x82/0xd8
[ 347.644680] init_idle+0x7a/0x278
[ 347.644681] fork_idle+0xa4/0xb8
[ 347.644681] idle_threads_init+0x6a/0xd0
[ 347.644682] smp_init+0x34/0x110
[ 347.644682] kernel_init_freeable+0x166/0x2d8
[ 347.644683] kernel_init+0x2a/0x148
[ 347.644683] kernel_thread_starter+0x6/0xc
[ 347.644684] kernel_thread_starter+0x0/0xc[ 347.644684] -> #3 (&rq->lock){-.-.-.}:
[ 347.644686] validate_chain.isra.10+0xb56/0xd88
[ 347.644687] __lock_acquire+0x62c/0x850
[ 347.644687] lock_acquire+0x254/0x2b8
[ 347.644688] _raw_spin_lock+0x60/0xa0
[ 347.644688] task_fork_fair+0x6a/0x160
[ 347.644689] sched_fork+0x13e/0x2a0
[ 347.644689] copy_process+0x676/0x1ec0
[ 347.644690] _do_fork+0xc2/0x6d0
[ 347.644690] kernel_thread+0x4e/0x60
[ 347.644691] rest_init+0x48/0x290
[ 347.644691] start_kernel+0x470/0x480
[ 347.644692] _stext+0x20/0x80[ 347.644693] -> #2 (&p->pi_lock){-.-.-.}:
[ 347.644695] validate_chain.isra.10+0xb56/0xd88
[ 347.644695] __lock_acquire+0x62c/0x850
[ 347.644696] lock_acquire+0x254/0x2b8
[ 347.644696] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644697] try_to_wake_up+0x4a/0x600
[ 347.644697] autoremove_wake_function+0x2e/0x88
[ 347.644698] __wake_up_common+0x76/0xc0
[ 347.644698] __wake_up+0x54/0x68
[ 347.644699] ccw_device_verify_done+0xae/0x268
[ 347.644700] ccw_request_handler+0x422/0x560
[ 347.644700] do_cio_interrupt+0x224/0x2a0
[ 347.644701] __handle_irq_event_percpu+0x1a6/0x440
[ 347.644701] handle_irq_event_percpu+0x38/0x88
[ 347.644702] handle_percpu_irq+0x84/0xb0
[ 347.644702] generic_handle_irq+0x42/0x60
[ 347.644703] do_IRQ+0x86/0xc8
[ 347.644703] io_int_handler+0x104/0x2d4
[ 347.644704] enabled_wait+0x72/0x140
[ 347.644704] enabled_wait+0x5a/0x140
[ 347.644705] arch_cpu_idle+0x32/0x50
[ 347.644706] default_idle_call+0x52/0x68
[ 347.644706] do_idle+0x118/0x170
[ 347.644707] cpu_startup_entry+0x3e/0x48
[ 347.644707] smp_start_secondary+0x112/0x120
[ 347.644708] restart_int_handler+0x62/0x78
[ 347.644708] (null)[ 347.644709] -> #1 (&priv->wait_q){-.....}:
[ 347.644711] validate_chain.isra.10+0xb56/0xd88
[ 347.644711] __lock_acquire+0x62c/0x850
[ 347.644712] lock_acquire+0x254/0x2b8
[ 347.644712] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644713] __wake_up+0x3a/0x68
[ 347.644713] ccw_device_recog_done+0x28e/0x2c8
[ 347.644714] snsid_callback+0x324/0x390
[ 347.644714] ccw_request_handler+0x480/0x560
[ 347.644715] do_cio_interrupt+0x224/0x2a0
[ 347.644715] __handle_irq_event_percpu+0x1a6/0x440
[ 347.644715] handle_irq_event_percpu+0x38/0x88
[ 347.644716] handle_percpu_irq+0x84/0xb0
[ 347.644716] generic_handle_irq+0x42/0x60
[ 347.644717] do_IRQ+0x86/0xc8
[ 347.644717] io_int_handler+0x104/0x2d4
[ 347.644718] _raw_spin_unlock_irq+0x4e/0x78
[ 347.644718] _raw_spin_unlock_irq+0x4a/0x78
[ 347.644719] ccw_device_enable_console+0xa0/0x188
[ 347.644719] con3215_init+0x116/0x1b8
[ 347.644720] console_init+0x40/0x60
[ 347.644720] start_kernel+0x34c/0x480
[ 347.644720] _stext+0x20/0x80[ 347.644721] -> #0 (&console_sch_key){-.-...}:
[ 347.644723] check_prev_add+0x160/0x6e8
[ 347.644723] validate_chain.isra.10+0xb56/0xd88
[ 347.644723] __lock_acquire+0x62c/0x850
[ 347.644724] lock_acquire+0x254/0x2b8
[ 347.644724] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644725] raw3215_write+0x58/0x208
[ 347.644725] con3215_write+0x8e/0xf8
[ 347.644725] console_unlock+0x4d8/0x6a8
[ 347.644726] vprintk_emit+0x308/0x378
[ 347.644726] vprintk_default+0x44/0x58
[ 347.644727] printk+0x4e/0x60
[ 347.644727] __offline_isolated_pages+0x16a/0x388
[ 347.644728] offline_isolated_pages_cb+0x2e/0x40
[ 347.644728] walk_system_ram_range+0x92/0xf0
[ 347.644729] __offline_pages.constprop.6+0x6d2/0x910
[ 347.644729] memory_subsys_offline+0x6c/0xa0
[ 347.644730] device_offline+0x84/0xe0
[ 347.644730] store_mem_state+0xfe/0x120
[ 347.644731] kernfs_fop_write+0x132/0x208
[ 347.644731] __vfs_write+0x36/0x158
[ 347.644731] vfs_write+0xb8/0x1a0
[ 347.644732] SyS_write+0x66/0xc0
[ 347.644732] system_call+0xc4/0x298
[ 347.644733] other info that might help us debug this:
[ 347.644734] Chain exists of:
[ 347.644734] &console_sch_key --> &rq->lock --> &(&zone->lock)->rlock
[ 347.644736] Possible unsafe locking scenario:
[ 347.644737] CPU0 CPU1
[ 347.644738] ---- ----
[ 347.644738] lock(&(&zone->lock)->rlock);
[ 347.644739] lock(&rq->lock);
[ 347.644740] lock(&(&zone->lock)->rlock);
[ 347.644741] lock(&console_sch_key);
[ 347.644742] *** DEADLOCK ***
[ 347.644743] 9 locks held by sh/770:
[ 347.644743] #0: (sb_writers#5){.+.+.+}, at: [<000000000035c64a>] vfs_write+0xa2/0x1a0
[ 347.644745] #1: (&of->mutex){+.+.+.}, at: [<000000000040065a>] kernfs_fop_write+0x1b2/0x208
[ 347.644747] #2: (s_active#46){.+.+.+}, at: [<0000000000400666>] kernfs_fop_write+0x1be/0x208
[ 347.644749] #3: (device_hotplug_lock){+.+...}, at: [<00000000006b9d18>] lock_device_hotplug_sysfs+0x30/0x70
[ 347.644750] #4: (cpu_hotplug_lock.rw_sem){++++++}, at: [<000000000033596a>] mem_hotplug_begin+0x2a/0x40
[ 347.644752] #5: (mem_hotplug_lock.rw_sem){++++.+}, at: [<00000000001a5c78>] percpu_down_write+0x38/0x110
[ 347.644754] #6: (&dev->mutex){......}, at: [<00000000006bb5ac>] device_offline+0x5c/0xe0
[ 347.644756] #7: (&(&zone->lock)->rlock){-.-...}, at: [<00000000002b693e>] __offline_isolated_pages+0x316/0x388
[ 347.644758] #8: (console_lock){+.+...}, at: [<00000000001c2a3c>] vprintk_emit+0x2fc/0x378
[ 347.644760] stack backtrace:
[ 347.644760] CPU: 2 PID: 770 Comm: sh Not tainted 4.13.0-rc2 #146
[ 347.644761] Hardware name: IBM 2827 H66 706 (z/VM 6.3.0)
[ 347.644761] Call Trace:
[ 347.644761] ([<0000000000113a1a>] show_stack+0x8a/0xe0)
[ 347.644762] [<00000000008fe4a6>] dump_stack+0x96/0xd8
[ 347.644762] [<00000000001a95c4>] print_circular_bug+0x314/0x340
[ 347.644763] [<00000000001aa548>] check_prev_add+0x160/0x6e8
[ 347.644763] [<00000000001ab626>] validate_chain.isra.10+0xb56/0xd88
[ 347.644764] [<00000000001ad024>] __lock_acquire+0x62c/0x850
[ 347.644764] [<00000000001adbec>] lock_acquire+0x254/0x2b8
[ 347.644765] [<000000000091e4a8>] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644766] [<0000000000763d80>] raw3215_write+0x58/0x208
[ 347.644766] [<000000000076416e>] con3215_write+0x8e/0xf8
[ 347.644766] [<00000000001c2570>] console_unlock+0x4d8/0x6a8
[ 347.644767] [<00000000001c2a48>] vprintk_emit+0x308/0x378
[ 347.644767] [<00000000001c2c94>] vprintk_default+0x44/0x58
[ 347.644768] [<00000000001c3c0e>] printk+0x4e/0x60
[ 347.644768] [<00000000002b6792>] __offline_isolated_pages+0x16a/0x388
[ 347.644769] [<0000000000335516>] offline_isolated_pages_cb+0x2e/0x40
[ 347.644769] [<000000000014b092>] walk_system_ram_range+0x92/0xf0
[ 347.644770] [<0000000000913cfa>] __offline_pages.constprop.6+0x6d2/0x910
[ 347.644770] [<00000000006d8cf4>] memory_subsys_offline+0x6c/0xa0
[ 347.644771] [<00000000006bb5d4>] device_offline+0x84/0xe0
[ 347.644771] [<00000000006d93de>] store_mem_state+0xfe/0x120
[ 347.644772] [<00000000004005da>] kernfs_fop_write+0x132/0x208
[ 347.644773] [<000000000035b236>] __vfs_write+0x36/0x158
[ 347.644773] [<000000000035c660>] vfs_write+0xb8/0x1a0
[ 347.644774] [<000000000035dd96>] SyS_write+0x66/0xc0
[ 347.644774] [<000000000091f59c>] system_call+0xc4/0x298
[ 347.644774] INFO: lockdep is turned off.Sebastian
Hello,
Quoted 35 lines · Sebastian Ott
[ 347.644660] ======================================================
[ 347.644660] WARNING: possible circular locking dependency detected
[ 347.644661] 4.13.0-rc2 #146 Not tainted
[ 347.644661] ------------------------------------------------------
[ 347.644662] sh/770 is trying to acquire lock:
[ 347.644662] (&console_sch_key){-.-...}, at: [<0000000000763d80>] raw3215_write+0x58/0x208
[ 347.644665] but task is already holding lock:
[ 347.644665] (&(&zone->lock)->rlock){-.-...}, at: [<00000000002b693e>] __offline_isolated_pages+0x316/0x388
[ 347.644668] which lock already depends on the new lock.
[ 347.644669] the existing dependency chain (in reverse order) is:
[ 347.644670] -> #4 (&(&zone->lock)->rlock){-.-...}:
[ 347.644672] validate_chain.isra.10+0xb56/0xd88
[ 347.644673] __lock_acquire+0x62c/0x850
[ 347.644673] lock_acquire+0x254/0x2b8
[ 347.644674] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644674] get_page_from_freelist+0x446/0xf30
[ 347.644675] __alloc_pages_nodemask+0x200/0x1568
[ 347.644675] allocate_slab+0xf0/0x658
[ 347.644676] new_slab+0x94/0xa8
[ 347.644677] ___slab_alloc.constprop.23+0x55e/0x580
[ 347.644677] __slab_alloc.isra.17.constprop.22+0x74/0xa8
[ 347.644678] kmem_cache_alloc+0x13c/0x4b0
[ 347.644678] __debug_object_init+0x5c/0x468
[ 347.644679] hrtimer_init+0x42/0x1d8
[ 347.644679] init_dl_task_timer+0x3a/0x58
[ 347.644680] __sched_fork.isra.2+0x82/0xd8
[ 347.644680] init_idle+0x7a/0x278
[ 347.644681] fork_idle+0xa4/0xb8
[ 347.644681] idle_threads_init+0x6a/0xd0
[ 347.644682] smp_init+0x34/0x110
[ 347.644682] kernel_init_freeable+0x166/0x2d8
[ 347.644683] kernel_init+0x2a/0x148
[ 347.644683] kernel_thread_starter+0x6/0xc
[ 347.644684] kernel_thread_starter+0x0/0xcQuoted 13 lines
[ 347.644684] -> #3 (&rq->lock){-.-.-.}:
[ 347.644686] validate_chain.isra.10+0xb56/0xd88
[ 347.644687] __lock_acquire+0x62c/0x850
[ 347.644687] lock_acquire+0x254/0x2b8
[ 347.644688] _raw_spin_lock+0x60/0xa0
[ 347.644688] task_fork_fair+0x6a/0x160
[ 347.644689] sched_fork+0x13e/0x2a0
[ 347.644689] copy_process+0x676/0x1ec0
[ 347.644690] _do_fork+0xc2/0x6d0
[ 347.644690] kernel_thread+0x4e/0x60
[ 347.644691] rest_init+0x48/0x290
[ 347.644691] start_kernel+0x470/0x480
[ 347.644692] _stext+0x20/0x80ok... this part is not exactly clear to me, but we've got
rq->lock -> &(&zone->lock)->rlock
dependency.
Quoted 43 lines
[ 347.644693] -> #2 (&p->pi_lock){-.-.-.}: [ 347.644695] validate_chain.isra.10+0xb56/0xd88 [ 347.644695] __lock_acquire+0x62c/0x850 [ 347.644696] lock_acquire+0x254/0x2b8 [ 347.644696] _raw_spin_lock_irqsave+0x70/0xb8 [ 347.644697] try_to_wake_up+0x4a/0x600 [ 347.644697] autoremove_wake_function+0x2e/0x88 [ 347.644698] __wake_up_common+0x76/0xc0 [ 347.644698] __wake_up+0x54/0x68 [ 347.644699] ccw_device_verify_done+0xae/0x268 [ 347.644700] ccw_request_handler+0x422/0x560 [ 347.644700] do_cio_interrupt+0x224/0x2a0 [ 347.644701] __handle_irq_event_percpu+0x1a6/0x440 [ 347.644701] handle_irq_event_percpu+0x38/0x88 [ 347.644702] handle_percpu_irq+0x84/0xb0 [ 347.644702] generic_handle_irq+0x42/0x60 [ 347.644703] do_IRQ+0x86/0xc8 [ 347.644703] io_int_handler+0x104/0x2d4 [ 347.644704] enabled_wait+0x72/0x140 [ 347.644704] enabled_wait+0x5a/0x140 [ 347.644705] arch_cpu_idle+0x32/0x50 [ 347.644706] default_idle_call+0x52/0x68 [ 347.644706] do_idle+0x118/0x170 [ 347.644707] cpu_startup_entry+0x3e/0x48 [ 347.644707] smp_start_secondary+0x112/0x120 [ 347.644708] restart_int_handler+0x62/0x78 [ 347.644708] (null)[ 347.644709] -> #1 (&priv->wait_q){-.....}: [ 347.644711] validate_chain.isra.10+0xb56/0xd88 [ 347.644711] __lock_acquire+0x62c/0x850 [ 347.644712] lock_acquire+0x254/0x2b8 [ 347.644712] _raw_spin_lock_irqsave+0x70/0xb8 [ 347.644713] __wake_up+0x3a/0x68 [ 347.644713] ccw_device_recog_done+0x28e/0x2c8 [ 347.644714] snsid_callback+0x324/0x390 [ 347.644714] ccw_request_handler+0x480/0x560 [ 347.644715] do_cio_interrupt+0x224/0x2a0 [ 347.644715] __handle_irq_event_percpu+0x1a6/0x440 [ 347.644715] handle_irq_event_percpu+0x38/0x88 [ 347.644716] handle_percpu_irq+0x84/0xb0 [ 347.644716] generic_handle_irq+0x42/0x60 [ 347.644717] do_IRQ+0x86/0xc8
Quoted 8 lines
[ 347.644717] io_int_handler+0x104/0x2d4 [ 347.644718] _raw_spin_unlock_irq+0x4e/0x78 [ 347.644718] _raw_spin_unlock_irq+0x4a/0x78 [ 347.644719] ccw_device_enable_console+0xa0/0x188 [ 347.644719] con3215_init+0x116/0x1b8 [ 347.644720] console_init+0x40/0x60 [ 347.644720] start_kernel+0x34c/0x480 [ 347.644720] _stext+0x20/0x80
so do_IRQ()->do_cio_interrupt() does several things
1) it takes sch->lock // also knows as "console_sch_key"
2) calls sch->driver->irq(sch) under sch->lock
3) which invokes __wake_up()
3.1) which locks ->wait_q 3.2) which locks ->pi_lock
so we've got
console_sch_key -> priv->wait_q console_sch_key -> rq->pi_lock console_sch_key -> rq->lock console_sch_key -> .... other scheduler/timekeeping/etc. locks
Quoted 16 lines
[ 347.644721] -> #0 (&console_sch_key){-.-...}:
[ 347.644723] check_prev_add+0x160/0x6e8
[ 347.644723] validate_chain.isra.10+0xb56/0xd88
[ 347.644723] __lock_acquire+0x62c/0x850
[ 347.644724] lock_acquire+0x254/0x2b8
[ 347.644724] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644725] raw3215_write+0x58/0x208
[ 347.644725] con3215_write+0x8e/0xf8
[ 347.644725] console_unlock+0x4d8/0x6a8
[ 347.644726] vprintk_emit+0x308/0x378
[ 347.644726] vprintk_default+0x44/0x58
[ 347.644727] printk+0x4e/0x60
[ 347.644727] __offline_isolated_pages+0x16a/0x388
[ 347.644728] offline_isolated_pages_cb+0x2e/0x40
[ 347.644728] walk_system_ram_range+0x92/0xf0
[ 347.644729] __offline_pages.constprop.6+0x6d2/0x910Quoted 8 lines
[ 347.644729] memory_subsys_offline+0x6c/0xa0 [ 347.644730] device_offline+0x84/0xe0 [ 347.644730] store_mem_state+0xfe/0x120 [ 347.644731] kernfs_fop_write+0x132/0x208 [ 347.644731] __vfs_write+0x36/0x158 [ 347.644731] vfs_write+0xb8/0x1a0 [ 347.644732] SyS_write+0x66/0xc0 [ 347.644732] system_call+0xc4/0x298
here we've got
(&zone->lock)->rlock -> console_sch_key
due to pr_info("remove from free list %lx %d %lx\n",...) under spin_lock_irqsave(&zone->lock, flags).
so it's
from #4 from #0 from #1
rq->lock -> (&zone->lock)->rlock -> console_sch_key -> rq->lock
need to think what the fix can be...
if anyone has any thoughts I'd be glad to hear.
Quoted 44 lines
[ 347.644733] other info that might help us debug this:
[ 347.644734] Chain exists of:
[ 347.644734] &console_sch_key --> &rq->lock --> &(&zone->lock)->rlock
[ 347.644736] Possible unsafe locking scenario:
[ 347.644737] CPU0 CPU1
[ 347.644738] ---- ----
[ 347.644738] lock(&(&zone->lock)->rlock);
[ 347.644739] lock(&rq->lock);
[ 347.644740] lock(&(&zone->lock)->rlock);
[ 347.644741] lock(&console_sch_key);
[ 347.644742] *** DEADLOCK ***
[ 347.644743] 9 locks held by sh/770:
[ 347.644743] #0: (sb_writers#5){.+.+.+}, at: [<000000000035c64a>] vfs_write+0xa2/0x1a0
[ 347.644745] #1: (&of->mutex){+.+.+.}, at: [<000000000040065a>] kernfs_fop_write+0x1b2/0x208
[ 347.644747] #2: (s_active#46){.+.+.+}, at: [<0000000000400666>] kernfs_fop_write+0x1be/0x208
[ 347.644749] #3: (device_hotplug_lock){+.+...}, at: [<00000000006b9d18>] lock_device_hotplug_sysfs+0x30/0x70
[ 347.644750] #4: (cpu_hotplug_lock.rw_sem){++++++}, at: [<000000000033596a>] mem_hotplug_begin+0x2a/0x40
[ 347.644752] #5: (mem_hotplug_lock.rw_sem){++++.+}, at: [<00000000001a5c78>] percpu_down_write+0x38/0x110
[ 347.644754] #6: (&dev->mutex){......}, at: [<00000000006bb5ac>] device_offline+0x5c/0xe0
[ 347.644756] #7: (&(&zone->lock)->rlock){-.-...}, at: [<00000000002b693e>] __offline_isolated_pages+0x316/0x388
[ 347.644758] #8: (console_lock){+.+...}, at: [<00000000001c2a3c>] vprintk_emit+0x2fc/0x378
[ 347.644760] stack backtrace:
[ 347.644760] CPU: 2 PID: 770 Comm: sh Not tainted 4.13.0-rc2 #146
[ 347.644761] Hardware name: IBM 2827 H66 706 (z/VM 6.3.0)
[ 347.644761] Call Trace:
[ 347.644761] ([<0000000000113a1a>] show_stack+0x8a/0xe0)
[ 347.644762] [<00000000008fe4a6>] dump_stack+0x96/0xd8
[ 347.644762] [<00000000001a95c4>] print_circular_bug+0x314/0x340
[ 347.644763] [<00000000001aa548>] check_prev_add+0x160/0x6e8
[ 347.644763] [<00000000001ab626>] validate_chain.isra.10+0xb56/0xd88
[ 347.644764] [<00000000001ad024>] __lock_acquire+0x62c/0x850
[ 347.644764] [<00000000001adbec>] lock_acquire+0x254/0x2b8
[ 347.644765] [<000000000091e4a8>] _raw_spin_lock_irqsave+0x70/0xb8
[ 347.644766] [<0000000000763d80>] raw3215_write+0x58/0x208
[ 347.644766] [<000000000076416e>] con3215_write+0x8e/0xf8
[ 347.644766] [<00000000001c2570>] console_unlock+0x4d8/0x6a8
[ 347.644767] [<00000000001c2a48>] vprintk_emit+0x308/0x378
[ 347.644767] [<00000000001c2c94>] vprintk_default+0x44/0x58
[ 347.644768] [<00000000001c3c0e>] printk+0x4e/0x60
[ 347.644768] [<00000000002b6792>] __offline_isolated_pages+0x16a/0x388
[ 347.644769] [<0000000000335516>] offline_isolated_pages_cb+0x2e/0x40
[ 347.644769] [<000000000014b092>] walk_system_ram_range+0x92/0xf0
[ 347.644770] [<0000000000913cfa>] __offline_pages.constprop.6+0x6d2/0x910
[ 347.644770] [<00000000006d8cf4>] memory_subsys_offline+0x6c/0xa0 Quoted 8 lines
[ 347.644771] [<00000000006bb5d4>] device_offline+0x84/0xe0 [ 347.644771] [<00000000006d93de>] store_mem_state+0xfe/0x120 [ 347.644772] [<00000000004005da>] kernfs_fop_write+0x132/0x208 [ 347.644773] [<000000000035b236>] __vfs_write+0x36/0x158 [ 347.644773] [<000000000035c660>] vfs_write+0xb8/0x1a0 [ 347.644774] [<000000000035dd96>] SyS_write+0x66/0xc0 [ 347.644774] [<000000000091f59c>] system_call+0xc4/0x298 [ 347.644774] INFO: lockdep is turned off.
-ss
Quoted 98 lines · On Mon, 20 Mar 2017 17:43:23 +0100 (CET) Sebastian Ott…
Since commit
f975237b7682("printk: useprintk_safebuffers in printk") I observe lockdep warnings on s390 when doing memory hotplug:[ 132.379220] ====================================================== [ 132.379220] [ INFO: possible circular locking dependency detected ] [ 132.379221] 4.11.0-rc3 #330 Not tainted [ 132.379221] ------------------------------------------------------- [ 132.379222] sh/708 is trying to acquire lock: [ 132.379222] (&(&sclp_con_lock)->rlock){-.-...}, at: [<000000000074524a>] sclp_console_write+0x4a/0x2b8 [ 132.379224] [ 132.379224] but task is already holding lock: [ 132.379224] (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340 [ 132.379226] [ 132.379227] which lock already depends on the new lock. [ 132.379227] [ 132.379227] [ 132.379228] the existing dependency chain (in reverse order) is: [ 132.379228] [ 132.379229] -> #2 (&(&zone->lock)->rlock){..-...}: [ 132.379230] validate_chain.isra.22+0xb36/0xd18 [ 132.379231] __lock_acquire+0x650/0x880 [ 132.379231] lock_acquire+0x24e/0x2b0 [ 132.379232] _raw_spin_lock_irqsave+0x70/0xb8 [ 132.379232] get_page_from_freelist+0x548/0xf30 [ 132.379233] __alloc_pages_nodemask+0x1c8/0x14c0 [ 132.379233] allocate_slab+0xde/0x668 [ 132.379233] new_slab+0x94/0xa8 [ 132.379234] ___slab_alloc.constprop.66+0x556/0x578 [ 132.379234] __slab_alloc.isra.62.constprop.65+0x74/0xa8 [ 132.379235] kmem_cache_alloc+0x136/0x4b8 [ 132.379235] __debug_object_init+0xaa/0x448 [ 132.379236] debug_object_activate+0x182/0x238 [ 132.379236] mod_timer+0xe6/0x450 [ 132.379236] prandom_reseed+0x44/0x50 [ 132.379237] do_one_initcall+0xa2/0x150 [ 132.379237] kernel_init_freeable+0x228/0x2d8 [ 132.379238] kernel_init+0x2a/0x138 [ 132.379238] kernel_thread_starter+0x6/0xc [ 132.379239] kernel_thread_starter+0x0/0xc [ 132.379239] [ 132.379239] -> #1 (&(&base->lock)->rlock){-.-.-.}: [ 132.379241] validate_chain.isra.22+0xb36/0xd18 [ 132.379242] __lock_acquire+0x650/0x880 [ 132.379242] lock_acquire+0x24e/0x2b0 [ 132.379242] _raw_spin_lock_irqsave+0x70/0xb8 [ 132.379243] lock_timer_base+0x78/0xa8 [ 132.379243] mod_timer+0xba/0x450 [ 132.379244] sclp_console_write+0x262/0x2b8 [ 132.379244] console_unlock+0x4a6/0x658 [ 132.379245] register_console+0x31c/0x430 [ 132.379245] sclp_console_init+0x152/0x170 [ 132.379245] console_init+0x3a/0x58 [ 132.379246] start_kernel+0x350/0x480 [ 132.379246] _stext+0x20/0x80 [ 132.379246] [ 132.379247] -> #0 (&(&sclp_con_lock)->rlock){-.-...}: [ 132.379249] check_prev_add+0x150/0x648 [ 132.379249] validate_chain.isra.22+0xb36/0xd18 [ 132.379249] __lock_acquire+0x650/0x880 [ 132.379250] lock_acquire+0x24e/0x2b0 [ 132.379250] _raw_spin_lock_irqsave+0x70/0xb8 [ 132.379251] sclp_console_write+0x4a/0x2b8 [ 132.379251] console_unlock+0x4a6/0x658 [ 132.379252] vprintk_emit+0x33e/0x350 [ 132.379252] vprintk_default+0x44/0x58 [ 132.379252] printk+0x4e/0x58 [ 132.379253] __offline_isolated_pages+0x1a0/0x340 [ 132.379253] offline_isolated_pages_cb+0x2e/0x40 [ 132.379254] walk_system_ram_range+0x96/0xe8 [ 132.379254] __offline_pages.constprop.43+0x6da/0x918 [ 132.379255] memory_subsys_offline+0x6a/0xa0 [ 132.379255] device_offline+0x84/0xd8 [ 132.379255] store_mem_state+0xfe/0x120 [ 132.379256] kernfs_fop_write+0x126/0x1d0 [ 132.379256] __vfs_write+0x46/0x140 [ 132.379257] vfs_write+0xb8/0x1a8 [ 132.379257] SyS_write+0x66/0xc0 [ 132.379257] system_call+0xc4/0x240 [ 132.379258] [ 132.379258] other info that might help us debug this: [ 132.379258] [ 132.379259] Chain exists of: [ 132.379259] &(&sclp_con_lock)->rlock --> &(&base->lock)->rlock --> &(&zone->lock)->rlock [ 132.379262] [ 132.379262] Possible unsafe locking scenario: [ 132.379262] [ 132.379263] CPU0 CPU1 [ 132.379263] ---- ---- [ 132.379264] lock(&(&zone->lock)->rlock); [ 132.379265] lock(&(&base->lock)->rlock); [ 132.379266] lock(&(&zone->lock)->rlock); [ 132.379267] lock(&(&sclp_con_lock)->rlock); [ 132.379268] [ 132.379268] *** DEADLOCK *** [ 132.379269] [ 132.379269] 10 locks held by sh/708: [ 132.379269] #0: (sb_writers#4){.+.+.+}, at: [<0000000000345d4a>] vfs_write+0xa2/0x1a8 [ 132.379272] #1: (&of->mutex){+.+.+.}, at: [<00000000003e5e60>] kernfs_fop_write+0xd8/0x1d0
Quoted 8 lines
[ 132.379273] #2: (s_active#180){.+.+.+}, at: [<00000000003e5e6c>] kernfs_fop_write+0xe4/0x1d0
[ 132.379275] #3: (device_hotplug_lock){+.+...}, at: [<000000000069bb58>] lock_device_hotplug_sysfs+0x30/0x68
[ 132.379277] #4: (memory_add_remove_lock){+.+...}, at: [<000000000031cfe6>] mem_hotplug_begin+0x3e/0xd0
[ 132.379279] #5: (mem_hotplug.lock){++++.+}, at: [<000000000031cfa8>] mem_hotplug_begin+0x0/0xd0
[ 132.379281] #6: (mem_hotplug.lock#2){+.+...}, at: [<000000000031d02c>] mem_hotplug_begin+0x84/0xd0
[ 132.379283] #7: (&dev->mutex){......}, at: [<000000000069d55c>] device_offline+0x5c/0xd8
[ 132.379285] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340
[ 132.379287] #9: (console_lock){+.+...}, at: [<00000000001bdc02>] vprintk_emit+0x332/0x350Is there a stack trace of where the lockdep dump happened? That is useful too. Otherwise we don't see where the inverse happened.
-- Steve
Quoted 2 lines · Steven Rostedt
Is there a stack trace of where the lockdep dump happened? That is useful too. Otherwise we don't see where the inverse happened.
Sure. Here you go.
[ 132.379220] ======================================================
[ 132.379220] [ INFO: possible circular locking dependency detected ]
[ 132.379221] 4.11.0-rc3 #330 Not tainted
[ 132.379221] -------------------------------------------------------
[ 132.379222] sh/708 is trying to acquire lock:
[ 132.379222] (&(&sclp_con_lock)->rlock){-.-...}, at: [<000000000074524a>] sclp_console_write+0x4a/0x2b8
[ 132.379224]
[ 132.379224] but task is already holding lock:
[ 132.379224] (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340
[ 132.379226]
[ 132.379227] which lock already depends on the new lock.
[ 132.379227]
[ 132.379227]
[ 132.379228] the existing dependency chain (in reverse order) is:
[ 132.379228]
[ 132.379229] -> #2 (&(&zone->lock)->rlock){..-...}:
[ 132.379230] validate_chain.isra.22+0xb36/0xd18
[ 132.379231] __lock_acquire+0x650/0x880
[ 132.379231] lock_acquire+0x24e/0x2b0
[ 132.379232] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379232] get_page_from_freelist+0x548/0xf30
[ 132.379233] __alloc_pages_nodemask+0x1c8/0x14c0
[ 132.379233] allocate_slab+0xde/0x668
[ 132.379233] new_slab+0x94/0xa8
[ 132.379234] ___slab_alloc.constprop.66+0x556/0x578
[ 132.379234] __slab_alloc.isra.62.constprop.65+0x74/0xa8
[ 132.379235] kmem_cache_alloc+0x136/0x4b8
[ 132.379235] __debug_object_init+0xaa/0x448
[ 132.379236] debug_object_activate+0x182/0x238
[ 132.379236] mod_timer+0xe6/0x450
[ 132.379236] prandom_reseed+0x44/0x50
[ 132.379237] do_one_initcall+0xa2/0x150
[ 132.379237] kernel_init_freeable+0x228/0x2d8
[ 132.379238] kernel_init+0x2a/0x138
[ 132.379238] kernel_thread_starter+0x6/0xc
[ 132.379239] kernel_thread_starter+0x0/0xc
[ 132.379239]
[ 132.379239] -> #1 (&(&base->lock)->rlock){-.-.-.}:
[ 132.379241] validate_chain.isra.22+0xb36/0xd18
[ 132.379242] __lock_acquire+0x650/0x880
[ 132.379242] lock_acquire+0x24e/0x2b0
[ 132.379242] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379243] lock_timer_base+0x78/0xa8
[ 132.379243] mod_timer+0xba/0x450
[ 132.379244] sclp_console_write+0x262/0x2b8
[ 132.379244] console_unlock+0x4a6/0x658
[ 132.379245] register_console+0x31c/0x430
[ 132.379245] sclp_console_init+0x152/0x170
[ 132.379245] console_init+0x3a/0x58
[ 132.379246] start_kernel+0x350/0x480
[ 132.379246] _stext+0x20/0x80
[ 132.379246]
[ 132.379247] -> #0 (&(&sclp_con_lock)->rlock){-.-...}:
[ 132.379249] check_prev_add+0x150/0x648
[ 132.379249] validate_chain.isra.22+0xb36/0xd18
[ 132.379249] __lock_acquire+0x650/0x880
[ 132.379250] lock_acquire+0x24e/0x2b0
[ 132.379250] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379251] sclp_console_write+0x4a/0x2b8
[ 132.379251] console_unlock+0x4a6/0x658
[ 132.379252] vprintk_emit+0x33e/0x350
[ 132.379252] vprintk_default+0x44/0x58
[ 132.379252] printk+0x4e/0x58
[ 132.379253] __offline_isolated_pages+0x1a0/0x340
[ 132.379253] offline_isolated_pages_cb+0x2e/0x40
[ 132.379254] walk_system_ram_range+0x96/0xe8
[ 132.379254] __offline_pages.constprop.43+0x6da/0x918
[ 132.379255] memory_subsys_offline+0x6a/0xa0
[ 132.379255] device_offline+0x84/0xd8
[ 132.379255] store_mem_state+0xfe/0x120
[ 132.379256] kernfs_fop_write+0x126/0x1d0
[ 132.379256] __vfs_write+0x46/0x140
[ 132.379257] vfs_write+0xb8/0x1a8
[ 132.379257] SyS_write+0x66/0xc0
[ 132.379257] system_call+0xc4/0x240
[ 132.379258]
[ 132.379258] other info that might help us debug this:
[ 132.379258]
[ 132.379259] Chain exists of:
[ 132.379259] &(&sclp_con_lock)->rlock --> &(&base->lock)->rlock --> &(&zone->lock)->rlock
[ 132.379262]
[ 132.379262] Possible unsafe locking scenario:
[ 132.379262]
[ 132.379263] CPU0 CPU1
[ 132.379263] ---- ----
[ 132.379264] lock(&(&zone->lock)->rlock);
[ 132.379265] lock(&(&base->lock)->rlock);
[ 132.379266] lock(&(&zone->lock)->rlock);
[ 132.379267] lock(&(&sclp_con_lock)->rlock);
[ 132.379268]
[ 132.379268] *** DEADLOCK ***
[ 132.379269]
[ 132.379269] 10 locks held by sh/708:
[ 132.379269] #0: (sb_writers#4){.+.+.+}, at: [<0000000000345d4a>] vfs_write+0xa2/0x1a8
[ 132.379272] #1: (&of->mutex){+.+.+.}, at: [<00000000003e5e60>] kernfs_fop_write+0xd8/0x1d0
[ 132.379273] #2: (s_active#180){.+.+.+}, at: [<00000000003e5e6c>] kernfs_fop_write+0xe4/0x1d0
[ 132.379275] #3: (device_hotplug_lock){+.+...}, at: [<000000000069bb58>] lock_device_hotplug_sysfs+0x30/0x68
[ 132.379277] #4: (memory_add_remove_lock){+.+...}, at: [<000000000031cfe6>] mem_hotplug_begin+0x3e/0xd0
[ 132.379279] #5: (mem_hotplug.lock){++++.+}, at: [<000000000031cfa8>] mem_hotplug_begin+0x0/0xd0
[ 132.379281] #6: (mem_hotplug.lock#2){+.+...}, at: [<000000000031d02c>] mem_hotplug_begin+0x84/0xd0
[ 132.379283] #7: (&dev->mutex){......}, at: [<000000000069d55c>] device_offline+0x5c/0xd8
[ 132.379285] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002a65a8>] __offline_isolated_pages+0xe0/0x340
[ 132.379287] #9: (console_lock){+.+...}, at: [<00000000001bdc02>] vprintk_emit+0x332/0x350
[ 132.379289]
[ 132.379289] stack backtrace:
[ 132.379290] CPU: 1 PID: 708 Comm: sh Not tainted 4.11.0-rc3 #330
[ 132.379290] Hardware name: IBM 2827 H66 703 (LPAR)
[ 132.379290] Stack:
[ 132.379291] 000000006f5ab458 000000006f5ab4e8 0000000000000003 0000000000000000
[ 132.379293] 000000006f5ab588 000000006f5ab500 000000006f5ab500 0000000000000020
[ 132.379294] 0000000000929180 000000000000000a 0000000000000020 000000000000000a
[ 132.379296] 000000000000000c 000000006f5ab550 0000000000000000 0000000000000000
[ 132.379298] 04000000016e0b18 0000000000111da2 000000006f5ab4e8 000000006f5ab540
[ 132.379300] Call Trace:
[ 132.379300] ([<0000000000111c86>] show_trace+0x8e/0xe0)
[ 132.379301] [<0000000000111d58>] show_stack+0x80/0xd8
[ 132.379301] [<00000000005ff656>] dump_stack+0x96/0xd8
[ 132.379302] [<0000000000291572>] print_circular_bug+0x2f2/0x308
[ 132.379302] [<00000000001a6b98>] check_prev_add+0x150/0x648
[ 132.379303] [<00000000001a7bc6>] validate_chain.isra.22+0xb36/0xd18
[ 132.379303] [<00000000001a9240>] __lock_acquire+0x650/0x880
[ 132.379304] [<00000000001a9bee>] lock_acquire+0x24e/0x2b0
[ 132.379304] [<00000000008dcab0>] _raw_spin_lock_irqsave+0x70/0xb8
[ 132.379304] [<000000000074524a>] sclp_console_write+0x4a/0x2b8
[ 132.379305] [<00000000001bd71e>] console_unlock+0x4a6/0x658
[ 132.379305] [<00000000001bdc0e>] vprintk_emit+0x33e/0x350
[ 132.379306] [<00000000001bddec>] vprintk_default+0x44/0x58
[ 132.379306] [<0000000000291c8e>] printk+0x4e/0x58
[ 132.379307] [<00000000002a6668>] __offline_isolated_pages+0x1a0/0x340
[ 132.379307] [<000000000031cbbe>] offline_isolated_pages_cb+0x2e/0x40
[ 132.379308] [<0000000000147466>] walk_system_ram_range+0x96/0xe8
[ 132.379308] [<00000000008d2bba>] __offline_pages.constprop.43+0x6da/0x918
[ 132.379309] [<00000000006b9b2a>] memory_subsys_offline+0x6a/0xa0
[ 132.379309] [<000000000069d584>] device_offline+0x84/0xd8
[ 132.379310] [<00000000006ba146>] store_mem_state+0xfe/0x120
[ 132.379310] [<00000000003e5eae>] kernfs_fop_write+0x126/0x1d0
[ 132.379311] [<0000000000344b0e>] __vfs_write+0x46/0x140
[ 132.379311] [<0000000000345d60>] vfs_write+0xb8/0x1a8
[ 132.379312] [<000000000034742e>] SyS_write+0x66/0xc0
[ 132.379312] [<00000000008dda2c>] system_call+0xc4/0x240
[ 132.379313] INFO: lockdep is turned off.[ 377.096545] ======================================================
[ 377.096545] [ INFO: possible circular locking dependency detected ]
[ 377.096546] 4.11.0-rc2-00238-ga722844 #120 Not tainted
[ 377.096546] -------------------------------------------------------
[ 377.096547] sh/848 is trying to acquire lock:
[ 377.096547] ((console_sem).lock){-.....}, at: [<00000000001a594e>] down_trylock+0x2e/0x68
[ 377.096549] but task is already holding lock:
[ 377.096550] (&(&zone->lock)->rlock){..-...}, at: [<00000000002ae3da>] __offline_isolated_pages+0x302/0x370
[ 377.096552] which lock already depends on the new lock.
[ 377.096553] the existing dependency chain (in reverse order) is:[ 377.096554] -> #3 (&(&zone->lock)->rlock){..-...}:
[ 377.096556] validate_chain.isra.10+0xb7a/0xda8
[ 377.096557] __lock_acquire+0x62c/0x850
[ 377.096557] lock_acquire+0x254/0x2b8
[ 377.096558] _raw_spin_lock_irqsave+0x70/0xb8
[ 377.096558] get_page_from_freelist+0x4e2/0xf28
[ 377.096558] __alloc_pages_nodemask+0x1fa/0x1528
[ 377.096559] allocate_slab+0xf2/0x6c0
[ 377.096559] new_slab+0x94/0xa8
[ 377.096560] ___slab_alloc.constprop.22+0x570/0x590
[ 377.096560] __slab_alloc.isra.16.constprop.21+0x74/0xa8
[ 377.096561] kmem_cache_alloc+0x13c/0x4b0
[ 377.096561] __debug_object_init+0x5c/0x468
[ 377.096561] hrtimer_init+0x42/0x1d8
[ 377.096562] init_dl_task_timer+0x3a/0x58
[ 377.096562] __sched_fork.isra.5+0x7e/0xe8
[ 377.096563] init_idle+0x7a/0x278
[ 377.096563] fork_idle+0xa4/0xb8
[ 377.096564] idle_threads_init+0x64/0xc8
[ 377.096564] smp_init+0x2e/0x110
[ 377.096565] kernel_init_freeable+0x16c/0x2e0
[ 377.096565] kernel_init+0x2a/0x148
[ 377.096565] kernel_thread_starter+0x6/0xc
[ 377.096566] kernel_thread_starter+0x0/0xc[ 377.096567] -> #2 (&rq->lock){-.-.-.}:
[ 377.096568] validate_chain.isra.10+0xb7a/0xda8
[ 377.096569] __lock_acquire+0x62c/0x850
[ 377.096569] lock_acquire+0x254/0x2b8
[ 377.096569] _raw_spin_lock+0x60/0xa0
[ 377.096570] task_fork_fair+0x54/0x118
[ 377.096570] sched_fork+0x13e/0x2a0
[ 377.096571] copy_process+0x642/0x1e80
[ 377.096571] _do_fork+0xc2/0x6d0
[ 377.096571] kernel_thread+0x4e/0x60
[ 377.096572] rest_init+0x42/0x170
[ 377.096572] start_kernel+0x464/0x478
[ 377.096572] _stext+0x20/0x80[ 377.096573] -> #1 (&p->pi_lock){-.-.-.}:
[ 377.096574] validate_chain.isra.10+0xb7a/0xda8
[ 377.096575] __lock_acquire+0x62c/0x850
[ 377.096575] lock_acquire+0x254/0x2b8
[ 377.096576] _raw_spin_lock_irqsave+0x70/0xb8
[ 377.096576] try_to_wake_up+0x4a/0x5f8
[ 377.096576] up+0x58/0x70
[ 377.096577] __up_console_sem+0x5a/0x90
[ 377.096577] console_unlock+0x610/0x670
[ 377.096578] vprintk_emit+0x308/0x378
[ 377.096578] dev_vprintk_emit+0x1e6/0x200
[ 377.096578] dev_printk_emit+0x4e/0x60
[ 377.096579] __dev_printk+0x8e/0xb0
[ 377.096579] dev_warn+0x68/0x78
[ 377.096579] qeth_dev_portname_store+0x58/0x70
[ 377.096580] kernfs_fop_write+0x124/0x1c8
[ 377.096580] __vfs_write+0x36/0x140
[ 377.096580] vfs_write+0xb8/0x1a0
[ 377.096581] SyS_write+0x66/0xc0
[ 377.096581] system_call+0xc4/0x240[ 377.096582] -> #0 ((console_sem).lock){-.....}:
[ 377.096583] check_prev_add+0x160/0x6e8
[ 377.096584] validate_chain.isra.10+0xb7a/0xda8
[ 377.096584] __lock_acquire+0x62c/0x850
[ 377.096584] lock_acquire+0x254/0x2b8
[ 377.096585] _raw_spin_lock_irqsave+0x70/0xb8
[ 377.096585] down_trylock+0x2e/0x68
[ 377.096586] __down_trylock_console_sem+0x4a/0xc0
[ 377.096586] console_trylock+0x32/0xc8
[ 377.096586] vprintk_emit+0x2fc/0x378
[ 377.096587] vprintk_default+0x44/0x58
[ 377.096587] printk+0x4e/0x60
[ 377.096587] __offline_isolated_pages+0x168/0x370
[ 377.096588] offline_isolated_pages_cb+0x2e/0x40
[ 377.096588] walk_system_ram_range+0x92/0xf0
[ 377.096589] __offline_pages.constprop.9+0x74a/0x988
[ 377.096589] memory_subsys_offline+0x6c/0xa0
[ 377.096589] device_offline+0x84/0xe0
[ 377.096590] store_mem_state+0xfe/0x120
[ 377.096590] kernfs_fop_write+0x124/0x1c8
[ 377.096590] __vfs_write+0x36/0x140
[ 377.096591] vfs_write+0xb8/0x1a0
[ 377.096591] SyS_write+0x66/0xc0
[ 377.096592] system_call+0xc4/0x240[ 377.096592] other info that might help us debug this:
[ 377.096593] Chain exists of: [ 377.096593] (console_sem).lock --> &rq->lock --> &(&zone->lock)->rlock
[ 377.096595] Possible unsafe locking scenario:
[ 377.096596] CPU0 CPU1 [ 377.096596] ---- ---- [ 377.096597] lock(&(&zone->lock)->rlock); [ 377.096598] lock(&rq->lock); [ 377.096599] lock(&(&zone->lock)->rlock); [ 377.096600] lock((console_sem).lock);
[ 377.096601] *** DEADLOCK ***
[ 377.096601] 9 locks held by sh/848:
[ 377.096602] #0: (sb_writers#5){.+.+.+}, at: [<000000000034f9c2>] vfs_write+0xa2/0x1a0
[ 377.096604] #1: (&of->mutex){+.+.+.}, at: [<00000000003f1afe>] kernfs_fop_write+0xd6/0x1c8
[ 377.096605] #2: (s_active#51){.+.+.+}, at: [<00000000003f1b0a>] kernfs_fop_write+0xe2/0x1c8
[ 377.096607] #3: (device_hotplug_lock){+.+.+.}, at: [<00000000006adb70>] lock_device_hotplug_sysfs+0x30/0x70
[ 377.096609] #4: (memory_add_remove_lock){+.+.+.}, at: [<0000000000328e16>] mem_hotplug_begin+0x3e/0xd0
[ 377.096610] #5: (mem_hotplug.lock){++++++}, at: [<0000000000328dd8>] mem_hotplug_begin+0x0/0xd0
[ 377.096612] #6: (mem_hotplug.lock#2){+.+.+.}, at: [<0000000000328e5c>] mem_hotplug_begin+0x84/0xd0
[ 377.096614] #7: (&dev->mutex){......}, at: [<00000000006af41c>] device_offline+0x5c/0xe0
[ 377.096615] #8: (&(&zone->lock)->rlock){..-...}, at: [<00000000002ae3da>] __offline_isolated_pages+0x302/0x370[ 377.096617] stack backtrace: [ 377.096618] CPU: 0 PID: 848 Comm: sh Not tainted 4.11.0-rc2-00238-ga722844 #120 [ 377.096618] Hardware name: IBM 2827 H66 703 (z/VM) [ 377.096619] Stack: [ 377.096619] 000000003ed0f450 000000003ed0f4e0 0000000000000003 0000000000000000 [ 377.096620] 000000003ed0f580 000000003ed0f4f8 000000003ed0f4f8 0000000000000020 [ 377.096629] 00000000009441c0 0000000000000020 000000000000000a 000000000000000a [ 377.096631] 000000000000000c 000000003ed0f548 0000000000000000 0000000000000000 [ 377.096633] 04000000016fa078 0000000000112338 000000003ed0f4e0 000000003ed0f538 [ 377.096635] Call Trace: [ 377.096635] ([<0000000000112212>] show_trace+0x8a/0xe0) [ 377.096636] [<00000000001122e8>] show_stack+0x80/0xd8 [ 377.096636] [<000000000060f5a6>] dump_stack+0x96/0xd8 [ 377.096637] [<00000000001a9d3c>] print_circular_bug+0x314/0x340 [ 377.096637] [<00000000001aacc0>] check_prev_add+0x160/0x6e8 [ 377.096638] [<00000000001abdc2>] validate_chain.isra.10+0xb7a/0xda8 [ 377.096638] [<00000000001ad7dc>] __lock_acquire+0x62c/0x850 [ 377.096639] [<00000000001ae20c>] lock_acquire+0x254/0x2b8 [ 377.096639] [<00000000008f63b8>] _raw_spin_lock_irqsave+0x70/0xb8 [ 377.096639] [<00000000001a594e>] down_trylock+0x2e/0x68 [ 377.096640] [<00000000001c1262>] __down_trylock_console_sem+0x4a/0xc0 [ 377.096641] [<00000000001c130a>] console_trylock+0x32/0xc8 [ 377.096641] [<00000000001c2c84>] vprintk_emit+0x2fc/0x378 [ 377.096641] [<00000000001c2edc>] vprintk_default+0x44/0x58 [ 377.096642] [<000000000029a24e>] printk+0x4e/0x60 [ 377.096642] [<00000000002ae240>] __offline_isolated_pages+0x168/0x370 [ 377.096643] [<00000000003289d6>] offline_isolated_pages_cb+0x2e/0x40 [ 377.096643] [<00000000001492fa>] walk_system_ram_range+0x92/0xf0 [ 377.096644] [<00000000008ec1fa>] __offline_pages.constprop.9+0x74a/0x988 [ 377.096644] [<00000000006cc9bc>] memory_subsys_offline+0x6c/0xa0 [ 377.096645] [<00000000006af444>] device_offline+0x84/0xe0 [ 377.096645] [<00000000006cd0ae>] store_mem_state+0xfe/0x120 [ 377.096645] [<00000000003f1b4c>] kernfs_fop_write+0x124/0x1c8 [ 377.096646] [<000000000034e736>] __vfs_write+0x36/0x140 [ 377.096646] [<000000000034f9d8>] vfs_write+0xb8/0x1a0 [ 377.096647] [<000000000035110e>] SyS_write+0x66/0xc0 [ 377.096647] [<00000000008f74ac>] system_call+0xc4/0x240 [ 377.096648] INFO: lockdep is turned off.
Hello,
On (03/24/17 12:39), Steven Rostedt wrote:
[..]
Quoted 2 lines
Is there a stack trace of where the lockdep dump happened? That is useful too. Otherwise we don't see where the inverse happened.
Steven, isn't it the inversion I describe in [1] (after the first lockdep warning)?
[1] lkml.kernel.org/r/[email protected]
-ss
Quoted 4 lines · On Sat, 25 Mar 2017 09:00:05 +0900 Sergey Senozhatsky…
Hello,
On (03/24/17 12:39), Steven Rostedt wrote:
[..]
Quoted 8 lines
Quoted 2 lines
Is there a stack trace of where the lockdep dump happened? That is useful too. Otherwise we don't see where the inverse happened.
Steven, isn't it the inversion I describe in [1] (after the first lockdep warning)?
[1] lkml.kernel.org/r/[email protected]
Yeah, I believe you are right. I just wanted to make sure. It's the same backtrace as the "(&(&sclp_con_lock)->rlock){-.-...}:" dump, but I wanted to make sure.
-- Steve