cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

run_hugetlbfs_test.sh (1595B)


      1#!/bin/bash
      2# please run as root
      3
      4# Kselftest framework requirement - SKIP code is 4.
      5ksft_skip=4
      6
      7#
      8# To test memfd_create with hugetlbfs, there needs to be hpages_test
      9# huge pages free.  Attempt to allocate enough pages to test.
     10#
     11hpages_test=8
     12
     13#
     14# Get count of free huge pages from /proc/meminfo
     15#
     16while read name size unit; do
     17        if [ "$name" = "HugePages_Free:" ]; then
     18                freepgs=$size
     19        fi
     20done < /proc/meminfo
     21
     22#
     23# If not enough free huge pages for test, attempt to increase
     24#
     25if [ -n "$freepgs" ] && [ $freepgs -lt $hpages_test ]; then
     26	nr_hugepgs=`cat /proc/sys/vm/nr_hugepages`
     27	hpages_needed=`expr $hpages_test - $freepgs`
     28
     29	if [ $UID != 0 ]; then
     30		echo "Please run memfd with hugetlbfs test as root"
     31		exit $ksft_skip
     32	fi
     33
     34	echo 3 > /proc/sys/vm/drop_caches
     35	echo $(( $hpages_needed + $nr_hugepgs )) > /proc/sys/vm/nr_hugepages
     36	while read name size unit; do
     37		if [ "$name" = "HugePages_Free:" ]; then
     38			freepgs=$size
     39		fi
     40	done < /proc/meminfo
     41fi
     42
     43#
     44# If still not enough huge pages available, exit.  But, give back any huge
     45# pages potentially allocated above.
     46#
     47if [ $freepgs -lt $hpages_test ]; then
     48	# nr_hugepgs non-zero only if we attempted to increase
     49	if [ -n "$nr_hugepgs" ]; then
     50		echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
     51	fi
     52	printf "Not enough huge pages available (%d < %d)\n" \
     53		$freepgs $needpgs
     54	exit $ksft_skip
     55fi
     56
     57#
     58# Run the hugetlbfs test
     59#
     60./memfd_test hugetlbfs
     61./run_fuse_test.sh hugetlbfs
     62
     63#
     64# Give back any huge pages allocated for the test
     65#
     66if [ -n "$nr_hugepgs" ]; then
     67	echo $nr_hugepgs > /proc/sys/vm/nr_hugepages
     68fi