[PATCH] score: Remove PRIORITY_PSEUDO_ISR thread priority

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Jul 26 09:32:18 UTC 2022


On 22/07/2022 14:35, Sebastian Huber wrote:
> 
> 
> On 21.07.22 16:20, Joel Sherrill wrote:
>>
>>
>> On Thu, Jul 21, 2022 at 12:53 AM Sebastian Huber 
>> <sebastian.huber at embedded-brains.de 
>> <mailto:sebastian.huber at embedded-brains.de>> wrote:
>>
>>     Hello Gedare and Joel,
>>
>>     On 15.07.22 10:43, Sebastian Huber wrote:
>>      > The uniprocessor schedulers had some special case logic for the
>>      > PRIORITY_PSEUDO_ISR priority.  Tasks with a priority of
>>     PRIORITY_PSEUDO_ISR
>>      > were allowed to preempt a not preemptible task.  If other higher
>>     priority task
>>      > are made ready while a PRIORITY_PSEUDO_ISR task preempts a not
>>     preemptible
>>      > task, then the other tasks run before the not preemptible task. 
>>     This made the
>>      > RTEMS_NO_PREEMPT mode ineffective.
>>      >
>>      > Remove the PRIORITY_PSEUDO_ISR special case logic.  This
>>     simplifies the
>>      > uniprocessor schedulers.  Move the uniprocessor-specific
>>     scheduler support to
>>      > the new header file <rtems/score/scheduleruniimpl.h>.
>>      >
>>      > Close #2365.
>>
>>
>> I'm guessing that  PRIORITY_PSEUDO_ISR wasn't used outside RTEMS itself
>> and likely only historically for the Timer Server Thread. The 
>> protection for that
>> thread was reworked as part of the SMP efforts. If it is used outside 
>> RTEMS,
>> that would be a user facing breakage and should be documented.
>>
>> If you think all the use cases of PRIORITY_PSEUDO_ISR are accounted for,
>> I'm ok with removing it.
> 
> The pseudo-interrupt priority is mentioned in a glossary entry:
> 
>      priority boosting
>          A simple approach to extend the priority inheritance protocol for
>          clustered scheduling is priority boosting.  In case a mutex is 
> owned by a
>          task of another cluster, then the priority of the owner task is 
> raised to
>          an artificially high priority, the pseudo-interrupt priority.
> 
> This entry was added for the clustered scheduling documentation and 
> needs to be changed.
> 
> I found no reference to the no-preempt break of the pseudo-interrupt 
> priority in the documentation. I doubt that there is an application 
> which relies on this extraordinary feature.

I updated the documentation and committed the patch.

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


More information about the devel mailing list