RTEMS | SMP: Add FMLP-Short and FMLP-Long locking protocols (!882)
Karthikey Kadati (@karthikey_kadati)
gitlab at rtems.org
Tue Apr 14 20:55:34 UTC 2026
Karthikey Kadati commented on a discussion on cpukit/include/rtems/rtems/attr.h: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/882#note_148558
> +#define RTEMS_FLEXIBLE_MULTIPROCESSOR_LOCKING_LONG 0x00000400
> +
> +/* Generated from spec:/rtems/attr/if/flexible-multiprocessor-locking-short */
> +
> +/**
> + * @ingroup RTEMSAPIClassicAttr
> + *
> + * @brief This attribute constant indicates that the Classic API semaphore
> + * created by rtems_semaphore_create() shall use the Flexible Multiprocessor
> + * Locking Protocol - Short variant (FMLP-S).
> + *
> + * @par Notes
> + * The FMLP-S uses non-preemptive execution for short critical sections. The
> + * semaphore shall be a binary semaphore (#RTEMS_BINARY_SEMAPHORE).
> + */
> +#define RTEMS_FLEXIBLE_MULTIPROCESSOR_LOCKING_SHORT 0x00000200
Fair point, merging this means a long-term commitment to support these protocols, and I also want to make sure the attribute field doesn't get cluttered with too many one-off bits.
What I'd like to do is introduce a `RTEMS_LOCKING_PROTOCOL_MASK`similar to how `RTEMS_SEMAPHORE_CLASS (0x00000030)`names the semaphore-type bits. The mask would cover MrsP's existing bit plus the new FMLP ones. No existing values change--it just gives the protocol bits an explicit name instead of the manually maintained OR-list in `_Attributes_Has_at_most_one_protocol()`. When DFLP (or another protocol )comes later, it slots into the mask instead of being another ad-hoc addition.
On the protocols themselves: FMLP comes from well-established real-time literature (Block et al., 2007) and is already in LITMUS^RT. The implementation follows the same pattern as MrsP, so maintenance overhead should be minimal. DFLP is next as part of my GSoC, and that's the full scope.
--
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/882#note_148558
You're receiving this email because of your account on gitlab.rtems.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20260414/94f709cc/attachment-0001.htm>
More information about the bugs
mailing list