]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 3 Nov 2015 23:40:38 +0000 (15:40 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 3 Nov 2015 23:40:38 +0000 (15:40 -0800)
Pull RCU changes from Ingo Molnar:
 "The main changes in this cycle were:

   - Improvements to expedited grace periods (Paul E McKenney)

   - Performance improvements to and locktorture tests for percpu-rwsem
     (Oleg Nesterov, Paul E McKenney)

   - Torture-test changes (Paul E McKenney, Davidlohr Bueso)

   - Documentation updates (Paul E McKenney)

   - Miscellaneous fixes (Paul E McKenney, Boqun Feng, Oleg Nesterov,
     Patrick Marlier)"

* 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
  fs/writeback, rcu: Don't use list_entry_rcu() for pointer offsetting in bdi_split_work_to_wbs()
  rcu: Better hotplug handling for synchronize_sched_expedited()
  rcu: Enable stall warnings for synchronize_rcu_expedited()
  rcu: Add tasks to expedited stall-warning messages
  rcu: Add online/offline info to expedited stall warning message
  rcu: Consolidate expedited CPU selection
  rcu: Prepare for consolidating expedited CPU selection
  cpu: Remove try_get_online_cpus()
  rcu: Stop excluding CPU hotplug in synchronize_sched_expedited()
  rcu: Stop silencing lockdep false positive for expedited grace periods
  rcu: Switch synchronize_sched_expedited() to IPI
  locktorture: Fix module unwind when bad torture_type specified
  torture: Forgive non-plural arguments
  rcutorture: Fix unused-function warning for torturing_tasks()
  rcutorture: Fix module unwind when bad torture_type specified
  rcu_sync: Cleanup the CONFIG_PROVE_RCU checks
  locking/percpu-rwsem: Clean up the lockdep annotations in percpu_down_read()
  locking/percpu-rwsem: Fix the comments outdated by rcu_sync
  locking/percpu-rwsem: Make use of the rcu_sync infrastructure
  locking/percpu-rwsem: Make percpu_free_rwsem() after kzalloc() safe
  ...

1  2 
Documentation/kernel-parameters.txt
include/linux/sched.h

index 50fc09b623f65f6a42ff43701e20fb42d993d649,23ec96877311e49fc93360a717ceab84d1f64e81..046832ef14ce136d4192e6cf7b39fb54de75c522
@@@ -1094,21 -1094,6 +1094,21 @@@ bytes respectively. Such letter suffixe
                        you are really sure that your UEFI does sane gc and
                        fulfills the spec otherwise your board may brick.
  
 +      efi_fake_mem=   nn[KMG]@ss[KMG]:aa[,nn[KMG]@ss[KMG]:aa,..] [EFI; X86]
 +                      Add arbitrary attribute to specific memory range by
 +                      updating original EFI memory map.
 +                      Region of memory which aa attribute is added to is
 +                      from ss to ss+nn.
 +                      If efi_fake_mem=2G@4G:0x10000,2G@0x10a0000000:0x10000
 +                      is specified, EFI_MEMORY_MORE_RELIABLE(0x10000)
 +                      attribute is added to range 0x100000000-0x180000000 and
 +                      0x10a0000000-0x1120000000.
 +
 +                      Using this parameter you can do debugging of EFI memmap
 +                      related feature. For example, you can do debugging of
 +                      Address Range Mirroring feature even if your box
 +                      doesn't support it.
 +
        eisa_irq_edge=  [PARISC,HW]
                        See header of drivers/parisc/eisa.c.
  
                        cache-to-cache transfer latencies.
  
        rcutree.rcu_fanout_leaf= [KNL]
-                       Increase the number of CPUs assigned to each
-                       leaf rcu_node structure.  Useful for very large
-                       systems.
+                       Change the number of CPUs assigned to each
+                       leaf rcu_node structure.  Useful for very
+                       large systems, which will choose the value 64,
+                       and for NUMA systems with large remote-access
+                       latencies, which will choose a value aligned
+                       with the appropriate hardware boundaries.
  
        rcutree.jiffies_till_sched_qs= [KNL]
                        Set required age in jiffies for a
diff --combined include/linux/sched.h
index f87559df5b756857b5e9a26f1a8d95942af5d671,aec904bc3da9b10aa4d69bece034b77aed3b5e1f..56667292d1e444df2e9f21fc8281caf32e44f3f5
@@@ -617,18 -617,15 +617,18 @@@ struct task_cputime_atomic 
  /**
   * struct thread_group_cputimer - thread group interval timer counts
   * @cputime_atomic:   atomic thread group interval timers.
 - * @running:          non-zero when there are timers running and
 - *                    @cputime receives updates.
 + * @running:          true when there are timers running and
 + *                    @cputime_atomic receives updates.
 + * @checking_timer:   true when a thread in the group is in the
 + *                    process of checking for thread group timers.
   *
   * This structure contains the version of task_cputime, above, that is
   * used for thread group CPU timer calculations.
   */
  struct thread_group_cputimer {
        struct task_cputime_atomic cputime_atomic;
 -      int running;
 +      bool running;
 +      bool checking_timer;
  };
  
  #include <linux/rwsem.h>
@@@ -1345,10 -1342,12 +1345,12 @@@ struct sched_dl_entity 
  
  union rcu_special {
        struct {
-               bool blocked;
-               bool need_qs;
-       } b;
-       short s;
+               u8 blocked;
+               u8 need_qs;
+               u8 exp_need_qs;
+               u8 pad; /* Otherwise the compiler can store garbage here. */
+       } b; /* Bits. */
+       u32 s; /* Set of bits. */
  };
  struct rcu_node;