On Wed, 2010-09-08 at 18:53 +0200, Jan Kiszka wrote:
> Hi Philippe,
> 
> __ipipe_handle_irq:
> 
> #if defined(CONFIG_X86_32) && defined(CONFIG_SMP)
>       /*
>        * Prevent a spurious rescheduling from being triggered on
>        * preemptible kernels along the way out through
>        * ret_from_intr.
>        */
>       if ((long)regs->orig_ax < 0)
>               __set_bit(IPIPE_STALL_FLAG, &ipipe_root_cpudom_var(status));
> #endif        /* CONFIG_SMP */
> 
> But this defeats any preemption of kernel contexts on CONFIG_PREEMPT,
> doesn't it? __ipipe_test_preemption should now always fail.
> 
> What kind of spurious rescheduling has to be prevented?

This hack was introduced in 2.6.9; disabling preemption on the IRQ
return path was working around a SMP issue causing a crash. I would not
be surprised if such code was only papering over a migration issue in
fact, which probably disappeared later in the pipeline implementation.
x86_64 never required this, and it is likely time to re-assess the need
for this hack, and fix the issue properly if ever it still makes sense.

> 
> Jan
> 

-- 
Philippe.



_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main

Reply via email to