Skip to content

Stacked runners: Support thread-level parallelism - #1735

Merged
Sangho Lee (sangho2) merged 4 commits into
uliteboxfrom
sanghle/ulitebox/smp_threads
Oct 31, 2026
Merged

Sangho Lee (sangho2) merged 4 commits into
uliteboxfrom
sanghle/ulitebox/smp_threads

Conversation

@sangho2

@sangho2 Sangho Lee (sangho2) commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds support for thread-level parallelism, allowing multiple threads of a process to run concurrently on different CPUs. It introduces fine-grained cross-CPU TLB shootdowns, scheduler changes, and pinned pages for data transfers between user threads and kernel brokers to minimize TLB tracking effort. Currently, it only parallelizes user-level executions: kernel entries are still serialized.

@sangho2 Sangho Lee (sangho2) changed the title Run a process's threads at once on different CPUs Stacked runners: Support thread-level parallelism Oct 28, 2026
@sangho2
Sangho Lee (sangho2) force-pushed the sanghle/ulitebox/smp_threads branch 5 times, most recently from 76cbe3b to 2d245fc Compare October 29, 2026 15:24
@sangho2
Sangho Lee (sangho2) marked this pull request as ready for review October 29, 2026 15:32
@sangho2
Sangho Lee (sangho2) force-pushed the sanghle/ulitebox/smp_threads branch 2 times, most recently from fdab6d8 to fe56b01 Compare October 29, 2026 23:39
@sangho2
Sangho Lee (sangho2) force-pushed the sanghle/ulitebox/smp_threads branch from fe56b01 to 3fb1fad Compare October 31, 2026 03:21
@github-actions

Copy link
Copy Markdown

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

Click for details
--- 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 Ipi:FlushTlb in /home/runner/work/litebox/litebox/litebox_platform_vm_kernel/src/cpu.rs:83

--- failure exported_function_return_value_added: exported fn return value added ---

Description:
An exported function that previously returned `()` now returns a value, changing its ABI. For example, it may now require an additional register with which to return its value.
        ref: https://doc.rust-lang.org/reference/items/external-blocks.html#abi
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.51.0/src/lints/exported_function_return_value_added.ron

Failed in:
  external_interrupt_handler_impl exported as external_interrupt_handler_impl in /home/runner/work/litebox/litebox/litebox_platform_vm_kernel/src/arch/x86/interrupts.rs:167

--- 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_platform_vm_kernel::with_user_faults, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-ulitebox/d35cf77c91a0c7ed7cb0dbde471861818561151e/litebox_platform_vm_kernel/src/lib.rs:1156

--- 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 ProcessConfig.give_up_once in /home/runner/work/litebox/litebox/litebox_shim_vm_kernel/src/lib.rs:115

@sangho2
Sangho Lee (sangho2) added this pull request to the merge queue Oct 31, 2026
Merged via the queue into ulitebox with commit a1fadd7 Oct 31, 2026
11 checks passed
@sangho2
Sangho Lee (sangho2) deleted the sanghle/ulitebox/smp_threads branch October 31, 2026 03:56
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