>> ...

> I have not checked it yet but my presupposition that something as easy as :
> preempt_disable()
> wake_up_interruptible_sync();
> schedule();
> preempt_enable();

It's a no-go: "scheduling while atomic". One of my first attempts to
solve it.

My fault. I meant the way preempt_schedule() and preempt_irq_schedule() call schedule() while being non-preemptible.
To this end, ACTIVE_PREEMPT is set up.
The use of preempt_enable/disable() here is wrong.

The only way to enter schedule() without being preemptible is via
ACTIVE_PREEMPT. But the effect of that flag should be well-known now.
Kind of Gordian knot. :(

Maybe I have missed something so just for my curiosity : what does prevent the use of PREEMPT_ACTIVE here?
We don't have a "preempted while atomic" message here as it seems to be a legal way to call schedule() with that flag being set up.

> could work... err.. and don't blame me if no, it's some one else who has
> written that nonsense :o)
> --
> Best regards,
> Dmitry Adamushko


Best regards,
Dmitry Adamushko

Reply via email to