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 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
softlockup: fix NMI hangs due to lock race - 2.6.26-rc regression
rcupreempt: remove export of rcu_batches_completed_bh
cpuset: limit the input of cpuset.sched_relax_domain_level

+19 -11
+1 -1
Documentation/cpusets.txt
··· 542 542 2 : search cores in a package. 543 543 3 : search cpus in a node [= system wide on non-NUMA system] 544 544 ( 4 : search nodes in a chunk of node [on NUMA system] ) 545 - ( 5~ : search system wide [on NUMA system]) 545 + ( 5 : search system wide [on NUMA system] ) 546 546 547 547 This file is per-cpuset and affect the sched domain where the cpuset 548 548 belongs to. Therefore if the flag 'sched_load_balance' of a cpuset
+2 -2
kernel/cpuset.c
··· 1037 1037 1038 1038 static int update_relax_domain_level(struct cpuset *cs, s64 val) 1039 1039 { 1040 - if ((int)val < 0) 1041 - val = -1; 1040 + if (val < -1 || val >= SD_LV_MAX) 1041 + return -EINVAL; 1042 1042 1043 1043 if (val != cs->relax_domain_level) { 1044 1044 cs->relax_domain_level = val;
-2
kernel/rcupreempt.c
··· 217 217 } 218 218 EXPORT_SYMBOL_GPL(rcu_batches_completed); 219 219 220 - EXPORT_SYMBOL_GPL(rcu_batches_completed_bh); 221 - 222 220 void __rcu_read_lock(void) 223 221 { 224 222 int idx;
+6 -1
kernel/sched.c
··· 6879 6879 6880 6880 static int __init setup_relax_domain_level(char *str) 6881 6881 { 6882 - default_relax_domain_level = simple_strtoul(str, NULL, 0); 6882 + unsigned long val; 6883 + 6884 + val = simple_strtoul(str, NULL, 0); 6885 + if (val < SD_LV_MAX) 6886 + default_relax_domain_level = val; 6887 + 6883 6888 return 1; 6884 6889 } 6885 6890 __setup("relax_domain_level=", setup_relax_domain_level);
+10 -5
kernel/softlockup.c
··· 49 49 return cpu_clock(this_cpu) >> 30LL; /* 2^30 ~= 10^9 */ 50 50 } 51 51 52 - void touch_softlockup_watchdog(void) 52 + static void __touch_softlockup_watchdog(void) 53 53 { 54 54 int this_cpu = raw_smp_processor_id(); 55 55 56 56 __raw_get_cpu_var(touch_timestamp) = get_timestamp(this_cpu); 57 + } 58 + 59 + void touch_softlockup_watchdog(void) 60 + { 61 + __raw_get_cpu_var(touch_timestamp) = 0; 57 62 } 58 63 EXPORT_SYMBOL(touch_softlockup_watchdog); 59 64 ··· 85 80 unsigned long now; 86 81 87 82 if (touch_timestamp == 0) { 88 - touch_softlockup_watchdog(); 83 + __touch_softlockup_watchdog(); 89 84 return; 90 85 } 91 86 ··· 100 95 101 96 /* do not print during early bootup: */ 102 97 if (unlikely(system_state != SYSTEM_RUNNING)) { 103 - touch_softlockup_watchdog(); 98 + __touch_softlockup_watchdog(); 104 99 return; 105 100 } 106 101 ··· 219 214 sched_setscheduler(current, SCHED_FIFO, &param); 220 215 221 216 /* initialize timestamp */ 222 - touch_softlockup_watchdog(); 217 + __touch_softlockup_watchdog(); 223 218 224 219 set_current_state(TASK_INTERRUPTIBLE); 225 220 /* ··· 228 223 * debug-printout triggers in softlockup_tick(). 229 224 */ 230 225 while (!kthread_should_stop()) { 231 - touch_softlockup_watchdog(); 226 + __touch_softlockup_watchdog(); 232 227 schedule(); 233 228 234 229 if (kthread_should_stop())