Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934146AbcCHATm (ORCPT ); Mon, 7 Mar 2016 19:19:42 -0500 Received: from peace.netnation.com ([204.174.223.2]:46530 "EHLO peace.netnation.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933413AbcCHATQ (ORCPT ); Mon, 7 Mar 2016 19:19:16 -0500 X-Greylist: delayed 1171 seconds by postgrey-1.27 at vger.kernel.org; Mon, 07 Mar 2016 19:19:16 EST Date: Mon, 7 Mar 2016 15:59:44 -0800 From: Simon Kirby To: Andi Kleen Cc: linux-kernel@vger.kernel.org Subject: Hung task detector versus NFS (TASK_KILLABLE) Message-ID: <20160307235944.GD15986@hostway.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1202 Lines: 31 Hello! Back in 2008, you committed 316d9679f33caf7e683471647d1472bfe133d858 which changed softlockup.c (now moved to hung_task.c) to avoid logging a spew of soft lockup warnings when the Ethernet cable is unplugged with active NFS mounts. Meanwhile, I've been seeing hung task warnings like this for years, so I wondered what the deal is. It seems there are VFS paths that can enter uninterruptible sleep as result of locks held in interruptible sleep. For example, I can reproduce hung task warnings by firewalling NFS, then "cat a" twice: the second hangs in mutex_lock() from path_openat(), which then spews a hung task warning. I write this because I would actually find it useful to see the original backtrace, even if it is interruptible, not just the collateral damage. Since the "skipping" of NFS is basically incomplete anyway, how big a deal is this "feature"? Would anybody object if we just returned this to anything blocked? The lines in question these days are here in kernel/hung_task.c: /* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */ if (t->state == TASK_UNINTERRUPTIBLE) check_hung_task(t, timeout); It used to be t->state & TASK_UNINTERRUPTIBLE. Simon-