- raise RuntimeError('Not enough free huge pages: {0}, {1} MB'.
- format(huge_free, huge_free * huge_size))
- # Check if huge pages mount point exist
- has_huge_mnt = False
- ret_code, stdout, _ = ssh.exec_command('cat /proc/mounts')
- if int(ret_code) == 0:
- for line in stdout.splitlines():
- # Try to find something like:
- # none /mnt/huge hugetlbfs rw,relatime,pagesize=2048k 0 0
- mount = line.split()
- if mount[2] == 'hugetlbfs' and mount[1] == huge_mnt:
- has_huge_mnt = True
- break
- # If huge page mount point not exist create one
- if not has_huge_mnt:
- ret_code, _, _ = ssh.exec_command_sudo(
- 'mkdir -p {mnt}'.format(mnt=huge_mnt))
- if int(ret_code) != 0:
- raise RuntimeError('Create mount dir failed on {host}'.
- format(host=node['host']))
- ret_code, _, _ = ssh.exec_command_sudo(
- 'mount -t hugetlbfs -o pagesize=2048k none {mnt}'.
- format(mnt=huge_mnt))
- if int(ret_code) != 0:
- raise RuntimeError('Mount huge pages failed on {host}'.
- format(host=node['host']))