lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 7 Nov 2013 20:13:16 +0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	David Howells <dhowells@...hat.com>
Cc:	Al Viro <viro@...iv.linux.org.uk>, linux-fsdevel@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: [vfs] [ INFO: possible recursive locking detected ]

David,

Here is another bisect result.

commit 1247c74b4f3f3725a8bd8dc0bbd22baa2a9049ae
Author: David Howells <dhowells@...hat.com>
Date:   Thu Sep 12 19:22:53 2013 +0100

    VFS: Put a small type field into struct dentry::d_flags
    
    Put a type field into struct dentry::d_flags to indicate if the dentry is one
    of the following types that relate particularly to pathwalk:
    
    	Miss (negative dentry)
    	Directory
    	"Automount" directory (defective - no i_op->lookup())
    	Symlink
    	Other (regular, socket, fifo, device)
    
    The type field is set to one of the first five types on a dentry by calls to
    __d_instantiate() and d_obtain_alias() from information in the inode (if one is
    given).
    
    The type is cleared by dentry_unlink_inode() when it reconstitutes an existing
    dentry as a negative dentry.
    
    Accessors provided are:
    
    	d_set_type(dentry, type)
    	d_is_directory(dentry)
    	d_is_autodir(dentry)
    	d_is_symlink(dentry)
    	d_is_file(dentry)
    	d_is_negative(dentry)
    	d_is_positive(dentry)
    
    A bunch of checks in pathname resolution switched to those.
    
    Signed-off-by: David Howells <dhowells@...hat.com>
    Signed-off-by: Al Viro <viro@...iv.linux.org.uk>

===================================================
PARENT COMMIT NOT CLEAN. LOOK OUT FOR WRONG BISECT!
===================================================
9 /kernel/x86_64-randconfig-c9-1107/50235cd9727c20b09967b5c060025eac9d0c80bb

create /kernel/x86_64-randconfig-c9-1107/50235cd9727c20b09967b5c060025eac9d0c80bb/boot-error-ids
update /kernel/x86_64-randconfig-c9-1107/f0e07fb6dd3d533b6ea2d91e721b68d696d4e64c/boot-error-ids
+-------------------------------------------------+--------------+--------------+
|                                                 | 50235cd9727c | f0e07fb6dd3d |
+-------------------------------------------------+--------------+--------------+
| good_boots                                      | 131          |              |
| has_kernel_error_warning                        | 9            | 19           |
| BUG:kernel_early_hang_without_any_printk_output | 9            |              |
| INFO:possible_recursive_locking_detected        | 0            | 19           |
| BUG:spinlock_lockup_suspected_on_CPU            | 0            | 19           |
+-------------------------------------------------+--------------+--------------+

[    0.020984] Mount-cache hash table entries: 256
[    0.022182] 
[    0.022487] =============================================
[    0.026992] [ INFO: possible recursive locking detected ]
[    0.027977] 3.12.0-00784-gf0e07fb #314 Not tainted
[    0.028845] ---------------------------------------------
[    0.030000] swapper/0 is trying to acquire lock:
[    0.030000]  (&sb->s_type->i_lock_key){+.+...}, at: [<ffffffff811bdb4c>] d_flags_for_inode+0x3c/0xd0
[    0.030000] 
[    0.030000] but task is already holding lock:
[    0.030000]  (&sb->s_type->i_lock_key){+.+...}, at: [<ffffffff811c04c4>] d_instantiate+0x34/0x70
[    0.030000] 
[    0.030000] other info that might help us debug this:
[    0.030000]  Possible unsafe locking scenario:
[    0.030000] 
[    0.030000]        CPU0
[    0.030000]        ----
[    0.030000]   lock(&sb->s_type->i_lock_key);
[    0.030000]   lock(&sb->s_type->i_lock_key);
[    0.030000] 
[    0.030000]  *** DEADLOCK ***
[    0.030000] 
[    0.030000]  May be due to missing lock nesting notation
[    0.030000] 
[    0.030000] 2 locks held by swapper/0:
[    0.030000]  #0:  (&type->s_umount_key/1){+.+...}, at: [<ffffffff811ab286>] sget+0x266/0x440
[    0.030000]  #1:  (&sb->s_type->i_lock_key){+.+...}, at: [<ffffffff811c04c4>] d_instantiate+0x34/0x70
[    0.030000] 
[    0.030000] stack backtrace:
[    0.030000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.0-00784-gf0e07fb #314
[    0.030000] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[    0.030000]  ffffffff82c998d0 ffffffff82401c18 ffffffff81c21540 ffffffff82401ce0
[    0.030000]  ffffffff81111fb7 ffffffff824134c0 0000000000000000 ffffffff82401c50
[    0.030000]  ffffffff82413af8 ffffffff00000000 00000000c406e037 ffffffff824134c0
[    0.030000] Call Trace:
[    0.030000]  [<ffffffff81c21540>] dump_stack+0x19/0x1b
[    0.030000]  [<ffffffff81111fb7>] __lock_acquire+0x12d7/0x1d60
[    0.030000]  [<ffffffff811129cc>] ? __lock_acquire+0x1cec/0x1d60
[    0.030000]  [<ffffffff81c2102f>] ? __slab_alloc.constprop.61+0x3dc/0x3fa
[    0.030000]  [<ffffffff8111394d>] lock_acquire+0x19d/0x220
[    0.030000]  [<ffffffff811bdb4c>] ? d_flags_for_inode+0x3c/0xd0
[    0.030000]  [<ffffffff81c34ccb>] _raw_spin_lock+0x3b/0x70
[    0.030000]  [<ffffffff811bdb4c>] ? d_flags_for_inode+0x3c/0xd0
[    0.030000]  [<ffffffff811bdb4c>] d_flags_for_inode+0x3c/0xd0
[    0.030000]  [<ffffffff811be44d>] __d_instantiate+0x1d/0xf0
[    0.030000]  [<ffffffff811c04cf>] d_instantiate+0x3f/0x70
[    0.030000]  [<ffffffff811c0662>] d_make_root+0x32/0x60
[    0.030000]  [<ffffffff811f3fe8>] sysfs_mount+0x178/0x220
[    0.030000]  [<ffffffff811ac0a3>] mount_fs+0x73/0x190
[    0.030000]  [<ffffffff811c98e5>] vfs_kern_mount+0x65/0xf0
[    0.030000]  [<ffffffff811cc4b4>] kern_mount_data+0x14/0x30
[    0.030000]  [<ffffffff827a9db2>] sysfs_init+0x54/0xb3
[    0.030000]  [<ffffffff827a8488>] mnt_init+0xcd/0x1d6
[    0.030000]  [<ffffffff827a8156>] vfs_caches_init+0x90/0x10e
[    0.030000]  [<ffffffff827abf74>] ? integrity_iintcache_init+0x23/0x38
[    0.030000]  [<ffffffff827aafe9>] ? security_init+0x35/0x47
[    0.030000]  [<ffffffff82784e98>] start_kernel+0x456/0x49e
[    0.030000]  [<ffffffff8278484a>] ? repair_env_string+0x5e/0x5e
[    0.030000]  [<ffffffff82784120>] ? early_idt_handlers+0x120/0x120
[    0.030000]  [<ffffffff82784543>] x86_64_start_reservations+0x2a/0x2c
[    0.030000]  [<ffffffff82784638>] x86_64_start_kernel+0xf3/0x102

git bisect start f0e07fb6dd3d533b6ea2d91e721b68d696d4e64c 5e01dc7b26d9f24f39abace5da98ccbd6a5ceb52 --
git bisect good 2751f2b0a96446b2301a56dcf3b24128ffb4c7d7  # 09:25     20+      0  Merge 'ntb/ntb' into devel-cairo-x86_64-201311070512
git bisect good 4796e8af60ee7d2922386ef9fd4389d21e2c1665  # 10:26     20+      4  Bluetooth: Make mgmt_write_scan_failed() return void
git bisect good cca34b785a21d220176038c45071ffe842e99fd3  # 10:52     20+      2  Bluetooth: Remove link type check in hci_disconn_complete_evt()
git bisect good 004e8957280a32f7b54766531c064412bda45e48  # 11:36     20+      2  convert the rest of binfmt_elf_fdpic to dump_emit()
git bisect  bad b0d94facd7c81fae48e72f1e0b2a7e656ecde921  # 11:44      0-      2  exportfs: stop retrying once we race with rename/remove
git bisect good 50235cd9727c20b09967b5c060025eac9d0c80bb  # 12:05     20+      2  elf{,_fdpic} coredump: get rid of pointless if (siginfo->si_signo)
git bisect  bad 08196969532eee10cdeaa29fca37fa7a407b01ae  # 12:11      0-      1  dcache: use IS_ROOT to decide where dentry is hashed
git bisect  bad 7717bf21e4a5e1d371e313a4404635f4775961d9  # 12:16      1-      2  vfs: split out vfs_getattr_nosec
git bisect  bad 520ef078eabdbe7eb6a33c1f56a65ac55d41e6ed  # 12:24      2-      3  iget/iget5: don't bother with ->i_lock until we find a match
git bisect  bad 1247c74b4f3f3725a8bd8dc0bbd22baa2a9049ae  # 12:29      0-      4  VFS: Put a small type field into struct dentry::d_flags
git bisect good 50235cd9727c20b09967b5c060025eac9d0c80bb  # 13:06    120+      9  elf{,_fdpic} coredump: get rid of pointless if (siginfo->si_signo)
git bisect  bad f0e07fb6dd3d533b6ea2d91e721b68d696d4e64c  # 13:06      0-     19  Merge 'vfs/for-next' into devel-cairo-x86_64-201311070512
git bisect good e6eb46b3eee2c7211a56423dd026b88b9ce30ed5  # 13:21    120+      9  Revert "VFS: Put a small type field into struct dentry::d_flags"
git bisect good be408cd3e1fef73e9408b196a79b9934697fe3b1  # 13:33    120+      3  Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Thanks,
Fengguang

View attachment "dmesg-quantal-bens-2:20131107062028:x86_64-randconfig-c9-1107:3.12.0-00784-gf0e07fb:314" of type "text/plain" (17246 bytes)

Download attachment "bisect-f0e07fb6dd3d533b6ea2d91e721b68d696d4e64c-x86_64-randconfig-c9-1107-INFO:-possible-recursive-locking-detected--91126.log" of type "application/octet-stream" (31501 bytes)

View attachment "config-3.12.0-00784-gf0e07fb" of type "text/plain" (76193 bytes)

_______________________________________________
LKP mailing list
LKP@...ux.intel.com

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ