[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20240728125005.c1171fa2d1beb6c1fe867d48@linux-foundation.org>
Date: Sun, 28 Jul 2024 12:50:05 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Gao Xiang <hsiangkao@...ux.alibaba.com>
Cc: Huang Ying <ying.huang@...el.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] mm/migrate: fix deadlock in migrate_pages_batch() on
large folios
On Sun, 28 Jul 2024 23:49:13 +0800 Gao Xiang <hsiangkao@...ux.alibaba.com> wrote:
> Currently, migrate_pages_batch() can lock multiple locked folios
> with an arbitrary order. Although folio_trylock() is used to avoid
> deadlock as commit 2ef7dbb26990 ("migrate_pages: try migrate in batch
> asynchronously firstly") mentioned, it seems try_split_folio() is
> still missing.
Am I correct in believing that folio_lock() doesn't have lockdep coverage?
> It was found by compaction stress test when I explicitly enable EROFS
> compressed files to use large folios, which case I cannot reproduce with
> the same workload if large folio support is off (current mainline).
> Typically, filesystem reads (with locked file-backed folios) could use
> another bdev/meta inode to load some other I/Os (e.g. inode extent
> metadata or caching compressed data), so the locking order will be:
Which kernels need fixing. Do we expect that any code paths in 6.10 or
earlier are vulnerable to this?
Powered by blists - more mailing lists