Compare commits
No commits in common. "imports/c10s/stalld-1.19.5-1.el10" and "c8" have entirely different histories.
imports/c1
...
c8
19
.gitignore
vendored
19
.gitignore
vendored
@ -1,18 +1 @@
|
||||
/stalld-1.0.tar.xz
|
||||
/stalld-1.1.tar.xz
|
||||
/stalld-1.2.tar.xz
|
||||
/stalld-1.4.tar.xz
|
||||
/stalld-1.6.tar.xz
|
||||
/stalld-1.8.tar.xz
|
||||
/stalld-1.9.tar.xz
|
||||
/stalld-1.10.tar.xz
|
||||
/stalld-1.11.tar.xz
|
||||
/stalld-1.13.tar.bz2
|
||||
/stalld-1.14.1.tar.bz2
|
||||
/stalld-1.15.tar.bz2
|
||||
/stalld-1.16.tar.bz2
|
||||
/stalld-1.19.tar.bz2
|
||||
/stalld-1.19.1.tar.bz2
|
||||
/stalld-1.19.2.tar.bz2
|
||||
/stalld-1.19.3.tar.bz2
|
||||
/stalld-1.19.5.tar.bz2
|
||||
SOURCES/stalld-1.19.1.tar.bz2
|
||||
|
61
README.md
61
README.md
@ -1,61 +0,0 @@
|
||||
# stalld
|
||||
|
||||
The stalld program (which stands for 'stall daemon') is a
|
||||
mechanism to prevent the *starvation* of operating system threads in a
|
||||
Linux system. The premise is to start up on a *housekeeping* cpu (one
|
||||
that is not used for real-application purposes) and to periodically
|
||||
monitor the state of each thread in the system, looking for a thread
|
||||
that has been on a run queue (i.e. ready to run) for a specifed length
|
||||
of time without being run. This condition is usually hit when the
|
||||
thread is on the same cpu as a high-priority cpu-intensive task and
|
||||
therefore is being given no opportunity to run.
|
||||
|
||||
When a thread is judged to be starving, stalld changes
|
||||
that thread to use the SCHED_DEADLINE policy and gives the thread a
|
||||
small slice of time for that cpu (specified on the command line). The
|
||||
thread then runs and when that timeslice is used, the thread is then
|
||||
returned to its original scheduling policy and stalld then
|
||||
continues to monitor thread states.
|
||||
|
||||
There is now an experimental option to boost using SCHED_FIFO. This
|
||||
logic is used if the running kernel does not support the
|
||||
SCHED_DEADLINE policy and may be forced by using the -F/--force_fifo
|
||||
option.
|
||||
|
||||
## Command Line Options
|
||||
|
||||
`Usage: stalld [-l] [-v] [-k] [-s] [-f] [-h] [-F]
|
||||
[-c cpu-list]
|
||||
[-p time in ns] [-r time in ns]
|
||||
[-d time in seconds] [-t time in seconds]`
|
||||
|
||||
### Logging options
|
||||
- -l/--log_only: only log information (do not boost) [false]
|
||||
- -v/--verbose: print info to the std output [false]
|
||||
- -k/--log_kmsg: print log to the kernel buffer [false]
|
||||
- -s/--log_syslog: print log to syslog [true]
|
||||
|
||||
### Startup options
|
||||
- -c/--cpu: list of cpus to monitor for stalled threads [all cpus]
|
||||
- -f/--foreground: run in foreground [false but true when -v]
|
||||
- -P/--pidfile: write daemon pid to specified file [no pidfile]
|
||||
|
||||
### Boosting options
|
||||
- -p/--boost_period: SCHED_DEADLINE period [ns] that the starving task will receive [1000000000]
|
||||
- -r/--boost_runtime: SCHED_DEADLINE runtime [ns] that the starving task will receive [20000]
|
||||
- -d/--boost_duration: how long [s] the starving task will run with SCHED_DEADLINE [3]
|
||||
- -F/--force_fifo: force using SCHED_FIFO for boosting
|
||||
|
||||
### Monitoring options
|
||||
- -t/--starving_threshold: how long [s] the starving task will wait before being boosted [60]
|
||||
- -A/--aggressive_mode: dispatch one thread per run queue, even when there is no starving
|
||||
threads on all CPU (uses more CPU/power). [false]
|
||||
### Miscellaneous
|
||||
- -h/--help: print this menu
|
||||
|
||||
## Repositories
|
||||
The repository at https://gitlab.com/rt-linux-tools/stalld is the main
|
||||
repository, where the development takes place.
|
||||
|
||||
The repository at https://git.kernel.org/pub/scm/utils/stalld/stalld.git is the
|
||||
distribution repository, where distros can pick the latest released version.
|
31
SOURCES/Start-stalld-service-as-initrc_t.patch
Normal file
31
SOURCES/Start-stalld-service-as-initrc_t.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From c93cef85e7ec08d924ad6a4f90a8677cc1603950 Mon Sep 17 00:00:00 2001
|
||||
From: John Kacur <jkacur@redhat.com>
|
||||
Date: Wed, 14 Feb 2024 15:55:30 -0500
|
||||
Subject: [PATCH] Start stalld service as initrc_t
|
||||
|
||||
Stalld currently runs as an unconfined_service_t.
|
||||
|
||||
Edit to service file so that the daemon is launched as an initrc_t.
|
||||
|
||||
Signed-off-by: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Signed-off-by: John Kacur <jkacur@redhat.com>
|
||||
---
|
||||
systemd/stalld.service | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/systemd/stalld.service b/systemd/stalld.service
|
||||
index d93110b1b43e..69f3ee728129 100644
|
||||
--- a/systemd/stalld.service
|
||||
+++ b/systemd/stalld.service
|
||||
@@ -10,7 +10,7 @@ ExecStartPre=/usr/bin/throttlectl off
|
||||
|
||||
# In case the regex passed to IT or IP includes C escape sequences,
|
||||
# use ${IT} or ${IP} instead of $IT or $IP
|
||||
-ExecStart=/usr/bin/stalld --systemd $CLIST $AGGR $BP $BR $BD $THRESH $LOGGING $FG $PF $IT $IP
|
||||
+ExecStart=/bin/sh -c "/usr/bin/stalld --systemd $CLIST $AGGR $BP $BR $BD $THRESH $LOGGING $FG $PF $IT $IP"
|
||||
ExecStopPost=/usr/bin/throttlectl on
|
||||
CPUSchedulingPolicy=fifo
|
||||
CPUSchedulingPriority=10
|
||||
--
|
||||
2.43.0
|
||||
|
@ -1,9 +1,9 @@
|
||||
Name: stalld
|
||||
Version: 1.19.5
|
||||
Release: 1%{?dist}
|
||||
Version: 1.19.1
|
||||
Release: 4%{?dist}
|
||||
Summary: Daemon that finds starving tasks and gives them a temporary boost
|
||||
|
||||
License: GPL-2.0-or-later AND GPL-2.0-only
|
||||
License: GPLv2
|
||||
URL: https://gitlab.com/rt-linux-tools/%{name}/%{name}.git
|
||||
Source0: https://gitlab.com/rt-linux-tools/%{name}/-/archive/v%{version}/%{name}-%{version}.tar.bz2
|
||||
|
||||
@ -18,11 +18,12 @@ Requires: systemd
|
||||
BuildRequires: bpftool
|
||||
BuildRequires: clang
|
||||
BuildRequires: libbpf-devel
|
||||
BuildRequires: llvm
|
||||
|
||||
Requires: libbpf
|
||||
%endif
|
||||
|
||||
%define _hardened_build 1
|
||||
Patch0: Start-stalld-service-as-initrc_t.patch
|
||||
|
||||
%description
|
||||
The stalld program monitors the set of system threads,
|
||||
@ -33,10 +34,10 @@ boost using the SCHED_DEADLINE policy. The default is to
|
||||
allow 10 microseconds of runtime for 1 second of clock time.
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
%make_build CFLAGS="%{optflags} %{build_cflags} -DVERSION="\\\"%{version}\\\"""
|
||||
%make_build CFLAGS="%{optflags} %{build_cflags} -DVERSION="\\\"%{version}\\\""" LDFLAGS="%{build_ldflags}"
|
||||
|
||||
%install
|
||||
%make_install DOCDIR=%{_docdir} MANDIR=%{_mandir} BINDIR=%{_bindir} DATADIR=%{_datadir} VERSION=%{version}
|
||||
@ -61,88 +62,35 @@ allow 10 microseconds of runtime for 1 second of clock time.
|
||||
%systemd_postun_with_restart %{name}.service
|
||||
|
||||
%changelog
|
||||
* Thu Jul 18 2024 Chris White <chwhite@redhat.com> - 1.19.5
|
||||
- Refactor Makefile to fix passing options to koji builds
|
||||
- Updated compile options for annocheck hardening
|
||||
- Ensure we resolve library symbols at load time (-z now) and are a Position Independent Executable (-pie). Refactored compile options to better deal with arch differences.
|
||||
- Added an 'annocheck' makefile target for local checking.
|
||||
Resolves: RHEL-34055
|
||||
* Wed Feb 14 2024 John Kacur <jkacur@redhat.com> - 1.19.1-4
|
||||
- Put back patch to run stalld service as initrc_t
|
||||
Resolves: RHEL-8982
|
||||
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1.19.3-3
|
||||
- Bump release for June 2024 mass rebuild
|
||||
* Mon Feb 12 2024 John Kacur <jkacur@redhat.com> - 1.19.1-3
|
||||
- Copying over missing tests directory
|
||||
Resolves: RHEL-8982
|
||||
|
||||
* Thu Jun 13 2024 Chris White <chwhite@redhat.com> - 1.19.3
|
||||
- systemd: ensure that pidfile directory exists
|
||||
Resolves: RHEL-34055
|
||||
* Mon Feb 12 2024 John Kacur <jkacur@redhat.com> - 1.19.1-2
|
||||
- Add llvm as a build requirement
|
||||
Resolves: RHEL-8982
|
||||
|
||||
* Tue May 28 2024 Chris White <chwhite@redhat.com> - 1.19.3
|
||||
- Makefile: change build to use FORTIFY_SOURCE=3
|
||||
- src/utils.c: fix off-by-one error in buffer allocation
|
||||
Resolves: RHEL-34055
|
||||
* Fri Feb 09 2024 John Kacur <jkacur@redhat.com> - 1.19.1-1
|
||||
- Rebase to v1.19.1 upstream
|
||||
Resolves: RHEL-8982
|
||||
|
||||
* Fri May 10 2024 Chris White <chwhite@redhat.com> - 1.19.2
|
||||
- stalld.conf: Fix stalld service start fail
|
||||
- throttling.c: null terminate input buffer
|
||||
- stalld: free malloc'd buffer on function exit
|
||||
- throttlectl.sh: use legal value for exit on fail
|
||||
- Make fill_process_comm() open comm file as READ_ONLY
|
||||
Resolves: RHEL-34055
|
||||
|
||||
* Fri Feb 09 2024 Clark Williams <williams@redhat.com> - 1.19.1
|
||||
- Conditionalize BPF and queue_track build per architecture
|
||||
- clean up Makefile install logic and add .bz2 to .gitignore
|
||||
- modify Makefiles so install works with relative paths
|
||||
- rename 'redhat' to 'systemd' and remove redhat packaging logic
|
||||
- update SPDX tags to non-deprecated values
|
||||
- stalld: Add -a/--affinity option
|
||||
- Adding SPDX license info to each file
|
||||
- man/stalld.8: change starving threshold to match code
|
||||
- utils: Fix freeing of invalid pointer
|
||||
- add bpftool as BuildRequires
|
||||
|
||||
* Mon Dec 25 2023 Clark Williams <williams@redhat.com> - 1.18.1
|
||||
- queue_track: Use LIBBPF_MAJOR/MINOR_VERSION to detect deprecated functions
|
||||
- utils: Close file descriptor
|
||||
- stalld: Fix function name of daemonize()
|
||||
- docs: Fix typo in the manual
|
||||
- queue_track: Use bpf_map__resize on older libbpf versions
|
||||
- utils: Let tgid to arrive at the fill proccess comm
|
||||
- stalld: Fix log message on idle detection
|
||||
- stalld: Add -b/--backend option
|
||||
- stalld: Add queue track eBPF based backend
|
||||
- stalld: Add fill_process_comm helper
|
||||
- stalld: Include regex.h on stalld.h
|
||||
- stalld: Get nr of cpus only once
|
||||
- stalld: Add the backend abstraction
|
||||
- sched_debug: Move sched debug functions to an specific file
|
||||
|
||||
* Thu Dec 21 2023 Clark Williams <williams@redhat.com> - 1.17.1
|
||||
* Tue Oct 18 2022 Leah Leshchinsky <lleshchi@redhat.com> - 1.17.1-1
|
||||
- stalld: Fix memory leak in print_boosted_info()
|
||||
- utils: Check if the system is in lockdown mode
|
||||
- stalld: print process comm and cpu when boosting
|
||||
- stalld: Detect runnable dying tasks
|
||||
- stalld: Fix nr_periods calculation in do_fifo_boost()
|
||||
- stalld.conf: Lower threshold to 20
|
||||
- utils.c: Exit early if enabling HRTICK fails when using SCHED_DEADLINE
|
||||
- Add support for loongarch
|
||||
Resolves: rhbz#2120800
|
||||
|
||||
* Mon Dec 18 2023 Clark Williams <williams@redhat.com> - 1.16.7
|
||||
- fix to sync versions
|
||||
* Thu Sep 08 2022 Leah Leshchinsky <lleshchi@redhat.com> - 1.17-2
|
||||
- Start stalld service as initrc_t
|
||||
Resolves:rhbz#2112366
|
||||
|
||||
* Mon Dec 18 2023 Clark Williams <williams@redhat.com> - 1.16.6
|
||||
- remove un-needed BuildRequire for bpftool
|
||||
|
||||
* Mon Dec 18 2023 Clark Williams <williams@redhat.com> - 1.16.5
|
||||
- changed package license to match SPDX values
|
||||
|
||||
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.16-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.16-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.16-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
* Thu Jul 14 2022 John Kacur <jkacur@redhat.com> - 1.17-1
|
||||
- rebase to upstream v1.17
|
||||
Resolves:rhbz#2107273
|
||||
|
||||
* Thu Mar 31 2022 Fernando Pacheco <fpacheco@redhat.com> - 1.16-1
|
||||
- stald/utils: Space, lines and voids clenaups
|
||||
@ -151,9 +99,7 @@ Resolves: RHEL-34055
|
||||
- src/utils: Comments cleanup
|
||||
- src/throttling: Comments cleanup
|
||||
- src/stalld.h Comments cleanup
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.15-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
Resolves: rhbz#2068549
|
||||
|
||||
* Mon Nov 15 2021 Fernando Pacheco <fpacheco@redhat.com> - 1.15-1
|
||||
- stalld: Fix incorrect open() return value checks
|
||||
@ -163,6 +109,7 @@ Resolves: RHEL-34055
|
||||
- tests: Fix uninitialized value action.sa_mask
|
||||
- utils: Bail if malloc() returns null in parse_cpu_list()
|
||||
- stalld: Use correct format specifier for long types
|
||||
Resolves: rhbz#1990057, rhbz#1996799, rhbz#1996825
|
||||
|
||||
* Mon Jul 19 2021 Fernando Pacheco <fpacheco@redhat.com> - 1.14.1-1
|
||||
- stalld: Coding style cleanup
|
||||
@ -175,7 +122,7 @@ Resolves: RHEL-34055
|
||||
- stalld: Adjust variables in parse_old_task_format()
|
||||
- utils.c: Use MAX_PATH for pidfile
|
||||
- stalld.c: Remove variable declaration from the middle of the function
|
||||
- stalld: Respect -l option in single threaded mode
|
||||
- stalld: Respect -l option in single threaded mode (1983100)
|
||||
- utils: s/try_to_open_file/check_file_exists/
|
||||
- utils: use check_file_exists in setup_hr_tick()
|
||||
- utils: Check for the new sched_features path
|
||||
@ -186,22 +133,22 @@ Resolves: RHEL-34055
|
||||
- stalld: Add the adaptive mode option
|
||||
- stalld: Use the last mode set in the cmdline
|
||||
- stalld: Fallback to the adaptive mode if force_fifo is selected
|
||||
- stalld: Make single-threaded mode the default one
|
||||
- stalld: Make single-threaded mode the default one (1920041)
|
||||
- stalld.service: Always restart stalld on exit
|
||||
- utils.c: Fail if user is not root
|
||||
- utils.c: Make the path to sched_debug path dynamic
|
||||
- utils.c: Make the path to sched_debug path dynamic (1977663)
|
||||
|
||||
* Tue Jun 29 2021 Fernando Pacheco <fpacheco@redhat.com> - 1.12-1
|
||||
- stalld.8: fix diff cruft left in manpage source
|
||||
- stalld.c: clean up handling of nr_running
|
||||
- stalld.c: remove duplicate parameter to fill_waiting_task()
|
||||
- stalld: Add error handling in get_cpu_idle_time()
|
||||
- stalld.c: remove duplicate parameter to fill_waiting_task() (1934582)
|
||||
- stalld.service: Run stalld as sched_fifo via systemd
|
||||
- packaging: clean up Makefiles and rpm specfile
|
||||
- stalld: Add error handling in get_cpu_idle_time() (1966259)
|
||||
- packaging: clean up Makefiles and rpm specfile (1972806)
|
||||
- stalld: Always print current function for info messages
|
||||
- stalld: Always print current function for warn messages
|
||||
- stalld: Always print current function for die messages
|
||||
- utils: change PATHMAX to 4096
|
||||
- utils: change PATHMAX to 4096 (1934581)
|
||||
|
||||
* Thu May 13 2021 Clark Williams <williams@redhat.com> - 1.11-1
|
||||
- redhat/stalld.spec: pick up gating test version for changelog
|
@ -1,6 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-10
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
1
sources
1
sources
@ -1 +0,0 @@
|
||||
SHA512 (stalld-1.19.5.tar.bz2) = 490efc66f214571582320adc7d80c022cc5d9f5b54a486b86ed867a942c9171a348d2f2a726e19ceccf8e39af3365d2ee192c85519134a00934b8d7cae0ca712
|
@ -1,21 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
# This will get uncommented once we have the rpm
|
||||
# make sure we have stalld installed
|
||||
if rpm -q --quiet stalld; then
|
||||
:
|
||||
else
|
||||
sudo dnf install -y stalld
|
||||
if [[ $? != 0 ]]; then
|
||||
echo "install of stalld failed!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
STALLD="/usr/bin/stalld"
|
||||
|
||||
# See if stalld is installed and executable
|
||||
$STALLD --help 2>> /dev/null
|
||||
if [[ $? != 0 ]]; then
|
||||
exit 2
|
||||
fi
|
@ -1,11 +0,0 @@
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-basic
|
||||
tags:
|
||||
- classic
|
||||
tests:
|
||||
- simple:
|
||||
dir: scripts
|
||||
run: ./run_tests.sh
|
||||
required_packages:
|
||||
- stalld
|
Loading…
Reference in New Issue
Block a user