From: Chengming Zhou <chengming.zhou@linux.dev>
To: Nhat Pham <nphamcs@gmail.com>
Cc: hannes@cmpxchg.org, yosryahmed@google.com,
akpm@linux-foundation.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org,
Chengming Zhou <zhouchengming@bytedance.com>
Subject: Re: [PATCH 1/2] mm/zswap: don't return LRU_SKIP if we have dropped lru lock
Date: Sat, 27 Jan 2024 22:37:07 +0800 [thread overview]
Message-ID: <22e52669-2cf5-4375-9cb8-82d2f5faadc6@linux.dev> (raw)
In-Reply-To: <CAKEwX=NzDY57n6ogx6=VaaEx8j_Jtvz5BeuMDAW-KuDXmsyQFw@mail.gmail.com>
On 2024/1/27 02:01, Nhat Pham wrote:
> On Fri, Jan 26, 2024 at 12:31 AM <chengming.zhou@linux.dev> wrote:
>>
>> From: Chengming Zhou <zhouchengming@bytedance.com>
>>
>> LRU_SKIP can only be returned if we don't ever dropped lru lock, or
>> we need to return LRU_RETRY to restart from the head of lru list.
>
> Ooops. You're right! I just double checked and only LRU_REMOVED_RETRY
> and LRU_RETRY indicate we might have dropped the lock. My bad.
>
>>
>> Actually we may need to introduce another LRU_STOP to really terminate
>> the ongoing shrinking scan process, when we encounter a warm page
>
> Yup. This is what I was trying (and failing) to do. To be honest, this
> needs to be even stronger: short-circuit ALL concurrent/ongoing zswap
> shrinker scan processes that are touching this memcg (as they will
> also shrink into warmer regions going forward). But that's a bit more
> engineering to do. LRU_STOP, which stops this scan process, would be a
> good place to start.
Good suggestion, will look into that more later.
>
>> already in the swap cache. The current list_lru implementation
>> doesn't have this function to early break from __list_lru_walk_one.
>>
>> Fixes: b5ba474f3f51 ("zswap: shrink zswap pool based on memory pressure")
>> Signed-off-by: Chengming Zhou <zhouchengming@bytedance.com>
>
> Reviewed-by: Nhat Pham <nphamcs@gmail.com>
Thanks.
>
>> ---
>> mm/zswap.c | 4 +---
>> 1 file changed, 1 insertion(+), 3 deletions(-)
>>
>> diff --git a/mm/zswap.c b/mm/zswap.c
>> index 00e90b9b5417..81cb3790e0dd 100644
>> --- a/mm/zswap.c
>> +++ b/mm/zswap.c
>> @@ -901,10 +901,8 @@ static enum lru_status shrink_memcg_cb(struct list_head *item, struct list_lru_o
>> * into the warmer region. We should terminate shrinking (if we're in the dynamic
>> * shrinker context).
>> */
>> - if (writeback_result == -EEXIST && encountered_page_in_swapcache) {
>> - ret = LRU_SKIP;
>> + if (writeback_result == -EEXIST && encountered_page_in_swapcache)
>> *encountered_page_in_swapcache = true;
>> - }
>>
>> goto put_unlock;
>> }
>> --
>> 2.40.1
>>
prev parent reply other threads:[~2024-01-27 14:37 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-26 8:30 [PATCH 1/2] mm/zswap: don't return LRU_SKIP if we have dropped lru lock chengming.zhou
2024-01-26 8:30 ` [PATCH 2/2] mm/zswap: fix race between lru writeback and swapoff chengming.zhou
2024-01-26 15:31 ` Johannes Weiner
2024-01-26 19:31 ` Nhat Pham
2024-01-27 14:53 ` Chengming Zhou
2024-01-26 19:50 ` Nhat Pham
2024-01-27 15:12 ` Chengming Zhou
2024-01-26 14:28 ` [PATCH 1/2] mm/zswap: don't return LRU_SKIP if we have dropped lru lock Johannes Weiner
2024-01-27 14:33 ` Chengming Zhou
2024-01-26 18:01 ` Nhat Pham
2024-01-27 14:37 ` Chengming Zhou [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=22e52669-2cf5-4375-9cb8-82d2f5faadc6@linux.dev \
--to=chengming.zhou@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nphamcs@gmail.com \
--cc=yosryahmed@google.com \
--cc=zhouchengming@bytedance.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.