Messages in this thread | ![/](/images/icornerl.gif) | | From | "Adam J. Richter" <> | Date | Thu, 12 Apr 2001 12:45:45 -0700 | Subject | Re: PATCH(?): linux-2.4.4-pre2: fork should run child first |
| |
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/
| ![\](/images/icornerr.gif) |