Merge branch 'linus' into sched-devel

This commit is contained in:
Ingo Molnar
2008-06-16 11:15:21 +02:00
393 changed files with 3939 additions and 2471 deletions

View File

@ -315,12 +315,15 @@ static DEFINE_SPINLOCK(task_group_lock);
#endif /* CONFIG_USER_SCHED */
/*
* A weight of 0, 1 or ULONG_MAX can cause arithmetics problems.
* A weight of 0 or 1 can cause arithmetics problems.
* A weight of a cfs_rq is the sum of weights of which entities
* are queued on this cfs_rq, so a weight of a entity should not be
* too large, so as the shares value of a task group.
* (The default weight is 1024 - so there's no practical
* limitation from this.)
*/
#define MIN_SHARES 2
#define MAX_SHARES (ULONG_MAX - 1)
#define MAX_SHARES (1UL << 18)
static int init_task_group_load = INIT_TASK_GROUP_LOAD;
#endif
@ -1346,8 +1349,13 @@ calc_delta_mine(unsigned long delta_exec, unsigned long weight,
{
u64 tmp;
if (!lw->inv_weight)
lw->inv_weight = 1 + (WMULT_CONST-lw->weight/2)/(lw->weight+1);
if (!lw->inv_weight) {
if (BITS_PER_LONG > 32 && unlikely(lw->weight >= WMULT_CONST))
lw->inv_weight = 1;
else
lw->inv_weight = 1 + (WMULT_CONST-lw->weight/2)
/ (lw->weight+1);
}
tmp = (u64)delta_exec * weight;
/*
@ -4166,12 +4174,10 @@ need_resched_nonpreemptible:
clear_tsk_need_resched(prev);
if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
if (unlikely((prev->state & TASK_INTERRUPTIBLE) &&
signal_pending(prev))) {
if (unlikely(signal_pending_state(prev->state, prev)))
prev->state = TASK_RUNNING;
} else {
else
deactivate_task(rq, prev, 1);
}
switch_count = &prev->nvcsw;
}