On Mon, 2002-06-10 at 17:05, Ingo Molnar wrote:
> Thanks. I've applied your patch with the following additional
> improvements:
>
> - The spin_unlock_irqrestore path does not have to be split up like the
> spin_lock path: spin_unlock() + local_irq_restore() ==
> spin_unlock_irqrestore() ... this is true both in task_rq_unlock() and
> rq_unlock() code.
I know. The reason I split them up is to maintain consistency through
the way we lock vs unlock and enable vs disable interrupts. Partly for
style, partly in case we ever decide to hook the different calls in a
different manner.
I do not see this in your patch, though ...
> - in sys_sched_yield() you removed an optimization: the final spin_unlock
> does not have to check for resched explicitly, we'll call into
> schedule() anyway. I've introduced a new spin_unlock variant:
> spin_unlock_no_resched(), which uses preempt_enable_no_resched().
Ah yes, very good. I was too busy noticing the optimization I _did_ put
in: not calling rq_unlock here as we can just leave interrupts disabled
on return...
Very good.
> otherwise it's looking good. The attached patch is my current tree which
> includes the rq-lock/unlock optimization plus the previous patches
> (race-fix and sync-wakeup), against 2.5.21-vanilla.
Excellent.
Robert Love
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sat Jun 15 2002 - 22:00:20 EST