@@ -13,6 +13,13 @@ HUGEPAGES_1G_SYSFILE=/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
1313HUGEPAGES_1G_NUMBER=6
1414
1515
16+ which hugeadm
17+ if [ " $? " == " 0" ]; then
18+ FOUND_HUGEADM=1
19+ else
20+ echo " hugeadm command not found, using internal fallback"
21+ fi
22+
1623# Allocate hugepages of each type
1724echo -n " File '${HUGEPAGES_2M_CONF} ' "
1825if [ -f $HUGEPAGES_2M_CONF ]; then
@@ -34,15 +41,37 @@ echo $HUGEPAGES_1G_NUMBER > $HUGEPAGES_1G_SYSFILE
3441
3542# Create hugetlbfs mounts in /var/lib/hugetlbfs/global/...
3643echo " Creating hugetlbfs mounts"
37- hugeadm --create-global-mounts
44+ if [ " $FOUND_HUGEADM " == " 1" ]; then
45+ hugeadm --create-global-mounts
46+ else
47+ for sz in 2M 1G; do
48+ MPDIR=/var/lib/hugetlbfs/global/pagesize-${sz} B
49+ mountpoint -q $MPDIR
50+ if [ " $? " -ne 0 ]; then
51+ echo " Mounting $MPDIR "
52+ mount -t hugetlbfs -o pagesize=${sz} none $MPDIR
53+ chown root:root $MPDIR
54+ chmod 1777 $MPDIR
55+ else
56+ echo " Already mounted: $MPDIR "
57+ fi
58+ done
59+ fi
3860echo " Setting permissions on hugeltbfs mounts"
3961chgrp -R pda /var/lib/hugetlbfs/global/*
4062chmod -R g+rwx /var/lib/hugetlbfs/global/*
4163
4264# Display hugepage status
4365echo " "
4466echo " Hugepages:"
45- hugeadm --pool-list
67+ if [ " $FOUND_HUGEADM " == " 1" ]; then
68+ hugeadm --pool-list
69+ else
70+ echo -n " Number of 2MB hugepages: "
71+ cat $HUGEPAGES_2M_SYSFILE
72+ echo -n " Number of 1GB hugepages: "
73+ cat $HUGEPAGES_1G_SYSFILE
74+ fi
4675echo " "
4776echo " Use 'echo [number] > /sys/kernel/mm/hugepages/hugepages-[size]/nr_hugepages' to allocate hugepages manually"
4877echo " Or set a number in the following conf files and run the script again:"
0 commit comments