Karthikey Kadati created a merge request: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/882

Project:Branches: karthikey_kadati/rtems:feature-fmlp-port to 
rtems/rtos/rtems:main
Author:   Karthikey Kadati




This MR introduces the Flexible Multiprocessor Locking Protocol (FMLP) into the 
RTEMS 7 SMP SuperCore. It implements both the FMLP-Short (busy-wait) and 
FMLP-Long (suspension) variants. This addresses a significant gap in 
predictable multiprocessor resource sharing as documented in the TU Dortmund 
research.

**Technical Details** The implementation modernizes the research patch by 
Junjie Shi et al. (2020) to align with current RTEMS 7 architecture.

* **SuperCore Logic**: Logic for `FMLPS_Control` (Short) and `FMLPL_Control` 
(Long) has been added to `cpukit/score`.

**Locking Mechanisms:**

* **FMLP-Short**: Implements priority ceiling enforcement for non-preemptive 
busy-waiting.
* **FMLP-Long**: Implements priority inheritance and boosting mechanisms for 
suspension-based locking.

**Wait Discipline:** Both variants utilize a FIFO wait-queue discipline, 
departing from standard priority-sorted queues to ensure predictable 
multiprocessor behavior.

**SMP Safety:** All operations are updated to use the modern 
`Thread_queue_Context` to ensure atomic state transitions.

**API and Observability**

* **Classic API**: Extended the Semaphore Manager attributes to include 
`RTEMS_FLEXIBLE_MULTIPROCESSOR_LOCKING_SHORT` and 
`RTEMS_FLEXIBLE_MULTIPROCESSOR_LOCKING_LONG`.
* **Monitor**: Updated `cpukit/libmisc/monitor/mon-sema.c` to identify and 
display these new semaphore types correctly.

**Verification** Testing was performed on the SIS Simulator (SPARC/LEON3) with 
a 2-CPU SMP configuration.

* **spfmlp01**: Validates FMLP-Long (suspension, priority inheritance, 
deadlock-free release).
* **spfmlp02**: Validates FMLP-Short (busy-wait, priority ceiling enforcement).

Updates #4612

Signed-off-by: Karthikey D Kadati [email protected]

-- 
View it on GitLab: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/882
You're receiving this email because of your account on gitlab.rtems.org.


_______________________________________________
bugs mailing list
[email protected]
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to