#!/usr/bin/env bash
#
# Prepare cgroup v2 with huge pages controller preventing access to any huge
# pages that are possibly allocated.

set -ex

PARENT_SHELL_PID=$1
SYS_FS_PATH=/sys/fs/cgroup/
CGROUP_PATH=postgres

rmdir "${SYS_FS_PATH}/${CGROUP_PATH}"
mkdir -p "${SYS_FS_PATH}/${CGROUP_PATH}"
echo "+hugetlb" > "${SYS_FS_PATH}/cgroup.subtree_control"
echo "+hugetlb" > "${SYS_FS_PATH}/${CGROUP_PATH}/cgroup.subtree_control"
echo 0 > "${SYS_FS_PATH}/${CGROUP_PATH}/hugetlb.1GB.max"
echo 0 > "${SYS_FS_PATH}/${CGROUP_PATH}/hugetlb.2MB.max"
echo "${PARENT_SHELL_PID}" > "${CGROUP_PATH}/cgroup.procs"
