Merge branch 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 02:36:53 +0000 (19:36 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 02:36:53 +0000 (19:36 -0700)
* 'sched/for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  sched: hrtick_enabled() should use cpu_active()
  sched, x86: clean up hrtick implementation
  sched: fix build error, provide partition_sched_domains() unconditionally
  sched: fix warning in inc_rt_tasks() to not declare variable 'rq' if it's not needed
  cpu hotplug: Make cpu_active_map synchronization dependency clear
  cpu hotplug, sched: Introduce cpu_active_map and redo sched domain managment (take 2)
  sched: rework of "prioritize non-migratable tasks over migratable ones"
  sched: reduce stack size in isolated_cpu_setup()
  Revert parts of "ftrace: do not trace scheduler functions"

Fixed up conflicts in include/asm-x86/thread_info.h (due to the
TIF_SINGLESTEP unification vs TIF_HRTICK_RESCHED removal) and
kernel/sched_fair.c (due to cpu_active_map vs for_each_cpu_mask_nr()
introduction).

1  2 
arch/x86/kernel/signal_32.c
arch/x86/kernel/signal_64.c
include/asm-x86/thread_info.h
include/linux/cpumask.h
include/linux/sched.h
init/main.c
kernel/cpu.c
kernel/cpuset.c
kernel/sched.c
kernel/sched_fair.c
kernel/sched_rt.c

Simple merge
Simple merge
@@@ -135,7 -130,7 +133,7 @@@ struct thread_info 
  
  /* Only used for 64 bit */
  #define _TIF_DO_NOTIFY_MASK                                           \
-       (_TIF_SIGPENDING|_TIF_MCE_NOTIFY|_TIF_HRTICK_RESCHED)
 -      (_TIF_SIGPENDING|_TIF_SINGLESTEP|_TIF_MCE_NOTIFY)
++      (_TIF_SIGPENDING|_TIF_MCE_NOTIFY)
  
  /* flags to check in __switch_to() */
  #define _TIF_WORK_CTXSW                                                       \
@@@ -444,21 -357,9 +444,21 @@@ int __any_online_cpu(const cpumask_t *m
  #define cpus_weight_nr(cpumask)               cpus_weight(cpumask)
  #define for_each_cpu_mask_nr(cpu, mask)       for_each_cpu_mask(cpu, mask)
  
 +#else /* NR_CPUS > 64 */
 +
 +int __next_cpu_nr(int n, const cpumask_t *srcp);
 +#define next_cpu_nr(n, src)   __next_cpu_nr((n), &(src))
 +#define cpus_weight_nr(cpumask)       __cpus_weight(&(cpumask), nr_cpu_ids)
 +#define for_each_cpu_mask_nr(cpu, mask)                       \
 +      for ((cpu) = -1;                                \
 +              (cpu) = next_cpu_nr((cpu), (mask)),     \
 +              (cpu) < nr_cpu_ids; )
 +
 +#endif /* NR_CPUS > 64 */
 +
  /*
   * The following particular system cpumasks and operations manage
-  * possible, present and online cpus.  Each of them is a fixed size
+  * possible, present, active and online cpus.  Each of them is a fixed size
   * bitmap of size NR_CPUS.
   *
   *  #ifdef CONFIG_HOTPLUG_CPU
  extern cpumask_t cpu_possible_map;
  extern cpumask_t cpu_online_map;
  extern cpumask_t cpu_present_map;
+ extern cpumask_t cpu_active_map;
  
  #if NR_CPUS > 1
 -#define num_online_cpus()     cpus_weight(cpu_online_map)
 -#define num_possible_cpus()   cpus_weight(cpu_possible_map)
 -#define num_present_cpus()    cpus_weight(cpu_present_map)
 +#define num_online_cpus()     cpus_weight_nr(cpu_online_map)
 +#define num_possible_cpus()   cpus_weight_nr(cpu_possible_map)
 +#define num_present_cpus()    cpus_weight_nr(cpu_present_map)
  #define cpu_online(cpu)               cpu_isset((cpu), cpu_online_map)
  #define cpu_possible(cpu)     cpu_isset((cpu), cpu_possible_map)
  #define cpu_present(cpu)      cpu_isset((cpu), cpu_present_map)
Simple merge
diff --cc init/main.c
Simple merge
diff --cc kernel/cpu.c
Simple merge
diff --cc kernel/cpuset.c
Simple merge
diff --cc kernel/sched.c
Simple merge
@@@ -1031,7 -1032,8 +1032,8 @@@ static int wake_idle(int cpu, struct ta
                    || ((sd->flags & SD_WAKE_IDLE_FAR)
                        && !task_hot(p, task_rq(p)->clock, sd))) {
                        cpus_and(tmp, sd->span, p->cpus_allowed);
 -                      for_each_cpu_mask(i, tmp) {
+                       cpus_and(tmp, tmp, cpu_active_map);
 +                      for_each_cpu_mask_nr(i, tmp) {
                                if (idle_cpu(i)) {
                                        if (i != task_cpu(p)) {
                                                schedstat_inc(p,
Simple merge