From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: fs/dcache.c - BUG: soft lockup - CPU#5 stuck for 22s! [systemd-udevd:1667] Date: Mon, 26 May 2014 17:42:47 +0100 Message-ID: <20140526164247.GO18016@ZenIV.linux.org.uk> References: <20140526093741.GA1765@lahna.fi.intel.com> <20140526135746.GM18016@ZenIV.linux.org.uk> <20140526142948.GA1685@lahna.fi.intel.com> <20140526152703.GN18016@ZenIV.linux.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-kernel@vger.kernel.org, Linus Torvalds , Miklos Szeredi , linux-fsdevel@vger.kernel.org To: Mika Westerberg Return-path: Content-Disposition: inline In-Reply-To: <20140526152703.GN18016@ZenIV.linux.org.uk> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Mon, May 26, 2014 at 04:27:03PM +0100, Al Viro wrote: > Do these livelocks keep happening indefinitely, once triggered? IOW, > is that a buggered state of dcache and/or kernfs, or is it a transient pileup > that happens when we invalidate a subtree there? Could you slap if (dentry->d_sb->s_magic == SYSFS_MAGIC) { printk(KERN_INFO "killing %p4d", dentry); WARN_ON(1); } in the very beginning of dentry_kill(), if (dentry->d_sb->s_magic == SYSFS_MAGIC) { printk(KERN_INFO "invalidate %p4d", dentry); WARN_ON(1); } right after the if (!dentry->d_inode) { d_drop(dentry); goto out; } in check_submounts_and_drop(), reproduce that shite and see what gets into the log between USB disconnect and soft lockup? Warning: it will produce an obscene amount of output. If it gets _really_ excessive (as in "can't even get through the boot without drowning in syslog traffic"), we could add a sysctl turning those on, but let's try and see if it's survivable in that form first...