>>-----Original Message-----
>>From: [email protected]
>>[mailto:[email protected]] On Behalf Of Roy Lee
>>Sent: 2005年9月16日 15:16
>>To: [email protected]
>>Subject: A question about sceduling
>>
>>I'm tracing the scheduling code of 2.6.12.
>>During the process creation, the parent process would let the child process
>>execute first to avoid the COW overhead.
>>
>>In wake_up_new_task():
>>
>> if (!(clone_flags & CLONE_VM)) {
>> /*
>> * The VM isn't cloned, so we're in a good position to
>> * do child-runs-first in anticipation of an exec. This
>> * usually avoids a lot of COW overhead.
>> */
>> if (unlikely(!current->array))
>> __activate_task(p, rq);
>> else {
>> p->prio = current->prio;
>> list_add_tail(&p->run_list, ¤t->run_list);
>> p->array = current->array;
>> p->array->nr_active++;
>> rq->nr_running++;
>> }
>> set_need_resched();
>>
>>It sets the flag to notify the kernel to reschedule.
>>But, the child has the same priority as it's parent and is the at the "tail"
>>of that priority queue.
list_add_tail(&p->run_list, ¤t->run_list) means insert the child into run list before parent (current)., not the tail of that priority queue.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|