| # SPDX-License-Identifier: GPL-2.0 |
| # |
| # Copyright (c) 2022-2024 Oracle. All Rights Reserved. |
| # Author: Darrick J. Wong <djwong@kernel.org> |
| |
| [Unit] |
| Description=xfs_scrub background service slice |
| Before=slices.target |
| |
| [Slice] |
| |
| # If the CPU usage cgroup controller is available, don't use more than 60% of a |
| # single core for all background processes. |
| CPUQuota=60% |
| CPUAccounting=true |
| |
| [Install] |
| # As of systemd 249, the systemd cgroupv2 configuration code will drop resource |
| # controllers from the root and system.slice cgroups at startup if it doesn't |
| # find any direct dependencies that require a given controller. Newly |
| # activated units with resource control directives are created under the system |
| # slice but do not cause a reconfiguration of the slice's resource controllers. |
| # Hence we cannot put CPUQuota= into the xfs_scrub service units directly. |
| # |
| # For the CPUQuota directive to have any effect, we must therefore create an |
| # explicit definition file for the slice that systemd creates to contain the |
| # xfs_scrub instance units (e.g. xfs_scrub@.service) and we must configure this |
| # slice as a dependency of the system slice to establish the direct dependency |
| # relation. |
| WantedBy=system.slice |