[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20131028132945.GA14963@localhost>
Date: Mon, 28 Oct 2013 21:29:45 +0800
From: Fengguang Wu <fengguang.wu@...el.com>
To: Tejun Heo <tj@...nel.org>
Cc: linux-kernel@...r.kernel.org
Subject: [sysfs/kernfs] BUG: bad unlock balance detected
Greetings,
I got the below dmesg and the first bad commit is
commit 2fc546abb938dac3bb72061b030d00e18896b336
Author: Tejun Heo <tj@...nel.org>
Date: Tue Oct 22 07:03:56 2013 -0400
sysfs, kernfs: prepare read path for kernfs
We're in the process of separating out core sysfs functionality into
kernfs which will deal with sysfs_dirents directly. This patch
rearranges read path so that the kernfs and sysfs parts are separate.
* Regular file read path is refactored such that
kernfs_seq_start/next/stop/show() handle all the boilerplate work
including locking and updating event count for poll, while
sysfs_kf_seq_show() deals with interaction with kobj show method.
* Bin file read path is refactored such that kernfs_file_direct_read()
handles all the boilerplate work including buffer management and
locking, while sysfs_kf_bin_read() deals with interaction with
bin_attribute read method.
kernfs_file_read() is added. It invokes either the seq_file or direct
read path depending on the file type. This will eventually allow
using the same file_operations for both file types, which is necessary
to separate out kernfs.
While this patch changes the order of some operations, it shouldn't
change any visible behavior.
Signed-off-by: Tejun Heo <tj@...nel.org>
+------------------------------------------------------------------------------------+--------------+--------------+
| | c60c2b7e4de8 | a3ccb6c1ef2f |
+------------------------------------------------------------------------------------+--------------+--------------+
| good_boots | 511 | 60 |
| has_kernel_error_warning | 673 | 38 |
| BUG:kernel_test_hang | 556 | 10 |
| INFO:task_blocked_for_more_than_seconds | 60 | 3 |
| Kernel_panic-not_syncing:hung_task:blocked_tasks | 8 | 1 |
| INFO:rcu_sched_detected_stalls_on_CPUs/tasks:(detected_by,t=jiffies,g=,c=,q=) | 8 | 1 |
| INFO:NMI_handler(arch_trigger_all_cpu_backtrace_handler)took_too_long_to_run:msecs | 7 | 1 |
| INFO:rcu_sched_self-detected_stall_on_CPU(t=jiffies_g=c=q=) | 4 | 5 |
| Out_of_memory:Kill_process | 1 | 1 |
| BUG:kernel_test_crashed | 55 | 3 |
| general_protection_fault:SMP | 0 | 2 |
| Kernel_panic-not_syncing:Attempted_to_kill_init_exitcode= | 0 | 9 |
| WARNING:CPU:PID:at_drivers/pci/pci.c:pci_disable_device() | 0 | 1 |
| WARNING:CPU:PID:at_lib/iomap.c:bad_io_access() | 0 | 5 |
| is_trying_to_release_lock(of-mutex)at | 0 | 3 |
| BUG:unable_to_handle_kernel_paging_request_at | 0 | 4 |
| Oops:SMP | 0 | 7 |
| WARNING:CPU:PID:at_drivers/ata/libata-eh.c:ata_eh_acquire() | 0 | 2 |
| BUG:unable_to_handle_kernel_NULL_pointer_dereference_at | 0 | 2 |
| BUG:unable_to_handle_kernel | 0 | 1 |
| INFO:Stall_ended_before_state_dump_start | 0 | 1 |
+------------------------------------------------------------------------------------+--------------+--------------+
[ 969.609526] [ BUG: bad unlock balance detected! ]
[ 969.609529] 3.12.0-rc6-wl-01422-ga3ccb6c #384 Not tainted
[ 969.609529] -------------------------------------
[ 969.609533] trinity-child1/3338 is trying to release lock (&of->mutex) at:
[ 969.609542] [<ffffffff81a401fc>] mutex_unlock+0xe/0x10
[ 969.609543] but there are no more locks to release!
[ 969.609544]
[ 969.609544] other info that might help us debug this:
[ 969.609545] 1 lock held by trinity-child1/3338:
[ 969.609554] #0: (&p->lock){......}, at: [<ffffffff811e2338>] seq_read+0x3c/0x34b
[ 969.609554]
[ 969.609554] stack backtrace:
[ 969.609558] CPU: 1 PID: 3338 Comm: trinity-child1 Not tainted 3.12.0-rc6-wl-01422-ga3ccb6c #384
[ 969.609559] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[ 969.609563] 0000000000000000 ffff880019737d28 ffffffff81a3796d ffff88000fee2340
[ 969.609566] ffff880019737d50 ffffffff81119ef7 ffff88000fee2340 00000000ffffffff
[ 969.609569] 0000000000000001 ffff880019737dc0 ffffffff8111bc30 0000000000000002
[ 969.609570] Call Trace:
[ 969.609575] [<ffffffff81a3796d>] dump_stack+0x54/0x74
[ 969.609582] [<ffffffff81119ef7>] print_unlock_imbalance_bug+0xe5/0xee
[ 969.609585] [<ffffffff8111bc30>] lock_release_non_nested+0x160/0x29b
[ 969.609590] [<ffffffff810f359b>] ? local_clock+0x41/0x5a
[ 969.609594] [<ffffffff81a401fc>] ? mutex_unlock+0xe/0x10
[ 969.609597] [<ffffffff81a401fc>] ? mutex_unlock+0xe/0x10
[ 969.609600] [<ffffffff8111bf63>] lock_release+0x1f8/0x1fb
[ 969.609604] [<ffffffff81a4018a>] __mutex_unlock_slowpath+0xef/0x153
[ 969.609607] [<ffffffff81a401fc>] mutex_unlock+0xe/0x10
[ 969.609610] [<ffffffff81227a3e>] kernfs_seq_stop+0x46/0x4c
[ 969.609613] [<ffffffff811e251b>] seq_read+0x21f/0x34b
[ 969.609616] [<ffffffff81227d77>] kernfs_file_read+0x3d/0x126
[ 969.609622] [<ffffffff811c4de5>] vfs_read+0xa1/0x151
[ 969.609625] [<ffffffff811c57b7>] SyS_read+0x4c/0x83
[ 969.609629] [<ffffffff81a4aca9>] system_call_fastpath+0x16/0x1b
git bisect start a3ccb6c1ef2ff3c5e681b0a36ba43feb8a3fb401 31d141e3a666269a3b6fcccddb0351caf7454240 --
git bisect good 1734bf83a82c52ed2658fe1f07742eac321813d3 # 21:29 296+ 50 Merge 'ath6kl/ath-next' into devel-hourly-2013102301
git bisect bad 75f1457ee73528f0e61c80fb1c7976535c64bfce # 22:16 24- 12 Merge 'wfg/virtio-net-sleeping-fix' into devel-hourly-2013102301
git bisect good 6b991c3763e15a0884095fc0c133980c5577e9c7 # 03:29 296+ 293 bnx2x: Prevent null pointer dereference on error flow
git bisect good 95f4ad8f05ba7ecde62215163404d291dbc56d68 # 08:14 296+ 110 sysfs, kernfs: introduce kernfs_create_link()
git bisect good dc2364837ae4416a7646494cb672175339388e60 # 11:51 296+ 142 Merge 'ath6kl/master' into devel-hourly-2013102301
git bisect bad acd8b9fc6b4242bdf72fd2b5a1ac5140f69f2932 # 12:25 3- 1 sysfs, kernfs: move internal decls to fs/kernfs/kernfs-internal.h
git bisect bad 78676703fdf0f37ae33e890400a76fcd23b83739 # 13:56 18- 1 sysfs, kernfs: move sysfs_open_file to include/linux/kernfs.h
git bisect bad 2fc546abb938dac3bb72061b030d00e18896b336 # 15:41 17- 1 sysfs, kernfs: prepare read path for kernfs
git bisect good c16b43ff3bfac36ebb338091932969f9a82533f5 # 22:14 296+ 234 sysfs, kernfs: introduce kernfs_setattr()
git bisect good c60c2b7e4de82fab809e29351f538d996c2dedc7 # 01:43 296+ 98 sysfs, kernfs: introduce kernfs_create_dir[_ns]()
git bisect good c60c2b7e4de82fab809e29351f538d996c2dedc7 # 07:18 888+ 673 sysfs, kernfs: introduce kernfs_create_dir[_ns]()
git bisect bad a3ccb6c1ef2ff3c5e681b0a36ba43feb8a3fb401 # 07:18 0- 38 Merge 'lunn/v3.12-rc5-rafael-next-dove-cpufreq' into devel-hourly-2013102301
git bisect good d255c59aab2a3fdf0bb8a5db75e50d9c926c3bb9 # 14:29 888+ 882 Merge tag 'for-linus-20131025' of git://git.infradead.org/linux-mtd
git bisect good a0cf1abc25ac197dd97b857c0f6341066a8cb1cf # 05:24 888+ 774 Add linux-next specific files for 20130927
Thanks,
Fengguang
View attachment "dmesg-nfsroot-snb-22:20131023035628:x86_64-lkp-CONFIG_DEBUG_RODATA:3.12.0-rc6-wl-01422-ga3ccb6c:384" of type "text/plain" (53431 bytes)
Download attachment "bisect-a3ccb6c1ef2ff3c5e681b0a36ba43feb8a3fb401-x86_64-lkp-CONFIG_DEBUG_RODATA-BUG:-bad-unlock-balance-detected-71347.log" of type "application/octet-stream" (39420 bytes)
View attachment "config-3.12.0-rc6-wl-01422-ga3ccb6c" of type "text/plain" (80232 bytes)
Powered by blists - more mailing lists