Hubertus Franke <frankeh@us.ibm.com> writes:
>Try this ... this will guarantee that (p->counter) > (current->counter)
>and it seems not as radical
> p->counter = (current->counter + 1) >> 1;
> current->counter = (current->counter - 1) >> 1;
> if (!current->counter)
> current->need_resched = 1;
>instead of this
>- p->counter = (current->counter + 1) >> 1;
>- current->counter >>= 1;
>- if (!current->counter)
>- current->need_resched = 1;
>+ p->counter = current->counter;
>+ current->counter = 0;
>+ current->need_resched = 1;
No. I tried your change and also tried it with setting
current->need_resched to 1 in all cases, and it still seems to run the
parent first in at least half of the tries. Evidently,
current->counter must be zero to make the currently running process
give up the CPU immediately, which is the important thing (so that the
parent does not touch its virtual memory for a while).
Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104
adam@yggdrasil.com \ / San Jose, California 95129-1034
+1 408 261-6630 | g g d r a s i l United States of America
fax +1 408 261-6631 "Free Software For The Rest Of Us."
-
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 : Sun Apr 15 2001 - 21:00:19 EST