  The period enforcer algorithm for self-suspending real-time tasks is a
technique for suppressing the "back-to-back" scheduling penalty associated with
deferred execution. Originally proposed in 1991, the algorithm has attracted
renewed interest in recent years. This note revisits the algorithm in the light
of recent developments in the analysis of self-suspending tasks, carefully
re-examines and explains its underlying assumptions and limitations, and points
out three observations that have not been made in the literature to date: (i)
period enforcement is not strictly superior (compared to the base case without
enforcement) as it can cause deadline misses in self-suspending task sets that
are schedulable without enforcement; (ii) to match the assumptions underlying
the analysis of the period enforcer, a schedulability analysis of
self-suspending tasks subject to period enforcement requires a task set
transformation for which no solution is known in the general case, and which is
subject to exponential time complexity (with current techniques) in the limited
case of a single self-suspending task; and (iii) the period enforcer algorithm
is incompatible with all existing analyses of suspension-based locking
protocols, and can in fact cause ever-increasing suspension times until a
deadline is missed.
