On 12/21/25 13:26, Li Wang wrote:
charge_reserved_hugetlb.sh mounts a hugetlbfs instance at /mnt/huge with
a fixed size of 256M. On systems with large base hugepages (e.g. 512MB),
this is smaller than a single hugepage, so the hugetlbfs mount ends up
with zero capacity (often visible as size=0 in mount output).

As a result, write_to_hugetlbfs fails with ENOMEM and the test can hang
waiting for progress.

--- Error log ---
   # uname -r
   6.12.0-xxx.el10.aarch64+64k

   #./charge_reserved_hugetlb.sh -cgroup-v2
   # -----------------------------------------
   ...
   # nr hugepages = 10
   # writing cgroup limit: 5368709120
   # writing reseravation limit: 5368709120
   ...
   # write_to_hugetlbfs: Error mapping the file: Cannot allocate memory
   # Waiting for hugetlb memory reservation to reach size 2684354560.
   # 0
   # Waiting for hugetlb memory reservation to reach size 2684354560.
   # 0
   ...

   # mount |grep /mnt/huge
   none on /mnt/huge type hugetlbfs (rw,relatime,seclabel,pagesize=512M,size=0)

   # grep -i huge /proc/meminfo
   ...
   HugePages_Total:      10
   HugePages_Free:       10
   HugePages_Rsvd:        0
   HugePages_Surp:        0
   Hugepagesize:     524288 kB
   Hugetlb:         5242880 kB

Drop the mount args with 'size=256M', so the filesystem capacity is sufficient
regardless of HugeTLB page size.

Fixes: 29750f71a9 ("hugetlb_cgroup: add hugetlb_cgroup reservation tests")

Likely Andrew should add a CC of stable

Acked-by: David Hildenbrand (Red Hat) <[email protected]>

--
Cheers

David

Reply via email to