[RTEMS Project] #4612: Locking Protocols for Multiprocessors
RTEMS trac
trac at rtems.org
Fri Feb 11 15:05:38 UTC 2022
#4612: Locking Protocols for Multiprocessors
----------------------+------------------------------
Reporter: Kuan | Owner: (none)
Type: project | Status: new
Priority: normal | Milestone: Indefinite
Component: score | Version: 5
Severity: normal | Keywords: Resource Sharing
Blocked By: | Blocking:
----------------------+------------------------------
== Introduction
To prevent race conditions or data corruption during resource sharing,
locking protocols are often employed to minimize the blocking time of
tasks that are waiting for the locked resources. Several locking protocols
have been implemented in RTEMS. For uniprocessors, there are Immediate
Priority Ceiling Protocol (IPCP) and Priority Inheritance Protocol (PIP).
For multiprocessors, Multiprocessor resource sharing Protocol (MrsP) has
been implemented.
However, it has been shown that other protocols are more suitable than
MrsP in some practical scenarios. It would be great if they are all
supported in RTEMS so that users can select what they need.
== Getting started as a GSOC student
If you are interested in working on this project for GSOC, there are a few
basics you should do immediately, if possible before even asking about the
project, to show that you are up to speed with the basics of running RTEMS
and ready to work on locking protocols for multiprocessors.
== Build up your emulation environment
You need a platform to test your work. One way is to emulate SMP
multiprocessors on QEMU. Take a look at this [https://es-rtos-
kh.blogspot.com/2020/06/rsbrtems-5-with-qemu-smp.html blog], which might
provide you some hints.
== Make a change in RTEMS
To show that you're capable to work on this project, the following steps
must be taken. Showing the result must be part of your proposal.
=== Hello World project
The official requirement is a
[https://devel.rtems.org/wiki/GSoC/GettingStarted Hello World project].
=== Make a change in the test suite for MrsP
MrsP has a corresponding
[https://github.com/RTEMS/rtems/tree/master/testsuites/smptests/smpmrsp01
testsuite]. Please make some changes on the taskset and explain how the
changes affect the execution results.
== Efforts for this project
You don't need to start from sketch, but certain efforts are definitely
required to go through the given materials.
Recently a group at TU Dortmund in Germany has released a descriptive
[https://arxiv.org/abs/2104.06366 paper] to elaborate the whole concept
together with their [https://github.com/tu-dortmund-ls12-rt/RTEMS-
Resource-Synchronization-Protocols implementation]: A collective patch is
also provided. However, it might not align with the latest version RTEMS.
The main effort of this project is to validate and refine their
implementation, especially the testsuites. The objective is to make
everything ready and integrate the collection into the master branch.
== Prerequisite
- Knowledge of Real-Time Systems
- Knowledge of C
- Knowledge of Locking Protocols. This is not as important, as you will
learn more on the way.
== Proposal Preparation
- Please finish the above two steps and demonstrate that you know how to
validate the functionality of locking protocols on multiprocessors.
- Estimate the efforts to make the given collective patch ready, including
version adaption, RTEMS coding convention, manual writing, patch
preparation, etc.
== Mentors
Kuan-Hsun Chen
--
Ticket URL: <http://devel.rtems.org/ticket/4612>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list