The package rpms/rust-scx_rusty.git has added or updated architecture specific content in
its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/rust-scx_rusty.git/commit/?id=d7d....
Change:
+ExcludeArch: %{ix86}
Thanks.
Full change:
============
commit 928c29551781433294189d4f12a946fea7df6683
Author: Jordan Rome <jordalgo(a)fedoraproject.org>
Date: Sat Jan 20 15:12:44 2024 -0500
updated Readme
diff --git a/README.md b/README.md
index 99bfb46..46aa57c 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,33 @@
# rust-scx_rusty
-The rust-scx_rusty package
+This is a single user-defined scheduler used within
[
sched_ext](https://github.com/sched-ext/scx/tree/main), which is a Linux kernel feature
which enables implementing kernel thread schedulers in BPF and dynamically loading them.
[Read more about
sched_ext](https://github.com/sched-ext/scx/tree/main).
+
+## Overview
+
+A multi-domain, BPF / user space hybrid scheduler. The BPF portion of the
+scheduler does a simple round robin in each domain, and the user space portion
+(written in Rust) calculates the load factor of each domain, and informs BPF of
+how tasks should be load balanced accordingly.
+
+## Typical Use Case
+
+Rusty is designed to be flexible, and accommodate different architectures and
+workloads. Various load balancing thresholds (e.g. greediness, frequenty, etc),
+as well as how Rusty should partition the system into scheduling domains, can
+be tuned to achieve the optimal configuration for any given system or workload.
+
+## Production Ready?
+
+Yes. If tuned correctly, rusty should be performant across various CPU
+architectures and workloads. Rusty by default creates a separate scheduling
+domain per-LLC, so its default configuration may be performant as well. Note
+however that scx_rusty does not yet disambiguate between LLCs in different NUMA
+nodes, so it may perform better on multi-CCX machines where all the LLCs share
+the same socket, as opposed to multi-socket machines.
+
+Note as well that you may run into an issue with infeasible weights, where a
+task with a very high weight may cause the scheduler to incorrectly leave cores
+idle because it thinks they're necessary to accommodate the compute for a
+single task. This can also happen in CFS, and should soon be addressed for
+scx_rusty.
+
commit d7d601e49846da04f3d536c198093e7e24ccf42b
Author: Jordan Rome <jordalgo(a)fedoraproject.org>
Date: Sat Jan 20 15:10:41 2024 -0500
Add sources, spec, and rust2rpm
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0ea68d2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/scx_rusty-0.5.3.crate
diff --git a/rust-scx_rusty.spec b/rust-scx_rusty.spec
new file mode 100644
index 0000000..146dd06
--- /dev/null
+++ b/rust-scx_rusty.spec
@@ -0,0 +1,75 @@
+# Generated by rust2rpm 25
+%bcond_without check
+
+%global crate scx_rusty
+
+Name: rust-scx_rusty
+Version: 0.5.3
+Release: %autorelease
+Summary: A multi-domain, BPF / user space hybrid scheduler
+
+License: GPL-2.0-only
+URL:
https://crates.io/crates/scx_rusty
+Source: %{crates_source}
+
+BuildRequires: cargo-rpm-macros >= 24
+ExcludeArch: %{ix86}
+
+%global _description %{expand:
+A multi-domain, BPF / user space hybrid scheduler used within sched_ext,
+which is a Linux kernel feature which enables implementing kernel thread
+schedulers in BPF and dynamically loading them.
+https://github.com/sched-ext/scx/tree/main}
+
+%description %{_description}
+
+%package -n %{crate}
+Summary: %{summary}
+# (MIT OR Apache-2.0) AND Unicode-DFS-2016
+# Apache-2.0
+# Apache-2.0 OR BSL-1.0
+# Apache-2.0 OR MIT
+# Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT
+# BSD-2-Clause
+# BSD-3-Clause
+# BSD-3-Clause OR MIT OR Apache-2.0
+# GPL-2.0-only
+# ISC
+# LGPL-2.1-only OR BSD-2-Clause
+# MIT
+# MIT OR Apache-2.0
+# Unlicense OR MIT
+# Zlib
+License: GPL-2.0-only AND (MIT OR Apache-2.0) AND Unicode-DFS-2016 AND Apache-2.0
AND (Apache-2.0 OR BSL-1.0) AND (Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT) AND
BSD-2-Clause AND BSD-3-Clause AND (BSD-3-Clause OR MIT OR Apache-2.0) AND ISC AND
(LGPL-2.1-only OR BSD-2-Clause) AND MIT AND (Unlicense OR MIT) AND Zlib
+# LICENSE.dependencies contains a full license breakdown
+
+%description -n %{crate} %{_description}
+
+%files -n %{crate}
+%license LICENSE
+%license LICENSE.dependencies
+%doc README.md
+%{_bindir}/scx_rusty
+
+%prep
+%autosetup -n %{crate}-%{version} -p1
+%cargo_prep
+
+%generate_buildrequires
+%cargo_generate_buildrequires
+
+%build
+%cargo_build
+%{cargo_license_summary}
+%{cargo_license} > LICENSE.dependencies
+
+%install
+%cargo_install
+
+%if %{with check}
+%check
+%cargo_test
+%endif
+
+%changelog
+%autochangelog
diff --git a/rust2rpm.toml b/rust2rpm.toml
new file mode 100644
index 0000000..1c2f4d9
--- /dev/null
+++ b/rust2rpm.toml
@@ -0,0 +1,7 @@
+[package]
+summary = "A multi-domain, BPF / user space hybrid scheduler"
+description = """
+A multi-domain, BPF / user space hybrid scheduler used within sched_ext,
+which is a Linux kernel feature which enables implementing kernel thread
+schedulers in BPF and dynamically loading them.
+https://github.com/sched-ext/scx/tree/main"""
diff --git a/sources b/sources
new file mode 100644
index 0000000..45d871b
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (scx_rusty-0.5.3.crate) =
e1e583918e7dc19b3d795e874cb0d323614387dcd3182124eedddd6b02999cc00a6a8ae7cdc614657abf45e1ffd974e262e2ca1ca1c4980a60dda2b385e9a92d