[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAHc6FU4m1M7Tv4scX0UxSiVBqkL=Vcw_z-R7SufL8k7Bw=qPOw@mail.gmail.com>
Date: Wed, 17 Jun 2020 00:36:13 +0200
From: Andreas Gruenbacher <agruenba@...hat.com>
To: Matthew Wilcox <willy@...radead.org>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
linux-xfs@...r.kernel.org, Junxiao Bi <junxiao.bi@...cle.com>,
William Kucharski <william.kucharski@...cle.com>,
Joseph Qi <joseph.qi@...ux.alibaba.com>,
John Hubbard <jhubbard@...dia.com>,
LKML <linux-kernel@...r.kernel.org>,
linux-f2fs-devel@...ts.sourceforge.net,
cluster-devel <cluster-devel@...hat.com>,
Linux-MM <linux-mm@...ck.org>, ocfs2-devel@....oracle.com,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
linux-ext4 <linux-ext4@...r.kernel.org>,
linux-erofs@...ts.ozlabs.org, Christoph Hellwig <hch@....de>,
linux-btrfs@...r.kernel.org,
Steven Whitehouse <swhiteho@...hat.com>,
Bob Peterson <rpeterso@...hat.com>
Subject: Re: [Cluster-devel] [PATCH v11 16/25] fs: Convert mpage_readpages to mpage_readahead
Am Mi., 15. Apr. 2020 um 23:39 Uhr schrieb Matthew Wilcox <willy@...radead.org>:
> From: "Matthew Wilcox (Oracle)" <willy@...radead.org>
>
> Implement the new readahead aop and convert all callers (block_dev,
> exfat, ext2, fat, gfs2, hpfs, isofs, jfs, nilfs2, ocfs2, omfs, qnx6,
> reiserfs & udf). The callers are all trivial except for GFS2 & OCFS2.
This patch leads to an ABBA deadlock in xfstest generic/095 on gfs2.
Our lock hierarchy is such that the inode cluster lock ("inode glock")
for an inode needs to be taken before any page locks in that inode's
address space. However, the readahead address space operation is
called with the pages already locked. When we try to grab the inode
glock inside gfs2_readahead, we'll deadlock with processes that are
holding that inode glock and trying to lock one of those same pages.
One possible solution is to use a trylock on the glock in
gfs2_readahead, and to give up the readahead in case of a locking
conflict. I have no idea how this is going to affect performance.
Any other ideas?
Thanks,
Andreas
Powered by blists - more mailing lists