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
