From: Ryan Roberts <ryan.roberts@arm.com>
To: David Hildenbrand <david@redhat.com>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
akpm@linux-foundation.org, hughd@google.com
Cc: willy@infradead.org, ioworker0@gmail.com,
wangkefeng.wang@huawei.com, ying.huang@intel.com,
21cnbao@gmail.com, shy828301@gmail.com, ziy@nvidia.com,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/8] mm: shmem: add multi-size THP sysfs interface for anonymous shmem
Date: Wed, 8 May 2024 10:02:41 +0100 [thread overview]
Message-ID: <eb3aa3dc-42ee-475a-8b95-d27951c362a1@arm.com> (raw)
In-Reply-To: <ff1908f8-0887-403b-8d2a-d83a17895523@redhat.com>
On 08/05/2024 08:12, David Hildenbrand wrote:
> On 08.05.24 09:08, David Hildenbrand wrote:
>> On 08.05.24 06:45, Baolin Wang wrote:
>>>
>>>
>>> On 2024/5/7 18:52, Ryan Roberts wrote:
>>>> On 06/05/2024 09:46, Baolin Wang wrote:
>>>>> To support the use of mTHP with anonymous shmem, add a new sysfs interface
>>>>> 'shmem_enabled' in the '/sys/kernel/mm/transparent_hugepage/hugepages-kB/'
>>>>> directory for each mTHP to control whether shmem is enabled for that mTHP,
>>>>> with a value similar to the top level 'shmem_enabled', which can be set to:
>>>>> "always", "inherit (to inherit the top level setting)", "within_size",
>>>>> "advise",
>>>>> "never", "deny", "force". These values follow the same semantics as the top
>>>>> level, except the 'deny' is equivalent to 'never', and 'force' is equivalent
>>>>> to 'always' to keep compatibility.
>>>>
>>>> We decided at [1] to not allow 'force' for non-PMD-sizes.
>>>>
>>>> [1]
>>>> https://lore.kernel.org/linux-mm/533f37e9-81bf-4fa2-9b72-12cdcb1edb3f@redhat.com/
>>>>
>>>> However, thinking about this a bit more, I wonder if the decision we made to
>>>> allow all hugepages-xxkB/enabled controls to take "inherit" was the wrong one.
>>>> Perhaps we should have only allowed the PMD-sized enable=inherit (this is just
>>>> for legacy back compat after all, I don't think there is any use case where
>>>> changing multiple mTHP size controls atomically is actually useful). Applying
>>>
>>> Agree. This is also our usage of 'inherit'.
>
> Missed that one: there might be use cases in the future once we would start
> defaulting to "inherit" for all knobs (a distro might default to that) and
> default-enable THP in the global knob. Then, it would be easy to disable any THP
> by disabling the global knob. (I think that's the future we're heading to, where
> we'd have an "auto" mode that can be set on the global toggle).
>
> But I am just making up use cases ;) I think it will be valuable and just doing
> it consistently now might be cleaner.
I agree that consistency between enabled and shmem_enabled is top priority. And
yes, I had forgotten about the glorious "auto" future. So probably continuing
all sizes to select "inherit" is best.
But for shmem_enabled, that means we need the following error checking:
- It is an error to set "force" for any size except PMD-size
- It is an error to set "force" for the global control if any size except PMD-
size is set to "inherit"
- It is an error to set "inherit" for any size except PMD-size if the global
control is set to "force".
Certainly not too difficult to code and prove to be correct, but not the nicest
UX from the user's point of view when they start seeing errors.
I think we previously said this would likely be temporary, and if/when tmpfs
gets mTHP support, we could simplify and allow all sizes to be set to "force".
But I wonder if tmpfs would ever need explicit mTHP control? Maybe it would be
more suited to the approach the page cache takes to transparently ramp up the
folio size as it faults more in. (Just saying there is a chance that this error
checking becomes permanent).
next prev parent reply other threads:[~2024-05-08 9:02 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-06 8:46 [PATCH 0/8] add mTHP support " Baolin Wang
2024-05-06 8:46 ` [PATCH 1/8] mm: move highest_order() and next_order() out of the THP config Baolin Wang
2024-05-07 10:21 ` Ryan Roberts
2024-05-08 2:13 ` Baolin Wang
2024-05-08 9:06 ` Ryan Roberts
2024-05-08 9:40 ` Baolin Wang
2024-05-06 8:46 ` [PATCH 2/8] mm: memory: extend finish_fault() to support large folio Baolin Wang
2024-05-07 10:37 ` Ryan Roberts
2024-05-08 3:44 ` Baolin Wang
2024-05-08 7:15 ` David Hildenbrand
2024-05-08 9:06 ` Baolin Wang
2024-05-08 8:53 ` Ryan Roberts
2024-05-08 9:31 ` Baolin Wang
2024-05-08 10:47 ` Ryan Roberts
2024-05-09 1:10 ` Baolin Wang
2024-05-06 8:46 ` [PATCH 3/8] mm: shmem: add an 'order' parameter for shmem_alloc_hugefolio() Baolin Wang
2024-05-06 8:46 ` [PATCH 4/8] mm: shmem: add THP validation for PMD-mapped THP related statistics Baolin Wang
2024-05-06 8:46 ` [PATCH 5/8] mm: shmem: add multi-size THP sysfs interface for anonymous shmem Baolin Wang
2024-05-07 10:52 ` Ryan Roberts
2024-05-08 4:45 ` Baolin Wang
2024-05-08 7:08 ` David Hildenbrand
2024-05-08 7:12 ` David Hildenbrand
2024-05-08 9:02 ` Ryan Roberts [this message]
2024-05-08 9:56 ` Baolin Wang
2024-05-08 10:48 ` Ryan Roberts
2024-05-08 12:02 ` David Hildenbrand
2024-05-08 12:10 ` David Hildenbrand
2024-05-08 12:43 ` Ryan Roberts
2024-05-08 12:44 ` Ryan Roberts
2024-05-08 12:45 ` David Hildenbrand
2024-05-08 12:54 ` Ryan Roberts
2024-05-08 13:07 ` David Hildenbrand
2024-05-08 13:44 ` Ryan Roberts
2024-05-06 8:46 ` [PATCH 6/8] mm: shmem: add mTHP support " Baolin Wang
2024-05-07 10:46 ` kernel test robot
2024-05-08 6:03 ` Baolin Wang
2024-05-06 8:46 ` [PATCH 7/8] mm: shmem: add mTHP size alignment in shmem_get_unmapped_area Baolin Wang
2024-05-06 8:46 ` [PATCH 8/8] mm: shmem: add mTHP counters for anonymous shmem Baolin Wang
2024-05-06 10:54 ` [PATCH 0/8] add mTHP support " Lance Yang
2024-05-07 1:47 ` Baolin Wang
2024-05-07 6:50 ` Lance Yang
2024-05-07 10:20 ` Ryan Roberts
2024-05-08 5:45 ` Baolin Wang
[not found] ` <CGME20240508113934eucas1p13a3972f3f9955365f40155e084a7c7d5@eucas1p1.samsung.com>
2024-05-08 11:39 ` Daniel Gomez
2024-05-08 11:58 ` David Hildenbrand
2024-05-08 14:28 ` Daniel Gomez
2024-05-08 17:03 ` David Hildenbrand
2024-05-09 19:18 ` Daniel Gomez
2024-05-09 3:08 ` Baolin Wang
2024-05-08 19:23 ` Luis Chamberlain
2024-05-09 17:48 ` David Hildenbrand
2024-05-10 18:53 ` Luis Chamberlain
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=eb3aa3dc-42ee-475a-8b95-d27951c362a1@arm.com \
--to=ryan.roberts@arm.com \
--cc=21cnbao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=david@redhat.com \
--cc=hughd@google.com \
--cc=ioworker0@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shy828301@gmail.com \
--cc=wangkefeng.wang@huawei.com \
--cc=willy@infradead.org \
--cc=ying.huang@intel.com \
--cc=ziy@nvidia.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