Compare commits
10 Commits
5c819d7709
...
68e0dc55bd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68e0dc55bd | ||
|
|
eddf673e6e | ||
|
|
9c3a94d32d | ||
|
|
8fab3ba5c5 | ||
|
|
093f73d767 | ||
|
|
d8fbb7d34d | ||
|
|
74837cd080 | ||
|
|
9ba7d74376 | ||
|
|
4fae86ef9b | ||
|
|
c6fc15d4f8 |
12
0001-Add-support-for-loongarch.patch
Normal file
12
0001-Add-support-for-loongarch.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up ./src/stalld.h.old ./src/stalld.h
|
||||
--- ./src/stalld.h.old 2023-07-20 10:28:58.525933347 +0800
|
||||
+++ ./src/stalld.h 2023-07-20 10:29:25.674132507 +0800
|
||||
@@ -83,7 +83,7 @@ struct cpu_info {
|
||||
#elif __arm__
|
||||
# define __NR_sched_setattr 380
|
||||
# define __NR_sched_getattr 381
|
||||
-#elif __aarch64__
|
||||
+#elif __aarch64__ || __loongarch64
|
||||
# define __NR_sched_setattr 274
|
||||
# define __NR_sched_getattr 275
|
||||
#elif __powerpc__
|
||||
@ -8,7 +8,7 @@ Software architecture description
|
||||
|
||||
#### Installation
|
||||
|
||||
1. xxxx
|
||||
1. xxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
|
||||
69
README.md
69
README.md
@ -1,30 +1,73 @@
|
||||
# stalld
|
||||
|
||||
#### 介绍
|
||||
The stalld program is a mechanism to prevent the starvation of operating system threads in a Linux system.
|
||||
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.
|
||||
|
||||
|
||||
#### 软件架构
|
||||
软件架构说明
|
||||
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
Install stalld rpm package:
|
||||
|
||||
yum install stalld
|
||||
|
||||
#### 使用说明
|
||||
Logging options
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
-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]
|
||||
|
||||
#### 参与贡献
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 新建 Feat_xxx 分支
|
||||
3. 提交代码
|
||||
4. 新建 Pull Request
|
||||
master分支使用最新的上游版本,如果检测到上游有最新版本发布,先形成issue后再提交对应PR更新,流程如下。
|
||||
1. 提交issue
|
||||
2. Fork 本仓库
|
||||
3. 新建 Feat_xxx 分支
|
||||
4. 提交代码
|
||||
5. 新建 Pull Request
|
||||
|
||||
|
||||
#### 特技
|
||||
|
||||
Binary file not shown.
BIN
stalld-1.16.tar.bz2
Normal file
BIN
stalld-1.16.tar.bz2
Normal file
Binary file not shown.
18
stalld.spec
18
stalld.spec
@ -1,11 +1,12 @@
|
||||
Name: stalld
|
||||
Version: 1.14.1
|
||||
Release: 1
|
||||
Version: 1.16
|
||||
Release: 2
|
||||
Summary: Daemon that finds starving tasks and gives them a temporary boost
|
||||
|
||||
License: GPLv2
|
||||
URL: https://gitlab.com/rt-linux-tools/%{name}.git
|
||||
URL: https://gitlab.com/rt-linux-tools/%{name}
|
||||
Source0: https://gitlab.com/rt-linux-tools/%{name}/-/archive/v%{version}/%{name}-%{version}.tar.bz2
|
||||
Patch0: 0001-Add-support-for-loongarch.patch
|
||||
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: gcc
|
||||
@ -23,7 +24,7 @@ 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}\\\""" LDFLAGS="%{build_ldflags}"
|
||||
@ -51,5 +52,14 @@ allow 10 microseconds of runtime for 1 second of clock time.
|
||||
%systemd_postun_with_restart %{name}.service
|
||||
|
||||
%changelog
|
||||
* Thu Jul 20 2023 lvgenggeng <lvgenggeng@uniontech.com> - 1.16-2
|
||||
- add support for loongarch64
|
||||
|
||||
* Mon Nov 07 2022 duyiwei <duyiwei@kylinos.cn> - 1.16-1
|
||||
- upgrade version to 1.16
|
||||
|
||||
* Tue Jun 7 2022 duyiwei <duyiwei@kylinos.cn> - 1.15-1
|
||||
- upgrade to 1.15
|
||||
|
||||
* Mon Jan 24 2022 duyiwei <duyiwei@kylinos.cn> - 1.14.1-1
|
||||
- Package init
|
||||
|
||||
4
stalld.yaml
Normal file
4
stalld.yaml
Normal file
@ -0,0 +1,4 @@
|
||||
version_control: gitlab
|
||||
src_repo: rt-linux-tools/stalld
|
||||
tag_prefix: "v"
|
||||
separator: "."
|
||||
Loading…
x
Reference in New Issue
Block a user