Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tracking: SMP Support #243

Closed
10 of 12 tasks
elenaf9 opened this issue Apr 10, 2024 · 1 comment
Closed
10 of 12 tasks

tracking: SMP Support #243

elenaf9 opened this issue Apr 10, 2024 · 1 comment
Assignees

Comments

@elenaf9
Copy link
Collaborator

elenaf9 commented Apr 10, 2024

Summary

Add support for symmetric multiprocessing (SMP), i.e. platforms with multiple symmetric cores.
An example for such a platform is the Raspberry RP2040, with Dual ARM Cortex-M0+ cores.

Subtasks for basic a implementation

A first implementation for the RP2040 is drafted in #241. There is quite a lot still missing there.
The below list includes some central tasks, but will grow while I am working on this.

  • riot-rs-runqueue: support multiple currently running threads #244
  • Multicore support in the scheduler: feat(threads): multicore support  #397
    • Schedule n highest-priority threads on the n cores
    • Trigger scheduler of other cores
    • Idle thread for each core
    • Affinity Masks
    • Optimize scheduler invocations to reduce context switches and priority inversion
    • Supported chips:
      • RP2040
      • ESP32S3
  • Optimize locking primitives (spinlocks for shared resources, scheduler lock, ...)
    • Test different levels of locking (fine-grained vs one global lock)
    • Use independent internal critical section

Additional features (to be discussed):

Benchmarks

The implementation should be tested with benchmarks to compare the performance with the single-core version.
Off the top of my head, some interesting metrics would be:

  • Response time
  • Makespan
  • Priority inversions
  • ...

Edit: a set of benchmarks is currently implemented outside of this repo: elenaf9/RIOT-rs-application. Selected benchmarks will be moved in this repo eventually).

@elenaf9 elenaf9 self-assigned this Apr 10, 2024
@kaspar030 kaspar030 mentioned this issue Apr 10, 2024
57 tasks
@kaspar030 kaspar030 changed the title [Tracking Issue] SMP Support tracking: SMP Support Jul 10, 2024
@kaspar030
Copy link
Collaborator

kaspar030 commented Oct 24, 2024

I consider this done, #398 is orthogonal.

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

No branches or pull requests

2 participants