GSoC 2026: Locking Protocols for Multiprocessors (Work Thread)

Hello everyone
Ishant this side, working on Locking Procols for multiprocessors project for GSoC 2026 (issue: 4612).

I was working on the MRSP test in the smptests testsuite and made some small changes to the init.c which brought some changes in the output.

Environment Details: arm-realview-pbx-a9 on QEMU-10.2.1 (everything on Ubuntu 22.04)

Initially the task was running into FATAL error in the test_mrsp_deadlock_error(ctx) function (1st screenshot attached), when the priority of the main task and worker task were both prio = 2. On changing the priority to prio = 4, the test moved ahead but then failed the assertion rtems_test_assert( prio == 2 ) causing RTEMS shutdown (2nd screenshot attached).
On changing the priority to prio = 1, the task stalled infinitely (3rd screenshot attached) because another task created inside the function had the same priority.

I am looking for some guidance as to how to proceed with this project and some resources for studying multiprocessor locking protocols. I am currently reading the paper mentioned in the gitlab issue description and looking into the implementation given in the issue.


Thanks and Regards

I would suggest that you dig in with a debugger to try to narrow down why the deadlock is happening.

So I got to know that the source tree got corrupted since I executed ./waf from inside the source directory for sparc/erc32 as well as the arm/realview-pbx-a9. On rebuilding the build tree for realview outside the source directory, the test worked without any issues.

I made some small changes in the init.c file for testing purposes, like changed the priority of one of the tasks (screenshot attached). This caused the task to fail its own assertion (screenshot attached).

After conducting these tests, I switched to another branch and applied the tu-dortmund patch to test out and understand their implementations better. Is there something I should keep in mind while doing that? Also can you suggest some things which may be worth looking into to work on this project more effectively?


OK, that’s interesting running ./waf should not corrupt anything. Curious.

There’s already a topic open for this project idea: Locking Protocols for Multiprocessors [GSOC’26]