Commit Graph

52 Commits

Author SHA1 Message Date
Fredrik Lönnegren
7d7bf94bb0 update Tumbleweed installation notes
Kernel package name was change to kernel-default.

Also add link to documentation to README.md

Signed-off-by: Fredrik Lönnegren <fredrik@frelon.se>
2024-09-12 10:28:03 +02:00
Piotr Gorski
97864d0b3d
scx_stats: Add proper logs for LAVD
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-09-05 18:18:34 +02:00
Piotr Gorski
cd8b73a48c
Add examples of scx_stats for rusty, rustland, bpfland and lavd
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-08-30 19:54:53 +02:00
Tejun Heo
43950c65bd build: Use workspace to group rust sub-projects
meson build script was building each rust sub-project under rust/ and
scheds/rust/ separately. This means that each rust project is built
independently which leads to a couple problems - 1. There are a lot of
shared dependencies but they have to be built over and over again for each
proejct. 2. Concurrency management becomes sad - we either have to unleash
multiple cargo builds at the same time possibly thrashing the system or
build one by one.

We've been trying to solve this from meson side in vain. Thankfully, in
issue #546, @vimproved suggested using cargo workspace which makes the
sub-projects share the same target directory and built together by the same
cargo instance while still allowing each project to behave independently for
development and publishing purposes.

Make the following changes:

- Create two cargo workspaces - one under rust/, the other under
  scheds/rust/. Each contains all rust projects underneath it.

- Don't let meson descend into rust/. These are libraries used by the rust
  schedulers. No need to build them from meson. Cargo will build them as
  needed.

- Change the rust_scheds build target to invoke `cargo build` in
  scheds/rust/ and let cargo do its thing.

- Remove per-scheduler meson.build files and instead generate custom_targets
  in scheds/rust/meson.build which invokes `cargo build -p $SCHED`.

- This changes rust binary directory. Update README and
  meson-scripts/install_rust_user_scheds accordingly.

- Remove per-scheduler Cargo.lock as scheds/rust/Cargo.lock is shared by all
  schedulers now.

- Unify .gitignore handling.

The followings are build times on Ryzen 3975W:

Before:
  ________________________________________________________
  Executed in  165.93 secs    fish           external
     usr time   40.55 mins    2.71 millis   40.55 mins
     sys time    3.34 mins   36.40 millis    3.34 mins

After:
  ________________________________________________________
  Executed in   36.04 secs    fish           external
     usr time  336.42 secs    0.00 millis  336.42 secs
     sys time   36.65 secs   43.95 millis   36.61 secs

Wallclock time is reduced 5x and CPU time 7x.
2024-08-25 00:47:58 -10:00
Andrea Righi
6a5a6ed18c README: add a link to the scx_bpfland topology awareness video demo
Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-08-23 19:53:25 +02:00
Daniel Hodges
0048f8dd38 docs: Update developer guide
Add some info on `perf` to the developer guide and link from the main
readme.

Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-08-19 11:34:15 -07:00
Giovanni Gherdovich
4268ace746
README: Reflect office hours change of day 2024-08-12 18:16:37 +02:00
Andrea Righi
6b251bcbfa README: update list of build dependencies for Ubuntu
Signed-off-by: Andrea Righi <andrea.righi@linux.dev>
2024-08-09 08:41:24 +02:00
Andrea Righi
cf4883fbf8 meson: introduce serialize build option
With commit 5d20f89a ("scheds-rust: build rust schedulers in sequence"),
schedulers are now built serially one after the other to prevent meson
and cargo from forking NxN parallel tasks.

However, this change has made building a single scheduler much more
cumbersome, due to the chain of dependencies.

For example, building scx_rusty using the specific meson target would
still result in all schedulers being built, because they all depend on
each other.

To address this issue, introduce the new meson build option
`serialize=true|false` (default is false).

This option allows to disable the schedulers' build chain, restoring the
old behavior.

With this option enabled, it is now possible to build just a single
scheduler, parallelizing the cargo build properly, without triggering
the build of the others. Example:

  $ meson setup build -Dbuildtype=release -Dserialize=false
  $ meson compile -C build scx_rusty

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2024-06-28 10:17:37 +02:00
Changwoo Min
2e35bca24c README: add a link to Changwoo's blog post on scx (part 2)
Signed-off-by: Changwoo Min <changwoo@igalia.com>
2024-06-25 09:10:24 +09:00
Piotr Gorski
35249a1888
README: Adding dependencies to allow compilation
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-06-03 15:06:25 +02:00
Anthony Ruhier
361bd77642
Document the needed BPF kernel config 2024-05-30 19:07:44 +02:00
Peter Jung
1a19ddabd4
README: Add missing link to NIX Install instructions
Signed-off-by: Peter Jung <admin@ptr1337.dev>
2024-05-04 11:16:52 +02:00
Daniel Hodges
e11d022283
Update README with Slack invite link
The current Slack URL gives a link to the Slack workspace, but doesn't
include the invite. Update the URL to include the invite URL to make it
easier for people to join the Slack workspace.

Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-05-02 23:57:57 -04:00
Daniel Hodges
b64dc740b4 Update README with instructions for linking local libbpf
Add extra info to the README for linking building using system libbpf.
It may not be the preferred way of building, but still could be useful
in certain situations such as making changes against a local libbpf
version.

Signed-off-by: Daniel Hodges <hodges.daniel.scott@gmail.com>
2024-05-01 06:41:50 -07:00
Andrea Righi
411af2216e README: update additional resources
Add "Getting started with sched-ext development" blog post to the
"Additional Resources" section.

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2024-04-15 19:18:06 +02:00
Tejun Heo
d62a15193e Doc & build: Warn about sccache
Build fails with sccache.

- Update meson-scripts/build_bpftool to support sccache. Unfortunately, this
  isn't enough.

- Update README to warn about sccache and add the instruction to disable it
  for buliding scx.

- Also add ⚠️ to make boot loader update step more prominent in arch
  installation instruction.
2024-04-03 10:18:45 -10:00
Jordan Rome
a880ca5433 Add install instructions for Fedora
Also create a separate INSTALL.md as the primary REAME.md is
getting a big long.
2024-04-03 12:34:37 -07:00
Tejun Heo
86f1550181
Update README.md 2024-04-03 06:48:30 -10:00
Tejun Heo
f32e4b2527
Update README.md 2024-04-03 06:22:53 -10:00
Piotr Gorski
5b94fb8930
Update cachyos-keyring
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-04-03 17:45:22 +02:00
Jordan Rome
54fe1c954e
Merge pull request #179 from jordalgo/bpftool
Fetch and build bpftool by default
2024-03-11 17:54:29 -04:00
Jordan Rome
ffc7b7dc4a Fetch and build bpftool by default
This pairs with the new default behavior to fetch and build libbpf
and is mostly being used so we can use the latest bpftool and libbpf.
2024-03-11 10:00:01 -07:00
Tejun Heo
423cd3ab67
Update README.md
Arch now defaults to clang17. Drop the custom clang installation.
2024-03-10 08:26:40 -10:00
Jordan Rome
1769dece7d Remove libbpf as a submodule
Instead clone the libbpf repo at a specific hash during setup.
This is to fix an issue whereby submodules are not included
in the tarball and therefore won't be updated/fetched during
setup after unzipping the tarball.
2024-03-07 18:31:09 -08:00
Jordan Rome
499924ead8 Add libbpf as a submodule
This is to potentinally reduce issues with folks
using different versions of libbpf at runtime.

This also:
- makes static linking of libbpf the default
- adds steps in `meson setup` to fetch libbpf and make it
2024-03-01 12:39:35 -08:00
Tejun Heo
438373a8cc Revert "Merge pull request #163 from jordalgo/libbpf-submodule"
This reverts commit 5b9b953e3c, reversing
changes made to a7b39f24e2.

The current git submodule approach is a bit cumbersome and doesn't provide a
unified build environment for both libbpf and scx scheds. Also, the build
instruction doesn't seem to work. Let's revert it for now.
2024-02-29 07:39:01 -10:00
Jordan Rome
626e66686a Add libbpf as a submodule
This is to potentinally reduce issues with folks using
different versions of libbpf at runtime.
2024-02-29 07:31:13 -08:00
Andrea Righi
9bbc66b537 README: drop reference to old ABI /sys/kernel/debug/sched/ext
We have moved generic sched-ext status files outside of debugfs, so that
kernels without SCHED_DEBUG enabled can also access this information.

However, the README.md file is still showing the old ABI in an example.

Replace it with the new sysfs interface to avoid confusion.

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2024-02-19 14:14:18 +01:00
Piotr Gorski
52ccf1de57
Add linux-sched-ext to CachyOS repo
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-02-04 19:11:46 +01:00
Jordan Rome
347a81fcff Add BREAKING_CHANGES.md 2024-01-29 10:44:44 -08:00
Piotr Gorski
db5d7c53d8
Update descriptions
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-01-24 16:35:47 +01:00
Piotr Gorski
25cc69b3c4
Add README.md for systemd services
Signed-off-by: Piotr Gorski <lucjan.lucjanov@gmail.com>
2024-01-24 14:56:45 +01:00
Tejun Heo
331f28b775
Update README.md to include terraria video 2024-01-10 15:17:35 -10:00
Changwoo Min
23cecf2532 Update README for additional resources (blog posts and articles) 2023-12-19 12:28:44 +09:00
Jordan Rome
e9a9d32ab6 Restructure scheds folder names
- combine c and kernel-examples as it's confusing to have both
- rename 'rust-user' and 'c-user' to just 'rust' and 'c', which is simpler
- update and fix sync-to-kernel.sh
2023-12-17 13:14:31 -08:00
Jordan Rome
8b02b41f51 Update meson install in readme 2023-12-14 12:26:51 -08:00
Jordan Rome
df48390d73 Update README for ubuntu instructions 2023-12-11 17:42:08 -08:00
Tejun Heo
7ebb102d5a README: David's review 2023-12-11 11:04:40 -10:00
Tejun Heo
feb9018cbe README: Add ubuntu instructions 2023-12-11 10:24:10 -10:00
Andrea Righi
6343bcf360 build: introduce enable_rust build option
Introduce an option to enable/disable the build of all the Rust
sub-projects.

This can be useful to build scx on those systems where Rust is not
fully supported (e.g., armhf).

Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
2023-12-09 15:05:23 +01:00
Tejun Heo
0b3ce4dfef
Merge pull request #17 from sched-ext/htejun
Support offline compilation
2023-12-08 08:46:04 -10:00
Tejun Heo
9e12238d64 Support offline compilation 2023-12-08 08:45:44 -10:00
Jordan Rome
cad301238a Update readme with alt meson install instructions 2023-12-08 04:50:42 -08:00
David Vernet
d9ece9fe87
README: Add link to join scx slack channel
Add a link to join the scx slack channel.

Signed-off-by: David Vernet <void@manifault.com>
2023-12-06 16:55:04 -06:00
David Vernet
086c05eaf5
README: Update a bunch of formatting and grammar
The root README files have some grammatical mistakes, and/or need to be
updated to not be in the context of being sent as a patch set. Update
them.

Signed-off-by: David Vernet <void@manifault.com>
2023-12-06 16:53:21 -06:00
Tejun Heo
49806b6ae2 README: Reflect David's review 2023-12-06 06:52:33 -10:00
Tejun Heo
22ab4c2496 README: Add instructions for Arch Linux 2023-12-06 06:15:14 -10:00
Tejun Heo
306a20bad3
Update README.md
Match repo about section.
2023-12-03 15:57:39 -10:00
Tejun Heo
1cd84fcea5 doc: minor 2023-12-03 11:54:06 -10:00