[LITMUS^RT] [PATCH 5/5] litmus: get rid of unused RT_F_EXIT_SEM flag

Björn Brandenburg bbb at mpi-sws.org
Thu Oct 4 13:21:54 CEST 2012


Thanks for the patches!

On Oct 4, 2012, at 12:31 PM, Manohar Vanga wrote:

> This patch removes the RT_F_EXIT_SEM flag. All code paths
> depending on it being true are assumed to be unreachable
> and removed.


The patch is fine, but it touches on a major sore spot in LITMUS^RT. The heuristic for determining whether a task that wakes up triggers a new job release is too coarse-grained to be useful. It does not allow tardy jobs to resume (which is obviously not desirable under schedulers like G-EDF) and has no concept of tasks that violate their specified minimum inter-arrival time.

What we really should have is a way for a job to communicate to the scheduler that the "next planned" wake-up should be considered a job release. For example, each newly arrived packet on a UDP socket should trigger a job release. However, it's not so easy to define "next planned" correctly. For example, with the UDP example, what if the job has an "unplanned" suspension (e.g., due to a page fault) just before issuing the blocking system call? What if there's already another packet queued and there's no suspension? It should still trigger a new job release. Conceptually, this is not very difficult, but Linux's existing API works against us here.

I'm in favor of merging this patch (it doesn't make anything worse), but we really should think about how to address the underlying job control problem in the near future.

Thanks,
Björn





More information about the litmus-dev mailing list