Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754234Ab0AQSD4 (ORCPT ); Sun, 17 Jan 2010 13:03:56 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751812Ab0AQSDz (ORCPT ); Sun, 17 Jan 2010 13:03:55 -0500 Received: from isilmar.linta.de ([213.133.102.198]:51504 "EHLO linta.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750743Ab0AQSDy (ORCPT ); Sun, 17 Jan 2010 13:03:54 -0500 Date: Sun, 17 Jan 2010 19:03:51 +0100 From: Dominik Brodowski To: "Eric W. Biederman" Cc: Ming Lei , Greg KH , Linus Torvalds , KOSAKI Motohiro , Borislav Petkov , David Airlie , Linux Kernel Mailing List , Al Viro , Tejun Heo , Peter Zijlstra , Ingo Molnar , linux-pcmcia@lists.infradead.org Subject: Re: [PATCH] sysfs: Add lockdep annotations for the sysfs active reference Message-ID: <20100117180351.GA17688@isilmar.linta.de> Mail-Followup-To: "Eric W. Biederman" , Ming Lei , Greg KH , Linus Torvalds , KOSAKI Motohiro , Borislav Petkov , David Airlie , Linux Kernel Mailing List , Al Viro , Tejun Heo , Peter Zijlstra , Ingo Molnar , linux-pcmcia@lists.infradead.org References: <4B3EB687.7000005@kernel.org> <20100118002647.35035e77@tom-lei> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.13 (2006-08-11) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2044 Lines: 50 Hey, On Sun, Jan 17, 2010 at 09:18:34AM -0800, Eric W. Biederman wrote: > Ming Lei writes: > > > On Sat, 02 Jan 2010 13:37:12 -0800 > > ebiederm@xmission.com (Eric W. Biederman) wrote: > > > >> > >> Holding locks over device_del -> kobject_del -> sysfs_deactivate can > >> cause deadlocks if those same locks are grabbed in sysfs show or store > >> methods. > >> > >> The I model s_active count + completion as a sleeping read/write lock. > >> I describe to lockdep sysfs_get_active as a read_trylock, > >> sysfs_put_active as a read_unlock, and sysfs_deactivate as a > >> write_lock and write_unlock pair. This seems to capture the essence > >> for purposes of finding deadlocks, and in my testing gives finds real > >> issues and ignores non-issues. > >> > >> This brings us back to holding locks over kobject_del is a problem > >> that ideally we should find a way of addressing, but at least lockdep > >> can tell us about the problems instead of requiring developers to > >> debug rare strange system deadlocks, that happen when sysfs files are > >> removed while being written to. > > > > The model has hit a possible deadlock in pcmcia, and the lockdep warning > > comes when I unplug my wlan card from pcmcia slot. > > > > Looks like socket->skt_mutex is held in remove path, and it is also > > grabbed in .stor method. > > > Looking a little closer this is simultaneously a legitimate problem > and also a false positive. > > This is only legitimate if you add/remove a cardbus bridge, plugged into > another cardbus bridge, which I think is unlikely but physically possible. Unfortunately, it is not a false positive, as removing a PCMCIA device racing with "pccardctl eject" seems to trigger this path as well. Patch is being prepared... Best, Dominik -- 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/