blob: 5b425e955735911a3271e60cdfe7c95b65548faa [file] [log] [blame]
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
description "mount cgroups on /sys/fs/cgroup"
author "chromium-os-dev@chromium.org"
start on starting boot-services
task
script
log() {
logger -t "${UPSTART_JOB}" "failed to mount cgroup susbsystem $1"
}
mount -t tmpfs -o mode=755,noexec,nosuid,nodev none /sys/fs/cgroup
for subsys in cpu freezer devices cpuacct cpuset; do
mkdir -p /sys/fs/cgroup/${subsys}
mount -t cgroup cgroup /sys/fs/cgroup/${subsys} \
-o ${subsys},noexec,nosuid,nodev || log ${subsys}
mkdir -p /sys/fs/cgroup/${subsys}/session_manager_containers
if [ $(id -u android-root) ]; then
chown android-root:android-root \
/sys/fs/cgroup/${subsys}/session_manager_containers
fi
done
# Create and set up Chrome cpusets with default settings
# (all cpus, all mems).
cpuset_root_dir="/sys/fs/cgroup/cpuset"
cpuset_root_cpus=$(cat "${cpuset_root_dir}/cpuset.cpus")
cpuset_root_mems=$(cat "${cpuset_root_dir}/cpuset.mems")
for cset in chrome chrome/urgent chrome/non-urgent; do
cset_dir="/sys/fs/cgroup/cpuset/${cset}"
mkdir "${cset_dir}"
chown -R chronos:chronos "${cset_dir}"
echo "${cpuset_root_cpus}" > "${cset_dir}/cpuset.cpus"
echo "${cpuset_root_mems}" > "${cset_dir}/cpuset.mems"
done
end script