From: Dave Chinner <david@fromorbit.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Jan Kara <jack@suse.cz>,
Dave Hansen <dave.hansen@linux.intel.com>,
Al Viro <viro@zeniv.linux.org.uk>,
Linus Torvalds <torvalds@linux-foundation.org>,
Paul McKenney <paulmck@linux.vnet.ibm.com>,
Peter Zijlstra <peterz@infradead.org>,
Daniel Wagner <daniel.wagner@bmw-carit.de>,
Davidlohr Bueso <dave@stgolabs.net>,
Ingo Molnar <mingo@redhat.com>, Tejun Heo <tj@kernel.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFC 0/4] change sb_writers to use percpu_rw_semaphore
Date: Fri, 17 Jul 2015 11:27:42 +1000 [thread overview]
Message-ID: <20150717012742.GV3902@dastard> (raw)
In-Reply-To: <20150716173256.GA17753@redhat.com>
On Thu, Jul 16, 2015 at 07:32:56PM +0200, Oleg Nesterov wrote:
>
> #ifdef CONFIG_LOCKDEP
> /*
> * We want lockdep to tell us about possible deadlocks with freezing but
> * it's it bit tricky to properly instrument it. Getting a freeze protection
> * works as getting a read lock but there are subtle problems. XFS for example
> * gets freeze protection on internal level twice in some cases, which is OK
Sorry, I've missed something here - where is XFS nesting
sb_start_intwrite() calls? XFS only has a call to
sb_start_intwrite() in xfs_trans_alloc() and an open coded
equivalent in xfs_iomap_write_unwritten(). However, we cannot create
nested transaction contexts as doing so is *guaranteed to deadlock
the journal*. (e.g. why we use PF_FSTRANS to trigger GFP_NOFS
allocation as it prevents direct memory reclaim from causing nested
transactions.) Hence if we taking multiple FREEZE_FS level
references at a time then there is a bug that needs fixing....
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
next prev parent reply other threads:[~2015-07-17 1:27 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-13 21:25 [PATCH RFC 0/4] change sb_writers to use percpu_rw_semaphore Oleg Nesterov
2015-07-13 21:25 ` [PATCH 1/4] change get_super_thawed() to use sb_start/end_write() Oleg Nesterov
2015-07-14 10:49 ` Jan Kara
2015-07-14 13:38 ` Oleg Nesterov
2015-07-13 21:25 ` [PATCH 2/4] introduce sb_unlock_frozen() Oleg Nesterov
2015-07-13 21:25 ` [PATCH 3/4] introduce sb_lockdep_release() Oleg Nesterov
2015-07-13 21:25 ` [PATCH 4/4] change sb_writers to use percpu_rw_semaphore Oleg Nesterov
2015-07-13 22:23 ` [PATCH RFC 0/4] " Dave Chinner
2015-07-13 22:42 ` Oleg Nesterov
2015-07-13 23:14 ` Dave Chinner
2015-07-14 10:48 ` Jan Kara
2015-07-14 13:37 ` Oleg Nesterov
2015-07-14 21:17 ` Dave Hansen
2015-07-14 21:22 ` Oleg Nesterov
2015-07-14 21:41 ` Dave Hansen
2015-07-15 6:47 ` Jan Kara
2015-07-15 18:19 ` Oleg Nesterov
2015-07-16 7:26 ` Jan Kara
2015-07-16 7:30 ` Dave Hansen
2015-07-16 8:55 ` Jan Kara
2015-07-16 17:32 ` Oleg Nesterov
2015-07-17 1:27 ` Dave Chinner [this message]
2015-07-17 17:31 ` Oleg Nesterov
2015-07-17 22:40 ` Dave Chinner
2015-07-20 8:26 ` Jan Kara
2015-07-22 21:09 ` Oleg Nesterov
2015-07-20 16:23 ` Oleg Nesterov
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=20150717012742.GV3902@dastard \
--to=david@fromorbit.com \
--cc=daniel.wagner@bmw-carit.de \
--cc=dave.hansen@linux.intel.com \
--cc=dave@stgolabs.net \
--cc=jack@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=oleg@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=viro@zeniv.linux.org.uk \
/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.