I think what we are calling "Strict Priority" is defined by POSIX as
SCHED_FIFO.

SCHED_FIFO: The thread runs until it blocks itself or it is preempted by a
higher priority thread. (This is what you want).

SCHED_RR: The thread runs until the above happens *OR* its time slice
(200ms) expires.

So, we could create a choice in the menuconfig with these three options:

SCHED_FIFO
SCHED_RR
SCHED_SPORADIC

If SCHED_FIFO is selected, the RR_INTERVAL is set to 0. If SCHED_RR is
selected the option to set RR_INTERVAL value will show up.

What do you think?

BR,

Alan

On Wed, Nov 26, 2025 at 3:40 PM Alan C. Assis <[email protected]> wrote:

> Do you suggest moving from RST to Markdown?
>
> I think SCHED_PRIORITY is not a standard definition, at least I didn't
> find it in POSIX.
>
> You can propose using RR slice equal 0 by default, but I don't know the
> side effects (it could be considered a breaking change, because some user
> applications could stop working or behave strangely).
>
> BR,
>
> Alan
>
> On Wed, Nov 26, 2025 at 3:27 PM Tim Hardisty <[email protected]>
> wrote:
>
>> I don't mind doing documentation - but it does take a lot more effort
>> since RST doesn't have very good previewers that I have found: it is
>> difficult to know if will it render correctly on the website unless you
>> do the whole RST build stuff.
>>
>> Quicker - if agreeable as a short term fix - would be to add a Kconfig
>> option to specifically choose the scheduling option, with an appropriate
>> CONFIG_RR_INTERVAL setting of 0 for SCHED_PRIORITY or 200ms for
>> SCHED_RR? That would mean no code changes as such?
>>
>> Something like that anyway. If it fixes my issue, I can play with this
>> and do a PR
>>
>> On 26/11/2025 18:16, Alan C. Assis wrote:
>> > Guess what? We are still missing a proper Documentation! :-)
>> >
>> > BR,
>> >
>> > Alan
>> >
>> > On Wed, Nov 26, 2025 at 3:11 PM Tim Hardisty <[email protected]>
>> > wrote:
>> >
>> >> So do we agree the documentation is at best misleading? And, to me,
>> >> simply wrong?
>> >>
>> >> On 26/11/2025 18:07, Alan C. Assis wrote:
>> >>> Exactly!
>> >>>
>> >>> You can refer to sched/sched/sched_timerexpiration.c line 207
>> >>>
>> >>> On Wed, Nov 26, 2025 at 3:00 PM Tim Hardisty <[email protected]
>> >
>> >>> wrote:
>> >>>
>> >>>> That's what I inferred (yet to try it) - so is the documentation
>> >>>> misleading since the default CONFIG_RR_INTERVAL=200 forces RR
>> scheduling
>> >>>> rather than the stated "strict priority scheduling"?
>> >>>>
>> >>>> On 26/11/2025 17:54, Alan C. Assis wrote:
>> >>>>> CONFIG_RR_INTERVAL=0
>> >>>>>
>> >>>>> On Wed, Nov 26, 2025 at 2:22 PM Tim Hardisty <
>> [email protected]>
>> >>>>> wrote:
>> >>>>>
>> >>>>>> Apologies if this isn't really a NuttX question...
>> >>>>>>
>> >>>>>> Documentation says "By default, NuttX performs strict priority
>> >>>> scheduling".
>> >>>>>> Default CONFIG_RR_INTERVAL is 200ms.
>> >>>>>>
>> >>>>>> I have multiple threads, but have not set any scheduling
>> parameters,
>> >> but
>> >>>>>> it seems threads are being scheduled every 200ms rather on a
>> priority
>> >>>>>> basis.
>> >>>>>>
>> >>>>>> What *should* I be doing, please, to get all my threads scheduled
>> by
>> >>>>>> priority?
>> >>>>>>
>> >>>>>> Thanks,
>> >>>>>>
>> >>>>>> TimH
>> >>>>>>
>> >>>>>> PS - yes I have thrown myself in the deep end without a life jacket
>> >> with
>> >>>>>> my project. And I'm no doubt up ****-creek without a paddle. But I
>> am
>> >>>>>> always learning!
>> >>>>>>
>>
>

Reply via email to