Overview
This thread is a technical log for my work on Issue #4612
My goal for GSoC 2026 is to implement and verify high-performance locking protocols for the RTEMS 7 SMP SuperCore.
While I am currently starting with the Flexible Multiprocessor Locking Protocol (FMLP), I plan to use the summer to master SuperCore internals and port as many protocols from the research collective as possible.
Prerequisite Homework: MrsP Analysis
Before jumping into new code, I verified the existing MrsP implementation using the smpmrsp01 test suite on the SIS/Leon3 simulator.
- The Experiment: I modified the
init.ctaskset to set the main task priority to 1 and the MrsP priority ceiling to 5. - The Result: This mismatch triggered a terminal assertion failure at line 1411 in the
mrsp_obtain_and_release_with_help. - The Finding: Analyzing the switch logs showed exactly how strictly RTEMS 7 monitors task-to-processor affinity and priority elevation.
- Why it matters: This gave me the hands-on experience needed with modern SuperCore primitives like
Thread_queueandISR_Lockbefore starting the FMLP port.
Current Status: Porting FMLP (MR !882)
I have a functional port of FMLP that modernizes the original research code to align with the RTEMS 7 architecture.
- SMP Safety: All state transitions now use
Thread_queue_Contextfor atomic operations across cores. - Wait Discipline: I’ve implemented strict FIFO wait queues for both Short and Long variants to ensure predictable behavior.
- API Support: Updated the Classic API Semaphore Manager so users can select the new
RTEMS_FLEXIBLE_MULTIPROCESSOR_LOCKING_SHORTandLONGattributes - Observability: Patched the system monitor (
mon-sema.c) so FMLP semaphore types actually show up during debugging. - Testing: The implementation is currently green on the
spfmlp01(Long) andspfmlp02(Short) test suites.
Recent Refinements
I’ve been working through initial community feedback to make the code upstream-ready:
- Commit Structure: I separated the work into an “Import” commit for the original research and a “Port” commit for my RTEMS 7 adaptations.
- Code Quality: I’ve cleared out formatting and whitespace issues across the core logic and tests.
- Licensing: Verified that the original research authorship and copyrights are correctly preserved.