Re: preempt_schedule_irq() loop question

2019-01-16 Thread Valentin Schneider
On 16/01/2019 14:57, Thomas Gleixner wrote: [...] > > I just went back in the history tree and had to figure out that it's my > fault :) > > preempt_schedule_irq() was introduced to plug a stupid race, but I did not > notice (and obviously nobody else) that this made the extra loop in the > entry

Re: preempt_schedule_irq() loop question

2019-01-16 Thread Thomas Gleixner
On Wed, 16 Jan 2019, Peter Zijlstra wrote: > On Wed, Jan 16, 2019 at 12:50:42PM +, Valentin Schneider wrote: > > Hi, > > > > I've been wandering around preempt_schedule_irq() in sched/core.c, and > > got curious regarding how the arch code calls it. > > > > The main part of preempt_schedule_i

Re: preempt_schedule_irq() loop question

2019-01-16 Thread Peter Zijlstra
On Wed, Jan 16, 2019 at 12:50:42PM +, Valentin Schneider wrote: > Hi, > > I've been wandering around preempt_schedule_irq() in sched/core.c, and > got curious regarding how the arch code calls it. > > The main part of preempt_schedule_irq() is: > > do { > preempt_disable(); >

preempt_schedule_irq() loop question

2019-01-16 Thread Valentin Schneider
Hi, I've been wandering around preempt_schedule_irq() in sched/core.c, and got curious regarding how the arch code calls it. The main part of preempt_schedule_irq() is: do { preempt_disable(); local_irq_enable(); __schedule(true); local_irq_dis