[LITMUS^RT] FMLP suspend and spin implementation

Björn Brandenburg bbb at mpi-sws.org
Tue Sep 2 12:07:19 CEST 2014


On 02 Sep 2014, at 05:35, Mehdi Souihed <mehdi.souihed at gmail.com> wrote:

> I am currently trying to benchmark FMLP under P-FP using special task and resource configurations.
> 
> I am only interested in the spinning version of FMLP (short global resources), however I do not see any way to set the type of the resource in liblitmus, nor to set group locks, etc..
> 
> I was wondering if the full FMLP was actually implemented in LITMUS / liblitmus ?
> 

The short version of the FMLP uses non-preemptive FIFO spin locks. LITMUS^RT's GSN-EDF and PSN-EDF plugins provide a low-overhead interface for tasks to become non-preemptive via the control page. The actual spin lock is best implemented in userspace. You can find many implementations of spin locks online, but liblitmus does not currently provide one.

It's quite easy to implement ticket locks using gcc's portable atomic intrinsics (or the new C11 APIs). I'd be happy to merge a patch for liblitmus if you end up incorporating spin locks.

Best regards,
Björn





More information about the litmus-dev mailing list