From: "Alex Zhu (Kernel)" <alexlzhu@fb.com>
To: Yu Zhao <yuzhao@google.com>
Cc: Yang Shi <shy828301@gmail.com>, Rik van Riel <riel@fb.com>,
Kernel Team <Kernel-team@fb.com>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"willy@infradead.org" <willy@infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"akpm@linux-foundation.org" <akpm@linux-foundation.org>,
Ning Zhang <ningzhang@linux.alibaba.com>,
Miaohe Lin <linmiaohe@huawei.com>
Subject: Re: [PATCH v3] mm: add thp_utilization metrics to /proc/thp_utilization
Date: Wed, 10 Aug 2022 21:39:17 +0000 [thread overview]
Message-ID: <868F0874-70E8-4416-B39B-DA74C9D76A40@fb.com> (raw)
In-Reply-To: <CAOUHufYeuMN9As58BVwMKSN6viOZKReXNeCBgGeeL6ToWGsEKw@mail.gmail.com>
> On Aug 10, 2022, at 10:54 AM, Yu Zhao <yuzhao@google.com> wrote:
>
> !-------------------------------------------------------------------|
> This Message Is From an External Sender
>
> |-------------------------------------------------------------------!
>
> On Wed, Aug 10, 2022 at 11:15 AM Alex Zhu (Kernel) <alexlzhu@fb.com> wrote:
>>
>>
>>> On Aug 10, 2022, at 10:07 AM, Yang Shi <shy828301@gmail.com> wrote:
>>>
>>> On Tue, Aug 9, 2022 at 4:36 PM Yu Zhao <yuzhao@google.com> wrote:
>>>>
>>>> On Tue, Aug 9, 2022 at 11:16 AM Alex Zhu (Kernel) <alexlzhu@fb.com> wrote:
>>>>>
>>>>>
>>>>>> OK, it is hard to tell what it looks like now. But the THPs on the
>>>>>> deferred split list may be on the "low utilization split" list too?
>>>>>> IIUC the major difference is to replace zero-filled subpage to special
>>>>>> zero page, so you implemented another THP split function to handle it?
>>>>>>
>>>>>> Anyway the code should answer the most questions.
>>>>>
>>>>> They can indeed end up on both lists. This did have to be handled when
>>>>> implementing the shrinker.
>>>>>
>>>>> We free the zero filled subpages, while modifying the existing split_huge_page()
>>>>> function. Will follow up that change in another patch.
>>>>
>>>> FYI. This series does it:
>>>>
>>>> https://lore.kernel.org/r/20210731063938.1391602-1-yuzhao@google.com/
>>>>
>>>> And this one:
>>>>
>>>> https://lore.kernel.org/r/1635422215-99394-1-git-send-email-ningzhang@linux.alibaba.com/
>>>
>>> Thanks, Yu. I totally forgot about these series. It is time to refresh
>>> my memory.
>>
>> I looked through these patches yesterday. There are indeed parts that are very similar, but the approach
>> taken seems overly complicated compared to what I have written. What’s the status of work on this since last year?
>
> Overly complicated... which patches and how?
>
> At a minimum, you'd need 1 & 3 from the first series and this patch:
>
> https://lore.kernel.org/r/20220608141432.23258-1-linmiaohe@huawei.com/
The changes from the previous patches implement freeing of THPs as part of memcgroup and reclaim. Zero tail pages are disposed of via
lruvec as part of reclaim.
Our approach is a thp utilization worker thread scanning through physical memory adding under utilized THPs to a shrinker that calls split_huge_page(). We free zero tail pages within split_huge_page(). Reclaim will trigger the shrinker.
There is some overlap between the implementations, in particular creating a linked list in the third tail page and methods to check for zero pages.
(I believe the previous patches have a cleaner method for identifying zero pages). However, looking through the code I do believe our approach is simpler.
We chose to free within split_huge_page(), but it’s worth discussing whether to free zero pages immediately or to add to lruvec to free eventually.
I believe the split_huge_page() changes could be valuable by as a patch by itself though. Will send that out shortly.
next prev parent reply other threads:[~2022-08-10 21:39 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-05 18:40 alexlzhu
2022-08-05 18:50 ` Matthew Wilcox
2022-08-05 19:04 ` Rik van Riel
2022-08-05 19:24 ` Matthew Wilcox
2022-08-05 19:51 ` Alex Zhu (Kernel)
2022-08-08 17:55 ` Yang Shi
2022-08-08 18:35 ` Rik van Riel
2022-08-09 17:11 ` Yang Shi
2022-08-09 17:15 ` Alex Zhu (Kernel)
2022-08-09 23:35 ` Yu Zhao
2022-08-10 17:07 ` Yang Shi
2022-08-10 17:14 ` Alex Zhu (Kernel)
2022-08-10 17:54 ` Yu Zhao
2022-08-10 21:39 ` Alex Zhu (Kernel) [this message]
2022-08-10 21:56 ` Yu Zhao
2022-08-11 0:00 ` Alex Zhu (Kernel)
2022-08-11 1:15 ` Yu Zhao
2022-08-11 2:08 ` Alex Zhu (Kernel)
2022-08-11 19:20 ` Alex Zhu (Kernel)
2022-08-11 21:55 ` Yu Zhao
2022-08-11 22:12 ` Yang Shi
2022-08-11 22:59 ` Yu Zhao
2022-08-07 6:03 ` kernel test robot
2022-08-07 6:44 ` kernel test robot
2022-08-07 6:55 ` kernel test robot
2022-08-08 17:52 ` Yang Shi
2022-08-05 20:28 William Kucharski
2022-08-05 21:14 William Kucharski
2022-08-05 21:46 ` Alex Zhu (Kernel)
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=868F0874-70E8-4416-B39B-DA74C9D76A40@fb.com \
--to=alexlzhu@fb.com \
--cc=Kernel-team@fb.com \
--cc=akpm@linux-foundation.org \
--cc=linmiaohe@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=ningzhang@linux.alibaba.com \
--cc=riel@fb.com \
--cc=shy828301@gmail.com \
--cc=willy@infradead.org \
--cc=yuzhao@google.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox