[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170823023649.GD10329@jagdpanzerIV.localdomain>
Date: Wed, 23 Aug 2017 11:36:49 +0900
From: Sergey Senozhatsky <sergey.senozhatsky.work@...il.com>
To: Byungchul Park <byungchul.park@....com>
Cc: Bart Van Assche <Bart.VanAssche@....com>, peterz@...radead.org,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
"sergey.senozhatsky.work@...il.com"
<sergey.senozhatsky.work@...il.com>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"axboe@...nel.dk" <axboe@...nel.dk>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"sfr@...b.auug.org.au" <sfr@...b.auug.org.au>,
"linux-next@...r.kernel.org" <linux-next@...r.kernel.org>,
kernel-team@....com
Subject: Re: possible circular locking dependency detected [was: linux-next:
Tree for Aug 22]
On (08/23/17 09:03), Byungchul Park wrote:
[..]
aha, ok
> The report is talking about the following lockup:
>
> A work in a worker A task work on exit to user
> ------------------ ---------------------------
> mutex_lock(&bdev->bd_mutex)
> mutext_lock(&bdev->bd_mutex)
> blk_execute_rq()
> wait_for_completion_io_timeout(&A)
> complete(&A)
>
> Is this impossible?
I was really confused how this "unlock" may lead to a deadlock
> > > other info that might help us debug this:
> > > Possible unsafe locking scenario by crosslock:
> > > CPU0 CPU1
> > > ---- ----
> > > lock(&bdev->bd_mutex);
> > > lock((complete)&wait#2);
> > > lock(&bdev->bd_mutex);
> > > unlock((complete)&wait#2);
any chance the report can be improved? mention timeout, etc?
// well, if this functionality will stay.
p.s.
Bart Van Assche, thanks for Cc-ing Park Byungchul, I was really
sure I didn't enabled the cross-release, but apparently I was wrong:
CONFIG_LOCKDEP_CROSSRELEASE=y
CONFIG_LOCKDEP_COMPLETIONS=y
-ss
Powered by blists - more mailing lists