Compare commits
No commits in common. "c8" and "c9s" have entirely different histories.
|
@ -1 +1,13 @@
|
|||
SOURCES/stalld-1.17.1.tar.bz2
|
||||
/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.13.tar.bz2
|
||||
/stalld-1.14.1.tar.bz2
|
||||
/stalld-1.15.tar.bz2
|
||||
/stalld-1.16.tar.bz2
|
||||
/stalld-1.17.tar.xz
|
||||
/stalld-1.17.1.tar.bz2
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
449566fc8c5f8568a92ed0a04d15c31d64878741 SOURCES/stalld-1.17.1.tar.bz2
|
|
@ -0,0 +1,54 @@
|
|||
# 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
|
|
@ -1,27 +0,0 @@
|
|||
From 476152742021303d2defeb69f524bcc302618081 Mon Sep 17 00:00:00 2001
|
||||
From: Leah Leshchinsky <lleshchi@redhat.com>
|
||||
Date: Mon, 29 Aug 2022 14:07:39 -0400
|
||||
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>
|
||||
|
||||
diff --git a/redhat/stalld.service b/redhat/stalld.service
|
||||
index e0eb4b77b0a7..bcd4b767f629 100644
|
||||
--- a/redhat/stalld.service
|
||||
+++ b/redhat/stalld.service
|
||||
@@ -9,7 +9,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.31.1
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
|
@ -0,0 +1 @@
|
|||
SHA512 (stalld-1.17.1.tar.bz2) = 78c4e1a707053cfc00792910441b672bd2af389124683ea0fd86db42636c580ce12e4c71de7f35fcb32906b8beaa90beec0c90d0b1a51cdbd14aad85f471d22a
|
|
@ -14,8 +14,6 @@ BuildRequires: systemd-rpm-macros
|
|||
|
||||
Requires: systemd
|
||||
|
||||
Patch0: Start-stalld-service-as-initrc_t.patch
|
||||
|
||||
%description
|
||||
The stalld program monitors the set of system threads,
|
||||
looking for threads that are ready-to-run but have not
|
||||
|
@ -25,7 +23,7 @@ boost using the SCHED_DEADLINE policy. The default is to
|
|||
allow 10 microseconds of runtime for 1 second of clock time.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
%make_build CFLAGS="%{optflags} %{build_cflags} -DVERSION="\\\"%{version}\\\""" LDFLAGS="%{build_ldflags}"
|
||||
|
@ -53,19 +51,15 @@ allow 10 microseconds of runtime for 1 second of clock time.
|
|||
%systemd_postun_with_restart %{name}.service
|
||||
|
||||
%changelog
|
||||
* Fri Oct 21 2022 Leah Leshchinsky <lleshchi@redhat.com> - 1.17.1-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
|
||||
Resolves: rhbz#2136559
|
||||
|
||||
* Tue Sep 13 2022 Leah Leshchinsky <lleshchi@redhat.com> - 1.17-2
|
||||
- Start stalld service as initrc_t
|
||||
Resolves:rhbz#2126494
|
||||
Resolves: rhbz#2120799
|
||||
|
||||
* Thu Jul 14 2022 John Kacur <jkacur@redhat.com> - 1.17-1
|
||||
- rebase to upstream v1.17
|
||||
Resolves:rhbz#2107273
|
||||
Resolves:rhbz#2107275
|
||||
|
||||
* Thu Mar 31 2022 Fernando Pacheco <fpacheco@redhat.com> - 1.16-1
|
||||
- stald/utils: Space, lines and voids clenaups
|
||||
|
@ -74,7 +68,7 @@ Resolves:rhbz#2107273
|
|||
- src/utils: Comments cleanup
|
||||
- src/throttling: Comments cleanup
|
||||
- src/stalld.h Comments cleanup
|
||||
Resolves: rhbz#2068549
|
||||
Resolves: rhbz#2068550
|
||||
|
||||
* Mon Nov 15 2021 Fernando Pacheco <fpacheco@redhat.com> - 1.15-1
|
||||
- stalld: Fix incorrect open() return value checks
|
||||
|
@ -84,7 +78,11 @@ Resolves:rhbz#2107273
|
|||
- 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
|
||||
Resolves: rhbz#2016010
|
||||
|
||||
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 1.14.1-2
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Mon Jul 19 2021 Fernando Pacheco <fpacheco@redhat.com> - 1.14.1-1
|
||||
- stalld: Coding style cleanup
|
||||
|
@ -97,7 +95,7 @@ Resolves:rhbz#2107273
|
|||
- 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 (1983100)
|
||||
- stalld: Respect -l option in single threaded mode (1983103)
|
||||
- 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
|
||||
|
@ -108,22 +106,22 @@ Resolves:rhbz#2107273
|
|||
- 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 (1920041)
|
||||
- stalld: Make single-threaded mode the default one
|
||||
- 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 (1977663)
|
||||
- utils.c: Make the path to sched_debug path dynamic
|
||||
|
||||
* 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() (1934582)
|
||||
- stalld.c: remove duplicate parameter to fill_waiting_task()
|
||||
- stalld: Add error handling in get_cpu_idle_time()
|
||||
- stalld.service: Run stalld as sched_fifo via systemd
|
||||
- stalld: Add error handling in get_cpu_idle_time() (1966259)
|
||||
- packaging: clean up Makefiles and rpm specfile (1972806)
|
||||
- packaging: clean up Makefiles and rpm specfile
|
||||
- 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 (1934581)
|
||||
- utils: change PATHMAX to 4096
|
||||
|
||||
* Thu May 13 2021 Clark Williams <williams@redhat.com> - 1.11-1
|
||||
- redhat/stalld.spec: pick up gating test version for changelog
|
||||
|
@ -135,6 +133,9 @@ Resolves:rhbz#2107273
|
|||
- stalld: Support denylisting of tasks in stalld
|
||||
- src/utils: use right argument for warning printf
|
||||
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 1.9-2
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* Wed Feb 17 2021 Clark Williams <williams@redhat.com> - 1.9-2
|
||||
- update to pick up latest gating test
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
#!/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
|
|
@ -0,0 +1,11 @@
|
|||
- 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