The package rpms/rust-scx_layered.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_layered.git/commit/?id=eba….
Change:
+ExcludeArch: %{ix86}
Thanks.
Full change:
============
commit ebaa89699982d3c5d07ccc569d3653d4ceb6fd07
Author: Jordan Rome <jordalgo(a)fedoraproject.org>
Date: Sat Jan 20 16:26:32 2024 -0500
Added sources, spec file, and rust2rpm.toml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b6acf52
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/scx_layered-0.0.4.crate
diff --git a/README.md b/README.md
index 643396a..36ac215 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,33 @@
# rust-scx_layered
-The rust-scx_layered 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 highly configurable multi-layer BPF / user space hybrid scheduler.
+
+scx_layered allows the user to classify tasks into multiple layers, and apply
+different scheduling policies to those layers. For example, a layer could be
+created of all tasks that are part of the `user.slice` cgroup slice, and a
+policy could be specified that ensures that the layer is given at least 80% CPU
+utilization for some subset of CPUs on the system.
+
+## Typical Use Case
+
+scx_layered is designed to be highly customizable, and can be targeted for
+specific applications. For example, if you had a high-priority service that
+required priority access to all but 1 physical core to ensure acceptable p99
+latencies, you could specify that the service would get priority access to all
+but 1 core on the system. If that service ends up not utilizing all of those
+cores, they could be used by other layers until they're needed.
+
+## Production Ready?
+
+Yes. If tuned correctly, scx_layered should be performant across various CPU
+architectures and workloads.
+
+That said, 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_layered.
diff --git a/rust-scx_layered.spec b/rust-scx_layered.spec
new file mode 100644
index 0000000..958756a
--- /dev/null
+++ b/rust-scx_layered.spec
@@ -0,0 +1,75 @@
+# Generated by rust2rpm 25
+%bcond_without check
+
+%global crate scx_layered
+
+Name: rust-scx_layered
+Version: 0.0.4
+Release: %autorelease
+Summary: Configurable multi-layer BPF / user space hybrid scheduler
+
+License: GPL-2.0-only
+URL: https://crates.io/crates/scx_layered
+Source: %{crates_source}
+
+BuildRequires: cargo-rpm-macros >= 24
+ExcludeArch: %{ix86}
+
+%global _description %{expand:
+A highly configurable multi-layer 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_layered
+
+%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..f0cc2ab
--- /dev/null
+++ b/rust2rpm.toml
@@ -0,0 +1,7 @@
+[package]
+summary = "Configurable multi-layer BPF / user space hybrid scheduler"
+description = """
+A highly configurable multi-layer 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..e2dfcd5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (scx_layered-0.0.4.crate) = f3dc8b21a996e4f89b51d1b183df559f5c960cd453469eb07fc0b51e0b531b5f85aea8bea80043962c7a8af0859b3f0de08eb7f55799a7dd99ff1dbad91de3f7
The package rpms/rust-scx_rustland.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_rustland.git/commit/?id=fd….
Change:
+ExcludeArch: %{ix86}
Thanks.
Full change:
============
commit fd3baef6b2d2235737eeac3e89f0a20c1de535a1
Author: Jordan Rome <jordalgo(a)fedoraproject.org>
Date: Sat Jan 20 18:15:13 2024 -0500
Added sources, spec file, and rust2rpm.toml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cc89407
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/scx_rustland-0.0.2.crate
diff --git a/README.md b/README.md
index ede4810..20320f9 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,47 @@
# rust-scx_rustland
-The rust-scx_rustland 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
+
+scx_rustland is made of a BPF component (dispatcher) that implements the low
+level sched-ext functionalities and a user-space counterpart (scheduler),
+written in Rust, that implements the actual scheduling policy.
+
+The BPF dispatcher is completely agnostic of the particular scheduling policy
+implemented in user-space. For this reason developers that are willing to use
+this scheduler to experiment scheduling policies should be able to simply
+modify the Rust component, without having to deal with any internal kernel /
+BPF details.
+
+## Typical Use Case
+
+scx_rustland is designed to be "easy to read" template that can be used by any
+developer to quickly experiment more complex scheduling policies, that can be
+fully implemented in Rust.
+
+## Production Ready?
+
+Not quite. For production scenarios, other schedulers are likely to exhibit
+better performance, as offloading all scheduling decisions to user-space comes
+with a certain cost.
+
+However, a scheduler entirely implemented in user-space holds the potential for
+seamless integration with sophisticated libraries, tracing tools, external
+services (e.g., AI), etc. Hence, there might be situations where the benefits
+outweigh the overhead, justifying the use of this scheduler in a production
+environment.
+
+## Demo
+
+[scx_rustland-terraria](https://github.com/sched-ext/scx/assets/1051723/42ec3bf2-9f1f-4403-80ab-bf5d66b7c2d5)
+
+For this demo the scheduler includes an extra patch to impose a "time slice
+penalty" on new short-lived tasks. While this approach might not be suitable
+for general usage, it can yield significant advantages in this specific
+scenario.
+
+The key takeaway is to demonstrate the ease and safety of conducting
+experiments like this, as we operate in user-space, and we can accomplish
+everything simply by modifying the Rust code, that is completely abstracted
+from the underlying BPF/kernel internal details.
diff --git a/rust-scx_rustland.spec b/rust-scx_rustland.spec
new file mode 100644
index 0000000..84258da
--- /dev/null
+++ b/rust-scx_rustland.spec
@@ -0,0 +1,78 @@
+# Generated by rust2rpm 25
+%bcond_without check
+
+%global crate scx_rustland
+
+Name: rust-scx_rustland
+Version: 0.0.2
+Release: %autorelease
+Summary: A simple user-space scheduler written in Rust
+
+License: GPL-2.0-only
+URL: https://crates.io/crates/scx_rustland
+Source: %{crates_source}
+
+BuildRequires: cargo-rpm-macros >= 24
+ExcludeArch: %{ix86}
+
+%global _description %{expand:
+A BPF component (dispatcher) that implements the low level
+sched-ext functionalities and a user-space counterpart (scheduler),
+written in Rust, that implements the actual scheduling policy.
+This is 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_rustland
+
+%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..39ad0d9
--- /dev/null
+++ b/rust2rpm.toml
@@ -0,0 +1,10 @@
+[package]
+summary = "A simple user-space scheduler written in Rust"
+description = """
+A BPF component (dispatcher) that implements the low level
+sched-ext functionalities and a user-space counterpart (scheduler),
+written in Rust, that implements the actual scheduling policy.
+This is 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..2959fd5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (scx_rustland-0.0.2.crate) = 3cb988dd3a7ee6b5cbed2ce5e0f9d9145dc2636eaebce255b6c4109ce3f74fda230531ceb6175e89876df1f86912d95da73804b50910325675a9b700e9d63830
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=d7d60….
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
The package rpms/rust-scx_layered.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_layered.git/commit/?id=eba….
Change:
+ExcludeArch: %{ix86}
Thanks.
Full change:
============
commit ebaa89699982d3c5d07ccc569d3653d4ceb6fd07
Author: Jordan Rome <jordalgo(a)fedoraproject.org>
Date: Sat Jan 20 16:26:32 2024 -0500
Added sources, spec file, and rust2rpm.toml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b6acf52
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/scx_layered-0.0.4.crate
diff --git a/README.md b/README.md
index 643396a..36ac215 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,33 @@
# rust-scx_layered
-The rust-scx_layered 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 highly configurable multi-layer BPF / user space hybrid scheduler.
+
+scx_layered allows the user to classify tasks into multiple layers, and apply
+different scheduling policies to those layers. For example, a layer could be
+created of all tasks that are part of the `user.slice` cgroup slice, and a
+policy could be specified that ensures that the layer is given at least 80% CPU
+utilization for some subset of CPUs on the system.
+
+## Typical Use Case
+
+scx_layered is designed to be highly customizable, and can be targeted for
+specific applications. For example, if you had a high-priority service that
+required priority access to all but 1 physical core to ensure acceptable p99
+latencies, you could specify that the service would get priority access to all
+but 1 core on the system. If that service ends up not utilizing all of those
+cores, they could be used by other layers until they're needed.
+
+## Production Ready?
+
+Yes. If tuned correctly, scx_layered should be performant across various CPU
+architectures and workloads.
+
+That said, 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_layered.
diff --git a/rust-scx_layered.spec b/rust-scx_layered.spec
new file mode 100644
index 0000000..958756a
--- /dev/null
+++ b/rust-scx_layered.spec
@@ -0,0 +1,75 @@
+# Generated by rust2rpm 25
+%bcond_without check
+
+%global crate scx_layered
+
+Name: rust-scx_layered
+Version: 0.0.4
+Release: %autorelease
+Summary: Configurable multi-layer BPF / user space hybrid scheduler
+
+License: GPL-2.0-only
+URL: https://crates.io/crates/scx_layered
+Source: %{crates_source}
+
+BuildRequires: cargo-rpm-macros >= 24
+ExcludeArch: %{ix86}
+
+%global _description %{expand:
+A highly configurable multi-layer 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_layered
+
+%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..f0cc2ab
--- /dev/null
+++ b/rust2rpm.toml
@@ -0,0 +1,7 @@
+[package]
+summary = "Configurable multi-layer BPF / user space hybrid scheduler"
+description = """
+A highly configurable multi-layer 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..e2dfcd5
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+SHA512 (scx_layered-0.0.4.crate) = f3dc8b21a996e4f89b51d1b183df559f5c960cd453469eb07fc0b51e0b531b5f85aea8bea80043962c7a8af0859b3f0de08eb7f55799a7dd99ff1dbad91de3f7
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=d7d60….
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