Re: [BUG] scheduler: first timeslice of the exiting thread
- From: Oleg Nesterov <oleg@xxxxxxxxxx>
- Date: Mon, 9 Apr 2007 15:03:33 +0400
On 04/09, Oleg Nesterov wrote:
Satoru Takeuchi wrote:
a) On sched_fork, the creator share its timeslice with new process.
b) On sched_exit, if the exiting process didn't exhaust its first
timeslice yet, it gives its timeslice to the parent.
It has no problem on the process model since the creator is the parent.
However, on the thread model, the creator is not the parent, it is same
as the creator's parent. Hence, on this kind of program, the creator
can't retrieve shared timeslice and exausts its timeslice at a rate of
knots. In addition, somehow, the parent (typically shell?) gets extra
timeslice.
Yes, this is an old oddity.
Perhaps
void sched_exit(struct task_struct *p)
{
task_t *t, *did_fork = p->parent;
if (!thread_group_leader(p))
list_for_each_entry(t, p->thread_group)
if (!t->exit_state) {
did_fork = t;
break;
}
... give time_slice to did_fork ..
}
may improve things a little bit, because the rest of time_slice doesn't leak
off the thread group.
However this is not very nice and we have the same problem with CLONE_PARENT.
Oleg.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- References:
- Re: [BUG] scheduler: first timeslice of the exiting thread
- From: Oleg Nesterov
- Re: [BUG] scheduler: first timeslice of the exiting thread
- Prev by Date: Re: [RFC] pata_icside driver
- Next by Date: Re: [RFC] pata_icside driver
- Previous by thread: Re: [BUG] scheduler: first timeslice of the exiting thread
- Next by thread: Re: [BUG] scheduler: first timeslice of the exiting thread
- Index(es):
Relevant Pages
|