[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aa5ac560-1dcc-45b6-8e24-0e9cb59feb18@linux.alibaba.com>
Date: Fri, 16 Aug 2024 13:12:35 +0800
From: Gao Xiang <hsiangkao@...ux.alibaba.com>
To: Andrew Morton <akpm@...ux-foundation.org>
Cc: "Huang, Ying" <ying.huang@...el.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, Gao Xiang <xiang@...nel.org>
Subject: Re: [PATCH] mm/migrate: fix deadlock in migrate_pages_batch() on
large folios
Hi Andrew,
On 2024/8/16 13:02, Andrew Morton wrote:
> On Mon, 29 Jul 2024 09:58:02 +0800 Gao Xiang <hsiangkao@...ux.alibaba.com> wrote:
>
>>> For the fix, I think that we should still respect migrate_mode because
>>> users may prefer migration success over blocking.
>>>
>>> @@ -1492,11 +1492,17 @@ static int unmap_and_move_huge_page(new_folio_t get_new_folio,
>>> return rc;
>>> }
>>>
>>> -static inline int try_split_folio(struct folio *folio, struct list_head *split_folios)
>>> +static inline int try_split_folio(struct folio *folio, struct list_head *split_folios,
>>> + enum migrate_mode mode)
>>> {
>>> int rc;
>>>
>>> - folio_lock(folio);
>>> + if (mode == MIGRATE_ASYNC) {
>>> + if (!folio_trylock(folio))
>>> + return -EAGAIN;
>>> + } else {
>>> + folio_lock(folio);
>>> + }
>>> rc = split_folio_to_list(folio, split_folios);
>>> folio_unlock(folio);
>>> if (!rc)
>>
>> Okay, yeah it looks better since it seems I missed the fallback
>> part in migrate_pages_sync().
>>
>> Let me send the next version to follow your advice, thanks.
>
> The author seems to have disappeared. Should we merge this as-is or
> does someone want to take a look at developing a v2?
I've replied your email last week, I'm not sure why it has not
been addressed?
https://lore.kernel.org/linux-mm/20240729021306.398286-1-hsiangkao@linux.alibaba.com/
The patch in your queue is already v2? No?
Thanks,
Gao Xiang
Powered by blists - more mailing lists