CI: Update hugepages configuration 65/42065/2
authorMartin Klozik <martinx.klozik@intel.com>
Fri, 15 Sep 2017 11:16:04 +0000 (12:16 +0100)
committerMartin Klozik <martinx.klozik@intel.com>
Fri, 15 Sep 2017 11:50:40 +0000 (12:50 +0100)
Use the number of free hugepages to correctly set hugepages
configuration. Limit the number of allocated hugepages to
avoid memory exhaustion.

Change-Id: Id5239200579f8c43706ffcc769e4963280b9eb2b
Signed-off-by: Martin Klozik <martinx.klozik@intel.com>
ci/build-vsperf.sh

index cee0e52..eaab997 100755 (executable)
@@ -422,8 +422,22 @@ function dependencies_check() {
 
 # configure hugepages
 function configure_hugepages() {
-    sudo bash -c "echo 2048 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages"
-    sudo bash -c "echo 0 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages"
+    HP_MAX=8192
+    HP_REQUESTED=2048
+    HP_NR=`cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages`
+    HP_FREE=`cat /sys/devices/system/node/node0/hugepages/hugepages-2048kB/free_hugepages`
+    # check if HP must be (re)configured
+    if [ $HP_FREE -lt $HP_REQUESTED ] ; then
+        HP_NR_NEW=$(($HP_NR+($HP_REQUESTED-$HP_FREE)))
+        if [ $HP_NR_NEW -gt $HP_MAX ] ; then
+            HP_NR_NEW=$HP_MAX
+        fi
+        sudo bash -c "echo $HP_NR_NEW > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages"
+    fi
+
+    if [ -f /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages ] ; then
+        sudo bash -c "echo 0 > /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages"
+    fi
 }
 
 # dump hugepages configuration
@@ -464,7 +478,11 @@ dependencies_check
 initialize_logdir
 
 # configure hugepages
+echo "Configure hugepages"
+echo "==================="
 configure_hugepages
+hugepages_info | grep -v '^--'
+echo
 
 # execute job based on passed parameter
 case $1 in