]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge remote-tracking branch 'rcu/rcu/next'
authorStephen Rothwell <sfr@canb.auug.org.au>
Fri, 24 Aug 2012 04:50:03 +0000 (14:50 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Fri, 24 Aug 2012 04:50:03 +0000 (14:50 +1000)
Conflicts:
arch/Kconfig
arch/x86/Kconfig
include/linux/sched.h
kernel/rcutree.h
kernel/rcutree_plugin.h

15 files changed:
1  2 
Documentation/kernel-parameters.txt
arch/Kconfig
arch/um/drivers/mconsole_kern.c
arch/x86/Kconfig
arch/x86/kernel/entry_64.S
arch/x86/kernel/signal.c
arch/x86/kernel/traps.c
include/linux/sched.h
init/Kconfig
kernel/rcutree.c
kernel/rcutree.h
kernel/rcutree_plugin.h
kernel/rcutree_trace.c
kernel/sched/core.c
lib/Kconfig.debug

Simple merge
diff --cc arch/Kconfig
index 07db9299ea86e802374eb18176622d630f14fcb8,1c7c9beaa1933234a62da487cdf255d6a7e76cb5..d5176b861e32c4278bbfa09b1ddfcc0fa090fe41
@@@ -294,26 -274,14 +294,36 @@@ config SECCOMP_FILTE
  
          See Documentation/prctl/seccomp_filter.txt for details.
  
 +config HAVE_MOD_ARCH_SPECIFIC
 +      bool
 +      help
 +        The arch uses struct mod_arch_specific to store data.  Many arches
 +        just need a simple module loader without arch specific data - those
 +        should not enable this.
 +
 +config MODULES_USE_ELF_RELA
 +      bool
 +      help
 +        Modules only use ELF RELA relocations.  Modules with ELF REL
 +        relocations will give an error.
 +
 +config MODULES_USE_ELF_REL
 +      bool
 +      help
 +        Modules only use ELF REL relocations.  Modules with ELF RELA
 +        relocations will give an error.
 +
 +config HAVE_VIRT_CPU_ACCOUNTING
 +      bool
 +
+ config HAVE_RCU_USER_QS
+       bool
+       help
+         Provide kernel entry/exit hooks necessary for userspace
+         RCU extended quiescent state. Syscalls need to be wrapped inside
+         rcu_user_exit()-rcu_user_enter() through the slow path using
+         TIF_NOHZ flag. Exceptions handlers must be wrapped as well. Irqs
+         are already protected inside rcu_irq_enter/rcu_irq_exit() but
+         preemption or signal handling on irq exit still need to be protected.
  source "kernel/gcov/Kconfig"
Simple merge
index f649a28919df5c08cccb79efab11d20144c96fbb,38dfcc2263ccb7a3b399d286bde11f28da1b7577..1aa157ab13d072124e4bd39f7a5e41a4e7ac46fe
@@@ -99,8 -95,7 +99,9 @@@ config X8
        select KTIME_SCALAR if X86_32
        select GENERIC_STRNCPY_FROM_USER
        select GENERIC_STRNLEN_USER
 +      select MODULES_USE_ELF_REL if X86_32
 +      select MODULES_USE_ELF_RELA if X86_64
+       select HAVE_RCU_USER_QS if X86_64
  
  config INSTRUCTION_DECODER
        def_bool (KPROBES || PERF_EVENTS || UPROBES)
Simple merge
Simple merge
Simple merge
index f3eebc121ebc1cbc8c6b4eb175186bf7033e2126,a0949597ce97d12303cadc4162eca35617672720..c44f847657f03593ece12f21ecf722e684e1091a
@@@ -1885,13 -1879,14 +1885,21 @@@ static inline void rcu_copy_process(str
  
  #endif
  
 +static inline void tsk_restore_flags(struct task_struct *task,
 +                              unsigned long orig_flags, unsigned long flags)
 +{
 +      task->flags &= ~flags;
 +      task->flags |= orig_flags & flags;
 +}
 +
+ static inline void rcu_switch(struct task_struct *prev,
+                             struct task_struct *next)
+ {
+ #ifdef CONFIG_RCU_USER_QS
+       rcu_user_hooks_switch(prev, next);
+ #endif
+ }
  #ifdef CONFIG_SMP
  extern void do_set_cpus_allowed(struct task_struct *p,
                               const struct cpumask *new_mask);
diff --cc init/Kconfig
Simple merge
Simple merge
index 1224d4c053823fe7ecdbc2bab9590779c5cc9b7c,c2a3e7d596dcedd89c9e889990c7432a9d8a0bd0..77340697298f3157a656ef265af723dcd0b5fa40
@@@ -196,6 -200,13 +200,7 @@@ struct rcu_node 
                                /* Refused to boost: not sure why, though. */
                                /*  This can happen due to race conditions. */
  #endif /* #ifdef CONFIG_RCU_BOOST */
 -      struct task_struct *node_kthread_task;
 -                              /* kthread that takes care of this rcu_node */
 -                              /*  structure, for example, awakening the */
 -                              /*  per-CPU kthreads as needed. */
 -      unsigned int node_kthread_status;
 -                              /* State of node_kthread_task for tracing. */
+       raw_spinlock_t fqslock ____cacheline_internodealigned_in_smp;
  } ____cacheline_internodealigned_in_smp;
  
  /*
index c1961aed12138a39e04ee352d1a070dd238dceb1,c3e3fc499788619ef67c772c36c551b58a4c97a4..8432034b2d0935091969a8bb9564ecac6093074a
@@@ -25,7 -25,7 +25,8 @@@
   */
  
  #include <linux/delay.h>
 +#include <linux/smpboot.h>
+ #include <linux/oom.h>
  
  #define RCU_KTHREAD_PRIO 1
  
Simple merge
Simple merge
Simple merge