From: Jarod Wilson <jarod@redhat.com>
To: Ming Lei <ming.lei@canonical.com>
Cc: Jens Axboe <axboe@kernel.dk>,
linux-kernel@vger.kernel.org,
Christoph Hellwig <hch@infradead.org>, Tejun Heo <tj@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
David Herrmann <dh.herrmann@gmail.com>,
Markus Pargmann <mpa@pengutronix.de>,
nbd-general@lists.sourceforge.net,
Stefan Haberland <stefan.haberland@de.ibm.com>,
Sebastian Ott <sebott@linux.vnet.ibm.com>,
Fabian Frederick <fabf@skynet.be>,
Peter Zijlstra <peterz@infradead.org>,
linux-s390@vger.kernel.org
Subject: Re: [PATCH v1 0/7] block: reread partitions changes and fix for loop
Date: Wed, 8 Apr 2015 12:52:31 -0400 [thread overview]
Message-ID: <20150408165230.GL14217@redhat.com> (raw)
In-Reply-To: <1428508384-29008-1-git-send-email-ming.lei@canonical.com>
On Wed, Apr 08, 2015 at 11:52:57PM +0800, Ming Lei wrote:
> Hi Guys,
>
> Recently there are several reports about loop partition scanning
> failure[1][2].
>
> For loop, the root cause is one ABBA and one AA lock dependency
> issue, and the two are fixed by patch 2 and patch 3 each.
>
> Another reason is from the trylock in blkdev_reread_part(), which
> may cause partition scanning failure too sometimes when another task
> is holding the bd_mutex. In the discussion[1], both Tejun and Christoph
> suggests to replace the trylock with mutex_lock in blkdev_reread_part(),
> also Christoph suggests to export blkdev_reread_part.
>
> Following the discussion, this patchset exports blkdev_reread_part(), and
> introduces __blkdev_reread_part() for fixing loop's AA lock issue.
> Then ioctl_by_bdev(BLKRRPART) in loop, nbd and dasd is replaced with
> blkdev_reread_part(). In the last patch, trylock in blkdev_reread_part()
> is replaced with mutex_lock, and some analysis is provided about the conversion.
>
> V1:
> - introduce __blkdev_reread_part(), and use lockdep_assert_held()(1/7)
> - replace lo_open_mutex with atomic reference count, plus freezing queue(2/7)
> - add comment about detecting release path(3/7)
> - remove dead code in dasd(7/7)
I tinkered with the atomic replacement and added the lockdep assert on my
end as well, and have been testing. My end results were nearly identical
to this, and testing for my particular use case still looks good.
For the set:
Tested-by: Jarod Wilson <jarod@redhat.com>
Acked-by: Jarod Wilson <jarod@redhat.com>
Thanks much!
--
Jarod Wilson
jarod@redhat.com
prev parent reply other threads:[~2015-04-08 16:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-08 15:52 [PATCH v1 0/7] block: reread partitions changes and fix for loop Ming Lei
2015-04-08 15:52 ` [PATCH v1 1/7] block: export blkdev_reread_part() and __blkdev_reread_part() Ming Lei
2015-04-08 15:52 ` [PATCH v1 2/7] block: loop: don't hold lo_ctl_mutex in lo_open Ming Lei
2015-04-08 15:53 ` [PATCH v1 3/7] block: loop: fix another reread part failure Ming Lei
2015-04-08 15:53 ` [PATCH v1 4/7] block: nbd: convert to blkdev_reread_part() Ming Lei
2015-04-08 15:53 ` [PATCH v1 5/7] block: dasd_genhd: convert to blkdev_reread_part Ming Lei
2015-04-08 15:53 ` [PATCH v1 6/7] block: replace trylock with mutex_lock in blkdev_reread_part() Ming Lei
2015-04-08 15:53 ` [PATCH v1 7/7] s390/block/dasd: remove obsolete while -EBUSY loop Ming Lei
2015-04-08 17:32 ` Sebastian Ott
2015-04-08 18:00 ` Jarod Wilson
2015-04-09 1:06 ` Ming Lei
2015-04-08 16:52 ` Jarod Wilson [this message]
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=20150408165230.GL14217@redhat.com \
--to=jarod@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=dh.herrmann@gmail.com \
--cc=fabf@skynet.be \
--cc=hch@infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=ming.lei@canonical.com \
--cc=mpa@pengutronix.de \
--cc=nbd-general@lists.sourceforge.net \
--cc=peterz@infradead.org \
--cc=sebott@linux.vnet.ibm.com \
--cc=stefan.haberland@de.ibm.com \
--cc=tj@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox