summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Gorski2024-01-28 20:02:45 +0100
committerPiotr Gorski2024-01-28 20:02:45 +0100
commitf458507d3ce67c733170aae58257aff99a15ab1a (patch)
tree6ed8abfb73ea16c5595bac5e194ce0753a3bcd06
parent4b40c6588a1dcc1a8e8daeae56499ed7d13fa1ec (diff)
downloadaur-f458507d3ce67c733170aae58257aff99a15ab1a.tar.gz
scx: add one service for all schedulers and config file
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
-rw-r--r--.SRCINFO5
-rw-r--r--0001-scx-add-one-service-for-all-schedulers-and-config-fi.patch292
-rw-r--r--PKGBUILD9
3 files changed, 302 insertions, 4 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 30e3d62b2d3f..3c87811dd475 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = scx-scheds
pkgdesc = Sched_ext schedulers
pkgver = 0.1.6
- pkgrel = 1
+ pkgrel = 2
url = https://github.com/sched-ext/scx
arch = x86_64
license = GPL-2.0-only
@@ -16,7 +16,10 @@ pkgbase = scx-scheds
depends = libelf
depends = zlib
options = !lto
+ backup = etc/default/scx
source = https://github.com/sched-ext/scx/archive/refs/tags/v0.1.6.tar.gz
+ source = 0001-scx-add-one-service-for-all-schedulers-and-config-fi.patch
sha512sums = 84dfc711ba9d51cd26c104caca1dcee3ce0be790be5b3a294ed47f4ef5fb20c58524b793d45b0970d61befa33adf8c8f3ca2b2f726d2ef335c80c11eee813387
+ sha512sums = 1284c12302568808dcd836b440e957e7c2f9a8d112b3d1289d3dd2c0d245c0e2a5955a22cc4e41872efa546db497b3a48eddd514ff5ad58f2d463685847d99bd
pkgname = scx-scheds
diff --git a/0001-scx-add-one-service-for-all-schedulers-and-config-fi.patch b/0001-scx-add-one-service-for-all-schedulers-and-config-fi.patch
new file mode 100644
index 000000000000..3e238635f15a
--- /dev/null
+++ b/0001-scx-add-one-service-for-all-schedulers-and-config-fi.patch
@@ -0,0 +1,292 @@
+From 3390180894191468dc22c8404627b46532434cba Mon Sep 17 00:00:00 2001
+From: Piotr Gorski <lucjan.lucjanov@gmail.com>
+Date: Sun, 28 Jan 2024 20:00:28 +0100
+Subject: [PATCH] scx: add one service for all schedulers and config file
+
+Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
+---
+ services/README.md | 20 +++++++++++++++----
+ services/meson.build | 8 +++++++-
+ services/scx | 5 +++++
+ services/{scx_central.service => scx.service} | 5 +++--
+ services/scx_flatcg.service | 13 ------------
+ services/scx_nest.service | 13 ------------
+ services/scx_pair.service | 13 ------------
+ services/scx_qmap.service | 13 ------------
+ services/scx_rustland.service | 13 ------------
+ services/scx_rusty.service | 13 ------------
+ services/scx_simple.service | 13 ------------
+ services/scx_userland.service | 13 ------------
+ 12 files changed, 31 insertions(+), 111 deletions(-)
+ create mode 100644 services/scx
+ rename services/{scx_central.service => scx.service} (58%)
+ delete mode 100644 services/scx_flatcg.service
+ delete mode 100644 services/scx_nest.service
+ delete mode 100644 services/scx_pair.service
+ delete mode 100644 services/scx_qmap.service
+ delete mode 100644 services/scx_rustland.service
+ delete mode 100644 services/scx_rusty.service
+ delete mode 100644 services/scx_simple.service
+ delete mode 100644 services/scx_userland.service
+
+diff --git a/services/README.md b/services/README.md
+index 9d3acb1..a175d64 100644
+--- a/services/README.md
++++ b/services/README.md
+@@ -3,30 +3,42 @@
+ This guide provides instructions for running the SCX schedulers as a systemd service and checking its logs.
+
+ ## Getting Started
++
++At the very beginning, configure the /etc/default/scx file:
++
++- in the SCX_SCHEDULER variable, select the scheduler you are interested in
++
++- in the SCX_FLAGS variable, specify the flags you want to add. To do this, execute and read what flags you can add.
++
++```
++scx_SCHEDNAME --help
++```
++
+ To start the SCX scheduler at boot, you need to run the systemd service as root. Here are the steps:
+
++
+ - Enable the service:
+
+ ```
+-systemctl enable scx_SCHEDNAME
++systemctl enable scx.service
+ ```
+
+ - Start the service:
+
+ ```
+-systemctl start scx_SCHEDNAME
++systemctl start scx.service
+ ```
+
+ Alternatively, you can use a shortened version of these commands:
+
+ ```
+-systemctl enable --now scx_SCHEDNAME
++systemctl enable --now scx.service
+ ```
+
+ - To check the status of the service, use the following command:
+
+ ```
+-systemctl status scx_SCHEDNAME
++systemctl status scx.service
+ ```
+
+ ## Checking Journald Logs
+diff --git a/services/meson.build b/services/meson.build
+index 1bccca8..8f86518 100644
+--- a/services/meson.build
++++ b/services/meson.build
+@@ -2,7 +2,7 @@ systemd_system_unit_dir = systemd.get_variable(pkgconfig : 'systemdsystemunitdir
+
+ install_data(
+ [
+- 'scx_central.service', 'scx_flatcg.service', 'scx_nest.service', 'scx_pair.service', 'scx_qmap.service', 'scx_rustland.service', 'scx_rusty.service', 'scx_simple.service', 'scx_userland.service',
++ 'scx.service',
+ ],
+ install_dir: systemd_system_unit_dir
+ )
+@@ -14,3 +14,9 @@ systemd_system_unit_dir = systemd.get_variable(pkgconfig : 'systemdsystemunitdir
+ install_dir: '/etc/systemd'
+ )
+
++ install_data(
++ [
++ 'scx',
++ ],
++ install_dir: '/etc/default'
++ )
+diff --git a/services/scx b/services/scx
+new file mode 100644
+index 0000000..a323de0
+--- /dev/null
++++ b/services/scx
+@@ -0,0 +1,5 @@
++# List of scx_schedulers: scx_central scx_flatcg scx_layered scx_nest scx_pair scx_qmap scx_rustland scx_rusty scx_simple scx_userland
++SCX_SCHEDULER=scx_rusty
++
++# Set custom flags for each scheduler, below is an example of how to use
++#SCX_FLAGS='-s 3000 -i 0.5 -I 0.025 -l 0.5 -b -k'
+diff --git a/services/scx_central.service b/services/scx.service
+similarity index 58%
+rename from services/scx_central.service
+rename to services/scx.service
+index eb15f0a..6349a6e 100644
+--- a/services/scx_central.service
++++ b/services/scx.service
+@@ -1,10 +1,11 @@
+ [Unit]
+-Description=Start scx_central
++Description=Start scx_scheduler
+ ConditionPathIsDirectory=/sys/kernel/sched_ext
+
+ [Service]
+ Type=simple
+-ExecStart=scx_central
++EnvironmentFile=/etc/default/scx
++ExecStart=/bin/bash -c 'exec $SCX_SCHEDULER $SCX_FLAGS '
+ Restart=always
+ StandardError=journal
+ LogNamespace=sched-ext
+diff --git a/services/scx_flatcg.service b/services/scx_flatcg.service
+deleted file mode 100644
+index 08eefc3..0000000
+--- a/services/scx_flatcg.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_flatcg
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_flatcg
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_nest.service b/services/scx_nest.service
+deleted file mode 100644
+index 49dfda6..0000000
+--- a/services/scx_nest.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_nest
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_nest
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_pair.service b/services/scx_pair.service
+deleted file mode 100644
+index 5d0e985..0000000
+--- a/services/scx_pair.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_pair
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_pair
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_qmap.service b/services/scx_qmap.service
+deleted file mode 100644
+index e871564..0000000
+--- a/services/scx_qmap.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_qmap
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_qmap
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_rustland.service b/services/scx_rustland.service
+deleted file mode 100644
+index e879109..0000000
+--- a/services/scx_rustland.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_rustland
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_rustland
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_rusty.service b/services/scx_rusty.service
+deleted file mode 100644
+index d47007e..0000000
+--- a/services/scx_rusty.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_rusty
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_rusty
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_simple.service b/services/scx_simple.service
+deleted file mode 100644
+index 5f5c715..0000000
+--- a/services/scx_simple.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_simple
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_simple
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+diff --git a/services/scx_userland.service b/services/scx_userland.service
+deleted file mode 100644
+index 8db25e4..0000000
+--- a/services/scx_userland.service
++++ /dev/null
+@@ -1,13 +0,0 @@
+-[Unit]
+-Description=Start scx_userland
+-ConditionPathIsDirectory=/sys/kernel/sched_ext
+-
+-[Service]
+-Type=simple
+-ExecStart=scx_userland
+-Restart=always
+-StandardError=journal
+-LogNamespace=sched-ext
+-
+-[Install]
+-WantedBy=multi-user.target
+--
+2.43.0.232.ge79552d197
+
diff --git a/PKGBUILD b/PKGBUILD
index e9b0e9b187fb..174ed7723bac 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,16 +4,19 @@
pkgname=scx-scheds
pkgver=0.1.6
-pkgrel=1
+pkgrel=2
pkgdesc='Sched_ext schedulers'
url='https://github.com/sched-ext/scx'
arch=('x86_64')
license=('GPL-2.0-only')
depends=('libbpf' 'bpf' 'libelf' 'zlib')
makedepends=('python' 'meson' 'clang' 'llvm-libs' 'cargo' 'rust')
+backup=('etc/default/scx')
options=(!lto)
-source=(https://github.com/sched-ext/scx/archive/refs/tags/v${pkgver}.tar.gz)
-sha512sums=('84dfc711ba9d51cd26c104caca1dcee3ce0be790be5b3a294ed47f4ef5fb20c58524b793d45b0970d61befa33adf8c8f3ca2b2f726d2ef335c80c11eee813387')
+source=(https://github.com/sched-ext/scx/archive/refs/tags/v${pkgver}.tar.gz
+ 0001-scx-add-one-service-for-all-schedulers-and-config-fi.patch)
+sha512sums=('84dfc711ba9d51cd26c104caca1dcee3ce0be790be5b3a294ed47f4ef5fb20c58524b793d45b0970d61befa33adf8c8f3ca2b2f726d2ef335c80c11eee813387'
+ '1284c12302568808dcd836b440e957e7c2f9a8d112b3d1289d3dd2c0d245c0e2a5955a22cc4e41872efa546db497b3a48eddd514ff5ad58f2d463685847d99bd')
prepare() {
cd scx-${pkgver}