Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
sched: fine-tune SD_SIBLING_INIT
sched: fine-tune SD_MC_INIT
sched: fix memory leak in a failure path
sched: fix a bug in sched domain degenerate

+7 -4
+2 -2
include/linux/topology.h
··· 99 99 | SD_BALANCE_FORK \ 100 100 | SD_BALANCE_EXEC \ 101 101 | SD_WAKE_AFFINE \ 102 - | SD_WAKE_IDLE \ 102 + | SD_WAKE_BALANCE \ 103 103 | SD_SHARE_CPUPOWER, \ 104 104 .last_balance = jiffies, \ 105 105 .balance_interval = 1, \ ··· 120 120 .wake_idx = 1, \ 121 121 .forkexec_idx = 1, \ 122 122 .flags = SD_LOAD_BALANCE \ 123 - | SD_BALANCE_NEWIDLE \ 124 123 | SD_BALANCE_FORK \ 125 124 | SD_BALANCE_EXEC \ 126 125 | SD_WAKE_AFFINE \ 126 + | SD_WAKE_BALANCE \ 127 127 | SD_SHARE_PKG_RESOURCES\ 128 128 | BALANCE_FOR_MC_POWER, \ 129 129 .last_balance = jiffies, \
+5 -2
kernel/sched.c
··· 6877 6877 struct sched_domain *tmp; 6878 6878 6879 6879 /* Remove the sched domains which do not contribute to scheduling. */ 6880 - for (tmp = sd; tmp; tmp = tmp->parent) { 6880 + for (tmp = sd; tmp; ) { 6881 6881 struct sched_domain *parent = tmp->parent; 6882 6882 if (!parent) 6883 6883 break; 6884 + 6884 6885 if (sd_parent_degenerate(tmp, parent)) { 6885 6886 tmp->parent = parent->parent; 6886 6887 if (parent->parent) 6887 6888 parent->parent->child = tmp; 6888 - } 6889 + } else 6890 + tmp = tmp->parent; 6889 6891 } 6890 6892 6891 6893 if (sd && sd_degenerate(sd)) { ··· 7676 7674 error: 7677 7675 free_sched_groups(cpu_map, tmpmask); 7678 7676 SCHED_CPUMASK_FREE((void *)allmasks); 7677 + kfree(rd); 7679 7678 return -ENOMEM; 7680 7679 #endif 7681 7680 }