# Copyright 2022 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "Debugfs initialization script"
author          "chromium-os-dev@chromium.org"

# Relabel debugfs separately from chromeos_startup. Labeling debugfs is compute
# intensive, and debugfs should not be critical to many early services, and so
# is moved out of the critical path of boot.
# NB: We block 'boot-services', because some services in the 'network-services'
# and 'system-services' phases touch debugfs.
start on starting boot-services
# Other jobs that depend on this job need to wait until this job completes
# (i.e., 'stopped debugfs-init').
task

# Disable OOM killer as we must never fail.
oom score never

# /sys/kernel/debug/tracing is an automount of tracefs, which gets relabeled
# elsewhere.
exec restorecon -R /sys/kernel/debug -e /sys/kernel/debug/tracing
