aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
mainBump to 1.5.1ImageImageMichał Górny10 days
 
TagDownloadAuthorAge
v1.5.1steve-1.5.1.tar.gz  steve-1.5.1.tar.bz2  steve-1.5.1.zip  ImageImageMichał Górny10 days
v1.5.0steve-1.5.0.tar.gz  steve-1.5.0.tar.bz2  steve-1.5.0.zip  ImageImageMichał Górny5 months
v1.4.0steve-1.4.0.tar.gz  steve-1.4.0.tar.bz2  steve-1.4.0.zip  ImageImageMichał Górny6 months
v1.3.1steve-1.3.1.tar.gz  steve-1.3.1.tar.bz2  steve-1.3.1.zip  ImageImageMichał Górny6 months
v1.3.0steve-1.3.0.tar.gz  steve-1.3.0.tar.bz2  steve-1.3.0.zip  ImageImageMichał Górny6 months
v1.2.0steve-1.2.0.tar.gz  steve-1.2.0.tar.bz2  steve-1.2.0.zip  ImageImageMichał Górny7 months
v1.1.0steve-1.1.0.tar.gz  steve-1.1.0.tar.bz2  steve-1.1.0.zip  ImageImageMichał Górny7 months
v1.0.2steve-1.0.2.tar.gz  steve-1.0.2.tar.bz2  steve-1.0.2.zip  ImageImageMichał Górny7 months
v1.0.1steve-1.0.1.tar.gz  steve-1.0.1.tar.bz2  steve-1.0.1.zip  ImageImageMichał Górny7 months
v1.0.0steve-1.0.0.tar.gz  steve-1.0.0.tar.bz2  steve-1.0.0.zip  ImageImageMichał Górny7 months
 
AgeCommit messageAuthorFilesLines
10 daysBump to 1.5.1•••Signed-off-by: Michał Górny <mgorny@gentoo.org> HEADv1.5.1mainImageImageMichał Górny1-1/+1
2026-05-23Fix memory leak of pollhandle in steve_poll()•••The steve_poll() function would leak memory in form of the pollhandle in case a token is immediately available. Because then the pollhandle is not placed in the waiters queue, where it is eventually deallocated via the ~steve_waiter destructor. Fix this my explicitly destroying the pollhandle if we do not put it in the waiters queue. Signed-off-by: Florian Schmaus <flow@gentoo.org> Part-of: https://codeberg.org/gentoo/steve/pulls/2 Merges: https://codeberg.org/gentoo/steve/pulls/2 Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageFlorian Schmaus1-1/+6
2026-05-23Fix token leak if client performs non-blocking poll•••If a client performs a non-blocking poll while no tokens were available, FUSE/CUSE passes a nullptr as the pollhandle argument to steve_poll(). Steve would previously push this nullptr into the waiters queue. Later, when a token became available, the server would wake this "ghost" waiter, permanently reserving a token for a client that was not actually waiting for it. This effectively leaks the token until the client process exited. Fix this by only queuing a waiter request if the pollhandle is non-null (representing an actual sleeping client). Signed-off-by: Florian Schmaus <flow@gentoo.org> Part-of: https://codeberg.org/gentoo/steve/pulls/5 Merges: https://codeberg.org/gentoo/steve/pulls/5 Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageFlorian Schmaus1-1/+2
2026-05-22Do not pass an invalid buffer to FUSE in steve_handle_cuse()•••When steve is stopped and the CUSE connection closes, fuse_session_recieve_buf() returns 0. In thise case steve_handle_cuse() shuts down the event loop but did not return, causing an invalid buffer being passed to fuse_session_process_buf(). This causes FUSE to abort, bypassing a clean unmount, which manifests as a memory leak. Fix this by only invoking fuse_session_process_buf() if rd > 0. This also changes the code so that the error handling is only performed if rd != -EINTR && rd != -EAGAIN, as those a transient errors that should be simply ignored. Signed-off-by: Florian Schmaus <flow@gentoo.org> Part-of: https://codeberg.org/gentoo/steve/pulls/3 Merges: https://codeberg.org/gentoo/steve/pulls/3 Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageFlorian Schmaus1-2/+3
2026-05-22Run steve service under SCHED_FIFO•••As a system-wide jobserver, steve orchestrates token distribution for parallel builds. Under heavy load, the spawned jobs, e.g., compiler and linker processes quickly saturate all available CPU time. When the system is fully saturated, steve suffers from scheduling starvation, which affects the overall system efficiency. If a client releases a token or requests one, steve may not be scheduled immediately, leading to a form of priority inversion where compute-bound tasks delay the critical path of I/O-bound token dispatch. This causes workers to idle unnecessarily, extending overall build times. Since steve's workload is strictly I/O-bound, i.e., reading and writing small pipe messages, and its CPU footprint is minuscule, it is an ideal candidate for higher-priority fifo (real-time) scheduling. Moving it to SCHED_FIFO ensures that token dispatch preempts standard compilation tasks instantly, maintaining high system utilization. The SCHED_FIFO priority is kept at a moderate real-time level of 10 to easily outrank standard user-space workloads without interfering with critical kernel threads like IRQ handlers. Signed-off-by: Florian Schmaus <flow@gentoo.org> Part-of: https://codeberg.org/gentoo/steve/pulls/4 Merges: https://codeberg.org/gentoo/steve/pulls/4 Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageFlorian Schmaus1-0/+2
2026-01-30Bump to 1.5.0•••Signed-off-by: Michał Górny <mgorny@gentoo.org> v1.5.0ImageImageMichał Górny1-1/+1
2026-01-30stevie: Provide -j value in MAKEFLAGS•••Provide the job count as -j in MAKEFLAGS, to accommodate clients using that as an upper job bound (e.g. LLVM). Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageMichał Górny1-0/+13
2026-01-10Include waiters in SIGUSR1 report•••Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageMichał Górny1-2/+15
2025-12-30Bump to 1.4.0•••Signed-off-by: Michał Górny <mgorny@gentoo.org> v1.4.0ImageImageMichał Górny1-1/+1
2025-12-30Add sanity checks for --min-memory-avail•••Signed-off-by: Michał Górny <mgorny@gentoo.org> ImageImageMichał Górny1-2/+26
[...]
 
Clone
https://anongit.gentoo.org/git/proj/steve.git
git+ssh://git@git.gentoo.org/proj/steve.git