Skip to content

Stacked runners: Run runner processes on every CPU - #1695

Draft
Sangho Lee (sangho2) wants to merge 1 commit into
sanghle/ulitebox/smp-2-cpus-onlinefrom
sanghle/ulitebox/smp-3-scheduler
Draft

Sangho Lee (sangho2) wants to merge 1 commit into
sanghle/ulitebox/smp-2-cpus-onlinefrom
sanghle/ulitebox/smp-3-scheduler

Conversation

@sangho2

Copy link
Copy Markdown
Contributor

This PR allows every CPU to run userland runner processes. All threads and the broker of a single process share one CPU at a time, so different processes can run in parallel, including their I/O. For now, a single multithreaded guest does not speed up due to the lack of TLB shootdowns and fine-grained locking.

@sangho2
Sangho Lee (sangho2) added this pull request to stack #1687 October 21, 2026 23:41
@sangho2
Sangho Lee (sangho2) force-pushed the sanghle/ulitebox/smp-3-scheduler branch 2 times, most recently from 75410df to 205c74e Compare October 22, 2026 20:48
@sangho2
Sangho Lee (sangho2) marked this pull request as ready for review October 22, 2026 21:09
@sangho2
Sangho Lee (sangho2) marked this pull request as draft October 22, 2026 22:08
@sangho2
Sangho Lee (sangho2) force-pushed the sanghle/ulitebox/smp-3-scheduler branch from 205c74e to 66b4641 Compare October 23, 2026 01:10
@github-actions

Copy link
Copy Markdown

ℹ️ Note: This semver check was run against the sanghle/ulitebox/smp-2-cpus-online branch, not main or ulitebox.

🤖 SemverChecks 🤖 ⚠️ Potential breaking API changes detected ⚠️

Click for details
--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant PathError::NoSuchFileOrDirectory 0 -> 1 in /home/runner/work/litebox/litebox/litebox/src/fs/errors.rs:290
  variant PathError::NoSearchPerms 1 -> 2 in /home/runner/work/litebox/litebox/litebox/src/fs/errors.rs:292
  variant PathError::InvalidPathname 2 -> 3 in /home/runner/work/litebox/litebox/litebox/src/fs/errors.rs:294
  variant PathError::MissingComponent 3 -> 4 in /home/runner/work/litebox/litebox/litebox/src/fs/errors.rs:296
  variant PathError::ComponentNotADirectory 4 -> 5 in /home/runner/work/litebox/litebox/litebox/src/fs/errors.rs:298

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_variant_added.ron

Failed in:
  variant PathError:TooManySymlinks in /home/runner/work/litebox/litebox/litebox/src/fs/errors.rs:288

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/method_parameter_count_changed.ron

Failed in:
  litebox::LiteBox::path_file_status takes 2 parameters in /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox/src/fs/file.rs:143, but now takes 3 parameters in /home/runner/work/litebox/litebox/litebox/src/fs/file.rs:148

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/trait_method_added.ron

Failed in:
  trait method litebox::platform::page_mgmt::PageReservation::merge in file /home/runner/work/litebox/litebox/litebox/src/platform/page_mgmt.rs:29

--- failure enum_discriminants_undefined_non_unit_variant: enum's variants no longer have defined discriminants due to non-unit variant ---

Description:
An enum's variants no longer have well-defined discriminant values due to a tuple or struct variant in the enum. This breaks downstream code that accesses discriminants via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_discriminants_undefined_non_unit_variant.ron

Failed in:
  enum WalkStopReason in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/backend.rs:413

--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---

Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_no_repr_variant_discriminant_changed.ron

Failed in:
  variant PathError::NoSuchFileOrDirectory 0 -> 1 in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:245
  variant PathError::NoSearchPerms 1 -> 2 in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:247
  variant PathError::InvalidPathname 2 -> 3 in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:249
  variant PathError::MissingComponent 3 -> 4 in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:251
  variant PathError::ComponentNotADirectory 4 -> 5 in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:253

--- failure enum_unit_variant_changed_kind: An enum unit variant changed kind ---

Description:
A public enum's exhaustive unit variant has changed to a different kind of enum variant, breaking possible instantiations and patterns.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_unit_variant_changed_kind.ron

Failed in:
  variant WalkStopReason::StoppedAtNonDirectory in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/backend.rs:417

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_variant_added.ron

Failed in:
  variant InitialNode:Symlink in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/in_mem.rs:265
  variant OpenError:NoSuchDevice in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:32
  variant ChownError:IsSymlink in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:148
  variant ChmodError:IsSymlink in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:130
  variant PathError:TooManySymlinks in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/errors.rs:243

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/function_parameter_count_changed.ron

Failed in:
  litebox_broker_core::fs::path_status now takes 4 parameters instead of 3, in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/service.rs:673

--- failure inherent_method_const_removed: pub method is no longer const ---

Description:
A publicly-visible method or associated fn is no longer `const` and can no longer be used in a `const` context.
        ref: https://doc.rust-lang.org/reference/const_eval.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_const_removed.ron

Failed in:
  TestStdioProvider::with_terminal in /home/runner/work/litebox/litebox/litebox_broker_core/src/test_support.rs:161

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_missing.ron

Failed in:
  Resolver::is_terminal, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_core/src/fs/resolver.rs:946
  TestStdioProvider::with_uncontrolled_terminal, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_core/src/test_support.rs:177
  TestStdioProvider::terminal_queries, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_core/src/test_support.rs:219

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/method_parameter_count_changed.ron

Failed in:
  litebox_broker_core::fs::resolver::Resolver::file_status takes 2 parameters in /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_core/src/fs/resolver.rs:918, but now takes 3 parameters in /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/resolver.rs:1156

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/trait_method_added.ron

Failed in:
  trait method litebox_broker_core::fs::backend::Backend::read_link_at in file /home/runner/work/litebox/litebox/litebox_broker_core/src/fs/backend.rs:71

--- failure trait_method_missing: pub trait method removed or renamed ---

Description:
A trait method is no longer callable, and may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/trait_method_missing.ron

Failed in:
  method is_terminal of trait Backend, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_core/src/fs/backend.rs:163

--- failure trait_method_parameter_count_changed: pub trait method parameter count changed ---

Description:
A trait method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/trait_method_parameter_count_changed.ron

Failed in:
  StdioProvider::terminal now takes 0 instead of 1 parameters, in file /home/runner/work/litebox/litebox/litebox_broker_core/src/stdio.rs:74

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/method_parameter_count_changed.ron

Failed in:
  litebox_broker_local::BrokerLocal::path_file_status takes 3 parameters in /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_local/src/fs.rs:231, but now takes 4 parameters in /home/runner/work/litebox/litebox/litebox_broker_local/src/fs.rs:233

--- failure function_missing: pub fn removed or renamed ---

Description:
A publicly-visible function cannot be imported by its prior path. A `pub use` may have been removed, or the function itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/function_missing.ron

Failed in:
  function litebox_broker_platform_linux_userland::terminal::open_stdio_terminals, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_platform_linux_userland/src/terminal.rs:35

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_missing.ron

Failed in:
  LinuxTerminal::open, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_platform_linux_userland/src/terminal.rs:111

--- failure constructible_struct_adds_field: struct exhaustively constructible through public API adds field ---

Description:
A pub struct that could be exhaustively constructed with a literal using only public API has a new pub field, breaking existing exhaustive literals.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field PathFileStatusRequest.follow_symlinks in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/fs.rs:449

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_variant_added.ron

Failed in:
  variant FileResponse:ReadLink in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/message.rs:790
  variant FileResponse:ResolvePath in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/message.rs:792
  variant FileRequest:ReadLink in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/message.rs:751
  variant FileRequest:ResolvePath in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/message.rs:753

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_missing.ron

Failed in:
  UserlandStdioProvider::open_terminals, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_userland/src/stdio.rs:64
  UserlandStdioProvider::with_terminals, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_userland/src/stdio.rs:85
  UserlandStdioProvider::close_terminals, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_userland/src/stdio.rs:113

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/inherent_method_missing.ron

Failed in:
  Association::take_woken, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_vm_kernel/src/lib.rs:823
  Association::halt, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-sanghle_ulitebox_smp_2_cpus_online/949ece8ce3936ec449933ed551ebbbee1351a1d4/litebox_broker_vm_kernel/src/lib.rs:828

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/enum_variant_added.ron

Failed in:
  variant Errno:ELOOP in /home/runner/work/litebox/litebox/litebox_common_macos/src/errno.rs:66

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant