On 2024/5/8 17:06, Ryan Roberts wrote:
On 08/05/2024 03:13, Baolin Wang wrote:
On 2024/5/7 18:21, Ryan Roberts wrote:
On 06/05/2024 09:46, Baolin Wang wrote:
Move highest_order() and next_order() out of the CONFIG_TRANSPARENT_HUGEPAGE
macro, which can be common functions to be used.
Sorry if I haven't kept up with the discussion, but why is this needed? I
wouldn't expect a need to iterate over orders if THP is compile-time disabled
because we will never try to allocate THP?
Cause I don't want to add some dummy functions to avoid building errors if
CONFIG_TRANSPARENT_HUGEPAGE is not enabled in patch 6. Another thought is that
the pagecache can also allocate a large folio even when THP is not enabled, so
these helpers may be used in the future (not sure though).
OK, I'll admit I haven't looked at the latter patches yet - I'd like to conclude
on the interface and mapping/alignment strategy first.
But it wasn't necessary to access these functions for the anon/private case
without CONFIG_TRANSPARENT_HUGEPAGE, so I'm wondering why it's needed for shmem
case. I would expect that they don't need to be defined at all.
Currently in the shmem_alloc_and_add_folio() function, the hugepage
allocating is not guarded with '#ifdef CONFIG_TRANSPARENT_HUGEPAGE', but
rather with 'IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)', which can lead to
some building errors when CONFIG_TRANSPARENT_HUGEPAGE is not enabled.
However, this is not a big issue, and I will make some adjustments to
avoid defining dummy functions.