| # 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 |