On Tue, 7 Nov 2023 13:57:31 -0800 Ankur Arora <ankur.a.arora@xxxxxxxxxx> wrote: > Note: this commit is badly broken. Only here for discussion. > > Configurations with ARCH_NO_PREEMPT support preempt_count, but might > not be tested well enough under PREEMPTION to support it might not > be demarcating the necessary non-preemptible sections. > > One way to handle this is by limiting them to PREEMPT_NONE mode, not > doing any tick enforcement and limiting preemption to happen only at > user boundary. > > Unfortunately, this is only a partial solution because eager > rescheduling could still happen (say, due to RCU wanting an > expedited quiescent period.) And, because we do not trust the > preempt_count accounting, this would mean preemption inside an > unmarked critical section. Is preempt_count accounting really not trust worthy? That is, if we preempt at preempt_count() going to zero but nowhere else, would that work? At least it would create some places that can be resched. What's the broken part of these archs? The assembly? If that's the case, as long as the generic code has the preempt_count() I would think that would be trust worthy. I'm also guessing that in_irq() and friends are still reliable. -- Steve