Find a file
Gustavo Noronha Silva 6b8e90545e Apply known iocost solutions to block devices
Meta's resource control demo project[0] includes a benchmark tool that can
be used to calculate the best iocost solutions for a given SSD.

  [0]: https://github.com/facebookexperimental/resctl-demo

A project[1] has now been started to create a publicly available database
of results that can be used to apply them automatically.

  [1]: https://github.com/iocost-benchmark/iocost-benchmarks

This change adds a new tool that gets triggered by a udev rule for any
block device and queries the hwdb for known solutions. The format for
the hwdb file that is currently generated by the github action looks like
this:

  # This file was auto-generated on Tue, 23 Aug 2022 13:03:57 +0000.
  # From the following commit:
  # ca82acfe93
  #
  # Match key format:
  # block:<devpath>:name:<model name>:

  # 12 points, MOF=[1.346,1.346], aMOF=[1.249,1.249]
  block:*:name:HFS256GD9TNG-62A0A:fwver:*:
    IOCOST_SOLUTIONS=isolation isolated-bandwidth bandwidth naive
    IOCOST_MODEL_ISOLATION=rbps=1091439492 rseqiops=52286 rrandiops=63784 wbps=192329466 wseqiops=12309 wrandiops=16119
    IOCOST_QOS_ISOLATION=rpct=0.00 rlat=8807 wpct=0.00 wlat=59023 min=100.00 max=100.00
    IOCOST_MODEL_ISOLATED_BANDWIDTH=rbps=1091439492 rseqiops=52286 rrandiops=63784 wbps=192329466 wseqiops=12309 wrandiops=16119
    IOCOST_QOS_ISOLATED_BANDWIDTH=rpct=0.00 rlat=8807 wpct=0.00 wlat=59023 min=100.00 max=100.00
    IOCOST_MODEL_BANDWIDTH=rbps=1091439492 rseqiops=52286 rrandiops=63784 wbps=192329466 wseqiops=12309 wrandiops=16119
    IOCOST_QOS_BANDWIDTH=rpct=0.00 rlat=8807 wpct=0.00 wlat=59023 min=100.00 max=100.00
    IOCOST_MODEL_NAIVE=rbps=1091439492 rseqiops=52286 rrandiops=63784 wbps=192329466 wseqiops=12309 wrandiops=16119
    IOCOST_QOS_NAIVE=rpct=99.00 rlat=8807 wpct=99.00 wlat=59023 min=75.00 max=100.00

The IOCOST_SOLUTIONS key lists the solutions available for that device
in the preferred order for higher isolation, which is a reasonable
default for most client systems. This can be overriden to choose better
defaults for custom use cases, like the various data center workloads.

The tool can also be used to query the known solutions for a specific
device or to apply a non-default solution (say, isolation or bandwidth).

Co-authored-by: Santosh Mahto <santosh.mahto@collabora.com>
2023-04-20 16:45:57 +02:00
.clusterfuzzlite
.github mkosi: Update to latest 2023-04-19 10:13:06 +02:00
.semaphore
catalog
coccinelle
docs docs: add a missing $ sign 2023-04-16 20:31:33 +02:00
factory
hwdb.d hwdb: disable entry for Logitech USB receiver used by G502 X 2023-04-19 21:14:03 +01:00
LICENSES
man Apply known iocost solutions to block devices 2023-04-20 16:45:57 +02:00
mkosi.conf.d mkosi: Disable kmsg ratelimiting 2023-04-20 13:43:37 +02:00
mkosi.extra mkosi: Always disable sshd, dnsmasq and isc-dhcp-server 2023-04-15 21:06:32 +02:00
modprobe.d
network
po po: Translated using Weblate (Galician) 2023-04-15 03:07:01 +08:00
presets
rules.d Apply known iocost solutions to block devices 2023-04-20 16:45:57 +02:00
shell-completion shell-completion: add --xml-interface option of busctl to the rules 2023-04-11 11:47:56 +09:00
src Apply known iocost solutions to block devices 2023-04-20 16:45:57 +02:00
sysctl.d
sysusers.d
test test: add regression tests for find_esp() and friend 2023-04-19 04:04:57 +09:00
tmpfiles.d
tools
units Merge pull request #25608 from poettering/dissect-moar 2023-04-12 13:46:08 +02:00
xorg
.clang-format
.ctags
.dir-locals.el
.editorconfig
.gitattributes
.gitignore
.mailmap
.packit.yml
.vimrc
.ycm_extra_conf.py
configure
LICENSE.GPL2
LICENSE.LGPL2.1
Makefile
meson.build
meson_options.txt
mkosi.build mkosi: Make sure we always boot our built from source kernel 2023-04-05 16:20:28 +02:00
mkosi.kernel.config mkosi: Update bundled kconfig 2023-04-05 17:19:24 +02:00
mkosi.postinst mkosi: Update to latest 2023-04-19 10:13:06 +02:00
mkosi.prepare
NEWS
README
README.md
TODO service: close fdstore asynchronously 2023-04-13 06:44:27 +02:00

Systemd

System and Service Manager

Semaphore CI 2.0 Build Status
Coverity Scan Status
OSS-Fuzz Status
CIFuzz
CII Best Practices
CentOS CI - CentOS 8
CentOS CI - Arch
CentOS CI - Arch (sanitizers)
CentOS CI - Rawhide (SELinux)
Fossies codespell report
Coverage Status
Packaging status
OpenSSF Scorecard

Details

Most documentation is available on systemd's web site.

Assorted, older, general information about systemd can be found in the systemd Wiki.

Information about build requirements is provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the Code Map for information about this repository's layout and content.

Please see the Hacking guide for information on how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.

Stable branches with backported patches are available in the stable repo.