Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965408AbWAGCkM (ORCPT ); Fri, 6 Jan 2006 21:40:12 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S965411AbWAGCkM (ORCPT ); Fri, 6 Jan 2006 21:40:12 -0500 Received: from gateway-1237.mvista.com ([12.44.186.158]:29178 "EHLO hermes.mvista.com") by vger.kernel.org with ESMTP id S965409AbWAGCkK (ORCPT ); Fri, 6 Jan 2006 21:40:10 -0500 In-Reply-To: References: Mime-Version: 1.0 (Apple Message framework v619) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: Content-Transfer-Encoding: 7bit Cc: , , linux-kernel@vger.kernel.org, Ingo Molnar From: david singleton Subject: robust futex deadlock detection patch Date: Fri, 6 Jan 2006 18:40:09 -0800 To: Esben Nielsen X-Mailer: Apple Mail (2.619) Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1417 Lines: 39 Here is a new patch that provides both futex deadlock detection and prevents ill-behaved and malicious apps from deadlocking the kernel through the robust futex interface. http://source.mvista.com/~dsingleton/patch-2.6.15-rt2-rf1 Deadlock detection is done 'up front' for both POSIX and robust pthread_mutexes. Non-recursive POSIX mutexes will hang if deadlocked, as defined by the POSIX spec. The wait channel they are hung on is 'futex_deadlock'. This wait channel makes it easy to spot that your POSIX app has deadlocked itself via the 'ps' command. Robust futexes will have -EDEADLK returned to them since there is no POSIX specification for robust mutexes, yet, and returning -EDEADLK is more in the spirit of robustness. Robust mutexes are cleaned up by the kernel after a thread dies and they also report to the app if it is deadlocking itself. Deadlock detection is something I have wanted to provide for both debug and production kernels for a while. It was previously available through DEBUG_DEADLOCKS. I needed to add the deadlock dection code for both production and debug kernels to prevent applications hanging the kernel. David - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/