Re: O(1) scheduler "complex" macros

From: Pavel Machek (pavel@ucw.cz)
Date: Fri Jul 12 2002 - 07:39:15 EST


Hi!

> > #define task_running(rq, p) \
> > ((rq)->curr == (p)) && !spin_is_locked(&(p)->switch_lock)
>
> one more implementational note: the above test is not 'sharp' in the sense
> that on SMP it's only correct (the test has no barriers) if the runqueue
> lock is held. This is true for all the critical task_running() uses in
> sched.c - and the cases that use it outside the runqueue lock are
> optimizations so they dont need an exact test.

I believe this is worth a *big fat* comment.
                                                                Pavel

-- 
Worst form of spam? Adding advertisment signatures ala sourceforge.net.
What goes next? Inserting advertisment *into* email?
-
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 : Mon Jul 15 2002 - 22:00:22 EST