[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