From: Chris Mason <chris.mason@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jens Axboe <jens.axboe@oracle.com>,
linux-kernel@vger.kernel.org, linux-aio@kvack.org,
reiserfs-dev@namesys.com, "Vladimir V. Saveliev" <vs@namesys.com>,
linux-mm@kvack.org
Subject: Re: dio_get_page() lockdep complaints
Date: Thu, 19 Apr 2007 10:36:50 -0400 [thread overview]
Message-ID: <20070419143650.GF32720@think.oraclecorp.com> (raw)
In-Reply-To: <20070419010142.5b7b00cd.akpm@linux-foundation.org>
On Thu, Apr 19, 2007 at 01:01:42AM -0700, Andrew Morton wrote:
> On Thu, 19 Apr 2007 09:38:30 +0200 Jens Axboe <jens.axboe@oracle.com> wrote:
>
> > Hi,
> >
> > Doing some testing on CFQ, I ran into this 100% reproducible report:
> >
> > =======================================================
> > [ INFO: possible circular locking dependency detected ]
> > 2.6.21-rc7 #5
> > -------------------------------------------------------
> > fio/9741 is trying to acquire lock:
> > (&mm->mmap_sem){----}, at: [<b018cb34>] dio_get_page+0x54/0x161
> >
> > but task is already holding lock:
> > (&inode->i_mutex){--..}, at: [<b038c6e5>] mutex_lock+0x1c/0x1f
> >
> > which lock already depends on the new lock.
> >
>
> This is the correct ranking: i_mutex outside mmap_sem.
[ ... ]
> But here reiserfs is taking i_mutex in its file_operations.release(), which
> can be called under mmap_sem.
>
> Vladimir's recent de14569f94513279e3d44d9571a421e9da1759ae. "resierfs:
> avoid tail packing if an inode was ever mmapped" comes real close to this
> code, but afaict it did not cause this bug.
>
> I can't think of anything which we've done in the 2.6.21 cycle which would have
> caused this to start happening. Odd.
In this case, reiserfs is taking i_mutex to safely discard the
preallocation blocks. The best solution would probably be to just put
in a preallocation mutex other than i_sem (even i_mmap would probably
work).
This shouldn't be a new regression, the file_release prelloc stuff
hasn't changed in ages.
-chris
WARNING: multiple messages have this Message-ID (diff)
From: Chris Mason <chris.mason@oracle.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jens Axboe <jens.axboe@oracle.com>,
linux-kernel@vger.kernel.org, linux-aio@kvack.org,
reiserfs-dev@namesys.com, "Vladimir V. Saveliev" <vs@namesys.com>,
linux-mm@kvack.org
Subject: Re: dio_get_page() lockdep complaints
Date: Thu, 19 Apr 2007 10:36:50 -0400 [thread overview]
Message-ID: <20070419143650.GF32720@think.oraclecorp.com> (raw)
In-Reply-To: <20070419010142.5b7b00cd.akpm@linux-foundation.org>
On Thu, Apr 19, 2007 at 01:01:42AM -0700, Andrew Morton wrote:
> On Thu, 19 Apr 2007 09:38:30 +0200 Jens Axboe <jens.axboe@oracle.com> wrote:
>
> > Hi,
> >
> > Doing some testing on CFQ, I ran into this 100% reproducible report:
> >
> > =======================================================
> > [ INFO: possible circular locking dependency detected ]
> > 2.6.21-rc7 #5
> > -------------------------------------------------------
> > fio/9741 is trying to acquire lock:
> > (&mm->mmap_sem){----}, at: [<b018cb34>] dio_get_page+0x54/0x161
> >
> > but task is already holding lock:
> > (&inode->i_mutex){--..}, at: [<b038c6e5>] mutex_lock+0x1c/0x1f
> >
> > which lock already depends on the new lock.
> >
>
> This is the correct ranking: i_mutex outside mmap_sem.
[ ... ]
> But here reiserfs is taking i_mutex in its file_operations.release(), which
> can be called under mmap_sem.
>
> Vladimir's recent de14569f94513279e3d44d9571a421e9da1759ae. "resierfs:
> avoid tail packing if an inode was ever mmapped" comes real close to this
> code, but afaict it did not cause this bug.
>
> I can't think of anything which we've done in the 2.6.21 cycle which would have
> caused this to start happening. Odd.
In this case, reiserfs is taking i_mutex to safely discard the
preallocation blocks. The best solution would probably be to just put
in a preallocation mutex other than i_sem (even i_mmap would probably
work).
This shouldn't be a new regression, the file_release prelloc stuff
hasn't changed in ages.
-chris
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-04-19 14:38 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-19 7:38 dio_get_page() lockdep complaints Jens Axboe
2007-04-19 8:01 ` Andrew Morton
2007-04-19 8:01 ` Andrew Morton
2007-04-19 8:01 ` Jens Axboe
2007-04-19 8:01 ` Jens Axboe
2007-04-19 8:25 ` Andrew Morton
2007-04-19 8:25 ` Andrew Morton
2007-04-19 8:34 ` Jens Axboe
2007-04-19 8:34 ` Jens Axboe
2007-04-19 12:43 ` Vladimir V. Saveliev
2007-04-19 12:43 ` Vladimir V. Saveliev
2007-04-19 12:49 ` Jens Axboe
2007-04-19 12:52 ` Jens Axboe
2007-04-19 12:52 ` Jens Axboe
2007-04-19 13:53 ` Roland Dreier
2007-04-19 13:53 ` Roland Dreier
2007-04-19 14:20 ` Jens Axboe
2007-04-19 14:20 ` Jens Axboe
2007-04-19 14:15 ` Jens Axboe
2007-04-19 14:15 ` Jens Axboe
2007-04-19 14:55 ` Vladimir V. Saveliev
2007-04-19 14:55 ` Vladimir V. Saveliev
2007-04-19 14:57 ` Vladimir V. Saveliev
2007-04-19 14:57 ` Vladimir V. Saveliev
2007-04-19 16:42 ` Andrew Morton
2007-04-19 16:42 ` Andrew Morton
2007-04-19 14:36 ` Chris Mason [this message]
2007-04-19 14:36 ` Chris Mason
2007-11-09 17:02 ` Peter Zijlstra
2007-11-09 17:30 ` Zach Brown
2007-11-09 17:45 ` Trond Myklebust
2007-11-09 17:48 ` Zach Brown
2007-11-09 18:01 ` Chris Mason
2007-11-09 18:35 ` Zach Brown
2007-11-09 18:53 ` Chris Mason
2007-11-09 18:57 ` Chris Mason
2007-11-09 19:16 ` Zach Brown
2007-11-09 19:35 ` Chris Mason
2007-11-11 19:49 ` Peter Zijlstra
2007-11-11 19:49 ` Peter Zijlstra
2007-11-12 8:45 ` Martin Schwidefsky
2007-11-12 8:45 ` Martin Schwidefsky
2007-11-12 9:27 ` Peter Zijlstra
2007-11-12 9:27 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070419143650.GF32720@think.oraclecorp.com \
--to=chris.mason@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=jens.axboe@oracle.com \
--cc=linux-aio@kvack.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=reiserfs-dev@namesys.com \
--cc=vs@namesys.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.