blob: 7718a9f83b134dcf92986a098a501db35c264d1c [file] [log] [blame]
# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Create the runtime directory for MyFiles, removable media, and virtual-files.
d= /run/arcvm/media 0700 root root
# Create the directory for mojo proxy.
d= /run/arcvm/mojo 0770 crosvm crosvm
# Create the directory for android-data bind mount.
d= /run/arcvm/android-data 0770 crosvm 655360
d= /run/arcvm/android-data/mount 0770 crosvm 655360
# Create the directory mounted as /var/run/arc/testharness.
# ugid 656360:656360 maps to system:system on the Android side.
d= /run/arcvm/testharness 0770 656360 656360
# Create the directory mounted as /var/run/arc/jemalloc.
# TODO(b/237618542): Remove this after migrating this to /run/arcvm/ro/jemalloc
d= /run/arcvm/jemalloc 0775 crosvm crosvm
# Create directories for APK Cache. APK cache is located at
# /var/run/arc/apkcache on guest side.
# ugid 656360:656360 maps to system:system on the Android side.
# /mnt/stateful_partition/unencrypted/apkcache is the directory where
# the cached files are stored. The location of this directory is
# inherited from ARC P, where it is created in arc_setup:
# http://cs/chromeos_public/src/platform2/arc/setup/arc_setup.cc?l=1523&rcl=d968662f948f87ebb4b3f353cd78c6674f0c9a3d
# /run/arcvm/apkcache is the bind mount point of the
# /mnt/stateful_partition/unencrypted/apkcache
d= /mnt/stateful_partition/unencrypted/apkcache 700 656360 656360
d= /run/arcvm/apkcache 700 656360 656360
# Set the mode for ARCVM CGroups(arcvm and arcvm-vcpus) CFS throttling
# to user+group writeable with user as root and group as crosvm.
#
# Core-scheduling is enabled on crosvm and its vcpu threads, but the device
# processes do not enable core-scheduling. Having a mix of core-scheduling
# enabled and disabled tasks on the same cgroup causes performance degradation
# and hence we seperate it into 2 groups. crosvm and vcpu threads are grouped
# into arcvm-vcpus cgroup and devices are grouped into arcvm cgroup.
d= /sys/fs/cgroup/cpu/arcvm 0770 root crosvm
z= /sys/fs/cgroup/cpu/arcvm/cpu.cfs_period_us 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm/cpu.cfs_quota_us 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm/cpu.shares 0664 root crosvm
d= /sys/fs/cgroup/cpu/arcvm-vcpus 0770 root crosvm
z= /sys/fs/cgroup/cpu/arcvm-vcpus/cpu.cfs_period_us 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm-vcpus/cpu.cfs_quota_us 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm-vcpus/cpu.shares 0664 root crosvm
# crosvm needs write permission on cgroup tasks file to move the processes
# to ARCVM cgroups(arcvm and arcvm-vcpus).
z= /sys/fs/cgroup/cpu/arcvm/tasks 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm-vcpus/tasks 0664 root crosvm
# crosvm may need to boost the arcvm services and vcpus, and enable the latency
# senstive attribute for the little.BIG cores architecture, in order to reduce
# the whole VM latency. This behavior is enabled if the boost-global parameter
# of the scheduler-tune is set to a value higher than 0. The boost-global
# parameter is a scaling factor, which adjusts the percentage frequency ratio of
# the little/big cores frequency.
z= /sys/fs/cgroup/cpu/arcvm-vcpus/cpu.uclamp.min 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm-vcpus/cpu.uclamp.latency_sensitive 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm/cpu.uclamp.min 0664 root crosvm
z= /sys/fs/cgroup/cpu/arcvm/cpu.uclamp.latency_sensitive 0664 root crosvm