patches-3.6.4-rt11.tar.xz

md5sum:
20cdd858d8e22ed22117e6fbad756445  patches-3.6.4-rt11.tar.xz

Announce:
 --------------
 Dear RT Folks,

 I'm pleased to announce the 3.6.4-rt11 release.

 Changes since 3.6.3-rt10:

    * Crypto wreckage fix (Milan Broz)

      Another proof why copy and paste should be forbidden, but if that
      would happen most of us would be serving time.

    * Another attempt to tame SLUB

      My previous approach turned out to be too naive though this one
      has at least held up against massive memory stress tests. It's a
      very simple and straight forward aproach now and while I'm quite
      sure that it will not fall over as it did before, there might be
      hidden latency issues with that new version.

       So please give it a proper testing!

    * Lazy preemption

      It has become an obsession to mitigate the determinism
      vs. throughput loss of RT. Looking at the mainline semantics of
      preemption points gives a hint why RT sucks throughput wise for
      ordinary SCHED_OTHER tasks. One major issue is the wakeup of
      tasks which are right away preempting the waking task while the
      waking task holds a lock on which the woken task will block right
      after having preempted the wakee. In mainline this is prevented
      due to the implicit preemption disable of spin/rw_lock held
      regions. On RT this is not possible due to the fully preemptible
      nature of sleeping spinlocks.

      Though for a SCHED_OTHER task preempting another SCHED_OTHER task
      this is really not a correctness issue. RT folks are concerned
      about SCHED_FIFO/RR tasks preemption and not about the purely
      fairness driven SCHED_OTHER preemption latencies.

      So I introduced a lazy preemption mechanism which only applies to
      SCHED_OTHER tasks preempting another SCHED_OTHER task. Aside of
      the existing preempt_count each tasks sports now a
      preempt_lazy_count which is manipulated on lock acquiry and
      release. This is slightly incorrect as for lazyness reasons I
      coupled this on migrate_disable/enable so some other mechanisms
      get the same treatment (e.g. get_cpu_light).

      Now on the scheduler side instead of setting NEED_RESCHED this
      sets NEED_RESCHED_LAZY in case of a SCHED_OTHER/SCHED_OTHER
      preemption and therefor allows to exit the waking task the lock
      held region before the woken task preempts. That also works
      better for cross CPU wakeups as the other side can stay in the
      adaptive spinning loop.

      For RT class preemption there is no change. This simply sets
      NEED_RESCHED and forgoes the lazy preemption counter.

      Initial test do not expose any observable latency increasement,
      but history shows that I've been proven wrong before :)

      The lazy preemption mode is per default on, but with
      CONFIG_SCHED_DEBUG enabled it can be disabled via:

      # echo NO_PREEMPT_LAZY >/sys/kernel/debug/sched_features

      and reenabled via

      # echo PREEMPT_LAZY >/sys/kernel/debug/sched_features

      The test results so far are very machine and workload dependent,
      but there is a clear trend that it enhances the non RT workload
      performance.

      Please give it a try and share your experience!

 Known issues:

       There is still some "softirq pending xx" fallout which I have
       not been able to investigate yet, but that's on my top priority
       list. It's not a critical issue and only annoys people with
       CONFIG_NO_HZ=y configurations.

 The delta patch against 3.6.4-rt10 is appended below and can be found
 here:

   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/incr/patch-3.6.4-rt10-rt11.patch.xz

 The RT patch against 3.6.4 can be found here:

   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patch-3.6.4-rt11.patch.xz

 The split quilt queue is available at:

   http://www.kernel.org/pub/linux/kernel/projects/rt/3.6/patches-3.6.4-rt11.tar.xz

 Enjoy,

 	tglx

 [Delta patch snipped]
 --------------

http://marc.info/?l=linux-rt-users&m=135164636304684&w=2

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
23 files changed
tree: e526cfb9e83b527fe7173bce704256693b9b9610
  1. .gitignore
  2. acpi-use-local-irq-nort.patch
  3. arch-use-pagefault-disabled.patch
  4. arm-allow-irq-threading.patch
  5. arm-at91-pit-remove-irq-handler-when-clock-is-unused.patch
  6. arm-at91-tclib-default-to-tclib-timer-for-rt.patch
  7. arm-convert-boot-lock-to-raw.patch
  8. arm-disable-highmem-on-rt.patch
  9. arm-mark-pmu-interupt-no-thread.patch
  10. arm-omap-make-wakeupgen_lock-raw.patch
  11. ata-disable-interrupts-if-non-rt.patch
  12. block-shorten-interrupt-disabled-regions.patch
  13. bug-rt-dependend-variants.patch
  14. clocksource-tclib-allow-higher-clockrates.patch
  15. cond-resched-lock-rt-tweak.patch
  16. cond-resched-softirq-rt.patch
  17. cpu-rt-make-hotplug-lock-a-sleeping-spinlock-on-rt.patch
  18. cpu-rt-rework-cpu-down.patch
  19. cpu-rt-variants.patch
  20. cpufreq-powernow-k8-fix-bogus-smp-processor-id-usage.patch
  21. cpumask-disable-offstack-on-rt.patch
  22. crypto-make-core-static-and-init-scru-early.patch
  23. debugobjects-rt.patch
  24. dm-make-rt-aware.patch
  25. drivers-net-8139-disable-irq-nosync.patch
  26. drivers-net-at91-make-mdio-protection-rt-safe.patch
  27. drivers-net-ehea-mark-rx-irq-no-thread.patch
  28. drivers-net-fix-livelock-issues.patch
  29. drivers-net-gianfar-make-rt-aware.patch
  30. drivers-net-tulip-add-missing-pci-disable.patch
  31. drivers-net-vortex-fix-locking-issues.patch
  32. drivers-random-reduce-preempt-disabled-region.patch
  33. drivers-serial-call-flush_to_ldisc-when-the-irq-is-t.patch
  34. drivers-serial-cleanup-locking-for-rt.patch
  35. drivers-tty-fix-omap-lock-crap.patch
  36. early-printk-consolidate.patch
  37. epoll-use-get-cpu-light.patch
  38. filemap-fix-up.patch
  39. fix-crypto-api-init-for-3-6-4-rt10.patch
  40. fix-rt-int3-x86_32-3.2-rt.patch
  41. fs-block-rt-support.patch
  42. fs-dcache-use-cpu-chill-in-trylock-loops.patch
  43. fs-jbd-pull-plug-when-waiting-for-space.patch
  44. fs-jbd-replace-bh_state-lock.patch
  45. fs-namespace-preemption-fix.patch
  46. fs-ntfs-disable-interrupt-non-rt.patch
  47. fs-replace-bh_uptodate_lock-for-rt.patch
  48. ftrace-crap.patch
  49. ftrace-migrate-disable-tracing.patch
  50. futex-requeue-pi-fix.patch
  51. generic-cmpxchg-use-raw-local-irq.patch
  52. genirq-add-default-mask-cmdline-option.patch
  53. genirq-disable-irqpoll-on-rt.patch
  54. genirq-force-threading.patch
  55. genirq-nodebug-shirq.patch
  56. harirq-h-define-softirq_count-as-oul-to-kill-build-warning.patch
  57. hotplug-call-cpu_unplug_begin-a-little-early.patch
  58. hotplug-light-get-online-cpus.patch
  59. hotplug-sync_unplug-no-27-5cn-27-in-task-name.patch
  60. hotplug-use-migrate-disable.patch
  61. hrtimer-add-missing-debug_activate-aid.patch
  62. hrtimer-fix-reprogram-madness.patch
  63. hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
  64. hrtimer-raise-softirq-if-hrtimer-irq-stalled.patch
  65. hrtimers-prepare-full-preemption.patch
  66. hwlatdetect.patch
  67. ide-use-nort-local-irq-variants.patch
  68. infiniband-mellanox-ib-use-nort-irq.patch
  69. inpt-gameport-use-local-irq-nort.patch
  70. intel_idle-convert-i7300_idle_lock-to-raw-spinlock.patch
  71. ipc-make-rt-aware.patch
  72. ipc-mqueue-add-a-critical-section-to-avoid-a-deadlock.patch
  73. ipc-sem-rework-semaphore-wakeups.patch
  74. irq-allow-disabling-of-softirq-processing-in-irq-thread-context.patch
  75. jump-label-rt.patch
  76. kconfig-disable-a-few-options-rt.patch
  77. kconfig-preempt-rt-full.patch
  78. kgb-serial-hackaround.patch
  79. latency-hist.patch
  80. lglocks-rt.patch
  81. list-add-list-last-entry.patch
  82. local-irq-rt-depending-variants.patch
  83. local-var.patch
  84. local-vars-migrate-disable.patch
  85. localversion.patch
  86. lockdep-no-softirq-accounting-on-rt.patch
  87. lockdep-selftest-convert-spinlock-to-raw-spinlock.patch
  88. lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch
  89. locking-various-init-fixes.patch
  90. md-raid5-percpu-handling-rt-aware.patch
  91. migrate-disable-rt-variant.patch
  92. mips-disable-highmem-on-rt.patch
  93. mips-enable-interrupts-in-signal.patch
  94. mm-allow-slab-rt.patch
  95. mm-cgroup-page-bit-spinlock.patch
  96. mm-convert-swap-to-percpu-locked.patch
  97. mm-enable-slub.patch
  98. mm-make-vmstat-rt-aware.patch
  99. mm-page-alloc-fix.patch
  100. mm-page-alloc-use-list-last-entry.patch
  101. mm-page-alloc-use-local-lock-on-target-cpu.patch
  102. mm-page_alloc-reduce-lock-sections-further.patch
  103. mm-page_alloc-rt-friendly-per-cpu-pages.patch
  104. mm-prepare-pf-disable-discoupling.patch
  105. mm-protect-activate-switch-mm.patch
  106. mm-protect-activate_mm-by-preempt_-disable-7cenable-_rt.patch
  107. mm-remove-preempt-count-from-pf.patch
  108. mm-rt-kmap-atomic-scheduling.patch
  109. mm-scatterlist-dont-disable-irqs-on-RT.patch
  110. mm-shrink-the-page-frame-to-rt-size.patch
  111. mm-slab-fix-potential-deadlock.patch
  112. mm-slab-more-lock-breaks.patch
  113. mm-slab-move-debug-out.patch
  114. mm-slab-wrap-functions.patch
  115. mm-vmalloc-use-get-cpu-light.patch
  116. mutex-no-spin-on-rt.patch
  117. net-another-local-irq-disable-alloc-atomic-headache.patch
  118. net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch
  119. net-flip-lock-dep-thingy.patch
  120. net-netif-rx-ni-use-local-bh-disable.patch
  121. net-netif_rx_ni-migrate-disable.patch
  122. net-tx-action-avoid-livelock-on-rt.patch
  123. net-use-cpu-chill.patch
  124. net-use-cpu-light-in-ip-send-unicast-reply.patch
  125. net-wireless-warn-nort.patch
  126. ntp-make-ntp-lock-raw-sigh.patch
  127. of-convert-devtree-lock.patch
  128. of-fixup-recursive-locking.patch
  129. oleg-signal-rt-fix.patch
  130. panic-disable-random-on-rt.patch
  131. patch-to-introduce-rcu-bh-qs-where-safe-from-softirq.patch
  132. pci-access-use-__wake_up_all_locked.patch
  133. perf-make-swevent-hrtimer-irqsafe.patch
  134. perf-move-irq-work-to-softirq-in-rt.patch
  135. peter_zijlstra-frob-hrtimer.patch
  136. peter_zijlstra-frob-migrate_disable-2.patch
  137. peter_zijlstra-frob-migrate_disable.patch
  138. peter_zijlstra-frob-pagefault_disable.patch
  139. peter_zijlstra-frob-rcu.patch
  140. peterz-raw_pagefault_disable.patch
  141. peterz-srcu-crypto-chain.patch
  142. pid-h-include-atomic-h.patch
  143. ping-sysrq.patch
  144. posix-timers-avoid-wakeups-when-no-timers-are-active.patch
  145. posix-timers-no-broadcast.patch
  146. posix-timers-shorten-cpu-timers-thread.patch
  147. posix-timers-thread-posix-cpu-timers-on-rt.patch
  148. power-disable-highmem-on-rt.patch
  149. power-use-generic-rwsem-on-rt.patch
  150. ppc-mark-low-level-handlers-no-thread.patch
  151. preempt-lazy-support.patch
  152. preempt-nort-rt-variants.patch
  153. printk-27force_early_printk-27-boot-param-to-help-with-debugging.patch
  154. printk-kill.patch
  155. printk-rt-aware.patch
  156. radix-tree-rt-aware.patch
  157. random-make-it-work-on-rt.patch
  158. rcu-disable-rcu-fast-no-hz-on-rt.patch
  159. rcu-fix-build-break.patch
  160. rcu-force-preempt-rcu-for-rt.patch
  161. rcu-merge-rcu-bh-into-rcu-preempt-for-rt.patch
  162. rcu-tiny-merge-bh.patch
  163. rcu-tiny-solve-rt-mistery.patch
  164. re-migrate_disable-race-with-cpu-hotplug-3f.patch
  165. re-preempt_rt_full-arm-coredump-fails-for-cpu-3e-3d-4.patch
  166. relay-fix-timer-madness.patch
  167. resource-counters-use-localirq-nort.patch
  168. rfc-printk-don-27t-call-printk_tick-in-printk_needs_cpu.patch
  169. rfc-sched-rt-fix-wait_task_interactive-to-test-rt_spin_lock-state.patch
  170. rt-add-rt-locks.patch
  171. rt-add-rt-spinlock-to-headers.patch
  172. rt-add-rt-to-mutex-headers.patch
  173. rt-disable-rt-group-sched.patch
  174. rt-introduce-cpu-chill.patch
  175. rt-local-irq-lock.patch
  176. rt-mutex-add-sleeping-spinlocks-support.patch
  177. rt-preempt-base-config.patch
  178. rt-rcutree-warn-fix.patch
  179. rt-rw-lockdep-annotations.patch
  180. rt-sched-do-not-compare-cpu-masks-in-scheduler.patch
  181. rt-sched-have-migrate_disable-ignore-bounded-threads.patch
  182. rt-sched-postpone-actual-migration-disalbe-to-schedule.patch
  183. rt-serial-warn-fix.patch
  184. rt-tracing-show-padding-as-unsigned-short.patch
  185. rtmutex-avoid-include-hell.patch
  186. rtmutex-futex-prepare-rt.patch
  187. rtmutex-lock-killable.patch
  188. rwsem-add-rt-variant.patch
  189. sched-better-debug-output-for-might-sleep.patch
  190. sched-clear-pf-thread-bound-on-fallback-rq.patch
  191. sched-cond-resched.patch
  192. sched-delay-put-task.patch
  193. sched-disable-rt-group-sched-on-rt.patch
  194. sched-disable-ttwu-queue.patch
  195. sched-limit-nr-migrate.patch
  196. sched-might-sleep-do-not-account-rcu-depth.patch
  197. sched-migrate-disable.patch
  198. sched-mmdrop-delayed.patch
  199. sched-rt-fix-migrate_enable-thinko.patch
  200. sched-rt-mutex-wakeup.patch
  201. sched-teach-migrate_disable-about-atomic-contexts.patch
  202. sched-ttwu-ensure-success-return-is-correct.patch
  203. scsi-fcoe-rt-aware.patch
  204. scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch
  205. seqlock-prevent-rt-starvation.patch
  206. seqlock-remove-unused-functions.patch
  207. seqlock-use-seqcount.patch
  208. series
  209. signal-fix-up-rcu-wreckage.patch
  210. signal-revert-ptrace-preempt-magic.patch
  211. signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch
  212. signals-do-not-wake-self.patch
  213. skbufhead-raw-lock.patch
  214. slub-correct-per-cpu-slab.patch
  215. softirq-adapt-nohz-pending-debug-code-to-new-scheme.patch
  216. softirq-add-more-debug.patch
  217. softirq-disable-softirq-stacks-for-rt.patch
  218. softirq-export-in-serving-softirq.patch
  219. softirq-fix-unplug-deadlock.patch
  220. softirq-init-softirq-local-lock-after-per-cpu-section-is-set-up.patch
  221. softirq-local-lock.patch
  222. softirq-make-fifo.patch
  223. softirq-make-serving-softirqs-a-task-flag.patch
  224. softirq-preempt-fix-3-re.patch
  225. softirq-sanitize-softirq-pending.patch
  226. softirq-split-handling-function.patch
  227. softirq-split-locks.patch
  228. softirq-split-out-code.patch
  229. softirq-thread-do-softirq.patch
  230. spinlock-types-separate-raw.patch
  231. stomp-machine-deal-clever-with-stopper-lock.patch
  232. stomp-machine-mark-stomper-thread.patch
  233. stomp-machine-raw-lock.patch
  234. stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
  235. suspend-prevernt-might-sleep-splats.patch
  236. sysctl-include-atomic-h.patch
  237. sysfs-realtime-entry.patch
  238. tasklet-rt-prevent-tasklets-from-going-into-infinite-spin-in-rt.patch
  239. tasklist-lock-fix-section-conflict.patch
  240. timekeeping-split-xtime-lock.patch
  241. timer-delay-waking-softirqs-from-the-jiffy-tick.patch
  242. timer-fd-avoid-live-lock.patch
  243. timer-handle-idle-trylock-in-get-next-timer-irq.patch
  244. timer.c-fix-build-fail-for-RT_FULL.patch
  245. timers-avoid-the-base-null-otptimization-on-rt.patch
  246. timers-mov-printk_tick-to-soft-interrupt.patch
  247. timers-preempt-rt-support.patch
  248. timers-prepare-for-full-preemption.patch
  249. tracing-account-for-preempt-off-in-preempt_schedule.patch
  250. tty-use-local-irq-nort.patch
  251. upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch
  252. usb-fix-mouse-problem-copying-large-data.patch
  253. usb-hcd-use-local-irq-nort.patch
  254. user-use-local-irq-nort.patch
  255. workqueue-use-get-cpu-light.patch
  256. x86-crypto-reduce-preempt-disabled-regions.patch
  257. x86-disable-debug-stack.patch
  258. x86-highmem-warn.patch
  259. x86-hpet-disable-msi-on-lenovo-w510.patch
  260. x86-io-apic-migra-no-unmask.patch
  261. x86-kprobes-remove-bogus-preempt-enable.patch
  262. x86-kvm-require-const-tsc-for-rt.patch
  263. x86-mce-timer-hrtimer.patch
  264. x86-perf-uncore-deal-with-kfree.patch
  265. x86-stackprot-no-random-on-rt.patch
  266. x86-use-gen-rwsem-spinlocks-rt.patch