[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <201009212201.37372.arnd@arndb.de>
Date: Tue, 21 Sep 2010 22:01:37 +0200
From: Arnd Bergmann <arnd@...db.de>
To: Petr Vandrovec <vandrove@...cvut.cz>
Cc: Anton Altaparmakov <aia21@....ac.uk>, Jan Kara <jack@...e.cz>,
codalist@...a.cs.cmu.edu, autofs@...ux.kernel.org,
linux-media@...r.kernel.org, dri-devel@...ts.freedesktop.org,
Christoph Hellwig <hch@...radead.org>,
Mikulas Patocka <mikulas@...ax.karlin.mff.cuni.cz>,
Trond Myklebust <Trond.Myklebust@...app.com>,
Anders Larsen <al@...rsen.net>,
Evgeniy Dushistov <dushistov@...l.ru>,
Ingo Molnar <mingo@...e.hu>, netdev@...r.kernel.org,
Samuel Ortiz <samuel@...tiz.org>,
Arnaldo Carvalho de Melo <acme@...stprotocols.net>,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
Andrew Hendry <andrew.hendry@...il.com>
Subject: Re: Remaining BKL users, what to do
On Saturday 18 September 2010 01:21:41 Petr Vandrovec wrote:
>
> I'll try to come up with something for ncpfs.
Ok, good.
> Trivial lock replacement will open deadlock possibility when
> someone reads to page which is also mmaped from the same
> filesystem (like grep likes to do). BKL with its automated
> release on sleep helped (or papered over) a lot here.
Right, I was more or less expecting something like this.
So I guess this is some AB-BA deadlock with another mutex
or a call to flush_scheduled_work that is currently done
under the BKL?
There is still the possibility of just working around those
by adding explicit mutex_unlock() calls around those, which
is what I initially did in the tty subsystem. The better
long-term approach would obviously be to understand all of
the data structures that actually need locking and only
lock the actual accesses, but that may be more work than
you are willing to spend on it.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists