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] [day] [month] [year] [list]
Date:	Sat, 7 Mar 2015 07:43:46 +0800
From:	Fengguang Wu <fengguang.wu@...el.com>
To:	David Howells <dhowells@...hat.com>
Cc:	fengguang.wu@...el.com, LKP <lkp@...org>,
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [VFS] WARNING: CPU: 0 PID: 98 at fs/dcache.c:450 d_lru_shrink_move()

Hi David,

FYI, this is another warning type.

git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs file-pin-devel

commit 692ddb6c6808db7b70678b4cc3332781625c65f8
Author:     David Howells <dhowells@...hat.com>
AuthorDate: Thu Mar 5 14:09:22 2015 +0000
Commit:     David Howells <dhowells@...hat.com>
CommitDate: Fri Mar 6 15:25:07 2015 +0000

    VFS: Impose ordering on accesses of d_inode and d_flags
    
    Impose ordering on accesses of d_inode and d_flags to avoid the need to do
    this:
    
    	if (!dentry->d_inode || d_is_negative(dentry)) {
    
    when this:
    
    	if (d_is_negative(dentry)) {
    
    should suffice.
    
    This check is especially problematic if a dentry can have its type field set
    to something other than DENTRY_MISS_TYPE when d_inode is NULL (as in
    unionmount).
    
    What we really need to do is stick a write barrier between setting d_inode and
    setting d_flags and a read barrier between reading d_flags and reading
    d_inode.
    
    Signed-off-by: David Howells <dhowells@...hat.com>

+------------------------------------------------+------------+------------+------------+
|                                                | 1dc0c0acc4 | 692ddb6c68 | 44a96f6567 |
+------------------------------------------------+------------+------------+------------+
| boot_successes                                 | 1196       | 211        | 0          |
| boot_failures                                  | 4          | 89         | 12         |
| BUG:kernel_boot_crashed                        | 4          | 3          |            |
| WARNING:at_fs/dcache.c:#d_lru_shrink_move()    | 0          | 86         | 12         |
| WARNING:at_fs/dcache.c:#shrink_dentry_list()   | 0          | 86         | 12         |
| WARNING:at_fs/dcache.c:#dput()                 | 0          | 86         | 12         |
| BUG:kernel_test_hang                           | 0          | 53         | 3          |
| backtrace:do_mount                             | 0          | 86         | 12         |
| backtrace:SyS_mount                            | 0          | 86         | 12         |
| backtrace:do_unlinkat                          | 0          | 86         | 12         |
| backtrace:SyS_unlink                           | 0          | 86         | 12         |
| BUG:unable_to_handle_kernel                    | 0          | 27         | 5          |
| Oops                                           | 0          | 27         | 5          |
| EIP_is_at__lock_acquire                        | 0          | 27         | 5          |
| Kernel_panic-not_syncing:Fatal_exception       | 0          | 27         | 5          |
| EIP_is_at_ftrace_likely_update                 | 0          | 3          |            |
| Kernel_panic-not_syncing:softlockup:hung_tasks | 0          | 6          | 4          |
| EIP_is_at_delay_tsc                            | 0          | 2          |            |
| EIP_is_at_do_raw_spin_lock                     | 0          | 1          |            |
| EIP_is_at_paravirt_read_tsc                    | 0          | 0          | 1          |
| EIP_is_at_do_raw_spin_unlock                   | 0          | 0          | 1          |
| EIP_is_at_raw_spin_unlock                      | 0          | 0          | 1          |
| EIP_is_at_check_preemption_disabled            | 0          | 0          | 1          |
+------------------------------------------------+------------+------------+------------+

Starting Bootlog daemon: bootlogd: cannot find console device 4:64 under /dev
bootlogd.
[    6.712498] ------------[ cut here ]------------
[    6.713055] WARNING: CPU: 0 PID: 98 at fs/dcache.c:450 d_lru_shrink_move+0x6a/0xb1()
[    6.714164] Modules linked in:
[    6.714567] CPU: 0 PID: 98 Comm: mount Not tainted 4.0.0-rc1-00164-g692ddb6 #6
[    6.715437]  00000000 00000000 cf949e68 c9ee5008 00000000 00000000 cf949e84 c9c3a9bb
[    6.716561]  000001c2 c9d23284 d09b5f01 d09b5f40 00000001 cf949e94 c9c3aa45 00000009
[    6.717662]  00000000 cf949eb4 c9d23284 cf949f14 c0148120 00000001 d09b5fcc d09b5f98
[    6.718815] Call Trace:
[    6.719150]  [<c9ee5008>] dump_stack+0x4a/0x99
[    6.735286]  [<c9c3a9bb>] warn_slowpath_common+0x89/0xa0
[    6.735861]  [<c9d23284>] ? d_lru_shrink_move+0x6a/0xb1
[    6.736461]  [<c9c3aa45>] warn_slowpath_null+0x14/0x18
[    6.737024]  [<c9d23284>] d_lru_shrink_move+0x6a/0xb1
[    6.737659]  [<c9d2340e>] dentry_lru_isolate_shrink+0x2d/0x42
[    6.738421]  [<c9d233e1>] ? dentry_lru_isolate+0x116/0x116
[    6.739140]  [<c9cedb93>] __list_lru_walk_one+0x5f/0xf0
[    6.739873]  [<c9d233e1>] ? dentry_lru_isolate+0x116/0x116
[    6.740573]  [<c9cedc4f>] list_lru_walk_node+0x13/0x15
[    6.741211]  [<c9d2473d>] shrink_dcache_sb+0x37/0x57
[    6.741829]  [<c9d15544>] do_remount_sb+0x43/0x133
[    6.761547]  [<c9d2ca5c>] do_mount+0x286/0x7b6
[    6.762134]  [<c9d2d19a>] SyS_mount+0x71/0x97
[    6.762709]  [<c9eeb43e>] syscall_call+0x7/0x7
[    6.763286] ---[ end trace 89f8c9a7dc385d41 ]---
[    6.764346] ------------[ cut here ]------------

git bisect start 44a96f6567c25a2afcde6ceef6bbc48781d359ec 13a7a6ac0a11197edcd0f756a035f472b42cdf8b --
git bisect  bad b1c25bc14556efcdb7ffbc1cafbc16ef6249952f  # 00:53     14-      3  Merge 'dhowells-fs/file-pin' into devel-roam-rand-201503070003
git bisect good 269872b9c3258d66c0a87fc8f541b86aaa23497e  # 00:58     66+      0  0day base guard for 'devel-roam-rand-201503070003'
git bisect  bad f0386755652a0bef81e2980e0ba7147094383d7b  # 02:03     64-      2  VFS: (Scripted) Convert ->d_inode to d_inode() in fs/ncpfs/
git bisect  bad eed88f7305fd820023b18f62275b5a9d072ce81c  # 02:08     21-      1  VFS: (Scripted) Convert ->d_inode to d_inode() in fs/coda/
git bisect  bad 692ddb6c6808db7b70678b4cc3332781625c65f8  # 02:11     15-      3  VFS: Impose ordering on accesses of d_inode and d_flags
git bisect good ab14d7bf58701a71e4d5fa4a35ae1be314815507  # 03:00    300+      2  VFS: Fix up missed bits of reiserfs to use d_inode()
git bisect good abd729c4342d698950473b6be359e73111982c02  # 03:32    300+      2  VFS: Fix up some ->d_inode accesses in the chelsio driver
git bisect good dabd8775d19de85a0eeacc08804608100056755f  # 03:37    300+      0  NFS: Don't use d_inode as a variable name
git bisect good 1dc0c0acc45f01542179009e73e3965870917bd2  # 03:50    300+      2  VFS: Add owner-filesystem positive/negative dentry checks
# first bad commit: [692ddb6c6808db7b70678b4cc3332781625c65f8] VFS: Impose ordering on accesses of d_inode and d_flags
git bisect good 1dc0c0acc45f01542179009e73e3965870917bd2  # 03:57    900+      4  VFS: Add owner-filesystem positive/negative dentry checks
# extra tests with DEBUG_INFO
git bisect good 692ddb6c6808db7b70678b4cc3332781625c65f8  # 04:50    900+    900  VFS: Impose ordering on accesses of d_inode and d_flags
# extra tests on HEAD of linux-devel/devel-roam-rand-201503070003
git bisect  bad 44a96f6567c25a2afcde6ceef6bbc48781d359ec  # 04:50      0-     12  0day head guard for 'devel-roam-rand-201503070003'
# extra tests on tree/branch dhowells-fs/file-pin-devel
git bisect  bad 692ddb6c6808db7b70678b4cc3332781625c65f8  # 04:51      0-     89  VFS: Impose ordering on accesses of d_inode and d_flags
# extra tests on tree/branch linus/master
git bisect good 5f237425f352487a2e3fdef2f0557eedcd97d898  # 05:03    900+      4  Merge tag 'sound-4.0-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound
# extra tests on tree/branch next/master
git bisect good 28855005be1d6a0a041de46fd2e61da2b796abff  # 05:48    900+      0  Add linux-next specific files for 20150306


This script may reproduce the error.

----------------------------------------------------------------------------
#!/bin/bash

kernel=$1
initrd=yocto-minimal-i386.cgz

wget --no-clobber https://github.com/fengguang/reproduce-kernel-bug/raw/master/initrd/$initrd

kvm=(
	qemu-system-x86_64
	-cpu kvm64
	-enable-kvm
	-kernel $kernel
	-initrd $initrd
	-m 320
	-smp 1
	-net nic,vlan=1,model=e1000
	-net user,vlan=1
	-boot order=nc
	-no-reboot
	-watchdog i6300esb
	-rtc base=localtime
	-serial stdio
	-display none
	-monitor null 
)

append=(
	hung_task_panic=1
	earlyprintk=ttyS0,115200
	rd.udev.log-priority=err
	systemd.log_target=journal
	systemd.log_level=warning
	debug
	apic=debug
	sysrq_always_enabled
	rcupdate.rcu_cpu_stall_timeout=100
	panic=-1
	softlockup_panic=1
	nmi_watchdog=panic
	oops=panic
	load_ramdisk=2
	prompt_ramdisk=0
	console=ttyS0,115200
	console=tty0
	vga=normal
	root=/dev/ram0
	rw
	drbd.minor_count=8
)

"${kvm[@]}" --append "${append[*]}"
----------------------------------------------------------------------------

Thanks,
Fengguang

View attachment "dmesg-yocto-client9-12:20150307031534:i386-randconfig-r2-0306:4.0.0-rc1-00164-g692ddb6:6" of type "text/plain" (83448 bytes)

View attachment "config-4.0.0-rc1-00164-g692ddb6" of type "text/plain" (77907 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ