From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752288Ab1GOVEY (ORCPT ); Fri, 15 Jul 2011 17:04:24 -0400 Received: from mx1.redhat.com ([209.132.183.28]:28796 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752018Ab1GOVEX (ORCPT ); Fri, 15 Jul 2011 17:04:23 -0400 Date: Fri, 15 Jul 2011 17:04:20 -0400 From: Dave Jones To: Linux Kernel Cc: davidel@xmailserver.org Subject: recursive locking: epoll. Message-ID: <20110715210420.GA22551@redhat.com> Mail-Followup-To: Dave Jones , Linux Kernel , davidel@xmailserver.org References: <4E1FF63F.4040704@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E1FF63F.4040704@gmail.com> 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 We just had a Fedora user report this lockdep trace. ============================================= [ INFO: possible recursive locking detected ] 3.0-0.rc7.git0.1.fc16.i686 #1 --------------------------------------------- systemd-logind/651 is trying to acquire lock: (&ep->mtx){+.+.+.}, at: [] ep_scan_ready_list+0x32/0x154 but task is already holding lock: (&ep->mtx){+.+.+.}, at: [] sys_epoll_ctl+0x103/0x481 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&ep->mtx); lock(&ep->mtx); *** DEADLOCK *** May be due to missing lock nesting notation 2 locks held by systemd-logind/651: #0: (epmutex){+.+.+.}, at: [] sys_epoll_ctl+0xbe/0x481 #1: (&ep->mtx){+.+.+.}, at: [] sys_epoll_ctl+0x103/0x481 stack backtrace: Pid: 651, comm: systemd-logind Not tainted 3.0-0.rc7.git0.1.fc16.i686 #1 Call Trace: [] ? printk+0x2d/0x2f [] __lock_acquire+0x811/0xb63 [] ? sched_clock+0x8/0xb [] ? sched_clock_local+0x10/0x18b [] ? ep_scan_ready_list+0x32/0x154 [] lock_acquire+0xad/0xe4 [] ? ep_scan_ready_list+0x32/0x154 [] __mutex_lock_common+0x49/0x2ee [] ? ep_scan_ready_list+0x32/0x154 [] ? __might_sleep+0x29/0xfb [] ? mark_lock+0x26/0x1f2 [] mutex_lock_nested+0x43/0x49 [] ? ep_scan_ready_list+0x32/0x154 [] ep_scan_ready_list+0x32/0x154 [] ? ep_remove+0x9b/0x9b [] ep_poll_readyevents_proc+0x14/0x16 [] ep_call_nested.constprop.2+0x6d/0x9a [] ? ep_scan_ready_list+0x154/0x154 [] ep_eventpoll_poll+0x45/0x55 [] sys_epoll_ctl+0x1ff/0x481 [] ? ep_send_events_proc+0xd5/0xd5 [] syscall_call+0x7/0xb