aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorClark Williams <clark.williams@gmail.com>2020-08-25 14:43:43 -0500
committerClark Williams <clark.williams@gmail.com>2020-08-25 14:43:43 -0500
commite450222b2025b5e2ae70f9cb09167f3062e2e8a9 (patch)
tree355d17847c80e9af385add47823bd58609f2ae7d
parent72dd1b11a0e51226da99ab485d09e0b9e779ce67 (diff)
downloadstalld-e450222b2025b5e2ae70f9cb09167f3062e2e8a9.tar.gz
rename project to starved (for Starvation Daemon)
Came up with a shorter name so ps output doesn't get cluttered Signed-off-by: Clark Williams <clark.williams@gmail.com>
-rw-r--r--Makefile14
-rw-r--r--README.md10
-rw-r--r--redhat/Makefile6
-rw-r--r--redhat/starvation_monitor.service11
-rw-r--r--redhat/starved.conf (renamed from redhat/starvation_monitor.conf)6
-rw-r--r--redhat/starved.service11
-rw-r--r--redhat/starved.spec (renamed from redhat/starvation_monitor.spec)12
-rw-r--r--src/starved.c (renamed from src/starvation_monitor.c)2
8 files changed, 37 insertions, 35 deletions
diff --git a/Makefile b/Makefile
index b5c2d76..6fada33 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
-NAME := starvation_monitor
-VERSION := 0.2
+NAME := starved
+VERSION := 1.0
INSTALL=install
@@ -9,19 +9,19 @@ DIRS := src redhat
FILES := Makefile README.md
TARBALL := $(NAME)-$(VERSION).tar.xz
-all: src/starvation_monitor.o
- $(CC) -o starvation_monitor -ggdb -lpthread src/starvation_monitor.o
+all: src/starved.o
+ $(CC) -o starved -ggdb -lpthread src/starved.o
.PHONY: install
install:
$(INSTALL) -m 755 -d $(DESTDIR)/usr/bin $(DESTDIR)/usr/share/$(NAME)-$(VERSION)
- $(INSTALL) starvation_monitor -m 755 $(DESTDIR)/usr/bin/
+ $(INSTALL) starved -m 755 $(DESTDIR)/usr/bin/
$(INSTALL) README.md -m 644 $(DESTDIR)/usr/share/$(NAME)-$(VERSION)
.PHONY: clean tarball redhat
clean:
- @test ! -f starvation_monitor || rm starvation_monitor
- @test ! -f src/starvation_monitor.o || rm src/starvation_monitor.o
+ @test ! -f starved || rm starved
+ @test ! -f src/starved.o || rm src/starved.o
@test ! -f $(TARBALL) || rm -f $(TARBALL)
@make -C redhat clean
@rm -rf *~
diff --git a/README.md b/README.md
index a5b87c9..4a31364 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
-# starvation_monitor
+# starved
-The starvation_monitor program is a mechanism to prevent the *starvation* of operating
+The starved program is a mechanism to prevent the *starvation* of operating
system threads in a real-time 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
@@ -10,16 +10,16 @@ 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, starvation_monitor changes
+When a thread is judged to be starving, starved 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 starvation_monitor then
+returned to its original scheduling policy and starved then
continues to monitor thread states.
## Command Line Options
-`Usage: starvation_monitor [-l] [-v] [-k] [-s] [-f] [-h]
+`Usage: starved [-l] [-v] [-k] [-s] [-f] [-h]
[-c cpu-list]
[-p time in ns] [-r time in ns]
[-d time in seconds ] [-t time in seconds ]`
diff --git a/redhat/Makefile b/redhat/Makefile
index 81ded12..7959f56 100644
--- a/redhat/Makefile
+++ b/redhat/Makefile
@@ -20,12 +20,12 @@ rpmdirs:
rpm: rpmdirs
cp ../*.tar.xz SOURCES
- rpmbuild -ba $(RPMARGS) starvation_monitor.spec
+ rpmbuild -ba $(RPMARGS) starved.spec
clean:
@rm -rf $(RPMDIRS) *~
install:
$(INSTALL) -m 755 -d $(DESTDIR)/etc/systemd/system
- $(INSTALL) starvation_monitor.conf -m 644 $(DESTDIR)/etc/systemd
- $(INSTALL) starvation_monitor.service -m 644 $(DESTDIR)/etc/systemd/system
+ $(INSTALL) starved.conf -m 644 $(DESTDIR)/etc/systemd
+ $(INSTALL) starved.service -m 644 $(DESTDIR)/etc/systemd/system
diff --git a/redhat/starvation_monitor.service b/redhat/starvation_monitor.service
deleted file mode 100644
index fced98e..0000000
--- a/redhat/starvation_monitor.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Starvation Monitor
-
-[Service]
-# Type=simple
-Type=forking
-EnvironmentFile=/etc/systemd/starvation_monitor.conf
-ExecStart=/usr/bin/starvation_monitor $CLIST $AGGR $BP $BR $BD $THRESH $LOGGING $FG $PF
-
-[Install]
-WantedBy=multi-user.target
diff --git a/redhat/starvation_monitor.conf b/redhat/starved.conf
index 8d9753d..cbbaad3 100644
--- a/redhat/starvation_monitor.conf
+++ b/redhat/starved.conf
@@ -1,5 +1,5 @@
#
-# parameters for the starvation_monitor service
+# parameters for the starved service
#
# list of cpus to monitor (default: all online)
@@ -44,5 +44,5 @@ LOGGING=
FG=
# Write a pidfile
-# ex: PF=--pidfile /run/starvation_monitor.pid
-PF="--pidfile /run/starvation_monitor.pid"
+# ex: PF=--pidfile /run/starved.pid
+PF="--pidfile /run/starved.pid"
diff --git a/redhat/starved.service b/redhat/starved.service
new file mode 100644
index 0000000..59a68ff
--- /dev/null
+++ b/redhat/starved.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Starvation Monitor
+
+[Service]
+# Type=simple
+Type=forking
+EnvironmentFile=/etc/systemd/starved.conf
+ExecStart=/usr/bin/starved $CLIST $AGGR $BP $BR $BD $THRESH $LOGGING $FG $PF
+
+[Install]
+WantedBy=multi-user.target
diff --git a/redhat/starvation_monitor.spec b/redhat/starved.spec
index fc05903..cff3cb6 100644
--- a/redhat/starvation_monitor.spec
+++ b/redhat/starved.spec
@@ -1,17 +1,17 @@
-Name: starvation_monitor
-Version: 0.2
+Name: starved
+Version: %(grep ^VERSION ../Makefile | awk '{print $3}')
Release: 1%{?dist}
Summary: daemon that finds starving tasks and gives them a temporary boost
License: GPL
-URL: https://github.com/bristot/starvation_monitor
+URL: https://github.com/bristot/starved
Source0: %{name}-%{version}.tar.xz
BuildRequires: glibc-devel
Requires: systemd
%description
-The starvation_monitor program monitors the set of system threads, looking for threads
+The starved program monitors the set of system threads, looking for threads
that are ready-to-run but have not been given cpu time for some threshold period. When
a starving thread is found, it is given a temporary boost using the SCHED_DEADLINE
policy. The default is to allow 10 microseconds of runtime for 1 second of clock time.
@@ -32,8 +32,8 @@ make DESTDIR=$RPM_BUILD_ROOT -C redhat install
%files
/usr/bin/%{name}
-/etc/systemd/starvation_monitor.conf
-/etc/systemd/system/starvation_monitor.service
+/etc/systemd/starved.conf
+/etc/systemd/system/starved.service
%doc /usr/share/%{name}-%{version}/README.md
diff --git a/src/starvation_monitor.c b/src/starved.c
index 445484c..f6b3809 100644
--- a/src/starvation_monitor.c
+++ b/src/starved.c
@@ -9,6 +9,8 @@
* SCHED_DEADLINE. In this way, the starving thread is able to make progress
* causing a bounded Operating System noise (OS Noise).
*
+ * SPDX-License-Identifier: GPL-2.0
+ *
*/
#define _GNU_SOURCE