Skip to content
Snippets Groups Projects
Commit c8bfec26 authored by Augusto Caringi's avatar Augusto Caringi
Browse files

Merge: [RHEL9]: HugeTLB: specific node allocation for 1G pages falls back to other nodes

MR: https://gitlab.com/redhat/centos-stream/src/kernel/centos-stream-9/-/merge_requests/6418

JIRA: https://issues.redhat.com/browse/RHEL-78971

```
commit 6d7bc938adca9024a6b51cf55d9b0542b653b69c
Author: Luiz Capitulino <luizcap@redhat.com>
Date:   Mon Feb 10 22:48:56 2025 -0500

    mm: hugetlb: avoid fallback for specific node allocation of 1G pages

    When using the HugeTLB kernel command-line to allocate 1G pages from a
    specific node, such as:

       default_hugepagesz=1G hugepages=1:1

    If node 1 happens to not have enough memory for the requested number of 1G
    pages, the allocation falls back to other nodes.  A quick way to reproduce
    this is by creating a KVM guest with a memory-less node and trying to
    allocate 1 1G page from it.  Instead of failing, the allocation will
    fallback to other nodes.

    This defeats the purpose of node specific allocation.  Also, specific node
    allocation for 2M pages don't have this behavior: the allocation will just
    fail for the pages it can't satisfy.

    This issue happens because HugeTLB calls memblock_alloc_try_nid_raw() for
    1G boot-time allocation as this function falls back to other nodes if the
    allocation can't be satisfied.  Use memblock_alloc_exact_nid_raw()
    instead, which ensures that the allocation will only be satisfied from the
    specified node.

    Link: https://lkml.kernel.org/r/20250211034856.629371-1-luizcap@redhat.com


    Fixes: b5389086ad7b ("hugetlbfs: extend the definition of hugepages parameter to support node allocation")
Signed-off-by: default avatarLuiz Capitulino <luizcap@redhat.com>
Acked-by: default avatarOscar Salvador <osalvador@suse.de>
Acked-by: default avatarDavid Hildenbrand <david@redhat.com>
    Cc: "Mike Rapoport (IBM)" <rppt@kernel.org>
    Cc: Muchun Song <muchun.song@linux.dev>
    Cc: Zhenguo Yao <yaozhenguo1@gmail.com>
    Cc: Frank van der Linden <fvdl@google.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org&gt;```>

Signed-off-by: default avatarCKI Backport Bot <cki-ci-bot+cki-gitlab-backport-bot@redhat.com>

---

<small>Created 2025-02-24 14:23 UTC by backporter - [KWF FAQ](https://red.ht/kernel_workflow_doc) - [Slack #team-kernel-workflow](https://redhat-internal.slack.com/archives/C04LRUPMJQ5) - [Source](https://gitlab.com/cki-project/kernel-workflow/-/blob/main/webhook/utils/backporter.py) - [Documentation](https://gitlab.com/cki-project/kernel-workflow/-/blob/main/docs/README.backporter.md) - [Report an issue](https://gitlab.com/cki-project/kernel-workflow/-/issues/new?issue%5Btitle%5D=backporter%20webhook%20issue)</small

>

Approved-by: default avatarAristeu Rozanski <arozansk@redhat.com>
Approved-by: default avatarHerton R. Krzesinski <herton@redhat.com>
Approved-by: default avatarRafael Aquini <raquini@redhat.com>
Approved-by: default avatarCKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com>

Merged-by: default avatarAugusto Caringi <acaringi@redhat.com>
parents 7813ba65 6e1725c7
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment