Hi team, Sorry I probably missed some part of discussion. So it was decided to keep priority inheritance ON for counting semaphores by default if the feature is enabled? And we are modifying all the POSIX by adding explicit setting to SEM_PRIO_NONE?
I truly believe that priority inheritance on counting semaphores should be explicitly enabled (disabled by default) and enabling it by default might lead to unexpected priority boost for low priority tasks that violates real-time requirements. The https://github.com/apache/incubator-nuttx/pull/5070 is definitely one of the possible solutions and we can continue with it or decide to go without TCB size increase and add pid into semholder struct + "(pholder->htcb == nxsched_get_tcb(pholder->pid))" check to ensure that htcb still points to original task that became a holder. Best regards, Petro On Wed, Jan 5, 2022, 1:54 PM Xiang Xiao <xiaoxiang781...@gmail.com> wrote: > Here are the two patch which demo that POSIX compliant code crash directly > when CONFIG_PRIORITY_INHERITANCE is enabled: > https://github.com/apache/incubator-nuttx/pull/5170 > https://github.com/apache/incubator-nuttx-apps/pull/960 > Please give your more feedback at > https://github.com/apache/incubator-nuttx/pull/5070. > If there is no more concern, we will start the full modification in the > next week. > > Thanks > Xiang > > > > On Sat, Dec 25, 2021 at 5:47 AM Gregory Nutt <spudan...@gmail.com> wrote: > > > > Please help review this PR for correctness and standards compliance, > > > keeping in mind the Inviolable principles of NuttX [2], particularly > > > the section on POSIX compliance: > > > > > > > I don't think POSIX addresses priority inheritance on counting > semaphores. > > POSIX only addresses priority inheritance on pthread mutexes. I need to > > double check that. > > > > Priority inheritance on counting semaphores is a natural extension and > > certainly required for a well-behaved embedded system. But I don't think > > there is a good spec-based argument, is there? > > >