summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2012-10-15 20:34:47 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2012-10-15 20:34:47 -0400
commit716c961f5a565ff90379cafb8469a3e3e9b80339 (patch)
tree483ff6349aa2036910221f73ef0e510f3b4cb60b
parentc895fa8ab11072afef701a4962317209a4a6459c (diff)
download3.4-rt-patches-716c961f5a565ff90379cafb8469a3e3e9b80339.tar.gz
patches-3.4.4-rt14.tar.xz3.4.4-rt14
Announce: ------------ Dear RT Folks, I'm pleased to announce the 3.4.4-rt14 stable release. You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git Head SHA1: c715d5e61de5c5248b99bd2a2b7c373c3f7e8f52 Or to build 3.4.4-rt14 directly, the following patches should be applied: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.4.tar.xz http://www.kernel.org/pub/linux/kernel/v3.x/patch-3.4.4.xz http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/patch-3.4.4-rt14.patch.xz You can also build from 3.4.4-rt13 by applying the incremental patch: http://www.kernel.org/pub/linux/kernel/projects/rt/3.4/incr/patch-3.4.4-rt13-rt14.patch.xz Enjoy, -- Steve Changes from 3.4.4-rt13: --- Carsten Emde (4): Latency histogramms: Cope with backwards running local trace clock Latency histograms: Adjust timer, if already elapsed when programmed Disable RT_GROUP_SCHED in PREEMPT_RT_FULL Latency histograms: Detect another yet overlooked sharedprio condition Mike Galbraith (1): fs, jbd: pull your plug when waiting for space Steven Rostedt (5): cpu/rt: Rework cpu down for PREEMPT_RT cpu/rt: Fix cpu_hotplug variable initialization workqueue: Revert workqueue: Fix PF_THREAD_BOUND abuse workqueue: Revert workqueue: Fix cpuhotplug trainwreck Linux 3.4.4-rt14 Thomas Gleixner (1): slab: Prevent local lock deadlock Yong Zhang (1): perf: Make swevent hrtimer run in irq instead of softirq ---- fs/jbd/checkpoint.c | 2 + include/linux/cpu.h | 6 +- include/linux/hrtimer.h | 3 + include/linux/sched.h | 9 +- include/linux/workqueue.h | 5 +- init/Kconfig | 1 + kernel/cpu.c | 240 ++++++++++++++---- kernel/events/core.c | 1 + kernel/hrtimer.c | 16 +- kernel/sched/core.c | 82 +++++- kernel/trace/latency_hist.c | 74 +++--- kernel/workqueue.c | 578 +++++++++++++++++++++++++++++++------------ localversion-rt | 2 +- mm/slab.c | 26 +- 14 files changed, 788 insertions(+), 257 deletions(-) <diff snipped> ------------ http://marc.info/?l=linux-rt-users&m=134265689208025&w=2 md5sum: 17f54268536a6eb66a635c2fbb38853b patches-3.4.4-rt14.tar.xz Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--patches/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch2
-rw-r--r--patches/0002-slab-lockdep-Annotate-all-slab-caches.patch2
-rw-r--r--patches/0003-x86-kprobes-Remove-remove-bogus-preempt_enable.patch2
-rw-r--r--patches/0004-tick-Add-tick-skew-boot-option.patch2
-rw-r--r--patches/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch2
-rw-r--r--patches/0006-block-Shorten-interrupt-disabled-regions.patch2
-rw-r--r--patches/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch2
-rw-r--r--patches/0008-mips-enable-interrupts-in-signal.patch.patch2
-rw-r--r--patches/0009-arm-enable-interrupts-in-signal-code.patch.patch2
-rw-r--r--patches/0010-seqlock-Remove-unused-functions.patch2
-rw-r--r--patches/0011-seqlock-Use-seqcount.patch2
-rw-r--r--patches/0012-timekeeping-Split-xtime_lock.patch2
-rw-r--r--patches/0013-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch2
-rw-r--r--patches/0014-tracing-Account-for-preempt-off-in-preempt_schedule.patch2
-rw-r--r--patches/0015-signal-revert-ptrace-preempt-magic.patch.patch2
-rw-r--r--patches/0016-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch2
-rw-r--r--patches/0017-arm-Allow-forced-irq-threading.patch2
-rw-r--r--patches/0018-preempt-rt-Convert-arm-boot_lock-to-raw.patch2
-rw-r--r--patches/0019-arm-omap-make-wakeupgen_lock-raw.patch.patch2
-rw-r--r--patches/0020-signals-Do-not-wakeup-self.patch2
-rw-r--r--patches/0021-posix-timers-Prevent-broadcast-signals.patch2
-rw-r--r--patches/0022-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch2
-rw-r--r--patches/0023-signal-x86-Delay-calling-signals-in-atomic.patch2
-rw-r--r--patches/0024-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch2
-rw-r--r--patches/0025-drivers-random-Reduce-preempt-disabled-region.patch2
-rw-r--r--patches/0026-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch2
-rw-r--r--patches/0027-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch2
-rw-r--r--patches/0028-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch2
-rw-r--r--patches/0029-drivers-net-Use-disable_irq_nosync-in-8139too.patch2
-rw-r--r--patches/0030-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch2
-rw-r--r--patches/0031-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch2
-rw-r--r--patches/0032-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch2
-rw-r--r--patches/0033-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch2
-rw-r--r--patches/0034-mm-pagefault_disabled.patch2
-rw-r--r--patches/0035-mm-raw_pagefault_disable.patch2
-rw-r--r--patches/0036-filemap-fix-up.patch.patch2
-rw-r--r--patches/0037-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch2
-rw-r--r--patches/0038-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch2
-rw-r--r--patches/0039-suspend-Prevent-might-sleep-splats.patch2
-rw-r--r--patches/0040-OF-Fixup-resursive-locking-code-paths.patch2
-rw-r--r--patches/0041-of-convert-devtree-lock.patch.patch2
-rw-r--r--patches/0042-list-add-list-last-entry.patch.patch2
-rw-r--r--patches/0043-mm-page-alloc-use-list-last-entry.patch.patch2
-rw-r--r--patches/0044-mm-slab-move-debug-out.patch.patch2
-rw-r--r--patches/0045-rwsem-inlcude-fix.patch.patch2
-rw-r--r--patches/0046-sysctl-include-fix.patch.patch2
-rw-r--r--patches/0047-net-flip-lock-dep-thingy.patch.patch2
-rw-r--r--patches/0048-softirq-thread-do-softirq.patch.patch2
-rw-r--r--patches/0049-softirq-split-out-code.patch.patch2
-rw-r--r--patches/0050-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch2
-rw-r--r--patches/0051-x86-Do-not-disable-preemption-in-int3-on-32bit.patch2
-rw-r--r--patches/0052-locking-various-init-fixes.patch.patch2
-rw-r--r--patches/0053-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch2
-rw-r--r--patches/0054-latency-hist.patch.patch2
-rw-r--r--patches/0055-hwlatdetect.patch.patch2
-rw-r--r--patches/0056-localversion.patch.patch2
-rw-r--r--patches/0057-early-printk-consolidate.patch.patch2
-rw-r--r--patches/0058-printk-kill.patch.patch2
-rw-r--r--patches/0059-printk-force_early_printk-boot-param-to-help-with-de.patch2
-rw-r--r--patches/0060-rt-preempt-base-config.patch.patch2
-rw-r--r--patches/0061-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch2
-rw-r--r--patches/0062-rt-local_irq_-variants-depending-on-RT-RT.patch2
-rw-r--r--patches/0063-preempt-Provide-preempt_-_-no-rt-variants.patch2
-rw-r--r--patches/0064-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch2
-rw-r--r--patches/0065-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch2
-rw-r--r--patches/0066-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch2
-rw-r--r--patches/0067-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch2
-rw-r--r--patches/0068-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch2
-rw-r--r--patches/0069-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch2
-rw-r--r--patches/0070-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch2
-rw-r--r--patches/0071-usb-Use-local_irq_-_nort-variants.patch2
-rw-r--r--patches/0072-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch2
-rw-r--r--patches/0073-mm-scatterlist-dont-disable-irqs-on-RT.patch2
-rw-r--r--patches/0074-signal-fix-up-rcu-wreckage.patch.patch2
-rw-r--r--patches/0075-net-wireless-warn-nort.patch.patch2
-rw-r--r--patches/0076-mm-Replace-cgroup_page-bit-spinlock.patch2
-rw-r--r--patches/0077-buffer_head-Replace-bh_uptodate_lock-for-rt.patch2
-rw-r--r--patches/0078-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch2
-rw-r--r--patches/0079-genirq-Disable-DEBUG_SHIRQ-for-rt.patch2
-rw-r--r--patches/0080-genirq-Disable-random-call-on-preempt-rt.patch2
-rw-r--r--patches/0081-genirq-disable-irqpoll-on-rt.patch2
-rw-r--r--patches/0082-genirq-force-threading.patch.patch2
-rw-r--r--patches/0083-drivers-net-fix-livelock-issues.patch2
-rw-r--r--patches/0084-drivers-net-vortex-fix-locking-issues.patch2
-rw-r--r--patches/0085-drivers-net-gianfar-Make-RT-aware.patch2
-rw-r--r--patches/0086-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch2
-rw-r--r--patches/0087-local-var.patch.patch2
-rw-r--r--patches/0088-rt-local-irq-lock.patch.patch2
-rw-r--r--patches/0089-cpu-rt-variants.patch.patch2
-rw-r--r--patches/0090-mm-slab-wrap-functions.patch.patch2
-rw-r--r--patches/0091-slab-Fix-__do_drain-to-use-the-right-array-cache.patch2
-rw-r--r--patches/0092-mm-More-lock-breaks-in-slab.c.patch2
-rw-r--r--patches/0093-mm-page_alloc-rt-friendly-per-cpu-pages.patch2
-rw-r--r--patches/0094-mm-page_alloc-reduce-lock-sections-further.patch2
-rw-r--r--patches/0095-mm-page-alloc-fix.patch.patch2
-rw-r--r--patches/0096-mm-convert-swap-to-percpu-locked.patch2
-rw-r--r--patches/0097-mm-make-vmstat-rt-aware.patch2
-rw-r--r--patches/0098-mm-shrink-the-page-frame-to-rt-size.patch2
-rw-r--r--patches/0099-ARM-Initialize-ptl-lock-for-vector-page.patch2
-rw-r--r--patches/0100-mm-Allow-only-slab-on-RT.patch2
-rw-r--r--patches/0101-radix-tree-rt-aware.patch.patch2
-rw-r--r--patches/0102-panic-disable-random-on-rt.patch2
-rw-r--r--patches/0103-ipc-Make-the-ipc-code-rt-aware.patch2
-rw-r--r--patches/0104-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch2
-rw-r--r--patches/0105-relay-fix-timer-madness.patch2
-rw-r--r--patches/0106-net-ipv4-route-use-locks-on-up-rt.patch.patch2
-rw-r--r--patches/0107-workqueue-avoid-the-lock-in-cpu-dying.patch.patch2
-rw-r--r--patches/0108-timers-prepare-for-full-preemption.patch2
-rw-r--r--patches/0109-timers-preempt-rt-support.patch2
-rw-r--r--patches/0110-timers-fix-timer-hotplug-on-rt.patch2
-rw-r--r--patches/0111-timers-mov-printk_tick-to-soft-interrupt.patch2
-rw-r--r--patches/0112-timer-delay-waking-softirqs-from-the-jiffy-tick.patch2
-rw-r--r--patches/0113-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch2
-rw-r--r--patches/0114-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch2
-rw-r--r--patches/0115-hrtimers-prepare-full-preemption.patch2
-rw-r--r--patches/0116-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch2
-rw-r--r--patches/0117-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch2
-rw-r--r--patches/0118-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch2
-rw-r--r--patches/0119-hrtimer-fix-reprogram-madness.patch.patch2
-rw-r--r--patches/0120-timer-fd-Prevent-live-lock.patch2
-rw-r--r--patches/0121-posix-timers-thread-posix-cpu-timers-on-rt.patch2
-rw-r--r--patches/0122-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch2
-rw-r--r--patches/0123-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch2
-rw-r--r--patches/0124-sched-delay-put-task.patch.patch2
-rw-r--r--patches/0125-sched-limit-nr-migrate.patch.patch2
-rw-r--r--patches/0126-sched-mmdrop-delayed.patch.patch2
-rw-r--r--patches/0127-sched-rt-mutex-wakeup.patch.patch2
-rw-r--r--patches/0128-sched-might-sleep-do-not-account-rcu-depth.patch.patch2
-rw-r--r--patches/0129-sched-cond-resched.patch.patch2
-rw-r--r--patches/0130-cond-resched-softirq-fix.patch.patch2
-rw-r--r--patches/0131-cond-resched-lock-rt-tweak.patch.patch2
-rw-r--r--patches/0132-sched-disable-ttwu-queue.patch.patch2
-rw-r--r--patches/0133-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch2
-rw-r--r--patches/0134-sched-ttwu-Return-success-when-only-changing-the-sav.patch2
-rw-r--r--patches/0135-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch2
-rw-r--r--patches/0136-stomp-machine-mark-stomper-thread.patch.patch2
-rw-r--r--patches/0137-stomp-machine-raw-lock.patch.patch2
-rw-r--r--patches/0138-hotplug-Lightweight-get-online-cpus.patch2
-rw-r--r--patches/0139-hotplug-sync_unplug-No.patch2
-rw-r--r--patches/0140-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch2
-rw-r--r--patches/0141-sched-migrate-disable.patch.patch2
-rw-r--r--patches/0142-hotplug-use-migrate-disable.patch.patch2
-rw-r--r--patches/0143-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch2
-rw-r--r--patches/0144-ftrace-migrate-disable-tracing.patch.patch2
-rw-r--r--patches/0145-tracing-Show-padding-as-unsigned-short.patch2
-rw-r--r--patches/0146-migrate-disable-rt-variant.patch.patch2
-rw-r--r--patches/0147-sched-Optimize-migrate_disable.patch2
-rw-r--r--patches/0148-sched-Generic-migrate_disable.patch2
-rw-r--r--patches/0149-sched-rt-Fix-migrate_enable-thinko.patch2
-rw-r--r--patches/0150-sched-teach-migrate_disable-about-atomic-contexts.patch2
-rw-r--r--patches/0151-sched-Postpone-actual-migration-disalbe-to-schedule.patch2
-rw-r--r--patches/0152-sched-Do-not-compare-cpu-masks-in-scheduler.patch2
-rw-r--r--patches/0153-sched-Have-migrate_disable-ignore-bounded-threads.patch2
-rw-r--r--patches/0154-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch2
-rw-r--r--patches/0155-ftrace-crap.patch.patch2
-rw-r--r--patches/0156-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch2
-rw-r--r--patches/0157-net-netif_rx_ni-migrate-disable.patch.patch2
-rw-r--r--patches/0158-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch2
-rw-r--r--patches/0159-lockdep-rt.patch.patch2
-rw-r--r--patches/0160-mutex-no-spin-on-rt.patch.patch2
-rw-r--r--patches/0161-softirq-local-lock.patch.patch2
-rw-r--r--patches/0162-softirq-Export-in_serving_softirq.patch2
-rw-r--r--patches/0163-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch2
-rw-r--r--patches/0164-softirq-Fix-unplug-deadlock.patch2
-rw-r--r--patches/0165-softirq-disable-softirq-stacks-for-rt.patch.patch2
-rw-r--r--patches/0166-softirq-make-fifo.patch.patch2
-rw-r--r--patches/0167-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch2
-rw-r--r--patches/0168-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch2
-rw-r--r--patches/0169-local-vars-migrate-disable.patch.patch2
-rw-r--r--patches/0170-md-raid5-Make-raid5_percpu-handling-RT-aware.patch2
-rw-r--r--patches/0171-rtmutex-lock-killable.patch.patch2
-rw-r--r--patches/0172-rtmutex-futex-prepare-rt.patch.patch2
-rw-r--r--patches/0173-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch2
-rw-r--r--patches/0174-rt-mutex-add-sleeping-spinlocks-support.patch.patch2
-rw-r--r--patches/0175-spinlock-types-separate-raw.patch.patch2
-rw-r--r--patches/0176-rtmutex-avoid-include-hell.patch.patch2
-rw-r--r--patches/0177-rt-add-rt-spinlocks.patch.patch2
-rw-r--r--patches/0178-rt-add-rt-to-mutex-headers.patch.patch2
-rw-r--r--patches/0179-rwsem-add-rt-variant.patch.patch2
-rw-r--r--patches/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch2
-rw-r--r--patches/0181-rwlocks-Fix-section-mismatch.patch2
-rw-r--r--patches/0182-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch2
-rw-r--r--patches/0183-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch2
-rw-r--r--patches/0184-rcu-Frob-softirq-test.patch2
-rw-r--r--patches/0185-rcu-Merge-RCU-bh-into-RCU-preempt.patch2
-rw-r--r--patches/0186-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch2
-rw-r--r--patches/0187-rcu-more-fallout.patch.patch2
-rw-r--r--patches/0188-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch2
-rw-r--r--patches/0189-rcu-Fix-build-break.patch2
-rw-r--r--patches/0190-rt-rcutree-Move-misplaced-prototype.patch2
-rw-r--r--patches/0191-lglocks-rt.patch.patch2
-rw-r--r--patches/0192-serial-8250-Clean-up-the-locking-for-rt.patch2
-rw-r--r--patches/0193-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch2
-rw-r--r--patches/0194-drivers-tty-fix-omap-lock-crap.patch.patch2
-rw-r--r--patches/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch2
-rw-r--r--patches/0196-fs-namespace-preemption-fix.patch2
-rw-r--r--patches/0197-mm-protect-activate-switch-mm.patch.patch2
-rw-r--r--patches/0198-mm-Protect-activate_mm-by-preempt_-disable-7Cenable-.patch2
-rw-r--r--patches/0199-fs-block-rt-support.patch.patch2
-rw-r--r--patches/0200-fs-ntfs-disable-interrupt-only-on-RT.patch2
-rw-r--r--patches/0201-x86-Convert-mce-timer-to-hrtimer.patch2
-rw-r--r--patches/0202-x86-stackprotector-Avoid-random-pool-on-rt.patch2
-rw-r--r--patches/0203-x86-Use-generic-rwsem_spinlocks-on-rt.patch2
-rw-r--r--patches/0204-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch2
-rw-r--r--patches/0205-workqueue-use-get-cpu-light.patch.patch2
-rw-r--r--patches/0206-epoll.patch.patch2
-rw-r--r--patches/0207-mm-vmalloc.patch.patch2
-rw-r--r--patches/0208-workqueue-Fix-cpuhotplug-trainwreck.patch2
-rw-r--r--patches/0209-workqueue-Fix-PF_THREAD_BOUND-abuse.patch2
-rw-r--r--patches/0210-workqueue-Use-get_cpu_light-in-flush_gcwq.patch2
-rw-r--r--patches/0211-hotplug-stuff.patch.patch2
-rw-r--r--patches/0212-debugobjects-rt.patch.patch2
-rw-r--r--patches/0213-jump-label-rt.patch.patch2
-rw-r--r--patches/0214-skbufhead-raw-lock.patch.patch2
-rw-r--r--patches/0215-x86-no-perf-irq-work-rt.patch.patch2
-rw-r--r--patches/0216-console-make-rt-friendly.patch.patch2
-rw-r--r--patches/0217-fix-printk-flush-of-messages.patch2
-rw-r--r--patches/0218-power-use-generic-rwsem-on-rt.patch2
-rw-r--r--patches/0219-power-disable-highmem-on-rt.patch.patch2
-rw-r--r--patches/0220-arm-disable-highmem-on-rt.patch.patch2
-rw-r--r--patches/0221-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch2
-rw-r--r--patches/0222-mips-disable-highmem-on-rt.patch.patch2
-rw-r--r--patches/0223-net-Avoid-livelock-in-net_tx_action-on-RT.patch2
-rw-r--r--patches/0224-ping-sysrq.patch.patch2
-rw-r--r--patches/0225-kgdb-serial-Short-term-workaround.patch2
-rw-r--r--patches/0226-add-sys-kernel-realtime-entry.patch2
-rw-r--r--patches/0227-mm-rt-kmap_atomic-scheduling.patch2
-rw-r--r--patches/0228-ipc-sem-Rework-semaphore-wakeups.patch2
-rw-r--r--patches/0229-x86-kvm-require-const-tsc-for-rt.patch.patch2
-rw-r--r--patches/0230-scsi-fcoe-rt-aware.patch.patch2
-rw-r--r--patches/0231-x86-crypto-Reduce-preempt-disabled-regions.patch2
-rw-r--r--patches/0232-dm-Make-rt-aware.patch2
-rw-r--r--patches/0233-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch2
-rw-r--r--patches/0234-seqlock-Prevent-rt-starvation.patch2
-rw-r--r--patches/0235-timer-Fix-hotplug-for-rt.patch2
-rw-r--r--patches/0236-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch2
-rw-r--r--patches/0237-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch2
-rw-r--r--patches/0238-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch2
-rw-r--r--patches/0239-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch2
-rw-r--r--patches/0240-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch2
-rw-r--r--patches/0241-softirq-Check-preemption-after-reenabling-interrupts.patch2
-rw-r--r--patches/0242-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch2
-rw-r--r--patches/0243-net-RT-REmove-preemption-disabling-in-netif_rx.patch2
-rw-r--r--patches/0244-rt-Introduce-cpu_chill.patch2
-rw-r--r--patches/0245-fs-dcache-Use-cpu_chill-in-trylock-loops.patch2
-rw-r--r--patches/0246-net-Use-cpu_chill-instead-of-cpu_relax.patch2
-rw-r--r--patches/0247-ntp-Make-ntp_lock-raw.patch2
-rw-r--r--patches/0248-mips-remove-smp-reserve-lock.patch.patch2
-rw-r--r--patches/0249-lockdep-Selftest-convert-spinlock-to-raw-spinlock.patch2
-rw-r--r--patches/0250-lockdep-Selftest-Only-do-hardirq-context-test-for-ra.patch2
-rw-r--r--patches/0251-genirq-Add-default-affinity-mask-command-line-option.patch2
-rw-r--r--patches/0252-kconfig-disable-a-few-options-rt.patch.patch2
-rw-r--r--patches/0253-kconfig-preempt-rt-full.patch.patch2
-rw-r--r--patches/0254-spinlock-rt-Include-bug.h-in-spinlock_rt.h-to-satisf.patch2
-rw-r--r--patches/0255-Subject-powerpc-Mark-low-level-irq-handlers-NO_THREA.patch2
-rw-r--r--patches/0256-Latency-histogramms-Cope-with-backwards-running-loca.patch267
-rw-r--r--patches/0257-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch73
-rw-r--r--patches/0258-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch32
-rw-r--r--patches/0259-Latency-histograms-Detect-another-yet-overlooked-sha.patch38
-rw-r--r--patches/0260-slab-Prevent-local-lock-deadlock.patch77
-rw-r--r--patches/0261-fs-jbd-pull-your-plug-when-waiting-for-space.patch35
-rw-r--r--patches/0262-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch74
-rw-r--r--patches/0263-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch545
-rw-r--r--patches/0264-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch35
-rw-r--r--patches/0265-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch96
-rw-r--r--patches/0266-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch803
-rw-r--r--patches/0267-Linux-3.4.4-rt14-REBASE.patch (renamed from patches/0256-Linux-3.4.4-rt13-REBASE.patch)10
-rw-r--r--patches/series13
268 files changed, 2347 insertions, 261 deletions
diff --git a/patches/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch b/patches/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
index 22fb4dd..c1c81e4 100644
--- a/patches/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
+++ b/patches/0001-Revert-workqueue-skip-nr_running-sanity-check-in-wor.patch
@@ -1,7 +1,7 @@
From c9cf7a34892f415c473689ecd7cb82815481e39c Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 7 Jun 2012 09:49:40 -0400
-Subject: [PATCH 001/256] Revert "workqueue: skip nr_running sanity check in
+Subject: [PATCH 001/267] Revert "workqueue: skip nr_running sanity check in
worker_enter_idle() if trustee is active"
This reverts commit 24312d34c95702e51240f58c073db30630170fbf.
diff --git a/patches/0002-slab-lockdep-Annotate-all-slab-caches.patch b/patches/0002-slab-lockdep-Annotate-all-slab-caches.patch
index 1fbcd32..b232c42 100644
--- a/patches/0002-slab-lockdep-Annotate-all-slab-caches.patch
+++ b/patches/0002-slab-lockdep-Annotate-all-slab-caches.patch
@@ -1,7 +1,7 @@
From 82753a6da41f383c6649d5e7de36db554dea7b12 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Mon, 28 Nov 2011 19:51:51 +0100
-Subject: [PATCH 002/256] slab, lockdep: Annotate all slab caches
+Subject: [PATCH 002/267] slab, lockdep: Annotate all slab caches
Currently we only annotate the kmalloc caches, annotate all of them.
diff --git a/patches/0003-x86-kprobes-Remove-remove-bogus-preempt_enable.patch b/patches/0003-x86-kprobes-Remove-remove-bogus-preempt_enable.patch
index 4cccc99..8d1fe75 100644
--- a/patches/0003-x86-kprobes-Remove-remove-bogus-preempt_enable.patch
+++ b/patches/0003-x86-kprobes-Remove-remove-bogus-preempt_enable.patch
@@ -1,7 +1,7 @@
From 76e113bcae99f4b0d58f884cd38bc8cfc94f5f93 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 17 Mar 2011 11:02:15 +0100
-Subject: [PATCH 003/256] x86: kprobes: Remove remove bogus preempt_enable
+Subject: [PATCH 003/267] x86: kprobes: Remove remove bogus preempt_enable
The CONFIG_PREEMPT=n section of setup_singlestep() contains:
diff --git a/patches/0004-tick-Add-tick-skew-boot-option.patch b/patches/0004-tick-Add-tick-skew-boot-option.patch
index a508cb8..f52baac 100644
--- a/patches/0004-tick-Add-tick-skew-boot-option.patch
+++ b/patches/0004-tick-Add-tick-skew-boot-option.patch
@@ -1,7 +1,7 @@
From fd87afd117d048ba4d78f4b910901074408a799a Mon Sep 17 00:00:00 2001
From: Mike Galbraith <mgalbraith@suse.de>
Date: Tue, 8 May 2012 12:20:58 +0200
-Subject: [PATCH 004/256] tick: Add tick skew boot option
+Subject: [PATCH 004/267] tick: Add tick skew boot option
Let the user decide whether power consumption or jitter is the
more important consideration for their machines.
diff --git a/patches/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch b/patches/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch
index 64cacbe..92033de 100644
--- a/patches/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch
+++ b/patches/0005-x86-hpet-Disable-MSI-on-Lenovo-W510.patch
@@ -1,7 +1,7 @@
From 3930a7c7ee07fdeebfa913ee0647589eaae47eb8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 30 Sep 2011 20:03:37 +0200
-Subject: [PATCH 005/256] x86: hpet: Disable MSI on Lenovo W510
+Subject: [PATCH 005/267] x86: hpet: Disable MSI on Lenovo W510
MSI based per cpu timers lose interrupts when intel_idle() is enabled
- independent of the c-state. With idle=poll the problem cannot be
diff --git a/patches/0006-block-Shorten-interrupt-disabled-regions.patch b/patches/0006-block-Shorten-interrupt-disabled-regions.patch
index 1a4ac04..1fbb33b 100644
--- a/patches/0006-block-Shorten-interrupt-disabled-regions.patch
+++ b/patches/0006-block-Shorten-interrupt-disabled-regions.patch
@@ -1,7 +1,7 @@
From 907830916646eccd2a8170dbfbc8f1f9482c1bf3 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 22 Jun 2011 19:47:02 +0200
-Subject: [PATCH 006/256] block: Shorten interrupt disabled regions
+Subject: [PATCH 006/267] block: Shorten interrupt disabled regions
Moving the blk_sched_flush_plug() call out of the interrupt/preempt
disabled region in the scheduler allows us to replace
diff --git a/patches/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch b/patches/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch
index 330f65a..a9de055 100644
--- a/patches/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch
+++ b/patches/0007-sched-Distangle-worker-accounting-from-rq-3Elock.patch
@@ -1,7 +1,7 @@
From 5d2ed4b009866a4c6fbb6f8cf371e56403ca75de Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 22 Jun 2011 19:47:03 +0200
-Subject: [PATCH 007/256] sched: Distangle worker accounting from rq-%3Elock
+Subject: [PATCH 007/267] sched: Distangle worker accounting from rq-%3Elock
The worker accounting for cpu bound workers is plugged into the core
scheduler code and the wakeup code. This is not a hard requirement and
diff --git a/patches/0008-mips-enable-interrupts-in-signal.patch.patch b/patches/0008-mips-enable-interrupts-in-signal.patch.patch
index 081eb0c..dbe1b17 100644
--- a/patches/0008-mips-enable-interrupts-in-signal.patch.patch
+++ b/patches/0008-mips-enable-interrupts-in-signal.patch.patch
@@ -1,7 +1,7 @@
From c660f897922204ee48e592122be0f02cbca2e045 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 21:32:10 +0200
-Subject: [PATCH 008/256] mips-enable-interrupts-in-signal.patch
+Subject: [PATCH 008/267] mips-enable-interrupts-in-signal.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0009-arm-enable-interrupts-in-signal-code.patch.patch b/patches/0009-arm-enable-interrupts-in-signal-code.patch.patch
index 2d9f27d..440b67e 100644
--- a/patches/0009-arm-enable-interrupts-in-signal-code.patch.patch
+++ b/patches/0009-arm-enable-interrupts-in-signal-code.patch.patch
@@ -1,7 +1,7 @@
From 903dd2be6f21b3845bbf13d15454347d0a30f0dc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 16 Jul 2011 16:27:13 +0200
-Subject: [PATCH 009/256] arm-enable-interrupts-in-signal-code.patch
+Subject: [PATCH 009/267] arm-enable-interrupts-in-signal-code.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0010-seqlock-Remove-unused-functions.patch b/patches/0010-seqlock-Remove-unused-functions.patch
index b973c60..aa7a26c 100644
--- a/patches/0010-seqlock-Remove-unused-functions.patch
+++ b/patches/0010-seqlock-Remove-unused-functions.patch
@@ -1,7 +1,7 @@
From fbb8f521da2e9e4a3ade472fa472491c58eb197b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 16 Jul 2011 18:38:22 +0200
-Subject: [PATCH 010/256] seqlock: Remove unused functions
+Subject: [PATCH 010/267] seqlock: Remove unused functions
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0011-seqlock-Use-seqcount.patch b/patches/0011-seqlock-Use-seqcount.patch
index 1b8bab0..49510c8 100644
--- a/patches/0011-seqlock-Use-seqcount.patch
+++ b/patches/0011-seqlock-Use-seqcount.patch
@@ -1,7 +1,7 @@
From 4d3af0da43d7f2d1f2665ddd5e04a24173dca6fe Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 16 Jul 2011 18:40:26 +0200
-Subject: [PATCH 011/256] seqlock: Use seqcount
+Subject: [PATCH 011/267] seqlock: Use seqcount
No point in having different implementations for the same thing.
diff --git a/patches/0012-timekeeping-Split-xtime_lock.patch b/patches/0012-timekeeping-Split-xtime_lock.patch
index a559db8..2574535 100644
--- a/patches/0012-timekeeping-Split-xtime_lock.patch
+++ b/patches/0012-timekeeping-Split-xtime_lock.patch
@@ -1,7 +1,7 @@
From 2404f6318f3cbc6b9a85c47edb27919cae54c952 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Mar 2012 15:14:06 +0100
-Subject: [PATCH 012/256] timekeeping: Split xtime_lock
+Subject: [PATCH 012/267] timekeeping: Split xtime_lock
xtime_lock is going to be split apart in mainline, so we can shorten
the seqcount protected regions and avoid updating seqcount in some
diff --git a/patches/0013-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch b/patches/0013-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch
index f530af1..ce099f7 100644
--- a/patches/0013-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch
+++ b/patches/0013-intel_idle-Convert-i7300_idle_lock-to-raw-spinlock.patch
@@ -1,7 +1,7 @@
From 6ee54eb5fc1def247b63e36c83b26ab5dfb34ce2 Mon Sep 17 00:00:00 2001
From: Mike Galbraith <efault@gmx.de>
Date: Wed, 7 Dec 2011 12:48:42 +0100
-Subject: [PATCH 013/256] intel_idle: Convert i7300_idle_lock to raw spinlock
+Subject: [PATCH 013/267] intel_idle: Convert i7300_idle_lock to raw spinlock
24 core Intel box's first exposure to 3.0.12-rt30-rc3 didn't go well.
diff --git a/patches/0014-tracing-Account-for-preempt-off-in-preempt_schedule.patch b/patches/0014-tracing-Account-for-preempt-off-in-preempt_schedule.patch
index 063d160..388861f 100644
--- a/patches/0014-tracing-Account-for-preempt-off-in-preempt_schedule.patch
+++ b/patches/0014-tracing-Account-for-preempt-off-in-preempt_schedule.patch
@@ -1,7 +1,7 @@
From 790051379b585c8e25e9d3ecb014e256cd0b224d Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 29 Sep 2011 12:24:30 -0500
-Subject: [PATCH 014/256] tracing: Account for preempt off in
+Subject: [PATCH 014/267] tracing: Account for preempt off in
preempt_schedule()
The preempt_schedule() uses the preempt_disable_notrace() version
diff --git a/patches/0015-signal-revert-ptrace-preempt-magic.patch.patch b/patches/0015-signal-revert-ptrace-preempt-magic.patch.patch
index 7ac0ac0..a122008 100644
--- a/patches/0015-signal-revert-ptrace-preempt-magic.patch.patch
+++ b/patches/0015-signal-revert-ptrace-preempt-magic.patch.patch
@@ -1,7 +1,7 @@
From 62a95221e057c426137cdcce9f252716b532e3de Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 21 Sep 2011 19:57:12 +0200
-Subject: [PATCH 015/256] signal-revert-ptrace-preempt-magic.patch
+Subject: [PATCH 015/267] signal-revert-ptrace-preempt-magic.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0016-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch b/patches/0016-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch
index 16067bc..4a6684c 100644
--- a/patches/0016-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch
+++ b/patches/0016-arm-Mark-pmu-interupt-IRQF_NO_THREAD.patch
@@ -1,7 +1,7 @@
From a3c959e3bc9ff28e2ed8468d32b36137a7cfcd05 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 16 Mar 2011 14:45:31 +0100
-Subject: [PATCH 016/256] arm: Mark pmu interupt IRQF_NO_THREAD
+Subject: [PATCH 016/267] arm: Mark pmu interupt IRQF_NO_THREAD
PMU interrupt must not be threaded. Remove IRQF_DISABLED while at it
as we run all handlers with interrupts disabled anyway.
diff --git a/patches/0017-arm-Allow-forced-irq-threading.patch b/patches/0017-arm-Allow-forced-irq-threading.patch
index 6ba5c3b..69640aa 100644
--- a/patches/0017-arm-Allow-forced-irq-threading.patch
+++ b/patches/0017-arm-Allow-forced-irq-threading.patch
@@ -1,7 +1,7 @@
From 4e48dbb83d55f79960fe418e48e37ba72ce33b9a Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 16 Jul 2011 13:15:20 +0200
-Subject: [PATCH 017/256] arm: Allow forced irq threading
+Subject: [PATCH 017/267] arm: Allow forced irq threading
All timer interrupts and the perf interrupt are marked NO_THREAD, so
its safe to allow forced interrupt threading.
diff --git a/patches/0018-preempt-rt-Convert-arm-boot_lock-to-raw.patch b/patches/0018-preempt-rt-Convert-arm-boot_lock-to-raw.patch
index c0ff9cd..74b8647 100644
--- a/patches/0018-preempt-rt-Convert-arm-boot_lock-to-raw.patch
+++ b/patches/0018-preempt-rt-Convert-arm-boot_lock-to-raw.patch
@@ -1,7 +1,7 @@
From 98d149e1f5d94d6314e5bbc07dd4bd0b1c2f8684 Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Mon, 19 Sep 2011 14:51:14 -0700
-Subject: [PATCH 018/256] preempt-rt: Convert arm boot_lock to raw
+Subject: [PATCH 018/267] preempt-rt: Convert arm boot_lock to raw
The arm boot_lock is used by the secondary processor startup code. The locking
task is the idle thread, which has idle->sched_class == &idle_sched_class.
diff --git a/patches/0019-arm-omap-make-wakeupgen_lock-raw.patch.patch b/patches/0019-arm-omap-make-wakeupgen_lock-raw.patch.patch
index 3750329..8e2705d 100644
--- a/patches/0019-arm-omap-make-wakeupgen_lock-raw.patch.patch
+++ b/patches/0019-arm-omap-make-wakeupgen_lock-raw.patch.patch
@@ -1,7 +1,7 @@
From b681b3c0f275d25de13484b9235c11b2bd2cac7f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 11 Apr 2012 11:26:38 +0200
-Subject: [PATCH 019/256] arm-omap-make-wakeupgen_lock-raw.patch
+Subject: [PATCH 019/267] arm-omap-make-wakeupgen_lock-raw.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0020-signals-Do-not-wakeup-self.patch b/patches/0020-signals-Do-not-wakeup-self.patch
index 184dada..e8a2467 100644
--- a/patches/0020-signals-Do-not-wakeup-self.patch
+++ b/patches/0020-signals-Do-not-wakeup-self.patch
@@ -1,7 +1,7 @@
From d593d9a98592b53916884a81482f8102d7d591cf Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:44 -0500
-Subject: [PATCH 020/256] signals: Do not wakeup self
+Subject: [PATCH 020/267] signals: Do not wakeup self
Signals which are delivered by current to current can do without
waking up current :)
diff --git a/patches/0021-posix-timers-Prevent-broadcast-signals.patch b/patches/0021-posix-timers-Prevent-broadcast-signals.patch
index 1dceaf7..a77a66c 100644
--- a/patches/0021-posix-timers-Prevent-broadcast-signals.patch
+++ b/patches/0021-posix-timers-Prevent-broadcast-signals.patch
@@ -1,7 +1,7 @@
From d4e4500394adb167a94c878ed6c7cc8ecdb26da1 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:29:20 -0500
-Subject: [PATCH 021/256] posix-timers: Prevent broadcast signals
+Subject: [PATCH 021/267] posix-timers: Prevent broadcast signals
Posix timers should not send broadcast signals and kernel only
signals. Prevent it.
diff --git a/patches/0022-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/patches/0022-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
index c1be28f..f13d254 100644
--- a/patches/0022-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
+++ b/patches/0022-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch
@@ -1,7 +1,7 @@
From 1b1af762f485c34db690823e315a89a67f840181 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:56 -0500
-Subject: [PATCH 022/256] signals: Allow rt tasks to cache one sigqueue struct
+Subject: [PATCH 022/267] signals: Allow rt tasks to cache one sigqueue struct
To avoid allocation allow rt tasks to cache one sigqueue struct in
task struct.
diff --git a/patches/0023-signal-x86-Delay-calling-signals-in-atomic.patch b/patches/0023-signal-x86-Delay-calling-signals-in-atomic.patch
index ae437bc..11efef0 100644
--- a/patches/0023-signal-x86-Delay-calling-signals-in-atomic.patch
+++ b/patches/0023-signal-x86-Delay-calling-signals-in-atomic.patch
@@ -1,7 +1,7 @@
From 99d55f84be1b0a85165bfce70267e4e83780cca3 Mon Sep 17 00:00:00 2001
From: Oleg Nesterov <oleg@redhat.com>
Date: Thu, 7 Jun 2012 07:46:44 -0400
-Subject: [PATCH 023/256] signal/x86: Delay calling signals in atomic
+Subject: [PATCH 023/267] signal/x86: Delay calling signals in atomic
On x86_64 we must disable preemption before we enable interrupts
for stack faults, int3 and debugging, because the current task is using
diff --git a/patches/0024-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch b/patches/0024-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch
index 07ccf00..9cbe8d1 100644
--- a/patches/0024-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch
+++ b/patches/0024-generic-Use-raw-local-irq-variant-for-generic-cmpxch.patch
@@ -1,7 +1,7 @@
From 42beaeae2dcd8371ff2e0c229f83a58bc1fc425a Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 024/256] generic: Use raw local irq variant for generic
+Subject: [PATCH 024/267] generic: Use raw local irq variant for generic
cmpxchg
No point in tracing those.
diff --git a/patches/0025-drivers-random-Reduce-preempt-disabled-region.patch b/patches/0025-drivers-random-Reduce-preempt-disabled-region.patch
index 860b848..d7b8032 100644
--- a/patches/0025-drivers-random-Reduce-preempt-disabled-region.patch
+++ b/patches/0025-drivers-random-Reduce-preempt-disabled-region.patch
@@ -1,7 +1,7 @@
From f8d2d716a11367c1961fb00e19123380a9d48ee4 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:30 -0500
-Subject: [PATCH 025/256] drivers: random: Reduce preempt disabled region
+Subject: [PATCH 025/267] drivers: random: Reduce preempt disabled region
No need to keep preemption disabled across the whole function.
diff --git a/patches/0026-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch b/patches/0026-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
index 6570d4c..a7b333d 100644
--- a/patches/0026-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
+++ b/patches/0026-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch
@@ -1,7 +1,7 @@
From 58f015923d7d9267139ff8bce42f2f6215db1540 Mon Sep 17 00:00:00 2001
From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Sat, 6 Mar 2010 17:47:10 +0100
-Subject: [PATCH 026/256] ARM: AT91: PIT: Remove irq handler when clock event
+Subject: [PATCH 026/267] ARM: AT91: PIT: Remove irq handler when clock event
is unused
Setup and remove the interrupt handler in clock event mode selection.
diff --git a/patches/0027-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/patches/0027-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
index 0813628..e25d142 100644
--- a/patches/0027-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
+++ b/patches/0027-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch
@@ -1,7 +1,7 @@
From 961f5156b0d24dcda2e19f2469f85cff6bd8f220 Mon Sep 17 00:00:00 2001
From: Benedikt Spranger <b.spranger@linutronix.de>
Date: Mon, 8 Mar 2010 18:57:04 +0100
-Subject: [PATCH 027/256] clocksource: TCLIB: Allow higher clock rates for
+Subject: [PATCH 027/267] clocksource: TCLIB: Allow higher clock rates for
clock events
As default the TCLIB uses the 32KiHz base clock rate for clock events.
diff --git a/patches/0028-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch b/patches/0028-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch
index 1b8ffbd..1b04b18 100644
--- a/patches/0028-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch
+++ b/patches/0028-drivers-net-tulip_remove_one-needs-to-call-pci_disab.patch
@@ -1,7 +1,7 @@
From dd9a1a7b9922f4f3c8fee60720aff0baf8fa150b Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:18 -0500
-Subject: [PATCH 028/256] drivers/net: tulip_remove_one needs to call
+Subject: [PATCH 028/267] drivers/net: tulip_remove_one needs to call
pci_disable_device()
Otherwise the device is not completely shut down.
diff --git a/patches/0029-drivers-net-Use-disable_irq_nosync-in-8139too.patch b/patches/0029-drivers-net-Use-disable_irq_nosync-in-8139too.patch
index d91ea90..30482d4 100644
--- a/patches/0029-drivers-net-Use-disable_irq_nosync-in-8139too.patch
+++ b/patches/0029-drivers-net-Use-disable_irq_nosync-in-8139too.patch
@@ -1,7 +1,7 @@
From 83f61475fc133df6805eb883f2598c255527acfd Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:24 -0500
-Subject: [PATCH 029/256] drivers/net: Use disable_irq_nosync() in 8139too
+Subject: [PATCH 029/267] drivers/net: Use disable_irq_nosync() in 8139too
Use disable_irq_nosync() instead of disable_irq() as this might be
called in atomic context with netpoll.
diff --git a/patches/0030-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch b/patches/0030-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch
index cea586b..d4acdcc 100644
--- a/patches/0030-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch
+++ b/patches/0030-drivers-net-ehea-Make-rx-irq-handler-non-threaded-IR.patch
@@ -1,7 +1,7 @@
From e6535d525046fb8f73575ec9641c213ebefe16c7 Mon Sep 17 00:00:00 2001
From: Darren Hart <dvhltc@us.ibm.com>
Date: Tue, 18 May 2010 14:33:07 -0700
-Subject: [PATCH 030/256] drivers: net: ehea: Make rx irq handler non-threaded
+Subject: [PATCH 030/267] drivers: net: ehea: Make rx irq handler non-threaded
(IRQF_NO_THREAD)
The underlying hardware is edge triggered but presented by XICS as level
diff --git a/patches/0031-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch b/patches/0031-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch
index c275732..80b540f 100644
--- a/patches/0031-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch
+++ b/patches/0031-drivers-net-at91_ether-Make-mdio-protection-rt-safe.patch
@@ -1,7 +1,7 @@
From e8586bc580f0516100fe73e3e838fd746d491f75 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 17 Nov 2009 12:02:43 +0100
-Subject: [PATCH 031/256] drivers: net: at91_ether: Make mdio protection -rt
+Subject: [PATCH 031/267] drivers: net: at91_ether: Make mdio protection -rt
safe
Neither the phy interrupt nor the timer callback which updates the
diff --git a/patches/0032-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch b/patches/0032-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch
index e373d7c..5b37622 100644
--- a/patches/0032-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch
+++ b/patches/0032-mm-Prepare-decoupling-the-page-fault-disabling-logic.patch
@@ -1,7 +1,7 @@
From d3010bc0bc13e844bc58c96da28f481604988e28 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:37 -0500
-Subject: [PATCH 032/256] mm: Prepare decoupling the page fault disabling
+Subject: [PATCH 032/267] mm: Prepare decoupling the page fault disabling
logic
Add a pagefault_disabled variable to task_struct to allow decoupling
diff --git a/patches/0033-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch b/patches/0033-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch
index 272798d..110c450 100644
--- a/patches/0033-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch
+++ b/patches/0033-mm-Fixup-all-fault-handlers-to-check-current-pagefau.patch
@@ -1,7 +1,7 @@
From 778005b19875f30c628c68ebc54229ca06619fcd Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 17 Mar 2011 11:32:28 +0100
-Subject: [PATCH 033/256] mm: Fixup all fault handlers to check
+Subject: [PATCH 033/267] mm: Fixup all fault handlers to check
current->pagefault_disable
Necessary for decoupling pagefault disable from preempt count.
diff --git a/patches/0034-mm-pagefault_disabled.patch b/patches/0034-mm-pagefault_disabled.patch
index b52f546..4e9b416 100644
--- a/patches/0034-mm-pagefault_disabled.patch
+++ b/patches/0034-mm-pagefault_disabled.patch
@@ -1,7 +1,7 @@
From 18f00091ed648f77ace207462cf93d1c86de0194 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Thu, 11 Aug 2011 15:31:31 +0200
-Subject: [PATCH 034/256] mm: pagefault_disabled()
+Subject: [PATCH 034/267] mm: pagefault_disabled()
Wrap the test for pagefault_disabled() into a helper, this allows us
to remove the need for current->pagefault_disabled on !-rt kernels.
diff --git a/patches/0035-mm-raw_pagefault_disable.patch b/patches/0035-mm-raw_pagefault_disable.patch
index b68776c..227c389 100644
--- a/patches/0035-mm-raw_pagefault_disable.patch
+++ b/patches/0035-mm-raw_pagefault_disable.patch
@@ -1,7 +1,7 @@
From 024afe6afcd8a2c40595b12375d3573d4bf2119b Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 5 Aug 2011 17:16:58 +0200
-Subject: [PATCH 035/256] mm: raw_pagefault_disable
+Subject: [PATCH 035/267] mm: raw_pagefault_disable
Adding migrate_disable() to pagefault_disable() to preserve the
per-cpu thing for kmap_atomic might not have been the best of choices.
diff --git a/patches/0036-filemap-fix-up.patch.patch b/patches/0036-filemap-fix-up.patch.patch
index 0f8d496..660b15e 100644
--- a/patches/0036-filemap-fix-up.patch.patch
+++ b/patches/0036-filemap-fix-up.patch.patch
@@ -1,7 +1,7 @@
From aa2098c961cc12184d7df1e87ff12c6020d5f785 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 18:56:24 +0200
-Subject: [PATCH 036/256] filemap-fix-up.patch
+Subject: [PATCH 036/267] filemap-fix-up.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Wrecked-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
diff --git a/patches/0037-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch b/patches/0037-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch
index c27e1c7..2fe80d7 100644
--- a/patches/0037-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch
+++ b/patches/0037-mm-Remove-preempt-count-from-pagefault-disable-enabl.patch
@@ -1,7 +1,7 @@
From 8f56a24ee5c838e77eca3bafae7c3219123f6375 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 25 Jul 2009 22:06:27 +0200
-Subject: [PATCH 037/256] mm: Remove preempt count from pagefault
+Subject: [PATCH 037/267] mm: Remove preempt count from pagefault
disable/enable
Now that all users are cleaned up, we can remove the preemption count.
diff --git a/patches/0038-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch b/patches/0038-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch
index c781814..35ac014 100644
--- a/patches/0038-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch
+++ b/patches/0038-x86-highmem-Replace-BUG_ON-by-WARN_ON.patch
@@ -1,7 +1,7 @@
From b3dedd0614e195732983bfef6b77c20c13629bee Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:25 -0500
-Subject: [PATCH 038/256] x86: highmem: Replace BUG_ON by WARN_ON
+Subject: [PATCH 038/267] x86: highmem: Replace BUG_ON by WARN_ON
The machine might survive that problem and be at least in a state
which allows us to get more information about the problem.
diff --git a/patches/0039-suspend-Prevent-might-sleep-splats.patch b/patches/0039-suspend-Prevent-might-sleep-splats.patch
index 317af48..a97bba9 100644
--- a/patches/0039-suspend-Prevent-might-sleep-splats.patch
+++ b/patches/0039-suspend-Prevent-might-sleep-splats.patch
@@ -1,7 +1,7 @@
From 64a6f8ab2972b1cd7aba1d703437b8fe70063303 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 15 Jul 2010 10:29:00 +0200
-Subject: [PATCH 039/256] suspend: Prevent might sleep splats
+Subject: [PATCH 039/267] suspend: Prevent might sleep splats
timekeeping suspend/resume calls read_persistant_clock() which takes
rtc_lock. That results in might sleep warnings because at that point
diff --git a/patches/0040-OF-Fixup-resursive-locking-code-paths.patch b/patches/0040-OF-Fixup-resursive-locking-code-paths.patch
index fbf5755..cbe90c9 100644
--- a/patches/0040-OF-Fixup-resursive-locking-code-paths.patch
+++ b/patches/0040-OF-Fixup-resursive-locking-code-paths.patch
@@ -1,7 +1,7 @@
From 981491fea2c93f05bf8fd0548c5b85f587f22ef7 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 13 Aug 2009 09:04:10 +0200
-Subject: [PATCH 040/256] OF: Fixup resursive locking code paths
+Subject: [PATCH 040/267] OF: Fixup resursive locking code paths
There is no real reason to use a rwlock for devtree_lock. It even
could be a mutex, but unfortunately it's locked from cpu hotplug
diff --git a/patches/0041-of-convert-devtree-lock.patch.patch b/patches/0041-of-convert-devtree-lock.patch.patch
index 2e16344..2a63d1e 100644
--- a/patches/0041-of-convert-devtree-lock.patch.patch
+++ b/patches/0041-of-convert-devtree-lock.patch.patch
@@ -1,7 +1,7 @@
From a42b5d896edfab5e9608b3c64d711a6ffddde966 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 21 Mar 2011 14:35:34 +0100
-Subject: [PATCH 041/256] of-convert-devtree-lock.patch
+Subject: [PATCH 041/267] of-convert-devtree-lock.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0042-list-add-list-last-entry.patch.patch b/patches/0042-list-add-list-last-entry.patch.patch
index 2c5f264..9f19690 100644
--- a/patches/0042-list-add-list-last-entry.patch.patch
+++ b/patches/0042-list-add-list-last-entry.patch.patch
@@ -1,7 +1,7 @@
From 94ad3dcec7e5a27500e28453ff4e56f36d0b7f59 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Tue, 21 Jun 2011 11:22:36 +0200
-Subject: [PATCH 042/256] list-add-list-last-entry.patch
+Subject: [PATCH 042/267] list-add-list-last-entry.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0043-mm-page-alloc-use-list-last-entry.patch.patch b/patches/0043-mm-page-alloc-use-list-last-entry.patch.patch
index cdcf75b..d2e6a17 100644
--- a/patches/0043-mm-page-alloc-use-list-last-entry.patch.patch
+++ b/patches/0043-mm-page-alloc-use-list-last-entry.patch.patch
@@ -1,7 +1,7 @@
From feb16311a9c91515ef2b12f9d98c93df62a01c65 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Tue, 21 Jun 2011 11:24:35 +0200
-Subject: [PATCH 043/256] mm-page-alloc-use-list-last-entry.patch
+Subject: [PATCH 043/267] mm-page-alloc-use-list-last-entry.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0044-mm-slab-move-debug-out.patch.patch b/patches/0044-mm-slab-move-debug-out.patch.patch
index 586efa2..de1146e 100644
--- a/patches/0044-mm-slab-move-debug-out.patch.patch
+++ b/patches/0044-mm-slab-move-debug-out.patch.patch
@@ -1,7 +1,7 @@
From 9fb211972c1f2b363434b729fbea6e2d0c6958da Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 20 Jun 2011 10:42:04 +0200
-Subject: [PATCH 044/256] mm-slab-move-debug-out.patch
+Subject: [PATCH 044/267] mm-slab-move-debug-out.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0045-rwsem-inlcude-fix.patch.patch b/patches/0045-rwsem-inlcude-fix.patch.patch
index 14d1446..0a13771 100644
--- a/patches/0045-rwsem-inlcude-fix.patch.patch
+++ b/patches/0045-rwsem-inlcude-fix.patch.patch
@@ -1,7 +1,7 @@
From 712a03975ed20d20f189565f9a307949f62c762b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 15 Jul 2011 21:24:27 +0200
-Subject: [PATCH 045/256] rwsem-inlcude-fix.patch
+Subject: [PATCH 045/267] rwsem-inlcude-fix.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0046-sysctl-include-fix.patch.patch b/patches/0046-sysctl-include-fix.patch.patch
index cd8a46d..dc6d415 100644
--- a/patches/0046-sysctl-include-fix.patch.patch
+++ b/patches/0046-sysctl-include-fix.patch.patch
@@ -1,7 +1,7 @@
From a8e516eff1ffd16b863d136964f1b0537d6037b1 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 14 Nov 2011 10:52:34 +0100
-Subject: [PATCH 046/256] sysctl-include-fix.patch
+Subject: [PATCH 046/267] sysctl-include-fix.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0047-net-flip-lock-dep-thingy.patch.patch b/patches/0047-net-flip-lock-dep-thingy.patch.patch
index 891e64b..4e968a0 100644
--- a/patches/0047-net-flip-lock-dep-thingy.patch.patch
+++ b/patches/0047-net-flip-lock-dep-thingy.patch.patch
@@ -1,7 +1,7 @@
From edb592814fb3b5dde0b37237e9a4f1e209228597 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 28 Jun 2011 10:59:58 +0200
-Subject: [PATCH 047/256] net-flip-lock-dep-thingy.patch
+Subject: [PATCH 047/267] net-flip-lock-dep-thingy.patch
=======================================================
[ INFO: possible circular locking dependency detected ]
diff --git a/patches/0048-softirq-thread-do-softirq.patch.patch b/patches/0048-softirq-thread-do-softirq.patch.patch
index a9d0a58..8e7da9d 100644
--- a/patches/0048-softirq-thread-do-softirq.patch.patch
+++ b/patches/0048-softirq-thread-do-softirq.patch.patch
@@ -1,7 +1,7 @@
From 5f6e092d66f44cd34d42dfe5bebaa8599c1b8337 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 28 Jun 2011 15:44:15 +0200
-Subject: [PATCH 048/256] softirq-thread-do-softirq.patch
+Subject: [PATCH 048/267] softirq-thread-do-softirq.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0049-softirq-split-out-code.patch.patch b/patches/0049-softirq-split-out-code.patch.patch
index d5548b6..5d158a1 100644
--- a/patches/0049-softirq-split-out-code.patch.patch
+++ b/patches/0049-softirq-split-out-code.patch.patch
@@ -1,7 +1,7 @@
From 3721a6f40ccd5334d85fc368b28927ba01a2546e Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 28 Jun 2011 15:46:49 +0200
-Subject: [PATCH 049/256] softirq-split-out-code.patch
+Subject: [PATCH 049/267] softirq-split-out-code.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0050-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch b/patches/0050-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch
index 3aac55b..772fb7b 100644
--- a/patches/0050-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch
+++ b/patches/0050-x86-Do-not-unmask-io_apic-when-interrupt-is-in-progr.patch
@@ -1,7 +1,7 @@
From 1072a59271876515f215b3a6d83cd709f13c29ab Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:27 -0500
-Subject: [PATCH 050/256] x86: Do not unmask io_apic when interrupt is in
+Subject: [PATCH 050/267] x86: Do not unmask io_apic when interrupt is in
progress
With threaded interrupts we might see an interrupt in progress on
diff --git a/patches/0051-x86-Do-not-disable-preemption-in-int3-on-32bit.patch b/patches/0051-x86-Do-not-disable-preemption-in-int3-on-32bit.patch
index 33185f4..3d7b262 100644
--- a/patches/0051-x86-Do-not-disable-preemption-in-int3-on-32bit.patch
+++ b/patches/0051-x86-Do-not-disable-preemption-in-int3-on-32bit.patch
@@ -1,7 +1,7 @@
From 66eecab296c168e350a2f94e157a443b6243e63e Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 7 Jun 2012 07:46:49 -0400
-Subject: [PATCH 051/256] x86: Do not disable preemption in int3 on 32bit
+Subject: [PATCH 051/267] x86: Do not disable preemption in int3 on 32bit
Preemption must be disabled before enabling interrupts in do_trap
on x86_64 because the stack in use for int3 and debug is a per CPU
diff --git a/patches/0052-locking-various-init-fixes.patch.patch b/patches/0052-locking-various-init-fixes.patch.patch
index 8553077..93c1311 100644
--- a/patches/0052-locking-various-init-fixes.patch.patch
+++ b/patches/0052-locking-various-init-fixes.patch.patch
@@ -1,7 +1,7 @@
From 7532d53febc3ff8b396d8c78a76c52ce99461b19 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:25:03 +0200
-Subject: [PATCH 052/256] locking-various-init-fixes.patch
+Subject: [PATCH 052/267] locking-various-init-fixes.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0053-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch b/patches/0053-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch
index 5bb41f7..02d14ee 100644
--- a/patches/0053-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch
+++ b/patches/0053-pci-Use-__wake_up_all_locked-pci_unblock_user_cfg_ac.patch
@@ -1,7 +1,7 @@
From 89f36c4ed5519559922ececc6f47865510d5358d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Dec 2011 00:07:16 +0100
-Subject: [PATCH 053/256] pci: Use __wake_up_all_locked
+Subject: [PATCH 053/267] pci: Use __wake_up_all_locked
pci_unblock_user_cfg_access()
The waitqueue is protected by the pci_lock, so we can just avoid to
diff --git a/patches/0054-latency-hist.patch.patch b/patches/0054-latency-hist.patch.patch
index 3ced215..dbd8dd5 100644
--- a/patches/0054-latency-hist.patch.patch
+++ b/patches/0054-latency-hist.patch.patch
@@ -1,7 +1,7 @@
From 99509daf04c5a160ff9db1283595c58cd130ffd1 Mon Sep 17 00:00:00 2001
From: Carsten Emde <C.Emde@osadl.org>
Date: Tue, 19 Jul 2011 14:03:41 +0100
-Subject: [PATCH 054/256] latency-hist.patch
+Subject: [PATCH 054/267] latency-hist.patch
This patch provides a recording mechanism to store data of potential
sources of system latencies. The recordings separately determine the
diff --git a/patches/0055-hwlatdetect.patch.patch b/patches/0055-hwlatdetect.patch.patch
index 1d8e314..08c1413 100644
--- a/patches/0055-hwlatdetect.patch.patch
+++ b/patches/0055-hwlatdetect.patch.patch
@@ -1,7 +1,7 @@
From 994f3a6efaab1873be49220e12dd8a4992fab8df Mon Sep 17 00:00:00 2001
From: Carsten Emde <C.Emde@osadl.org>
Date: Tue, 19 Jul 2011 13:53:12 +0100
-Subject: [PATCH 055/256] hwlatdetect.patch
+Subject: [PATCH 055/267] hwlatdetect.patch
Jon Masters developed this wonderful SMI detector. For details please
consult Documentation/hwlat_detector.txt. It could be ported to Linux
diff --git a/patches/0056-localversion.patch.patch b/patches/0056-localversion.patch.patch
index 971e795..29c6f34 100644
--- a/patches/0056-localversion.patch.patch
+++ b/patches/0056-localversion.patch.patch
@@ -1,7 +1,7 @@
From baf31d140dfceb0b856805d9b715efddc084054d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Jul 2011 20:25:16 +0200
-Subject: [PATCH 056/256] localversion.patch
+Subject: [PATCH 056/267] localversion.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
diff --git a/patches/0057-early-printk-consolidate.patch.patch b/patches/0057-early-printk-consolidate.patch.patch
index ab0e0c0..848ee26 100644
--- a/patches/0057-early-printk-consolidate.patch.patch
+++ b/patches/0057-early-printk-consolidate.patch.patch
@@ -1,7 +1,7 @@
From 5f55e0bba8030011d082892e2c5c789795450715 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 23 Jul 2011 11:04:08 +0200
-Subject: [PATCH 057/256] early-printk-consolidate.patch
+Subject: [PATCH 057/267] early-printk-consolidate.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0058-printk-kill.patch.patch b/patches/0058-printk-kill.patch.patch
index d630ecc..5dc5388 100644
--- a/patches/0058-printk-kill.patch.patch
+++ b/patches/0058-printk-kill.patch.patch
@@ -1,7 +1,7 @@
From 88a4cc8d3aa5b6010db77faa48003759d22d64d8 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 22 Jul 2011 17:58:40 +0200
-Subject: [PATCH 058/256] printk-kill.patch
+Subject: [PATCH 058/267] printk-kill.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0059-printk-force_early_printk-boot-param-to-help-with-de.patch b/patches/0059-printk-force_early_printk-boot-param-to-help-with-de.patch
index 09ff8ac..02d9046 100644
--- a/patches/0059-printk-force_early_printk-boot-param-to-help-with-de.patch
+++ b/patches/0059-printk-force_early_printk-boot-param-to-help-with-de.patch
@@ -1,7 +1,7 @@
From a68766e166c72cd6c07a4a2cb2cbbaba2a18a220 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 2 Sep 2011 14:29:33 +0200
-Subject: [PATCH 059/256] printk: 'force_early_printk' boot param to help with
+Subject: [PATCH 059/267] printk: 'force_early_printk' boot param to help with
debugging
Gives me an option to screw printk and actually see what the machine
diff --git a/patches/0060-rt-preempt-base-config.patch.patch b/patches/0060-rt-preempt-base-config.patch.patch
index 6afd30e..7a39410 100644
--- a/patches/0060-rt-preempt-base-config.patch.patch
+++ b/patches/0060-rt-preempt-base-config.patch.patch
@@ -1,7 +1,7 @@
From affafa484e6797dab272f3bc2d8b4f68da70e050 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 12:39:57 +0200
-Subject: [PATCH 060/256] rt-preempt-base-config.patch
+Subject: [PATCH 060/267] rt-preempt-base-config.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0061-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch b/patches/0061-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
index d5b97af..7e8f7bb 100644
--- a/patches/0061-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
+++ b/patches/0061-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch
@@ -1,7 +1,7 @@
From e3f58ac8f56b9d85886a6feadf63b46e91200290 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 061/256] bug: BUG_ON/WARN_ON variants dependend on RT/!RT
+Subject: [PATCH 061/267] bug: BUG_ON/WARN_ON variants dependend on RT/!RT
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/patches/0062-rt-local_irq_-variants-depending-on-RT-RT.patch b/patches/0062-rt-local_irq_-variants-depending-on-RT-RT.patch
index 74afa95..97a4fba 100644
--- a/patches/0062-rt-local_irq_-variants-depending-on-RT-RT.patch
+++ b/patches/0062-rt-local_irq_-variants-depending-on-RT-RT.patch
@@ -1,7 +1,7 @@
From cdee38a4db2ab8e78e70a2e7fab7a381e9a1c19b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 21 Jul 2009 22:34:14 +0200
-Subject: [PATCH 062/256] rt: local_irq_* variants depending on RT/!RT
+Subject: [PATCH 062/267] rt: local_irq_* variants depending on RT/!RT
Add local_irq_*_(no)rt variant which are mainly used to break
interrupt disabled sections on PREEMPT_RT or to explicitely disable
diff --git a/patches/0063-preempt-Provide-preempt_-_-no-rt-variants.patch b/patches/0063-preempt-Provide-preempt_-_-no-rt-variants.patch
index e2173f6..87cfbab 100644
--- a/patches/0063-preempt-Provide-preempt_-_-no-rt-variants.patch
+++ b/patches/0063-preempt-Provide-preempt_-_-no-rt-variants.patch
@@ -1,7 +1,7 @@
From 80a25976f8e91af5f742c4cb2603fc67615da181 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jul 2009 12:38:56 +0200
-Subject: [PATCH 063/256] preempt: Provide preempt_*_(no)rt variants
+Subject: [PATCH 063/267] preempt: Provide preempt_*_(no)rt variants
RT needs a few preempt_disable/enable points which are not necessary
otherwise. Implement variants to avoid #ifdeffery.
diff --git a/patches/0064-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch b/patches/0064-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
index db75bd5..b422b32 100644
--- a/patches/0064-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
+++ b/patches/0064-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch
@@ -1,7 +1,7 @@
From 8924ef79ece1396ff4aef7027ac8fdf279349515 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <srostedt@redhat.com>
Date: Fri, 3 Jul 2009 08:44:29 -0500
-Subject: [PATCH 064/256] ata: Do not disable interrupts in ide code for
+Subject: [PATCH 064/267] ata: Do not disable interrupts in ide code for
preempt-rt
Use the local_irq_*_nort variants.
diff --git a/patches/0065-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch b/patches/0065-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
index 42edc84..5e6b64c 100644
--- a/patches/0065-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
+++ b/patches/0065-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch
@@ -1,7 +1,7 @@
From 7bd701e724b6ac30489d769e303c3becfbfbfcfc Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 065/256] ide: Do not disable interrupts for PREEMPT-RT
+Subject: [PATCH 065/267] ide: Do not disable interrupts for PREEMPT-RT
Use the local_irq_*_nort variants.
diff --git a/patches/0066-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch b/patches/0066-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
index b24c811..5d955d9 100644
--- a/patches/0066-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
+++ b/patches/0066-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch
@@ -1,7 +1,7 @@
From bcd7012f3bfabeb95de135946520f8f240f11778 Mon Sep 17 00:00:00 2001
From: Sven-Thorsten Dietrich <sdietrich@novell.com>
Date: Fri, 3 Jul 2009 08:30:35 -0500
-Subject: [PATCH 066/256] infiniband: Mellanox IB driver patch use _nort()
+Subject: [PATCH 066/267] infiniband: Mellanox IB driver patch use _nort()
primitives
Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT
diff --git a/patches/0067-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch b/patches/0067-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
index d9ed540..1fd266c 100644
--- a/patches/0067-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
+++ b/patches/0067-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch
@@ -1,7 +1,7 @@
From 9c42db1c94f200b115c6ea592ec7567706e43098 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:16 -0500
-Subject: [PATCH 067/256] input: gameport: Do not disable interrupts on
+Subject: [PATCH 067/267] input: gameport: Do not disable interrupts on
PREEMPT_RT
Use the _nort() primitives.
diff --git a/patches/0068-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch b/patches/0068-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch
index e35fd34..b08c4c0 100644
--- a/patches/0068-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch
+++ b/patches/0068-acpi-Do-not-disable-interrupts-on-PREEMPT_RT.patch
@@ -1,7 +1,7 @@
From 8f93e949d590fddc2be4a3cb7c55ed382d6a55a3 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 21 Jul 2009 22:54:51 +0200
-Subject: [PATCH 068/256] acpi: Do not disable interrupts on PREEMPT_RT
+Subject: [PATCH 068/267] acpi: Do not disable interrupts on PREEMPT_RT
Use the local_irq_*_nort() variants.
diff --git a/patches/0069-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch b/patches/0069-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
index f351399..2ddd167 100644
--- a/patches/0069-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
+++ b/patches/0069-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch
@@ -1,7 +1,7 @@
From eb024515bfe2198996d05662a0aa4665dd0f2e04 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 21 Jul 2009 23:06:05 +0200
-Subject: [PATCH 069/256] core: Do not disable interrupts on RT in
+Subject: [PATCH 069/267] core: Do not disable interrupts on RT in
kernel/users.c
Use the local_irq_*_nort variants to reduce latencies in RT. The code
diff --git a/patches/0070-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch b/patches/0070-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch
index f7ad40f..78ba3e8 100644
--- a/patches/0070-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch
+++ b/patches/0070-core-Do-not-disable-interrupts-on-RT-in-res_counter..patch
@@ -1,7 +1,7 @@
From deb750df13d81367349e2878a3a2d445f1b7bb01 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:44:33 -0500
-Subject: [PATCH 070/256] core: Do not disable interrupts on RT in
+Subject: [PATCH 070/267] core: Do not disable interrupts on RT in
res_counter.c
Frederic Weisbecker reported this warning:
diff --git a/patches/0071-usb-Use-local_irq_-_nort-variants.patch b/patches/0071-usb-Use-local_irq_-_nort-variants.patch
index 27c7014..f82b7ea 100644
--- a/patches/0071-usb-Use-local_irq_-_nort-variants.patch
+++ b/patches/0071-usb-Use-local_irq_-_nort-variants.patch
@@ -1,7 +1,7 @@
From 258bb522623fb90bc43937fbea8306b2dfeda2f5 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <srostedt@redhat.com>
Date: Fri, 3 Jul 2009 08:44:26 -0500
-Subject: [PATCH 071/256] usb: Use local_irq_*_nort() variants
+Subject: [PATCH 071/267] usb: Use local_irq_*_nort() variants
[ tglx: Now that irqf_disabled is dead we should kill that ]
diff --git a/patches/0072-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch b/patches/0072-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch
index c06e03b..6003739 100644
--- a/patches/0072-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch
+++ b/patches/0072-tty-Do-not-disable-interrupts-in-put_ldisc-on-rt.patch
@@ -1,7 +1,7 @@
From 1768c2fabf9448f25e3df60802631669b34b31af Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 17 Aug 2009 19:49:19 +0200
-Subject: [PATCH 072/256] tty: Do not disable interrupts in put_ldisc on -rt
+Subject: [PATCH 072/267] tty: Do not disable interrupts in put_ldisc on -rt
Fixes the following on PREEMPT_RT:
diff --git a/patches/0073-mm-scatterlist-dont-disable-irqs-on-RT.patch b/patches/0073-mm-scatterlist-dont-disable-irqs-on-RT.patch
index c4ea7e8..67715db 100644
--- a/patches/0073-mm-scatterlist-dont-disable-irqs-on-RT.patch
+++ b/patches/0073-mm-scatterlist-dont-disable-irqs-on-RT.patch
@@ -1,7 +1,7 @@
From 10363e4d2e1b02b302153afcf3d80b2cbe953efa Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:34 -0500
-Subject: [PATCH 073/256] mm: scatterlist dont disable irqs on RT
+Subject: [PATCH 073/267] mm: scatterlist dont disable irqs on RT
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0074-signal-fix-up-rcu-wreckage.patch.patch b/patches/0074-signal-fix-up-rcu-wreckage.patch.patch
index 940b7cb..069f048 100644
--- a/patches/0074-signal-fix-up-rcu-wreckage.patch.patch
+++ b/patches/0074-signal-fix-up-rcu-wreckage.patch.patch
@@ -1,7 +1,7 @@
From dd353e8519898078c6fdb5df18362b69f3f88bfe Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 22 Jul 2011 08:07:08 +0200
-Subject: [PATCH 074/256] signal-fix-up-rcu-wreckage.patch
+Subject: [PATCH 074/267] signal-fix-up-rcu-wreckage.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0075-net-wireless-warn-nort.patch.patch b/patches/0075-net-wireless-warn-nort.patch.patch
index 502dbf3..d9e5a65 100644
--- a/patches/0075-net-wireless-warn-nort.patch.patch
+++ b/patches/0075-net-wireless-warn-nort.patch.patch
@@ -1,7 +1,7 @@
From 7b41e15ee57890d7282e1fb04c296ae546068502 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jul 2011 21:05:33 +0200
-Subject: [PATCH 075/256] net-wireless-warn-nort.patch
+Subject: [PATCH 075/267] net-wireless-warn-nort.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0076-mm-Replace-cgroup_page-bit-spinlock.patch b/patches/0076-mm-Replace-cgroup_page-bit-spinlock.patch
index 072fad4..9c2a88b 100644
--- a/patches/0076-mm-Replace-cgroup_page-bit-spinlock.patch
+++ b/patches/0076-mm-Replace-cgroup_page-bit-spinlock.patch
@@ -1,7 +1,7 @@
From 12aee8794ad4dc4aa3132329f9b57d2248c4def9 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 19 Aug 2009 09:56:42 +0200
-Subject: [PATCH 076/256] mm: Replace cgroup_page bit spinlock
+Subject: [PATCH 076/267] mm: Replace cgroup_page bit spinlock
Bit spinlocks are not working on RT. Replace them.
diff --git a/patches/0077-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/patches/0077-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
index 48c9378..6cc8fc3 100644
--- a/patches/0077-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
+++ b/patches/0077-buffer_head-Replace-bh_uptodate_lock-for-rt.patch
@@ -1,7 +1,7 @@
From 050653e6f4bca360d267b8e6cfbc85184bcc89bf Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 09:18:52 +0100
-Subject: [PATCH 077/256] buffer_head: Replace bh_uptodate_lock for -rt
+Subject: [PATCH 077/267] buffer_head: Replace bh_uptodate_lock for -rt
Wrap the bit_spin_lock calls into a separate inline and add the RT
replacements with a real spinlock.
diff --git a/patches/0078-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/patches/0078-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
index 5a0e430..4835fa5 100644
--- a/patches/0078-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
+++ b/patches/0078-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch
@@ -1,7 +1,7 @@
From 2e64cea6269df0581e5f38a53232c0d1b495b6b8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 10:11:25 +0100
-Subject: [PATCH 078/256] fs: jbd/jbd2: Make state lock and journal head lock
+Subject: [PATCH 078/267] fs: jbd/jbd2: Make state lock and journal head lock
rt safe
bit_spin_locks break under RT.
diff --git a/patches/0079-genirq-Disable-DEBUG_SHIRQ-for-rt.patch b/patches/0079-genirq-Disable-DEBUG_SHIRQ-for-rt.patch
index 1a87a30..7995ef4 100644
--- a/patches/0079-genirq-Disable-DEBUG_SHIRQ-for-rt.patch
+++ b/patches/0079-genirq-Disable-DEBUG_SHIRQ-for-rt.patch
@@ -1,7 +1,7 @@
From caa14a79da63821e3ba4076f7c83c41c5873eefc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 18 Mar 2011 10:22:04 +0100
-Subject: [PATCH 079/256] genirq: Disable DEBUG_SHIRQ for rt
+Subject: [PATCH 079/267] genirq: Disable DEBUG_SHIRQ for rt
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0080-genirq-Disable-random-call-on-preempt-rt.patch b/patches/0080-genirq-Disable-random-call-on-preempt-rt.patch
index 22f1750..53845e6 100644
--- a/patches/0080-genirq-Disable-random-call-on-preempt-rt.patch
+++ b/patches/0080-genirq-Disable-random-call-on-preempt-rt.patch
@@ -1,7 +1,7 @@
From 6f4dcb0881ab4b7ed02d1a1f4b6936243821c950 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 21 Jul 2009 16:07:37 +0200
-Subject: [PATCH 080/256] genirq: Disable random call on preempt-rt
+Subject: [PATCH 080/267] genirq: Disable random call on preempt-rt
The random call introduces high latencies and is almost
unused. Disable it for -rt.
diff --git a/patches/0081-genirq-disable-irqpoll-on-rt.patch b/patches/0081-genirq-disable-irqpoll-on-rt.patch
index a2c4044..06b6c6f 100644
--- a/patches/0081-genirq-disable-irqpoll-on-rt.patch
+++ b/patches/0081-genirq-disable-irqpoll-on-rt.patch
@@ -1,7 +1,7 @@
From 21ae6fbad1ee6a562b0b8dd536f6915614e79c5b Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:57 -0500
-Subject: [PATCH 081/256] genirq: disable irqpoll on -rt
+Subject: [PATCH 081/267] genirq: disable irqpoll on -rt
Creates long latencies for no value
diff --git a/patches/0082-genirq-force-threading.patch.patch b/patches/0082-genirq-force-threading.patch.patch
index 0d5dbc7..a13d791 100644
--- a/patches/0082-genirq-force-threading.patch.patch
+++ b/patches/0082-genirq-force-threading.patch.patch
@@ -1,7 +1,7 @@
From 314b6e5ffef017ed2493a828cf32f886cb61e850 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 3 Apr 2011 11:57:29 +0200
-Subject: [PATCH 082/256] genirq-force-threading.patch
+Subject: [PATCH 082/267] genirq-force-threading.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0083-drivers-net-fix-livelock-issues.patch b/patches/0083-drivers-net-fix-livelock-issues.patch
index 354e473..41ab68f 100644
--- a/patches/0083-drivers-net-fix-livelock-issues.patch
+++ b/patches/0083-drivers-net-fix-livelock-issues.patch
@@ -1,7 +1,7 @@
From 56d31d400f86dff026047ae500f2d63684b5fb34 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 20 Jun 2009 11:36:54 +0200
-Subject: [PATCH 083/256] drivers/net: fix livelock issues
+Subject: [PATCH 083/267] drivers/net: fix livelock issues
Preempt-RT runs into a live lock issue with the NETDEV_TX_LOCKED micro
optimization. The reason is that the softirq thread is rescheduling
diff --git a/patches/0084-drivers-net-vortex-fix-locking-issues.patch b/patches/0084-drivers-net-vortex-fix-locking-issues.patch
index 6e7f35a..31a3fa6 100644
--- a/patches/0084-drivers-net-vortex-fix-locking-issues.patch
+++ b/patches/0084-drivers-net-vortex-fix-locking-issues.patch
@@ -1,7 +1,7 @@
From 235883690f6e8ec9f7b95aa9d14e4131ad511090 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 084/256] drivers/net: vortex fix locking issues
+Subject: [PATCH 084/267] drivers/net: vortex fix locking issues
Argh, cut and paste wasn't enough...
diff --git a/patches/0085-drivers-net-gianfar-Make-RT-aware.patch b/patches/0085-drivers-net-gianfar-Make-RT-aware.patch
index 95e3005..5a8ba09 100644
--- a/patches/0085-drivers-net-gianfar-Make-RT-aware.patch
+++ b/patches/0085-drivers-net-gianfar-Make-RT-aware.patch
@@ -1,7 +1,7 @@
From ac9c32dccd74d3c6344a4d857e3b0fa028df7249 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 1 Apr 2010 20:20:57 +0200
-Subject: [PATCH 085/256] drivers: net: gianfar: Make RT aware
+Subject: [PATCH 085/267] drivers: net: gianfar: Make RT aware
The adjust_link() disables interrupts before taking the queue
locks. On RT those locks are converted to "sleeping" locks and
diff --git a/patches/0086-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch b/patches/0086-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch
index 9511257..a109827 100644
--- a/patches/0086-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch
+++ b/patches/0086-USB-Fix-the-mouse-problem-when-copying-large-amounts.patch
@@ -1,7 +1,7 @@
From 61d7b08ff3cd6e280a253731dd2c96053fb8f180 Mon Sep 17 00:00:00 2001
From: Wu Zhangjin <wuzj@lemote.com>
Date: Mon, 4 Jan 2010 11:33:02 +0800
-Subject: [PATCH 086/256] USB: Fix the mouse problem when copying large
+Subject: [PATCH 086/267] USB: Fix the mouse problem when copying large
amounts of data
When copying large amounts of data between the USB storage devices and
diff --git a/patches/0087-local-var.patch.patch b/patches/0087-local-var.patch.patch
index 1afc5ec..382e439 100644
--- a/patches/0087-local-var.patch.patch
+++ b/patches/0087-local-var.patch.patch
@@ -1,7 +1,7 @@
From 837bb14712ddecfcbb5f97570c5f1fac911f487c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jun 2011 18:40:37 +0200
-Subject: [PATCH 087/256] local-var.patch
+Subject: [PATCH 087/267] local-var.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0088-rt-local-irq-lock.patch.patch b/patches/0088-rt-local-irq-lock.patch.patch
index 94665b7..7d8081e 100644
--- a/patches/0088-rt-local-irq-lock.patch.patch
+++ b/patches/0088-rt-local-irq-lock.patch.patch
@@ -1,7 +1,7 @@
From 892c3a442dd0abcd683c165f7b2fe3a1b0918bc4 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 20 Jun 2011 09:03:47 +0200
-Subject: [PATCH 088/256] rt-local-irq-lock.patch
+Subject: [PATCH 088/267] rt-local-irq-lock.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0089-cpu-rt-variants.patch.patch b/patches/0089-cpu-rt-variants.patch.patch
index 5b5af21..0821442 100644
--- a/patches/0089-cpu-rt-variants.patch.patch
+++ b/patches/0089-cpu-rt-variants.patch.patch
@@ -1,7 +1,7 @@
From 8ef3bc01ced54510e190912494f202018fe31643 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 17 Jun 2011 15:42:38 +0200
-Subject: [PATCH 089/256] cpu-rt-variants.patch
+Subject: [PATCH 089/267] cpu-rt-variants.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0090-mm-slab-wrap-functions.patch.patch b/patches/0090-mm-slab-wrap-functions.patch.patch
index 52657fb..ec46488 100644
--- a/patches/0090-mm-slab-wrap-functions.patch.patch
+++ b/patches/0090-mm-slab-wrap-functions.patch.patch
@@ -1,7 +1,7 @@
From 001bf667d6da07247e9095511873be13551328a2 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 18 Jun 2011 19:44:43 +0200
-Subject: [PATCH 090/256] mm-slab-wrap-functions.patch
+Subject: [PATCH 090/267] mm-slab-wrap-functions.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0091-slab-Fix-__do_drain-to-use-the-right-array-cache.patch b/patches/0091-slab-Fix-__do_drain-to-use-the-right-array-cache.patch
index e9dad16..b9a9329 100644
--- a/patches/0091-slab-Fix-__do_drain-to-use-the-right-array-cache.patch
+++ b/patches/0091-slab-Fix-__do_drain-to-use-the-right-array-cache.patch
@@ -1,7 +1,7 @@
From 0cf4a0f832a996e67a51ea51c9ae73ddcf60b76d Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Tue, 11 Oct 2011 23:56:23 -0400
-Subject: [PATCH 091/256] slab: Fix __do_drain to use the right array cache
+Subject: [PATCH 091/267] slab: Fix __do_drain to use the right array cache
The array cache in __do_drain() was using the cpu_cache_get() function
which uses smp_processor_id() to get the proper array. On mainline, this
diff --git a/patches/0092-mm-More-lock-breaks-in-slab.c.patch b/patches/0092-mm-More-lock-breaks-in-slab.c.patch
index a8cc722..e61aa99 100644
--- a/patches/0092-mm-More-lock-breaks-in-slab.c.patch
+++ b/patches/0092-mm-More-lock-breaks-in-slab.c.patch
@@ -1,7 +1,7 @@
From bddd60cbc825f7aefb1e62101b454d0410cb47c6 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 3 Jul 2009 08:44:43 -0500
-Subject: [PATCH 092/256] mm: More lock breaks in slab.c
+Subject: [PATCH 092/267] mm: More lock breaks in slab.c
Handle __free_pages outside of the locked regions. This reduces the
lock contention on the percpu slab locks in -rt significantly.
diff --git a/patches/0093-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/patches/0093-mm-page_alloc-rt-friendly-per-cpu-pages.patch
index f001e14..bfccd26 100644
--- a/patches/0093-mm-page_alloc-rt-friendly-per-cpu-pages.patch
+++ b/patches/0093-mm-page_alloc-rt-friendly-per-cpu-pages.patch
@@ -1,7 +1,7 @@
From a422a5e6bef77e77648b2847565f4f62898664cb Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:37 -0500
-Subject: [PATCH 093/256] mm: page_alloc: rt-friendly per-cpu pages
+Subject: [PATCH 093/267] mm: page_alloc: rt-friendly per-cpu pages
rt-friendly per-cpu pages: convert the irqs-off per-cpu locking
method into a preemptible, explicit-per-cpu-locks method.
diff --git a/patches/0094-mm-page_alloc-reduce-lock-sections-further.patch b/patches/0094-mm-page_alloc-reduce-lock-sections-further.patch
index e26ef19..c4da761 100644
--- a/patches/0094-mm-page_alloc-reduce-lock-sections-further.patch
+++ b/patches/0094-mm-page_alloc-reduce-lock-sections-further.patch
@@ -1,7 +1,7 @@
From 486036f250d0c976bdee08f7ed718aa80c2913c7 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 3 Jul 2009 08:44:37 -0500
-Subject: [PATCH 094/256] mm: page_alloc reduce lock sections further
+Subject: [PATCH 094/267] mm: page_alloc reduce lock sections further
Split out the pages which are to be freed into a separate list and
call free_pages_bulk() outside of the percpu page allocator locks.
diff --git a/patches/0095-mm-page-alloc-fix.patch.patch b/patches/0095-mm-page-alloc-fix.patch.patch
index 6b15694..9a44c70 100644
--- a/patches/0095-mm-page-alloc-fix.patch.patch
+++ b/patches/0095-mm-page-alloc-fix.patch.patch
@@ -1,7 +1,7 @@
From ca7cb6af82a59552dc519e7b1dde7084d6fa928c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jul 2011 16:47:49 +0200
-Subject: [PATCH 095/256] mm-page-alloc-fix.patch
+Subject: [PATCH 095/267] mm-page-alloc-fix.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0096-mm-convert-swap-to-percpu-locked.patch b/patches/0096-mm-convert-swap-to-percpu-locked.patch
index 4a5d049..f7ce26b 100644
--- a/patches/0096-mm-convert-swap-to-percpu-locked.patch
+++ b/patches/0096-mm-convert-swap-to-percpu-locked.patch
@@ -1,7 +1,7 @@
From bc50ce006d4e6a76038c1ac504a219c4a4fd3b09 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:51 -0500
-Subject: [PATCH 096/256] mm: convert swap to percpu locked
+Subject: [PATCH 096/267] mm: convert swap to percpu locked
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/patches/0097-mm-make-vmstat-rt-aware.patch b/patches/0097-mm-make-vmstat-rt-aware.patch
index 811d8bc..04d4f21 100644
--- a/patches/0097-mm-make-vmstat-rt-aware.patch
+++ b/patches/0097-mm-make-vmstat-rt-aware.patch
@@ -1,7 +1,7 @@
From f48741aeb7f4257bf0ab2f95e7468dcf293f4e65 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:13 -0500
-Subject: [PATCH 097/256] mm: make vmstat -rt aware
+Subject: [PATCH 097/267] mm: make vmstat -rt aware
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/patches/0098-mm-shrink-the-page-frame-to-rt-size.patch b/patches/0098-mm-shrink-the-page-frame-to-rt-size.patch
index bfb5e8f..4192bbf 100644
--- a/patches/0098-mm-shrink-the-page-frame-to-rt-size.patch
+++ b/patches/0098-mm-shrink-the-page-frame-to-rt-size.patch
@@ -1,7 +1,7 @@
From 897fe5d6334572eb8c79adf32823f0b602b53f27 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 3 Jul 2009 08:44:54 -0500
-Subject: [PATCH 098/256] mm: shrink the page frame to !-rt size
+Subject: [PATCH 098/267] mm: shrink the page frame to !-rt size
He below is a boot-tested hack to shrink the page frame size back to
normal.
diff --git a/patches/0099-ARM-Initialize-ptl-lock-for-vector-page.patch b/patches/0099-ARM-Initialize-ptl-lock-for-vector-page.patch
index f4d915b..baae5d3 100644
--- a/patches/0099-ARM-Initialize-ptl-lock-for-vector-page.patch
+++ b/patches/0099-ARM-Initialize-ptl-lock-for-vector-page.patch
@@ -1,7 +1,7 @@
From 9e6883b3845df25a28bbbba0dac73967166197d0 Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Sat, 1 Oct 2011 18:58:13 -0700
-Subject: [PATCH 099/256] ARM: Initialize ptl->lock for vector page
+Subject: [PATCH 099/267] ARM: Initialize ptl->lock for vector page
Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if
PREEMPT_RT_FULL=y because vectors_user_mapping() creates a
diff --git a/patches/0100-mm-Allow-only-slab-on-RT.patch b/patches/0100-mm-Allow-only-slab-on-RT.patch
index b82f459..1512e7f 100644
--- a/patches/0100-mm-Allow-only-slab-on-RT.patch
+++ b/patches/0100-mm-Allow-only-slab-on-RT.patch
@@ -1,7 +1,7 @@
From 401ea3678872166ee1015195db7fd631e9c56192 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:44:03 -0500
-Subject: [PATCH 100/256] mm: Allow only slab on RT
+Subject: [PATCH 100/267] mm: Allow only slab on RT
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/patches/0101-radix-tree-rt-aware.patch.patch b/patches/0101-radix-tree-rt-aware.patch.patch
index a59999d..e8a1e37 100644
--- a/patches/0101-radix-tree-rt-aware.patch.patch
+++ b/patches/0101-radix-tree-rt-aware.patch.patch
@@ -1,7 +1,7 @@
From bd3ec47b69cea1ae02ae7d50ac1090eabc6c2edb Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:33:18 +0200
-Subject: [PATCH 101/256] radix-tree-rt-aware.patch
+Subject: [PATCH 101/267] radix-tree-rt-aware.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0102-panic-disable-random-on-rt.patch b/patches/0102-panic-disable-random-on-rt.patch
index eb2ae9d..2e8324f 100644
--- a/patches/0102-panic-disable-random-on-rt.patch
+++ b/patches/0102-panic-disable-random-on-rt.patch
@@ -1,7 +1,7 @@
From e6884b5683aea73e316c560ce2c86b58905e25e0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 7 Jun 2012 07:46:55 -0400
-Subject: [PATCH 102/256] panic-disable-random-on-rt
+Subject: [PATCH 102/267] panic-disable-random-on-rt
---
kernel/panic.c | 2 ++
diff --git a/patches/0103-ipc-Make-the-ipc-code-rt-aware.patch b/patches/0103-ipc-Make-the-ipc-code-rt-aware.patch
index 1cc8331..43d8b60 100644
--- a/patches/0103-ipc-Make-the-ipc-code-rt-aware.patch
+++ b/patches/0103-ipc-Make-the-ipc-code-rt-aware.patch
@@ -1,7 +1,7 @@
From 739544c0eab09ad0faf0f47b7bd099e078a80a2e Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:12 -0500
-Subject: [PATCH 103/256] ipc: Make the ipc code -rt aware
+Subject: [PATCH 103/267] ipc: Make the ipc code -rt aware
RT serializes the code with the (rt)spinlock but keeps preemption
enabled. Some parts of the code need to be atomic nevertheless.
diff --git a/patches/0104-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch b/patches/0104-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch
index 6e18c6c..07eb503 100644
--- a/patches/0104-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch
+++ b/patches/0104-ipc-mqueue-Add-a-critical-section-to-avoid-a-deadloc.patch
@@ -1,7 +1,7 @@
From ef6628d7653c6738f606413c6e3d65877f16a130 Mon Sep 17 00:00:00 2001
From: KOBAYASHI Yoshitake <yoshitake.kobayashi@toshiba.co.jp>
Date: Sat, 23 Jul 2011 11:57:36 +0900
-Subject: [PATCH 104/256] ipc/mqueue: Add a critical section to avoid a
+Subject: [PATCH 104/267] ipc/mqueue: Add a critical section to avoid a
deadlock
(Repost for v3.0-rt1 and changed the distination addreses)
diff --git a/patches/0105-relay-fix-timer-madness.patch b/patches/0105-relay-fix-timer-madness.patch
index 79a71c2..3f309a1 100644
--- a/patches/0105-relay-fix-timer-madness.patch
+++ b/patches/0105-relay-fix-timer-madness.patch
@@ -1,7 +1,7 @@
From f1b9277c8523774819cd00dc1b0f2c401db94a88 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:44:07 -0500
-Subject: [PATCH 105/256] relay: fix timer madness
+Subject: [PATCH 105/267] relay: fix timer madness
remove timer calls (!!!) from deep within the tracing infrastructure.
This was totally bogus code that can cause lockups and worse. Poll
diff --git a/patches/0106-net-ipv4-route-use-locks-on-up-rt.patch.patch b/patches/0106-net-ipv4-route-use-locks-on-up-rt.patch.patch
index e787b1b..251799b 100644
--- a/patches/0106-net-ipv4-route-use-locks-on-up-rt.patch.patch
+++ b/patches/0106-net-ipv4-route-use-locks-on-up-rt.patch.patch
@@ -1,7 +1,7 @@
From 23d7a4fb4b0d55e0c90963b2880651d8bb57c6aa Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 15 Jul 2011 16:24:45 +0200
-Subject: [PATCH 106/256] net-ipv4-route-use-locks-on-up-rt.patch
+Subject: [PATCH 106/267] net-ipv4-route-use-locks-on-up-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0107-workqueue-avoid-the-lock-in-cpu-dying.patch.patch b/patches/0107-workqueue-avoid-the-lock-in-cpu-dying.patch.patch
index 28707e3..c100e12 100644
--- a/patches/0107-workqueue-avoid-the-lock-in-cpu-dying.patch.patch
+++ b/patches/0107-workqueue-avoid-the-lock-in-cpu-dying.patch.patch
@@ -1,7 +1,7 @@
From 2f92092b4be1b601d635ff03c522be83b8458c28 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 24 Jun 2011 20:39:24 +0200
-Subject: [PATCH 107/256] workqueue-avoid-the-lock-in-cpu-dying.patch
+Subject: [PATCH 107/267] workqueue-avoid-the-lock-in-cpu-dying.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0108-timers-prepare-for-full-preemption.patch b/patches/0108-timers-prepare-for-full-preemption.patch
index 26fd146..4c39472 100644
--- a/patches/0108-timers-prepare-for-full-preemption.patch
+++ b/patches/0108-timers-prepare-for-full-preemption.patch
@@ -1,7 +1,7 @@
From 956175284be7bd386ecb0b5112988c5bcd07adda Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 108/256] timers: prepare for full preemption
+Subject: [PATCH 108/267] timers: prepare for full preemption
When softirqs can be preempted we need to make sure that cancelling
the timer from the active thread can not deadlock vs. a running timer
diff --git a/patches/0109-timers-preempt-rt-support.patch b/patches/0109-timers-preempt-rt-support.patch
index 65fb1ca..f0eb0dc 100644
--- a/patches/0109-timers-preempt-rt-support.patch
+++ b/patches/0109-timers-preempt-rt-support.patch
@@ -1,7 +1,7 @@
From 8dfa8ea091ef006a7e1dd855cc37328cb4794c5d Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:20 -0500
-Subject: [PATCH 109/256] timers: preempt-rt support
+Subject: [PATCH 109/267] timers: preempt-rt support
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/patches/0110-timers-fix-timer-hotplug-on-rt.patch b/patches/0110-timers-fix-timer-hotplug-on-rt.patch
index cc7e6f8..1bb78de 100644
--- a/patches/0110-timers-fix-timer-hotplug-on-rt.patch
+++ b/patches/0110-timers-fix-timer-hotplug-on-rt.patch
@@ -1,7 +1,7 @@
From 8c251d0d40bf371f4f2c7421075c3d6007dc33e2 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:32 -0500
-Subject: [PATCH 110/256] timers: fix timer hotplug on -rt
+Subject: [PATCH 110/267] timers: fix timer hotplug on -rt
Here we are in the CPU_DEAD notifier, and we must not sleep nor
enable interrupts.
diff --git a/patches/0111-timers-mov-printk_tick-to-soft-interrupt.patch b/patches/0111-timers-mov-printk_tick-to-soft-interrupt.patch
index 6354885..ca5edb9 100644
--- a/patches/0111-timers-mov-printk_tick-to-soft-interrupt.patch
+++ b/patches/0111-timers-mov-printk_tick-to-soft-interrupt.patch
@@ -1,7 +1,7 @@
From be57df33818c14ac40de00d5b436451bdc3f9e1b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:30 -0500
-Subject: [PATCH 111/256] timers: mov printk_tick to soft interrupt
+Subject: [PATCH 111/267] timers: mov printk_tick to soft interrupt
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/patches/0112-timer-delay-waking-softirqs-from-the-jiffy-tick.patch b/patches/0112-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
index 10039f3..90547e3 100644
--- a/patches/0112-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
+++ b/patches/0112-timer-delay-waking-softirqs-from-the-jiffy-tick.patch
@@ -1,7 +1,7 @@
From e829401695c05815c8135aff08b12203d8dfd62d Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Fri, 21 Aug 2009 11:56:45 +0200
-Subject: [PATCH 112/256] timer: delay waking softirqs from the jiffy tick
+Subject: [PATCH 112/267] timer: delay waking softirqs from the jiffy tick
People were complaining about broken balancing with the recent -rt
series.
diff --git a/patches/0113-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch b/patches/0113-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch
index ee4d605..0446662 100644
--- a/patches/0113-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch
+++ b/patches/0113-timers-Avoid-the-switch-timers-base-set-to-NULL-tric.patch
@@ -1,7 +1,7 @@
From be4d0930149b21a8ce3736546849adc15fea5c2d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jul 2011 15:23:39 +0200
-Subject: [PATCH 113/256] timers: Avoid the switch timers base set to NULL
+Subject: [PATCH 113/267] timers: Avoid the switch timers base set to NULL
trick on RT
On RT that code is preemptible, so we cannot assign NULL to timers
diff --git a/patches/0114-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch b/patches/0114-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch
index 4755f1f..e01a37d 100644
--- a/patches/0114-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch
+++ b/patches/0114-printk-Don-t-call-printk_tick-in-printk_needs_cpu-on.patch
@@ -1,7 +1,7 @@
From f246e95b5dd41a2ff8fc54d50a83e40cb5c9e9b5 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Sun, 16 Oct 2011 18:56:45 +0800
-Subject: [PATCH 114/256] printk: Don't call printk_tick in printk_needs_cpu()
+Subject: [PATCH 114/267] printk: Don't call printk_tick in printk_needs_cpu()
on RT
printk_tick() can't be called in atomic context when RT is enabled,
diff --git a/patches/0115-hrtimers-prepare-full-preemption.patch b/patches/0115-hrtimers-prepare-full-preemption.patch
index bf3cdbd..cd4579b 100644
--- a/patches/0115-hrtimers-prepare-full-preemption.patch
+++ b/patches/0115-hrtimers-prepare-full-preemption.patch
@@ -1,7 +1,7 @@
From f845e00d0d0639b3c0b3817300c7b50c3185d5d0 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:29:34 -0500
-Subject: [PATCH 115/256] hrtimers: prepare full preemption
+Subject: [PATCH 115/267] hrtimers: prepare full preemption
Make cancellation of a running callback in softirq context safe
against preemption.
diff --git a/patches/0116-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/patches/0116-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
index 3705991..aac0c56 100644
--- a/patches/0116-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
+++ b/patches/0116-hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch
@@ -1,7 +1,7 @@
From b852214ab58a1fe26b51298ed91c0a7ed3dd465d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:31 -0500
-Subject: [PATCH 116/256] hrtimer: fixup hrtimer callback changes for
+Subject: [PATCH 116/267] hrtimer: fixup hrtimer callback changes for
preempt-rt
In preempt-rt we can not call the callbacks which take sleeping locks
diff --git a/patches/0117-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch b/patches/0117-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch
index fa9230a..d621532 100644
--- a/patches/0117-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch
+++ b/patches/0117-hrtimer-Don-t-call-the-timer-handler-from-hrtimer_st.patch
@@ -1,7 +1,7 @@
From 64c3e837013143386069c3dda8d67f137fd63500 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 12 Aug 2011 17:39:54 +0200
-Subject: [PATCH 117/256] hrtimer: Don't call the timer handler from
+Subject: [PATCH 117/267] hrtimer: Don't call the timer handler from
hrtimer_start
[<ffffffff812de4a9>] __delay+0xf/0x11
diff --git a/patches/0118-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch b/patches/0118-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch
index 413a0b8..ebff6eb 100644
--- a/patches/0118-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch
+++ b/patches/0118-hrtimer-Add-missing-debug_activate-aid-Was-Re-ANNOUN.patch
@@ -1,7 +1,7 @@
From 440e42303f19c9686c15b9c8321a96d0c09e46b1 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Thu, 13 Oct 2011 15:52:30 +0800
-Subject: [PATCH 118/256] hrtimer: Add missing debug_activate() aid [Was: Re:
+Subject: [PATCH 118/267] hrtimer: Add missing debug_activate() aid [Was: Re:
[ANNOUNCE] 3.0.6-rt17]
On Fri, Oct 07, 2011 at 10:25:25AM -0700, Fernando Lopez-Lezcano wrote:
diff --git a/patches/0119-hrtimer-fix-reprogram-madness.patch.patch b/patches/0119-hrtimer-fix-reprogram-madness.patch.patch
index f4b4fd4..8777537 100644
--- a/patches/0119-hrtimer-fix-reprogram-madness.patch.patch
+++ b/patches/0119-hrtimer-fix-reprogram-madness.patch.patch
@@ -1,7 +1,7 @@
From 251da2a935bd80dc09d674a1c0466f03ada7dfac Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 14 Sep 2011 14:48:43 +0200
-Subject: [PATCH 119/256] hrtimer-fix-reprogram-madness.patch
+Subject: [PATCH 119/267] hrtimer-fix-reprogram-madness.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0120-timer-fd-Prevent-live-lock.patch b/patches/0120-timer-fd-Prevent-live-lock.patch
index 554217e..acde41f 100644
--- a/patches/0120-timer-fd-Prevent-live-lock.patch
+++ b/patches/0120-timer-fd-Prevent-live-lock.patch
@@ -1,7 +1,7 @@
From 0af6efbe1030ca203bda5ed92f2870f5b104d2b8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 25 Jan 2012 11:08:40 +0100
-Subject: [PATCH 120/256] timer-fd: Prevent live lock
+Subject: [PATCH 120/267] timer-fd: Prevent live lock
If hrtimer_try_to_cancel() requires a retry, then depending on the
priority setting te retry loop might prevent timer callback completion
diff --git a/patches/0121-posix-timers-thread-posix-cpu-timers-on-rt.patch b/patches/0121-posix-timers-thread-posix-cpu-timers-on-rt.patch
index b956796..a804de5 100644
--- a/patches/0121-posix-timers-thread-posix-cpu-timers-on-rt.patch
+++ b/patches/0121-posix-timers-thread-posix-cpu-timers-on-rt.patch
@@ -1,7 +1,7 @@
From 2bb51fa71528853384b1cf3873f06853fd454b51 Mon Sep 17 00:00:00 2001
From: John Stultz <johnstul@us.ibm.com>
Date: Fri, 3 Jul 2009 08:29:58 -0500
-Subject: [PATCH 121/256] posix-timers: thread posix-cpu-timers on -rt
+Subject: [PATCH 121/267] posix-timers: thread posix-cpu-timers on -rt
posix-cpu-timer code takes non -rt safe locks in hard irq
context. Move it to a thread.
diff --git a/patches/0122-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch b/patches/0122-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
index 99b0a72..4cd4ae2 100644
--- a/patches/0122-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
+++ b/patches/0122-posix-timers-Shorten-posix_cpu_timers-CPU-kernel-thr.patch
@@ -1,7 +1,7 @@
From d43c6637939cbe4ffd20739ab80b6089d7c8f07e Mon Sep 17 00:00:00 2001
From: Arnaldo Carvalho de Melo <acme@redhat.com>
Date: Fri, 3 Jul 2009 08:30:00 -0500
-Subject: [PATCH 122/256] posix-timers: Shorten posix_cpu_timers/<CPU> kernel
+Subject: [PATCH 122/267] posix-timers: Shorten posix_cpu_timers/<CPU> kernel
thread names
Shorten the softirq kernel thread names because they always overflow the
diff --git a/patches/0123-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch b/patches/0123-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
index df74897..ad6608b 100644
--- a/patches/0123-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
+++ b/patches/0123-posix-timers-Avoid-wakeups-when-no-timers-are-active.patch
@@ -1,7 +1,7 @@
From a819843d215ebad5b84fbdb585d2aa4f7bed7748 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 08:44:44 -0500
-Subject: [PATCH 123/256] posix-timers: Avoid wakeups when no timers are
+Subject: [PATCH 123/267] posix-timers: Avoid wakeups when no timers are
active
Waking the thread even when no timers are scheduled is useless.
diff --git a/patches/0124-sched-delay-put-task.patch.patch b/patches/0124-sched-delay-put-task.patch.patch
index 9144eb1..3238c9b 100644
--- a/patches/0124-sched-delay-put-task.patch.patch
+++ b/patches/0124-sched-delay-put-task.patch.patch
@@ -1,7 +1,7 @@
From 1d69cb2f49e57b61483843705efd9cfdc4471f53 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 31 May 2011 16:59:16 +0200
-Subject: [PATCH 124/256] sched-delay-put-task.patch
+Subject: [PATCH 124/267] sched-delay-put-task.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0125-sched-limit-nr-migrate.patch.patch b/patches/0125-sched-limit-nr-migrate.patch.patch
index 820a9fa..a9aee16 100644
--- a/patches/0125-sched-limit-nr-migrate.patch.patch
+++ b/patches/0125-sched-limit-nr-migrate.patch.patch
@@ -1,7 +1,7 @@
From 784b804e6ec857d95df910f424252632126fcf11 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 6 Jun 2011 12:12:51 +0200
-Subject: [PATCH 125/256] sched-limit-nr-migrate.patch
+Subject: [PATCH 125/267] sched-limit-nr-migrate.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0126-sched-mmdrop-delayed.patch.patch b/patches/0126-sched-mmdrop-delayed.patch.patch
index 1722a20..ae2058a 100644
--- a/patches/0126-sched-mmdrop-delayed.patch.patch
+++ b/patches/0126-sched-mmdrop-delayed.patch.patch
@@ -1,7 +1,7 @@
From 585fd2cf2eb2cc2f1af23a454fceb6331921c0b8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 6 Jun 2011 12:20:33 +0200
-Subject: [PATCH 126/256] sched-mmdrop-delayed.patch
+Subject: [PATCH 126/267] sched-mmdrop-delayed.patch
Needs thread context (pgd_lock) -> ifdeffed. workqueues wont work with
RT
diff --git a/patches/0127-sched-rt-mutex-wakeup.patch.patch b/patches/0127-sched-rt-mutex-wakeup.patch.patch
index ed02b57..01cf51d 100644
--- a/patches/0127-sched-rt-mutex-wakeup.patch.patch
+++ b/patches/0127-sched-rt-mutex-wakeup.patch.patch
@@ -1,7 +1,7 @@
From 1ad26e9ea3f939e309d3ef31161f6f6a4b023b09 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 25 Jun 2011 09:21:04 +0200
-Subject: [PATCH 127/256] sched-rt-mutex-wakeup.patch
+Subject: [PATCH 127/267] sched-rt-mutex-wakeup.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0128-sched-might-sleep-do-not-account-rcu-depth.patch.patch b/patches/0128-sched-might-sleep-do-not-account-rcu-depth.patch.patch
index 5d17e86..f9d0efa 100644
--- a/patches/0128-sched-might-sleep-do-not-account-rcu-depth.patch.patch
+++ b/patches/0128-sched-might-sleep-do-not-account-rcu-depth.patch.patch
@@ -1,7 +1,7 @@
From 15ae181ec2b59ad4bbd5f54bee6fbd68bd9358b3 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 7 Jun 2011 09:19:06 +0200
-Subject: [PATCH 128/256] sched-might-sleep-do-not-account-rcu-depth.patch
+Subject: [PATCH 128/267] sched-might-sleep-do-not-account-rcu-depth.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0129-sched-cond-resched.patch.patch b/patches/0129-sched-cond-resched.patch.patch
index 5aba519..3d6e9bb 100644
--- a/patches/0129-sched-cond-resched.patch.patch
+++ b/patches/0129-sched-cond-resched.patch.patch
@@ -1,7 +1,7 @@
From 1aa975279d4a5596e082534477783a3961a32c62 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 7 Jun 2011 11:25:03 +0200
-Subject: [PATCH 129/256] sched-cond-resched.patch
+Subject: [PATCH 129/267] sched-cond-resched.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0130-cond-resched-softirq-fix.patch.patch b/patches/0130-cond-resched-softirq-fix.patch.patch
index bce90bf..fefff1d 100644
--- a/patches/0130-cond-resched-softirq-fix.patch.patch
+++ b/patches/0130-cond-resched-softirq-fix.patch.patch
@@ -1,7 +1,7 @@
From b45ecdef4d57b4179dca4c3360543c1d65f16fbb Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 14 Jul 2011 09:56:44 +0200
-Subject: [PATCH 130/256] cond-resched-softirq-fix.patch
+Subject: [PATCH 130/267] cond-resched-softirq-fix.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0131-cond-resched-lock-rt-tweak.patch.patch b/patches/0131-cond-resched-lock-rt-tweak.patch.patch
index 23f137a..935bc57 100644
--- a/patches/0131-cond-resched-lock-rt-tweak.patch.patch
+++ b/patches/0131-cond-resched-lock-rt-tweak.patch.patch
@@ -1,7 +1,7 @@
From 7fa364c6068b2175556853dc3b7e6194030758a3 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 22:51:33 +0200
-Subject: [PATCH 131/256] cond-resched-lock-rt-tweak.patch
+Subject: [PATCH 131/267] cond-resched-lock-rt-tweak.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0132-sched-disable-ttwu-queue.patch.patch b/patches/0132-sched-disable-ttwu-queue.patch.patch
index 87c0a5d..6786faf 100644
--- a/patches/0132-sched-disable-ttwu-queue.patch.patch
+++ b/patches/0132-sched-disable-ttwu-queue.patch.patch
@@ -1,7 +1,7 @@
From fb8f00d3e186dd2fbe684e86a24cf5099399ecae Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 13 Sep 2011 16:42:35 +0200
-Subject: [PATCH 132/256] sched-disable-ttwu-queue.patch
+Subject: [PATCH 132/267] sched-disable-ttwu-queue.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0133-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/patches/0133-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
index f97a5db..9608478 100644
--- a/patches/0133-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
+++ b/patches/0133-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch
@@ -1,7 +1,7 @@
From de9fd92b8ecd080a473c9a42c46613124cd30aff Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:03:52 +0200
-Subject: [PATCH 133/256] sched: Disable CONFIG_RT_GROUP_SCHED on RT
+Subject: [PATCH 133/267] sched: Disable CONFIG_RT_GROUP_SCHED on RT
Carsten reported problems when running:
diff --git a/patches/0134-sched-ttwu-Return-success-when-only-changing-the-sav.patch b/patches/0134-sched-ttwu-Return-success-when-only-changing-the-sav.patch
index 890d5b7..8b9f849 100644
--- a/patches/0134-sched-ttwu-Return-success-when-only-changing-the-sav.patch
+++ b/patches/0134-sched-ttwu-Return-success-when-only-changing-the-sav.patch
@@ -1,7 +1,7 @@
From da5490969335713ca6076add89da5b7b473a09c3 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 13 Dec 2011 21:42:19 +0100
-Subject: [PATCH 134/256] sched: ttwu: Return success when only changing the
+Subject: [PATCH 134/267] sched: ttwu: Return success when only changing the
saved_state value
When a task blocks on a rt lock, it saves the current state in
diff --git a/patches/0135-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch b/patches/0135-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
index fb99c8f..de380e9 100644
--- a/patches/0135-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
+++ b/patches/0135-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch
@@ -1,7 +1,7 @@
From f6659d411c2ebfc6f8c2dd2b94eb25f24566c12a Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:27 -0500
-Subject: [PATCH 135/256] stop_machine: convert stop_machine_run() to
+Subject: [PATCH 135/267] stop_machine: convert stop_machine_run() to
PREEMPT_RT
Instead of playing with non-preemption, introduce explicit
diff --git a/patches/0136-stomp-machine-mark-stomper-thread.patch.patch b/patches/0136-stomp-machine-mark-stomper-thread.patch.patch
index f79c95b..be3a1f2 100644
--- a/patches/0136-stomp-machine-mark-stomper-thread.patch.patch
+++ b/patches/0136-stomp-machine-mark-stomper-thread.patch.patch
@@ -1,7 +1,7 @@
From 8b7e90abe179dec1e183273d7f6677943b0d2fcc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 19:53:19 +0200
-Subject: [PATCH 136/256] stomp-machine-mark-stomper-thread.patch
+Subject: [PATCH 136/267] stomp-machine-mark-stomper-thread.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0137-stomp-machine-raw-lock.patch.patch b/patches/0137-stomp-machine-raw-lock.patch.patch
index 4adf2e7..cda0833 100644
--- a/patches/0137-stomp-machine-raw-lock.patch.patch
+++ b/patches/0137-stomp-machine-raw-lock.patch.patch
@@ -1,7 +1,7 @@
From 788f2922ddf4ac99ce73c5fa847eabad78d0cebd Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 11:01:51 +0200
-Subject: [PATCH 137/256] stomp-machine-raw-lock.patch
+Subject: [PATCH 137/267] stomp-machine-raw-lock.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0138-hotplug-Lightweight-get-online-cpus.patch b/patches/0138-hotplug-Lightweight-get-online-cpus.patch
index c987d1f..3e8149c 100644
--- a/patches/0138-hotplug-Lightweight-get-online-cpus.patch
+++ b/patches/0138-hotplug-Lightweight-get-online-cpus.patch
@@ -1,7 +1,7 @@
From 9698a154a5ca400da809937bca83bdc7589df9be Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 15 Jun 2011 12:36:06 +0200
-Subject: [PATCH 138/256] hotplug: Lightweight get online cpus
+Subject: [PATCH 138/267] hotplug: Lightweight get online cpus
get_online_cpus() is a heavy weight function which involves a global
mutex. migrate_disable() wants a simpler construct which prevents only
diff --git a/patches/0139-hotplug-sync_unplug-No.patch b/patches/0139-hotplug-sync_unplug-No.patch
index 6be145c..e4ee377 100644
--- a/patches/0139-hotplug-sync_unplug-No.patch
+++ b/patches/0139-hotplug-sync_unplug-No.patch
@@ -1,7 +1,7 @@
From 4210eba03aafc8271a8f97fccfab1ad0893f4086 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Sun, 16 Oct 2011 18:56:43 +0800
-Subject: [PATCH 139/256] hotplug: sync_unplug: No " " in task name
+Subject: [PATCH 139/267] hotplug: sync_unplug: No " " in task name
Otherwise the output will look a little odd.
diff --git a/patches/0140-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch b/patches/0140-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
index 3ada7fc..0100b28 100644
--- a/patches/0140-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
+++ b/patches/0140-hotplug-Reread-hotplug_pcp-on-pin_current_cpu-retry.patch
@@ -1,7 +1,7 @@
From 73d949d0e1f86dd881ae7dea5f2f27241e2e45ba Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Thu, 28 Jul 2011 11:16:00 +0800
-Subject: [PATCH 140/256] hotplug: Reread hotplug_pcp on pin_current_cpu()
+Subject: [PATCH 140/267] hotplug: Reread hotplug_pcp on pin_current_cpu()
retry
When retry happens, it's likely that the task has been migrated to
diff --git a/patches/0141-sched-migrate-disable.patch.patch b/patches/0141-sched-migrate-disable.patch.patch
index 3934f12..b35b135 100644
--- a/patches/0141-sched-migrate-disable.patch.patch
+++ b/patches/0141-sched-migrate-disable.patch.patch
@@ -1,7 +1,7 @@
From 02cf9f02bdf247447eb54ded7fefa843d4ea4628 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 16 Jun 2011 13:26:08 +0200
-Subject: [PATCH 141/256] sched-migrate-disable.patch
+Subject: [PATCH 141/267] sched-migrate-disable.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0142-hotplug-use-migrate-disable.patch.patch b/patches/0142-hotplug-use-migrate-disable.patch.patch
index 917ebf9..96f739e 100644
--- a/patches/0142-hotplug-use-migrate-disable.patch.patch
+++ b/patches/0142-hotplug-use-migrate-disable.patch.patch
@@ -1,7 +1,7 @@
From 5963228cdaa3c49a09035f1251f15113e0a3dd2c Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 19:35:29 +0200
-Subject: [PATCH 142/256] hotplug-use-migrate-disable.patch
+Subject: [PATCH 142/267] hotplug-use-migrate-disable.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0143-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch b/patches/0143-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
index 0f2919a..d07e9e0 100644
--- a/patches/0143-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
+++ b/patches/0143-hotplug-Call-cpu_unplug_begin-before-DOWN_PREPARE.patch
@@ -1,7 +1,7 @@
From 9831e60c0e5b45404bc3410179206b9fb3e8c3dc Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Sun, 16 Oct 2011 18:56:44 +0800
-Subject: [PATCH 143/256] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
+Subject: [PATCH 143/267] hotplug: Call cpu_unplug_begin() before DOWN_PREPARE
cpu_unplug_begin() should be called before CPU_DOWN_PREPARE, because
at CPU_DOWN_PREPARE cpu_active is cleared and sched_domain is
diff --git a/patches/0144-ftrace-migrate-disable-tracing.patch.patch b/patches/0144-ftrace-migrate-disable-tracing.patch.patch
index 7c5a648..f0c78ef 100644
--- a/patches/0144-ftrace-migrate-disable-tracing.patch.patch
+++ b/patches/0144-ftrace-migrate-disable-tracing.patch.patch
@@ -1,7 +1,7 @@
From a270094d07da20d6324798c10bdd3e277fa65af4 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:56:42 +0200
-Subject: [PATCH 144/256] ftrace-migrate-disable-tracing.patch
+Subject: [PATCH 144/267] ftrace-migrate-disable-tracing.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0145-tracing-Show-padding-as-unsigned-short.patch b/patches/0145-tracing-Show-padding-as-unsigned-short.patch
index 7182372..55c2b8f 100644
--- a/patches/0145-tracing-Show-padding-as-unsigned-short.patch
+++ b/patches/0145-tracing-Show-padding-as-unsigned-short.patch
@@ -1,7 +1,7 @@
From e8940c2513f302ea32fc52c3b1d34f22c093df05 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Wed, 16 Nov 2011 13:19:35 -0500
-Subject: [PATCH 145/256] tracing: Show padding as unsigned short
+Subject: [PATCH 145/267] tracing: Show padding as unsigned short
RT added two bytes to trace migrate disable counting to the trace events
and used two bytes of the padding to make the change. The structures and
diff --git a/patches/0146-migrate-disable-rt-variant.patch.patch b/patches/0146-migrate-disable-rt-variant.patch.patch
index d1ee3dc..672ceea 100644
--- a/patches/0146-migrate-disable-rt-variant.patch.patch
+++ b/patches/0146-migrate-disable-rt-variant.patch.patch
@@ -1,7 +1,7 @@
From a9b8647d496680f8dea9ab039593d1903cc12d54 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 19:48:20 +0200
-Subject: [PATCH 146/256] migrate-disable-rt-variant.patch
+Subject: [PATCH 146/267] migrate-disable-rt-variant.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0147-sched-Optimize-migrate_disable.patch b/patches/0147-sched-Optimize-migrate_disable.patch
index b92fe98..a119ffa 100644
--- a/patches/0147-sched-Optimize-migrate_disable.patch
+++ b/patches/0147-sched-Optimize-migrate_disable.patch
@@ -1,7 +1,7 @@
From 6ff6774bdeef497a14f274c7e70cddba59099c03 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Thu, 11 Aug 2011 15:03:35 +0200
-Subject: [PATCH 147/256] sched: Optimize migrate_disable
+Subject: [PATCH 147/267] sched: Optimize migrate_disable
Change from task_rq_lock() to raw_spin_lock(&rq->lock) to avoid a few
atomic ops. See comment on why it should be safe.
diff --git a/patches/0148-sched-Generic-migrate_disable.patch b/patches/0148-sched-Generic-migrate_disable.patch
index 4d871a6..14d8eb8 100644
--- a/patches/0148-sched-Generic-migrate_disable.patch
+++ b/patches/0148-sched-Generic-migrate_disable.patch
@@ -1,7 +1,7 @@
From d648a9940a4f406cfa10d9161fb31d37719d3b37 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Thu, 11 Aug 2011 15:14:58 +0200
-Subject: [PATCH 148/256] sched: Generic migrate_disable
+Subject: [PATCH 148/267] sched: Generic migrate_disable
Make migrate_disable() be a preempt_disable() for !rt kernels. This
allows generic code to use it but still enforces that these code
diff --git a/patches/0149-sched-rt-Fix-migrate_enable-thinko.patch b/patches/0149-sched-rt-Fix-migrate_enable-thinko.patch
index 8e3f4fe..011607f 100644
--- a/patches/0149-sched-rt-Fix-migrate_enable-thinko.patch
+++ b/patches/0149-sched-rt-Fix-migrate_enable-thinko.patch
@@ -1,7 +1,7 @@
From 7a11a2f07de6f75b3bd692921dea4f8ea611affd Mon Sep 17 00:00:00 2001
From: Mike Galbraith <efault@gmx.de>
Date: Tue, 23 Aug 2011 16:12:43 +0200
-Subject: [PATCH 149/256] sched, rt: Fix migrate_enable() thinko
+Subject: [PATCH 149/267] sched, rt: Fix migrate_enable() thinko
Assigning mask = tsk_cpus_allowed(p) after p->migrate_disable = 0 ensures
that we won't see a mask change.. no push/pull, we stack tasks on one CPU.
diff --git a/patches/0150-sched-teach-migrate_disable-about-atomic-contexts.patch b/patches/0150-sched-teach-migrate_disable-about-atomic-contexts.patch
index 6fa5499..33110f2 100644
--- a/patches/0150-sched-teach-migrate_disable-about-atomic-contexts.patch
+++ b/patches/0150-sched-teach-migrate_disable-about-atomic-contexts.patch
@@ -1,7 +1,7 @@
From 2ca12d4381688b8f8520ae6c18a74f823b5b295f Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 2 Sep 2011 14:29:27 +0200
-Subject: [PATCH 150/256] sched: teach migrate_disable about atomic contexts
+Subject: [PATCH 150/267] sched: teach migrate_disable about atomic contexts
<NMI> [<ffffffff812dafd8>] spin_bug+0x94/0xa8
[<ffffffff812db07f>] do_raw_spin_lock+0x43/0xea
diff --git a/patches/0151-sched-Postpone-actual-migration-disalbe-to-schedule.patch b/patches/0151-sched-Postpone-actual-migration-disalbe-to-schedule.patch
index cd49104..dc372ce 100644
--- a/patches/0151-sched-Postpone-actual-migration-disalbe-to-schedule.patch
+++ b/patches/0151-sched-Postpone-actual-migration-disalbe-to-schedule.patch
@@ -1,7 +1,7 @@
From bcc549901e49108b06e373d3cdf26fecf43b2706 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Tue, 27 Sep 2011 08:40:23 -0400
-Subject: [PATCH 151/256] sched: Postpone actual migration disalbe to schedule
+Subject: [PATCH 151/267] sched: Postpone actual migration disalbe to schedule
The migrate_disable() can cause a bit of a overhead to the RT kernel,
as changing the affinity is expensive to do at every lock encountered.
diff --git a/patches/0152-sched-Do-not-compare-cpu-masks-in-scheduler.patch b/patches/0152-sched-Do-not-compare-cpu-masks-in-scheduler.patch
index 04d5771..c6a15f2 100644
--- a/patches/0152-sched-Do-not-compare-cpu-masks-in-scheduler.patch
+++ b/patches/0152-sched-Do-not-compare-cpu-masks-in-scheduler.patch
@@ -1,7 +1,7 @@
From 013916cf88baff0309f2dd8b7cbc80a01177a28b Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Tue, 27 Sep 2011 08:40:24 -0400
-Subject: [PATCH 152/256] sched: Do not compare cpu masks in scheduler
+Subject: [PATCH 152/267] sched: Do not compare cpu masks in scheduler
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Peter Zijlstra <peterz@infradead.org>
diff --git a/patches/0153-sched-Have-migrate_disable-ignore-bounded-threads.patch b/patches/0153-sched-Have-migrate_disable-ignore-bounded-threads.patch
index da3becd..5bbd5b4 100644
--- a/patches/0153-sched-Have-migrate_disable-ignore-bounded-threads.patch
+++ b/patches/0153-sched-Have-migrate_disable-ignore-bounded-threads.patch
@@ -1,7 +1,7 @@
From fdabe6279466f19b4a00a28d07003d12dbf18e6a Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Tue, 27 Sep 2011 08:40:25 -0400
-Subject: [PATCH 153/256] sched: Have migrate_disable ignore bounded threads
+Subject: [PATCH 153/267] sched: Have migrate_disable ignore bounded threads
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Peter Zijlstra <peterz@infradead.org>
diff --git a/patches/0154-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch b/patches/0154-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
index 4b2eb91..b6b6863 100644
--- a/patches/0154-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
+++ b/patches/0154-sched-clear-pf-thread-bound-on-fallback-rq.patch.patch
@@ -1,7 +1,7 @@
From 1ce97be705d59baa210b67744f1145ee3d6259fb Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 4 Nov 2011 20:48:36 +0100
-Subject: [PATCH 154/256] sched-clear-pf-thread-bound-on-fallback-rq.patch
+Subject: [PATCH 154/267] sched-clear-pf-thread-bound-on-fallback-rq.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0155-ftrace-crap.patch.patch b/patches/0155-ftrace-crap.patch.patch
index 1752d76..2dcd2d3 100644
--- a/patches/0155-ftrace-crap.patch.patch
+++ b/patches/0155-ftrace-crap.patch.patch
@@ -1,7 +1,7 @@
From e634e6cb2d7783c3387fae3c98f3f96011802330 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 9 Sep 2011 16:55:53 +0200
-Subject: [PATCH 155/256] ftrace-crap.patch
+Subject: [PATCH 155/267] ftrace-crap.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0156-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch b/patches/0156-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
index 742e3f0..3b50bfe 100644
--- a/patches/0156-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
+++ b/patches/0156-ring-buffer-Convert-reader_lock-from-raw_spin_lock-i.patch
@@ -1,7 +1,7 @@
From 2d5eddded739b6a17401f4bdb0d3f09e18f7fa2f Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Tue, 27 Sep 2011 13:56:50 -0400
-Subject: [PATCH 156/256] ring-buffer: Convert reader_lock from raw_spin_lock
+Subject: [PATCH 156/267] ring-buffer: Convert reader_lock from raw_spin_lock
into spin_lock
The reader_lock is mostly taken in normal context with interrupts enabled.
diff --git a/patches/0157-net-netif_rx_ni-migrate-disable.patch.patch b/patches/0157-net-netif_rx_ni-migrate-disable.patch.patch
index 43e22dc..85828a8 100644
--- a/patches/0157-net-netif_rx_ni-migrate-disable.patch.patch
+++ b/patches/0157-net-netif_rx_ni-migrate-disable.patch.patch
@@ -1,7 +1,7 @@
From 7ccd0a2f82ac5101bbcfa58cc1d616a7e171aed8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 16:29:27 +0200
-Subject: [PATCH 157/256] net-netif_rx_ni-migrate-disable.patch
+Subject: [PATCH 157/267] net-netif_rx_ni-migrate-disable.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0158-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch b/patches/0158-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
index 3e21b56..ca27f7c 100644
--- a/patches/0158-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
+++ b/patches/0158-softirq-Sanitize-softirq-pending-for-NOHZ-RT.patch
@@ -1,7 +1,7 @@
From 13b3cd058255b7a21cf6b1380ac872b6abea55ea Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 3 Jul 2009 13:16:38 -0500
-Subject: [PATCH 158/256] softirq: Sanitize softirq pending for NOHZ/RT
+Subject: [PATCH 158/267] softirq: Sanitize softirq pending for NOHZ/RT
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0159-lockdep-rt.patch.patch b/patches/0159-lockdep-rt.patch.patch
index b3d0ed6..6eadabb 100644
--- a/patches/0159-lockdep-rt.patch.patch
+++ b/patches/0159-lockdep-rt.patch.patch
@@ -1,7 +1,7 @@
From 029ada8a8245ee5fdb3124448b95f7114f8cb2b6 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 18:51:23 +0200
-Subject: [PATCH 159/256] lockdep-rt.patch
+Subject: [PATCH 159/267] lockdep-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0160-mutex-no-spin-on-rt.patch.patch b/patches/0160-mutex-no-spin-on-rt.patch.patch
index 4908706..4cd6322 100644
--- a/patches/0160-mutex-no-spin-on-rt.patch.patch
+++ b/patches/0160-mutex-no-spin-on-rt.patch.patch
@@ -1,7 +1,7 @@
From 849852b9d17acef199af44494634fbdd677179b7 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:51:45 +0200
-Subject: [PATCH 160/256] mutex-no-spin-on-rt.patch
+Subject: [PATCH 160/267] mutex-no-spin-on-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0161-softirq-local-lock.patch.patch b/patches/0161-softirq-local-lock.patch.patch
index a32e936..6bb6855 100644
--- a/patches/0161-softirq-local-lock.patch.patch
+++ b/patches/0161-softirq-local-lock.patch.patch
@@ -1,7 +1,7 @@
From 1f07442472223feea29df54cfe6dd782aaeef0db Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 28 Jun 2011 15:57:18 +0200
-Subject: [PATCH 161/256] softirq-local-lock.patch
+Subject: [PATCH 161/267] softirq-local-lock.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0162-softirq-Export-in_serving_softirq.patch b/patches/0162-softirq-Export-in_serving_softirq.patch
index 3611464..14261cf 100644
--- a/patches/0162-softirq-Export-in_serving_softirq.patch
+++ b/patches/0162-softirq-Export-in_serving_softirq.patch
@@ -1,7 +1,7 @@
From 87e052e01a12050b98d72bbbce9e31321ab891a7 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 14 Nov 2011 02:44:43 +0100
-Subject: [PATCH 162/256] softirq: Export in_serving_softirq()
+Subject: [PATCH 162/267] softirq: Export in_serving_softirq()
ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined!
diff --git a/patches/0163-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch b/patches/0163-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
index f43b644..4bdd22c 100644
--- a/patches/0163-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
+++ b/patches/0163-hardirq.h-Define-softirq_count-as-OUL-to-kill-build-.patch
@@ -1,7 +1,7 @@
From 1d5690ccc588e836538cfb08ae21f10ce857f488 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Thu, 13 Oct 2011 17:19:09 +0800
-Subject: [PATCH 163/256] hardirq.h: Define softirq_count() as OUL to kill
+Subject: [PATCH 163/267] hardirq.h: Define softirq_count() as OUL to kill
build warning
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
diff --git a/patches/0164-softirq-Fix-unplug-deadlock.patch b/patches/0164-softirq-Fix-unplug-deadlock.patch
index 95f8ae6..3e629dc 100644
--- a/patches/0164-softirq-Fix-unplug-deadlock.patch
+++ b/patches/0164-softirq-Fix-unplug-deadlock.patch
@@ -1,7 +1,7 @@
From 47d14a163f22cc98ed1066403b17b834766de351 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 30 Sep 2011 15:52:14 +0200
-Subject: [PATCH 164/256] softirq: Fix unplug deadlock
+Subject: [PATCH 164/267] softirq: Fix unplug deadlock
If ksoftirqd gets woken during hot-unplug, __thread_do_softirq() will
call pin_current_cpu() which will block on the held cpu_hotplug.lock.
diff --git a/patches/0165-softirq-disable-softirq-stacks-for-rt.patch.patch b/patches/0165-softirq-disable-softirq-stacks-for-rt.patch.patch
index 08e6af2..391674a 100644
--- a/patches/0165-softirq-disable-softirq-stacks-for-rt.patch.patch
+++ b/patches/0165-softirq-disable-softirq-stacks-for-rt.patch.patch
@@ -1,7 +1,7 @@
From 0a78fc3e819a0fbd2eb4a5e9c9741c6ba9c43a4f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 13:59:17 +0200
-Subject: [PATCH 165/256] softirq-disable-softirq-stacks-for-rt.patch
+Subject: [PATCH 165/267] softirq-disable-softirq-stacks-for-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0166-softirq-make-fifo.patch.patch b/patches/0166-softirq-make-fifo.patch.patch
index 1160644..1d6cfb1 100644
--- a/patches/0166-softirq-make-fifo.patch.patch
+++ b/patches/0166-softirq-make-fifo.patch.patch
@@ -1,7 +1,7 @@
From fc0e323ce062c258ce7a7d0eca1a6a0570b1f168 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 21 Jul 2011 21:06:43 +0200
-Subject: [PATCH 166/256] softirq-make-fifo.patch
+Subject: [PATCH 166/267] softirq-make-fifo.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0167-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/patches/0167-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
index 353359a..b281942 100644
--- a/patches/0167-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
+++ b/patches/0167-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch
@@ -1,7 +1,7 @@
From 32cb0e7fe45357b698e1a95cc33bfefd6ea9bd71 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Tue, 29 Nov 2011 20:18:22 -0500
-Subject: [PATCH 167/256] tasklet: Prevent tasklets from going into infinite
+Subject: [PATCH 167/267] tasklet: Prevent tasklets from going into infinite
spin in RT
When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads,
diff --git a/patches/0168-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/patches/0168-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
index eb76a09..f7747b2 100644
--- a/patches/0168-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
+++ b/patches/0168-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch
@@ -1,7 +1,7 @@
From 0d4fd56e30a154612e0fee6b73a182ec739d8086 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 31 Jan 2012 13:01:27 +0100
-Subject: [PATCH 168/256] genirq: Allow disabling of softirq processing in irq
+Subject: [PATCH 168/267] genirq: Allow disabling of softirq processing in irq
thread context
The processing of softirqs in irq thread context is a performance gain
diff --git a/patches/0169-local-vars-migrate-disable.patch.patch b/patches/0169-local-vars-migrate-disable.patch.patch
index ad52446..2a40698 100644
--- a/patches/0169-local-vars-migrate-disable.patch.patch
+++ b/patches/0169-local-vars-migrate-disable.patch.patch
@@ -1,7 +1,7 @@
From 33500c174f6780a82e62ac6067e4590e0206cdb5 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 28 Jun 2011 20:42:16 +0200
-Subject: [PATCH 169/256] local-vars-migrate-disable.patch
+Subject: [PATCH 169/267] local-vars-migrate-disable.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0170-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/patches/0170-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
index b161918..1bb512c 100644
--- a/patches/0170-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
+++ b/patches/0170-md-raid5-Make-raid5_percpu-handling-RT-aware.patch
@@ -1,7 +1,7 @@
From 0b38a99846981f3d58096100972ae9f2003737d8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 6 Apr 2010 16:51:31 +0200
-Subject: [PATCH 170/256] md: raid5: Make raid5_percpu handling RT aware
+Subject: [PATCH 170/267] md: raid5: Make raid5_percpu handling RT aware
__raid_run_ops() disables preemption with get_cpu() around the access
to the raid5_percpu variables. That causes scheduling while atomic
diff --git a/patches/0171-rtmutex-lock-killable.patch.patch b/patches/0171-rtmutex-lock-killable.patch.patch
index d2d502b..1be35ec 100644
--- a/patches/0171-rtmutex-lock-killable.patch.patch
+++ b/patches/0171-rtmutex-lock-killable.patch.patch
@@ -1,7 +1,7 @@
From 19ba6a96866ef2762878a0e3a4741570aab52aa2 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 9 Jun 2011 11:43:52 +0200
-Subject: [PATCH 171/256] rtmutex-lock-killable.patch
+Subject: [PATCH 171/267] rtmutex-lock-killable.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0172-rtmutex-futex-prepare-rt.patch.patch b/patches/0172-rtmutex-futex-prepare-rt.patch.patch
index 4aac979..a71e152 100644
--- a/patches/0172-rtmutex-futex-prepare-rt.patch.patch
+++ b/patches/0172-rtmutex-futex-prepare-rt.patch.patch
@@ -1,7 +1,7 @@
From 360ec2bb1bda440032020cd8a0ba02fffde8e3fc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 10 Jun 2011 11:04:15 +0200
-Subject: [PATCH 172/256] rtmutex-futex-prepare-rt.patch
+Subject: [PATCH 172/267] rtmutex-futex-prepare-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0173-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/patches/0173-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
index 9ffe6b0..9c52e7a 100644
--- a/patches/0173-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
+++ b/patches/0173-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch
@@ -1,7 +1,7 @@
From a385ed1641702529dd5906ce0fc1ad203538430c Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 7 Jun 2012 07:47:03 -0400
-Subject: [PATCH 173/256] futex: Fix bug on when a requeued RT task times out
+Subject: [PATCH 173/267] futex: Fix bug on when a requeued RT task times out
Requeue with timeout causes a bug with PREEMPT_RT_FULL.
diff --git a/patches/0174-rt-mutex-add-sleeping-spinlocks-support.patch.patch b/patches/0174-rt-mutex-add-sleeping-spinlocks-support.patch.patch
index 8e2bb5b..bbaded7 100644
--- a/patches/0174-rt-mutex-add-sleeping-spinlocks-support.patch.patch
+++ b/patches/0174-rt-mutex-add-sleeping-spinlocks-support.patch.patch
@@ -1,7 +1,7 @@
From 324904375b11bf2a728446415012297ca09c6022 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 10 Jun 2011 11:21:25 +0200
-Subject: [PATCH 174/256] rt-mutex-add-sleeping-spinlocks-support.patch
+Subject: [PATCH 174/267] rt-mutex-add-sleeping-spinlocks-support.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0175-spinlock-types-separate-raw.patch.patch b/patches/0175-spinlock-types-separate-raw.patch.patch
index 1f17fb0..d2e24f8 100644
--- a/patches/0175-spinlock-types-separate-raw.patch.patch
+++ b/patches/0175-spinlock-types-separate-raw.patch.patch
@@ -1,7 +1,7 @@
From 9ff9b0b7b9fafebd9d11112ead4c24ec4d8fe5bd Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 19:34:01 +0200
-Subject: [PATCH 175/256] spinlock-types-separate-raw.patch
+Subject: [PATCH 175/267] spinlock-types-separate-raw.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0176-rtmutex-avoid-include-hell.patch.patch b/patches/0176-rtmutex-avoid-include-hell.patch.patch
index 3517569..a9472c9 100644
--- a/patches/0176-rtmutex-avoid-include-hell.patch.patch
+++ b/patches/0176-rtmutex-avoid-include-hell.patch.patch
@@ -1,7 +1,7 @@
From 6894c43fe47e28d2a8cc7167922f5b7fba6fb66d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 20:06:39 +0200
-Subject: [PATCH 176/256] rtmutex-avoid-include-hell.patch
+Subject: [PATCH 176/267] rtmutex-avoid-include-hell.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0177-rt-add-rt-spinlocks.patch.patch b/patches/0177-rt-add-rt-spinlocks.patch.patch
index 005d6f4..559f4b7 100644
--- a/patches/0177-rt-add-rt-spinlocks.patch.patch
+++ b/patches/0177-rt-add-rt-spinlocks.patch.patch
@@ -1,7 +1,7 @@
From cf7aac26c5a28cf20b70fd431be88839c0058778 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 19:43:35 +0200
-Subject: [PATCH 177/256] rt-add-rt-spinlocks.patch
+Subject: [PATCH 177/267] rt-add-rt-spinlocks.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0178-rt-add-rt-to-mutex-headers.patch.patch b/patches/0178-rt-add-rt-to-mutex-headers.patch.patch
index e41de36..8223256 100644
--- a/patches/0178-rt-add-rt-to-mutex-headers.patch.patch
+++ b/patches/0178-rt-add-rt-to-mutex-headers.patch.patch
@@ -1,7 +1,7 @@
From 9b84e782f207e5da7a3fa04cc65d8e4ac17026e9 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 20:56:22 +0200
-Subject: [PATCH 178/256] rt-add-rt-to-mutex-headers.patch
+Subject: [PATCH 178/267] rt-add-rt-to-mutex-headers.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0179-rwsem-add-rt-variant.patch.patch b/patches/0179-rwsem-add-rt-variant.patch.patch
index d9c0560..ab11753 100644
--- a/patches/0179-rwsem-add-rt-variant.patch.patch
+++ b/patches/0179-rwsem-add-rt-variant.patch.patch
@@ -1,7 +1,7 @@
From c1daad4c6bc6fc32b5b82b388d9217375f65ab6a Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 21:02:53 +0200
-Subject: [PATCH 179/256] rwsem-add-rt-variant.patch
+Subject: [PATCH 179/267] rwsem-add-rt-variant.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch b/patches/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
index 668f62a..ea09a36 100644
--- a/patches/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
+++ b/patches/0180-rt-Add-the-preempt-rt-lock-replacement-APIs.patch
@@ -1,7 +1,7 @@
From 275349693ff49e04119066402e460cd59060ab93 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 26 Jul 2009 19:39:56 +0200
-Subject: [PATCH 180/256] rt: Add the preempt-rt lock replacement APIs
+Subject: [PATCH 180/267] rt: Add the preempt-rt lock replacement APIs
Map spinlocks, rwlocks, rw_semaphores and semaphores to the rt_mutex
based locking functions for preempt-rt.
diff --git a/patches/0181-rwlocks-Fix-section-mismatch.patch b/patches/0181-rwlocks-Fix-section-mismatch.patch
index 0f2d259..5cb2834 100644
--- a/patches/0181-rwlocks-Fix-section-mismatch.patch
+++ b/patches/0181-rwlocks-Fix-section-mismatch.patch
@@ -1,7 +1,7 @@
From 4e527692e6bd21dafd6202aeb28df65f12bbcfd1 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 19 Sep 2011 11:09:27 +0200
-Subject: [PATCH 181/256] rwlocks: Fix section mismatch
+Subject: [PATCH 181/267] rwlocks: Fix section mismatch
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
diff --git a/patches/0182-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch b/patches/0182-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
index 3937205..318aea8 100644
--- a/patches/0182-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
+++ b/patches/0182-timer-handle-idle-trylock-in-get-next-timer-irq.patc.patch
@@ -1,7 +1,7 @@
From 59b62bae6e0cd7be660a38a8b93e873fec85e078 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 22:08:38 +0200
-Subject: [PATCH 182/256] timer-handle-idle-trylock-in-get-next-timer-irq.patch
+Subject: [PATCH 182/267] timer-handle-idle-trylock-in-get-next-timer-irq.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0183-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch b/patches/0183-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
index 8e58f87..9655da6 100644
--- a/patches/0183-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
+++ b/patches/0183-RCU-Force-PREEMPT_RCU-for-PREEMPT-RT.patch
@@ -1,7 +1,7 @@
From 9640a57ed1d6ef1f9b41b08d68aba97add9dca95 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:30 -0500
-Subject: [PATCH 183/256] RCU: Force PREEMPT_RCU for PREEMPT-RT
+Subject: [PATCH 183/267] RCU: Force PREEMPT_RCU for PREEMPT-RT
PREEMPT_RT relies on PREEMPT_RCU - only allow RCU to be configured
interactively in the !PREEMPT_RT case.
diff --git a/patches/0184-rcu-Frob-softirq-test.patch b/patches/0184-rcu-Frob-softirq-test.patch
index 192ec3c..e691be9 100644
--- a/patches/0184-rcu-Frob-softirq-test.patch
+++ b/patches/0184-rcu-Frob-softirq-test.patch
@@ -1,7 +1,7 @@
From d5ea213392a0b5d8cf42b252755f521848824f97 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Sat, 13 Aug 2011 00:23:17 +0200
-Subject: [PATCH 184/256] rcu: Frob softirq test
+Subject: [PATCH 184/267] rcu: Frob softirq test
With RT_FULL we get the below wreckage:
diff --git a/patches/0185-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/patches/0185-rcu-Merge-RCU-bh-into-RCU-preempt.patch
index 48b3405..58b0197 100644
--- a/patches/0185-rcu-Merge-RCU-bh-into-RCU-preempt.patch
+++ b/patches/0185-rcu-Merge-RCU-bh-into-RCU-preempt.patch
@@ -1,7 +1,7 @@
From f786c807198155ff8dad9591045035a53aeed4c0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 5 Oct 2011 11:59:38 -0700
-Subject: [PATCH 185/256] rcu: Merge RCU-bh into RCU-preempt
+Subject: [PATCH 185/267] rcu: Merge RCU-bh into RCU-preempt
The Linux kernel has long RCU-bh read-side critical sections that
intolerably increase scheduling latency under mainline's RCU-bh rules,
diff --git a/patches/0186-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch b/patches/0186-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
index ad83ee9..ef9c68f 100644
--- a/patches/0186-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
+++ b/patches/0186-rcu-Fix-macro-substitution-for-synchronize_rcu_bh-on.patch
@@ -1,7 +1,7 @@
From 64a36b17bf05d2ce7d7bca56896b295bcad0756f Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Mon, 14 Nov 2011 02:44:42 +0100
-Subject: [PATCH 186/256] rcu: Fix macro substitution for synchronize_rcu_bh()
+Subject: [PATCH 186/267] rcu: Fix macro substitution for synchronize_rcu_bh()
on RT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
diff --git a/patches/0187-rcu-more-fallout.patch.patch b/patches/0187-rcu-more-fallout.patch.patch
index 4606b8b..0069b33 100644
--- a/patches/0187-rcu-more-fallout.patch.patch
+++ b/patches/0187-rcu-more-fallout.patch.patch
@@ -1,7 +1,7 @@
From 9edeec52fd841c2807974b7db2b4ef958b4e7dba Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 14 Nov 2011 10:57:54 +0100
-Subject: [PATCH 187/256] rcu-more-fallout.patch
+Subject: [PATCH 187/267] rcu-more-fallout.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0188-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/patches/0188-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
index 63502ed..347cbae 100644
--- a/patches/0188-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
+++ b/patches/0188-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch
@@ -1,7 +1,7 @@
From 54c5b37a9fe006fec148f43d3cbdcc2d8221b2ee Mon Sep 17 00:00:00 2001
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Date: Wed, 5 Oct 2011 11:45:18 -0700
-Subject: [PATCH 188/256] rcu: Make ksoftirqd do RCU quiescent states
+Subject: [PATCH 188/267] rcu: Make ksoftirqd do RCU quiescent states
Implementing RCU-bh in terms of RCU-preempt makes the system vulnerable
to network-based denial-of-service attacks. This patch therefore
diff --git a/patches/0189-rcu-Fix-build-break.patch b/patches/0189-rcu-Fix-build-break.patch
index 6302e38..f562ee7 100644
--- a/patches/0189-rcu-Fix-build-break.patch
+++ b/patches/0189-rcu-Fix-build-break.patch
@@ -1,7 +1,7 @@
From 1516657b9f046ff3d8091a556863bda9c891e314 Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 13 Apr 2012 12:54:21 +0200
-Subject: [PATCH 189/256] rcu: Fix build break
+Subject: [PATCH 189/267] rcu: Fix build break
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
diff --git a/patches/0190-rt-rcutree-Move-misplaced-prototype.patch b/patches/0190-rt-rcutree-Move-misplaced-prototype.patch
index a7327d8..504465b 100644
--- a/patches/0190-rt-rcutree-Move-misplaced-prototype.patch
+++ b/patches/0190-rt-rcutree-Move-misplaced-prototype.patch
@@ -1,7 +1,7 @@
From 2b9c6eb39777cbe4d3b9cfbd293fc683c5e10da6 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Wed, 14 Dec 2011 12:51:28 +0100
-Subject: [PATCH 190/256] rt/rcutree: Move misplaced prototype
+Subject: [PATCH 190/267] rt/rcutree: Move misplaced prototype
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
diff --git a/patches/0191-lglocks-rt.patch.patch b/patches/0191-lglocks-rt.patch.patch
index 38b32b3..768a16b 100644
--- a/patches/0191-lglocks-rt.patch.patch
+++ b/patches/0191-lglocks-rt.patch.patch
@@ -1,7 +1,7 @@
From 1ae3c12ddb6ad4e84d6d507e724921d55373a649 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 15 Jun 2011 11:02:21 +0200
-Subject: [PATCH 191/256] lglocks-rt.patch
+Subject: [PATCH 191/267] lglocks-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0192-serial-8250-Clean-up-the-locking-for-rt.patch b/patches/0192-serial-8250-Clean-up-the-locking-for-rt.patch
index 708a425..3ddd442 100644
--- a/patches/0192-serial-8250-Clean-up-the-locking-for-rt.patch
+++ b/patches/0192-serial-8250-Clean-up-the-locking-for-rt.patch
@@ -1,7 +1,7 @@
From 6503c468cedb29732e4dd282219e3d311837e031 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:01 -0500
-Subject: [PATCH 192/256] serial: 8250: Clean up the locking for -rt
+Subject: [PATCH 192/267] serial: 8250: Clean up the locking for -rt
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
diff --git a/patches/0193-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch b/patches/0193-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
index a22642b..2c8b633 100644
--- a/patches/0193-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
+++ b/patches/0193-serial-8250-Call-flush_to_ldisc-when-the-irq-is-thre.patch
@@ -1,7 +1,7 @@
From e447d6e43e11faf76069bfabd1d43c1a55bc57aa Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Fri, 3 Jul 2009 08:30:01 -0500
-Subject: [PATCH 193/256] serial: 8250: Call flush_to_ldisc when the irq is
+Subject: [PATCH 193/267] serial: 8250: Call flush_to_ldisc when the irq is
threaded
Signed-off-by: Ingo Molnar <mingo@elte.hu>
diff --git a/patches/0194-drivers-tty-fix-omap-lock-crap.patch.patch b/patches/0194-drivers-tty-fix-omap-lock-crap.patch.patch
index d65ab82..f0904ed 100644
--- a/patches/0194-drivers-tty-fix-omap-lock-crap.patch.patch
+++ b/patches/0194-drivers-tty-fix-omap-lock-crap.patch.patch
@@ -1,7 +1,7 @@
From 3cbc89cb4588fb756ae01316e2652119eb6dd5fc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 28 Jul 2011 13:32:57 +0200
-Subject: [PATCH 194/256] drivers-tty-fix-omap-lock-crap.patch
+Subject: [PATCH 194/267] drivers-tty-fix-omap-lock-crap.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch b/patches/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
index 010294d..9929bfd 100644
--- a/patches/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
+++ b/patches/0195-rt-Improve-the-serial-console-PASS_LIMIT.patch
@@ -1,7 +1,7 @@
From ed2487dbf09bdff49c997cadf6e0484c27e10a31 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Wed, 14 Dec 2011 13:05:54 +0100
-Subject: [PATCH 195/256] rt: Improve the serial console PASS_LIMIT
+Subject: [PATCH 195/267] rt: Improve the serial console PASS_LIMIT
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
diff --git a/patches/0196-fs-namespace-preemption-fix.patch b/patches/0196-fs-namespace-preemption-fix.patch
index 6c1cbac..05cfb6e 100644
--- a/patches/0196-fs-namespace-preemption-fix.patch
+++ b/patches/0196-fs-namespace-preemption-fix.patch
@@ -1,7 +1,7 @@
From 02c6cb04ae86544743ced9468bb81a8659473acc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 19 Jul 2009 08:44:27 -0500
-Subject: [PATCH 196/256] fs: namespace preemption fix
+Subject: [PATCH 196/267] fs: namespace preemption fix
On RT we cannot loop with preemption disabled here as
mnt_make_readonly() might have been preempted. We can safely enable
diff --git a/patches/0197-mm-protect-activate-switch-mm.patch.patch b/patches/0197-mm-protect-activate-switch-mm.patch.patch
index e23ba47..9432034 100644
--- a/patches/0197-mm-protect-activate-switch-mm.patch.patch
+++ b/patches/0197-mm-protect-activate-switch-mm.patch.patch
@@ -1,7 +1,7 @@
From cdcb2a340e5ba784a9b7531ba1f5963076025b4b Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 4 Jul 2011 09:48:40 +0200
-Subject: [PATCH 197/256] mm-protect-activate-switch-mm.patch
+Subject: [PATCH 197/267] mm-protect-activate-switch-mm.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0198-mm-Protect-activate_mm-by-preempt_-disable-7Cenable-.patch b/patches/0198-mm-Protect-activate_mm-by-preempt_-disable-7Cenable-.patch
index 4dbe2c1..65614cf 100644
--- a/patches/0198-mm-Protect-activate_mm-by-preempt_-disable-7Cenable-.patch
+++ b/patches/0198-mm-Protect-activate_mm-by-preempt_-disable-7Cenable-.patch
@@ -1,7 +1,7 @@
From 2c67da76777adecd1e2957e2e723f7c2981ea699 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang@windriver.com>
Date: Tue, 15 May 2012 13:53:56 +0800
-Subject: [PATCH 198/256] mm: Protect activate_mm() by
+Subject: [PATCH 198/267] mm: Protect activate_mm() by
preempt_[disable%7Cenable]_rt()
Otherwise there will be warning on ARM like below:
diff --git a/patches/0199-fs-block-rt-support.patch.patch b/patches/0199-fs-block-rt-support.patch.patch
index 0a7483c..15359c6 100644
--- a/patches/0199-fs-block-rt-support.patch.patch
+++ b/patches/0199-fs-block-rt-support.patch.patch
@@ -1,7 +1,7 @@
From 144c78a3b223b226689db343fedd8d47fbd7dc2d Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 14 Jun 2011 17:05:09 +0200
-Subject: [PATCH 199/256] fs-block-rt-support.patch
+Subject: [PATCH 199/267] fs-block-rt-support.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0200-fs-ntfs-disable-interrupt-only-on-RT.patch b/patches/0200-fs-ntfs-disable-interrupt-only-on-RT.patch
index a83627f..ac359de 100644
--- a/patches/0200-fs-ntfs-disable-interrupt-only-on-RT.patch
+++ b/patches/0200-fs-ntfs-disable-interrupt-only-on-RT.patch
@@ -1,7 +1,7 @@
From 8cd9691b9af403d1373b92eaeaa06ba645cb3e26 Mon Sep 17 00:00:00 2001
From: Mike Galbraith <efault@gmx.de>
Date: Fri, 3 Jul 2009 08:44:12 -0500
-Subject: [PATCH 200/256] fs: ntfs: disable interrupt only on !RT
+Subject: [PATCH 200/267] fs: ntfs: disable interrupt only on !RT
On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote:
> * Nick Piggin <nickpiggin@yahoo.com.au> wrote:
diff --git a/patches/0201-x86-Convert-mce-timer-to-hrtimer.patch b/patches/0201-x86-Convert-mce-timer-to-hrtimer.patch
index 262326f..fad2071 100644
--- a/patches/0201-x86-Convert-mce-timer-to-hrtimer.patch
+++ b/patches/0201-x86-Convert-mce-timer-to-hrtimer.patch
@@ -1,7 +1,7 @@
From 2c728e0eebc0bf674feaa43bc371ace1e030d2a0 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 13 Dec 2010 16:33:39 +0100
-Subject: [PATCH 201/256] x86: Convert mce timer to hrtimer
+Subject: [PATCH 201/267] x86: Convert mce timer to hrtimer
mce_timer is started in atomic contexts of cpu bringup. This results
in might_sleep() warnings on RT. Convert mce_timer to a hrtimer to
diff --git a/patches/0202-x86-stackprotector-Avoid-random-pool-on-rt.patch b/patches/0202-x86-stackprotector-Avoid-random-pool-on-rt.patch
index 7d30eea..f3f531b 100644
--- a/patches/0202-x86-stackprotector-Avoid-random-pool-on-rt.patch
+++ b/patches/0202-x86-stackprotector-Avoid-random-pool-on-rt.patch
@@ -1,7 +1,7 @@
From 04705414e3888c7ec92de828510fd5d0731713fc Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 16 Dec 2010 14:25:18 +0100
-Subject: [PATCH 202/256] x86: stackprotector: Avoid random pool on rt
+Subject: [PATCH 202/267] x86: stackprotector: Avoid random pool on rt
CPU bringup calls into the random pool to initialize the stack
canary. During boot that works nicely even on RT as the might sleep
diff --git a/patches/0203-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/patches/0203-x86-Use-generic-rwsem_spinlocks-on-rt.patch
index c1bf488..7c2699b 100644
--- a/patches/0203-x86-Use-generic-rwsem_spinlocks-on-rt.patch
+++ b/patches/0203-x86-Use-generic-rwsem_spinlocks-on-rt.patch
@@ -1,7 +1,7 @@
From 828f2c41971123b04b3fea44459e0ff642b917f7 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 26 Jul 2009 02:21:32 +0200
-Subject: [PATCH 203/256] x86: Use generic rwsem_spinlocks on -rt
+Subject: [PATCH 203/267] x86: Use generic rwsem_spinlocks on -rt
Simplifies the separation of anon_rw_semaphores and rw_semaphores for
-rt.
diff --git a/patches/0204-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch b/patches/0204-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
index 2c1f6e9..f5354fa 100644
--- a/patches/0204-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
+++ b/patches/0204-x86-Disable-IST-stacks-for-debug-int-3-stack-fault-f.patch
@@ -1,7 +1,7 @@
From e95297fb065f625d14e6eefa32bc89936b24225f Mon Sep 17 00:00:00 2001
From: Andi Kleen <ak@suse.de>
Date: Fri, 3 Jul 2009 08:44:10 -0500
-Subject: [PATCH 204/256] x86: Disable IST stacks for debug/int 3/stack fault
+Subject: [PATCH 204/267] x86: Disable IST stacks for debug/int 3/stack fault
for PREEMPT_RT
Normally the x86-64 trap handlers for debug/int 3/stack fault run
diff --git a/patches/0205-workqueue-use-get-cpu-light.patch.patch b/patches/0205-workqueue-use-get-cpu-light.patch.patch
index 527e4ea..9504e2f 100644
--- a/patches/0205-workqueue-use-get-cpu-light.patch.patch
+++ b/patches/0205-workqueue-use-get-cpu-light.patch.patch
@@ -1,7 +1,7 @@
From 08ce4a26ff20830b3207a1a30506a234bc29d652 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:42:26 +0200
-Subject: [PATCH 205/256] workqueue-use-get-cpu-light.patch
+Subject: [PATCH 205/267] workqueue-use-get-cpu-light.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0206-epoll.patch.patch b/patches/0206-epoll.patch.patch
index 02ee005..8eb9b15 100644
--- a/patches/0206-epoll.patch.patch
+++ b/patches/0206-epoll.patch.patch
@@ -1,7 +1,7 @@
From e00039cd78706b8e320bb3009c12991e4ec6e303 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 8 Jul 2011 16:35:35 +0200
-Subject: [PATCH 206/256] epoll.patch
+Subject: [PATCH 206/267] epoll.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0207-mm-vmalloc.patch.patch b/patches/0207-mm-vmalloc.patch.patch
index f679181..ceecb7c 100644
--- a/patches/0207-mm-vmalloc.patch.patch
+++ b/patches/0207-mm-vmalloc.patch.patch
@@ -1,7 +1,7 @@
From 05db36ad1189931deb244e393d42c684af76ef5e Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 12 Jul 2011 11:39:36 +0200
-Subject: [PATCH 207/256] mm-vmalloc.patch
+Subject: [PATCH 207/267] mm-vmalloc.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0208-workqueue-Fix-cpuhotplug-trainwreck.patch b/patches/0208-workqueue-Fix-cpuhotplug-trainwreck.patch
index 9dcb37f..5cd8645 100644
--- a/patches/0208-workqueue-Fix-cpuhotplug-trainwreck.patch
+++ b/patches/0208-workqueue-Fix-cpuhotplug-trainwreck.patch
@@ -1,7 +1,7 @@
From 5e6a742920db44d54cbd1826318a2af372c36bf4 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Fri, 30 Sep 2011 11:57:58 +0200
-Subject: [PATCH 208/256] workqueue: Fix cpuhotplug trainwreck
+Subject: [PATCH 208/267] workqueue: Fix cpuhotplug trainwreck
The current workqueue code does crazy stuff on cpu unplug, it relies on
forced affine breakage, thereby violating per-cpu expectations. Worse,
diff --git a/patches/0209-workqueue-Fix-PF_THREAD_BOUND-abuse.patch b/patches/0209-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
index 3eaedfe..51aa832 100644
--- a/patches/0209-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
+++ b/patches/0209-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
@@ -1,7 +1,7 @@
From 6d2f6a81b2bd6fb3f5d53cf855661e6d718ddb88 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Mon, 3 Oct 2011 12:43:25 +0200
-Subject: [PATCH 209/256] workqueue: Fix PF_THREAD_BOUND abuse
+Subject: [PATCH 209/267] workqueue: Fix PF_THREAD_BOUND abuse
PF_THREAD_BOUND is set by kthread_bind() and means the thread is bound
to a particular cpu for correctness. The workqueue code abuses this
diff --git a/patches/0210-workqueue-Use-get_cpu_light-in-flush_gcwq.patch b/patches/0210-workqueue-Use-get_cpu_light-in-flush_gcwq.patch
index f5caf0d..cbd5599 100644
--- a/patches/0210-workqueue-Use-get_cpu_light-in-flush_gcwq.patch
+++ b/patches/0210-workqueue-Use-get_cpu_light-in-flush_gcwq.patch
@@ -1,7 +1,7 @@
From 0e6b40521d705113621a8ef227822305c6f24937 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang0@gmail.com>
Date: Sun, 16 Oct 2011 18:56:46 +0800
-Subject: [PATCH 210/256] workqueue: Use get_cpu_light() in flush_gcwq()
+Subject: [PATCH 210/267] workqueue: Use get_cpu_light() in flush_gcwq()
BUG: sleeping function called from invalid context at kernel/rtmutex.c:645
in_atomic(): 1, irqs_disabled(): 0, pid: 1739, name: bash
diff --git a/patches/0211-hotplug-stuff.patch.patch b/patches/0211-hotplug-stuff.patch.patch
index ebd398a..b82bbf3 100644
--- a/patches/0211-hotplug-stuff.patch.patch
+++ b/patches/0211-hotplug-stuff.patch.patch
@@ -1,7 +1,7 @@
From b6236cc57ae8c04321374b19c836dd6cd0311577 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 4 Nov 2011 18:58:24 +0100
-Subject: [PATCH 211/256] hotplug-stuff.patch
+Subject: [PATCH 211/267] hotplug-stuff.patch
Do not take lock for non handled cases (might be atomic context)
diff --git a/patches/0212-debugobjects-rt.patch.patch b/patches/0212-debugobjects-rt.patch.patch
index ca85061..9c239cf 100644
--- a/patches/0212-debugobjects-rt.patch.patch
+++ b/patches/0212-debugobjects-rt.patch.patch
@@ -1,7 +1,7 @@
From 2c1ab83538ba04ad97c40e6901264116946bd2e6 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 21:41:35 +0200
-Subject: [PATCH 212/256] debugobjects-rt.patch
+Subject: [PATCH 212/267] debugobjects-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0213-jump-label-rt.patch.patch b/patches/0213-jump-label-rt.patch.patch
index c908c05..2c522ef 100644
--- a/patches/0213-jump-label-rt.patch.patch
+++ b/patches/0213-jump-label-rt.patch.patch
@@ -1,7 +1,7 @@
From 5ec9a9a754ce7dd17932e66e12a9754c9d14ea28 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 13 Jul 2011 11:03:16 +0200
-Subject: [PATCH 213/256] jump-label-rt.patch
+Subject: [PATCH 213/267] jump-label-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0214-skbufhead-raw-lock.patch.patch b/patches/0214-skbufhead-raw-lock.patch.patch
index 1d7a994..c91d98e 100644
--- a/patches/0214-skbufhead-raw-lock.patch.patch
+++ b/patches/0214-skbufhead-raw-lock.patch.patch
@@ -1,7 +1,7 @@
From b27d25a2928bb69b76ba3be5b4a2416a8106e7b2 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 12 Jul 2011 15:38:34 +0200
-Subject: [PATCH 214/256] skbufhead-raw-lock.patch
+Subject: [PATCH 214/267] skbufhead-raw-lock.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0215-x86-no-perf-irq-work-rt.patch.patch b/patches/0215-x86-no-perf-irq-work-rt.patch.patch
index 83b2f92..c8c0f70 100644
--- a/patches/0215-x86-no-perf-irq-work-rt.patch.patch
+++ b/patches/0215-x86-no-perf-irq-work-rt.patch.patch
@@ -1,7 +1,7 @@
From e52603f78af80f021e98e5e2d1015e15dbe8f013 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 13 Jul 2011 14:05:05 +0200
-Subject: [PATCH 215/256] x86-no-perf-irq-work-rt.patch
+Subject: [PATCH 215/267] x86-no-perf-irq-work-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0216-console-make-rt-friendly.patch.patch b/patches/0216-console-make-rt-friendly.patch.patch
index eedf9d9..4cc3c2b 100644
--- a/patches/0216-console-make-rt-friendly.patch.patch
+++ b/patches/0216-console-make-rt-friendly.patch.patch
@@ -1,7 +1,7 @@
From b059c158cfd24162673d862d1d59700da17b74f9 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 17 Jul 2011 22:43:07 +0200
-Subject: [PATCH 216/256] console-make-rt-friendly.patch
+Subject: [PATCH 216/267] console-make-rt-friendly.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0217-fix-printk-flush-of-messages.patch b/patches/0217-fix-printk-flush-of-messages.patch
index 8ceb5af..35fe1ef 100644
--- a/patches/0217-fix-printk-flush-of-messages.patch
+++ b/patches/0217-fix-printk-flush-of-messages.patch
@@ -1,7 +1,7 @@
From c701c74b786949d0f2b02212ae0bd18800818a1b Mon Sep 17 00:00:00 2001
From: Frank Rowand <frank.rowand@am.sony.com>
Date: Wed, 16 May 2012 18:09:36 -0700
-Subject: [PATCH 217/256] fix printk flush of messages
+Subject: [PATCH 217/267] fix printk flush of messages
Updates console-make-rt-friendly.patch
diff --git a/patches/0218-power-use-generic-rwsem-on-rt.patch b/patches/0218-power-use-generic-rwsem-on-rt.patch
index ccadaaa..7a9e3ce 100644
--- a/patches/0218-power-use-generic-rwsem-on-rt.patch
+++ b/patches/0218-power-use-generic-rwsem-on-rt.patch
@@ -1,7 +1,7 @@
From 74ab33822266a1afaf9c656a8d5a59355df989d7 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Thu, 7 Jun 2012 07:47:08 -0400
-Subject: [PATCH 218/256] power-use-generic-rwsem-on-rt
+Subject: [PATCH 218/267] power-use-generic-rwsem-on-rt
---
arch/powerpc/Kconfig | 3 ++-
diff --git a/patches/0219-power-disable-highmem-on-rt.patch.patch b/patches/0219-power-disable-highmem-on-rt.patch.patch
index 2e89280..28c5657 100644
--- a/patches/0219-power-disable-highmem-on-rt.patch.patch
+++ b/patches/0219-power-disable-highmem-on-rt.patch.patch
@@ -1,7 +1,7 @@
From b0c5b2c481c27ca0c81463536b9fd60e0375b1e6 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:08:34 +0200
-Subject: [PATCH 219/256] power-disable-highmem-on-rt.patch
+Subject: [PATCH 219/267] power-disable-highmem-on-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0220-arm-disable-highmem-on-rt.patch.patch b/patches/0220-arm-disable-highmem-on-rt.patch.patch
index cf2cd6a..db315d7 100644
--- a/patches/0220-arm-disable-highmem-on-rt.patch.patch
+++ b/patches/0220-arm-disable-highmem-on-rt.patch.patch
@@ -1,7 +1,7 @@
From 258667122b870cded6481bb169c1cc4fc28d6913 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:09:28 +0200
-Subject: [PATCH 220/256] arm-disable-highmem-on-rt.patch
+Subject: [PATCH 220/267] arm-disable-highmem-on-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0221-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch b/patches/0221-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
index 162e619..0be7546 100644
--- a/patches/0221-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
+++ b/patches/0221-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch
@@ -1,7 +1,7 @@
From e1833c8a323d39284e16ea1d483a43ea3e210291 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 1 May 2010 18:29:35 +0200
-Subject: [PATCH 221/256] ARM: at91: tclib: Default to tclib timer for RT
+Subject: [PATCH 221/267] ARM: at91: tclib: Default to tclib timer for RT
RT is not too happy about the shared timer interrupt in AT91
devices. Default to tclib timer for RT.
diff --git a/patches/0222-mips-disable-highmem-on-rt.patch.patch b/patches/0222-mips-disable-highmem-on-rt.patch.patch
index 8341958..d485a80 100644
--- a/patches/0222-mips-disable-highmem-on-rt.patch.patch
+++ b/patches/0222-mips-disable-highmem-on-rt.patch.patch
@@ -1,7 +1,7 @@
From 51c704a93041eb2ec8f017736454fc28aeeb316f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jul 2011 17:10:12 +0200
-Subject: [PATCH 222/256] mips-disable-highmem-on-rt.patch
+Subject: [PATCH 222/267] mips-disable-highmem-on-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0223-net-Avoid-livelock-in-net_tx_action-on-RT.patch b/patches/0223-net-Avoid-livelock-in-net_tx_action-on-RT.patch
index ce36ace..69077f8 100644
--- a/patches/0223-net-Avoid-livelock-in-net_tx_action-on-RT.patch
+++ b/patches/0223-net-Avoid-livelock-in-net_tx_action-on-RT.patch
@@ -1,7 +1,7 @@
From 844cc03c2ba864198fb326f63e8b3c8ec288f8ef Mon Sep 17 00:00:00 2001
From: Steven Rostedt <srostedt@redhat.com>
Date: Thu, 6 Oct 2011 10:48:39 -0400
-Subject: [PATCH 223/256] net: Avoid livelock in net_tx_action() on RT
+Subject: [PATCH 223/267] net: Avoid livelock in net_tx_action() on RT
qdisc_lock is taken w/o disabling interrupts or bottom halfs. So code
holding a qdisc_lock() can be interrupted and softirqs can run on the
diff --git a/patches/0224-ping-sysrq.patch.patch b/patches/0224-ping-sysrq.patch.patch
index 18ab925..8f504ba 100644
--- a/patches/0224-ping-sysrq.patch.patch
+++ b/patches/0224-ping-sysrq.patch.patch
@@ -1,7 +1,7 @@
From c03b593dacf8da19b3422391c38a566fba3d7a02 Mon Sep 17 00:00:00 2001
From: Carsten Emde <C.Emde@osadl.org>
Date: Tue, 19 Jul 2011 13:51:17 +0100
-Subject: [PATCH 224/256] ping-sysrq.patch
+Subject: [PATCH 224/267] ping-sysrq.patch
There are (probably rare) situations when a system crashed and the system
console becomes unresponsive but the network icmp layer still is alive.
diff --git a/patches/0225-kgdb-serial-Short-term-workaround.patch b/patches/0225-kgdb-serial-Short-term-workaround.patch
index e497eec..339881c 100644
--- a/patches/0225-kgdb-serial-Short-term-workaround.patch
+++ b/patches/0225-kgdb-serial-Short-term-workaround.patch
@@ -1,7 +1,7 @@
From 0eba936278d1f093cf1b178ab6baff17d4c9fb59 Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Thu, 28 Jul 2011 12:42:23 -0500
-Subject: [PATCH 225/256] kgdb/serial: Short term workaround
+Subject: [PATCH 225/267] kgdb/serial: Short term workaround
On 07/27/2011 04:37 PM, Thomas Gleixner wrote:
> - KGDB (not yet disabled) is reportedly unusable on -rt right now due
diff --git a/patches/0226-add-sys-kernel-realtime-entry.patch b/patches/0226-add-sys-kernel-realtime-entry.patch
index 16a96ae..edd53b2 100644
--- a/patches/0226-add-sys-kernel-realtime-entry.patch
+++ b/patches/0226-add-sys-kernel-realtime-entry.patch
@@ -1,7 +1,7 @@
From 336159d79ec5b0b15dccae3ea19328d433042f47 Mon Sep 17 00:00:00 2001
From: Clark Williams <williams@redhat.com>
Date: Sat, 30 Jul 2011 21:55:53 -0500
-Subject: [PATCH 226/256] add /sys/kernel/realtime entry
+Subject: [PATCH 226/267] add /sys/kernel/realtime entry
Add a /sys/kernel entry to indicate that the kernel is a
realtime kernel.
diff --git a/patches/0227-mm-rt-kmap_atomic-scheduling.patch b/patches/0227-mm-rt-kmap_atomic-scheduling.patch
index 0cac4d3..a533af4 100644
--- a/patches/0227-mm-rt-kmap_atomic-scheduling.patch
+++ b/patches/0227-mm-rt-kmap_atomic-scheduling.patch
@@ -1,7 +1,7 @@
From f7c2456d5d8fa2dfc1b2e91fb6e9a750472c168a Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Thu, 28 Jul 2011 10:43:51 +0200
-Subject: [PATCH 227/256] mm, rt: kmap_atomic scheduling
+Subject: [PATCH 227/267] mm, rt: kmap_atomic scheduling
In fact, with migrate_disable() existing one could play games with
kmap_atomic. You could save/restore the kmap_atomic slots on context
diff --git a/patches/0228-ipc-sem-Rework-semaphore-wakeups.patch b/patches/0228-ipc-sem-Rework-semaphore-wakeups.patch
index 51ea422..e29d8f1 100644
--- a/patches/0228-ipc-sem-Rework-semaphore-wakeups.patch
+++ b/patches/0228-ipc-sem-Rework-semaphore-wakeups.patch
@@ -1,7 +1,7 @@
From 8654f9ddc402aa902c8573788ca744c0f602c7b7 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Tue, 13 Sep 2011 15:09:40 +0200
-Subject: [PATCH 228/256] ipc/sem: Rework semaphore wakeups
+Subject: [PATCH 228/267] ipc/sem: Rework semaphore wakeups
Current sysv sems have a weird ass wakeup scheme that involves keeping
preemption disabled over a potential O(n^2) loop and busy waiting on
diff --git a/patches/0229-x86-kvm-require-const-tsc-for-rt.patch.patch b/patches/0229-x86-kvm-require-const-tsc-for-rt.patch.patch
index f27c13a..33fb0a3 100644
--- a/patches/0229-x86-kvm-require-const-tsc-for-rt.patch.patch
+++ b/patches/0229-x86-kvm-require-const-tsc-for-rt.patch.patch
@@ -1,7 +1,7 @@
From e805ad7e1c2b49b0b817f7b2afa66c2a409c3f30 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 6 Nov 2011 12:26:18 +0100
-Subject: [PATCH 229/256] x86-kvm-require-const-tsc-for-rt.patch
+Subject: [PATCH 229/267] x86-kvm-require-const-tsc-for-rt.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0230-scsi-fcoe-rt-aware.patch.patch b/patches/0230-scsi-fcoe-rt-aware.patch.patch
index d08bd2e..09e0018 100644
--- a/patches/0230-scsi-fcoe-rt-aware.patch.patch
+++ b/patches/0230-scsi-fcoe-rt-aware.patch.patch
@@ -1,7 +1,7 @@
From 123b09bb43cd35bb64a91c8695a71df65d1e0f78 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sat, 12 Nov 2011 14:00:48 +0100
-Subject: [PATCH 230/256] scsi-fcoe-rt-aware.patch
+Subject: [PATCH 230/267] scsi-fcoe-rt-aware.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0231-x86-crypto-Reduce-preempt-disabled-regions.patch b/patches/0231-x86-crypto-Reduce-preempt-disabled-regions.patch
index ea58bb0..8e44e11 100644
--- a/patches/0231-x86-crypto-Reduce-preempt-disabled-regions.patch
+++ b/patches/0231-x86-crypto-Reduce-preempt-disabled-regions.patch
@@ -1,7 +1,7 @@
From d6cb28d2349412e322b5ae1a8fd925326abe2224 Mon Sep 17 00:00:00 2001
From: Peter Zijlstra <peterz@infradead.org>
Date: Mon, 14 Nov 2011 18:19:27 +0100
-Subject: [PATCH 231/256] x86: crypto: Reduce preempt disabled regions
+Subject: [PATCH 231/267] x86: crypto: Reduce preempt disabled regions
Restrict the preempt disabled regions to the actual floating point
operations and enable preemption for the administrative actions.
diff --git a/patches/0232-dm-Make-rt-aware.patch b/patches/0232-dm-Make-rt-aware.patch
index 0f834d5..60b197e 100644
--- a/patches/0232-dm-Make-rt-aware.patch
+++ b/patches/0232-dm-Make-rt-aware.patch
@@ -1,7 +1,7 @@
From fade21f9f82ea6e0b42364a6e3d49f0450722afb Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 14 Nov 2011 23:06:09 +0100
-Subject: [PATCH 232/256] dm: Make rt aware
+Subject: [PATCH 232/267] dm: Make rt aware
Use the BUG_ON_NORT variant for the irq_disabled() checks. RT has
interrupts legitimately enabled here as we cant deadlock against the
diff --git a/patches/0233-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/patches/0233-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
index b8ec60a..024efc3 100644
--- a/patches/0233-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
+++ b/patches/0233-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch
@@ -1,7 +1,7 @@
From ce185e640e2da8f73059ddd561a8b1ffac0fc91f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 14 Dec 2011 01:03:49 +0100
-Subject: [PATCH 233/256] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
+Subject: [PATCH 233/267] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
We can't deal with the cpumask allocations which happen in atomic
context (see arch/x86/kernel/apic/io_apic.c) on RT right now.
diff --git a/patches/0234-seqlock-Prevent-rt-starvation.patch b/patches/0234-seqlock-Prevent-rt-starvation.patch
index 3e0c68a..f5676fd 100644
--- a/patches/0234-seqlock-Prevent-rt-starvation.patch
+++ b/patches/0234-seqlock-Prevent-rt-starvation.patch
@@ -1,7 +1,7 @@
From bc7c3dc37654e8cf7fb12264d7cf31e595d80c25 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 22 Feb 2012 12:03:30 +0100
-Subject: [PATCH 234/256] seqlock: Prevent rt starvation
+Subject: [PATCH 234/267] seqlock: Prevent rt starvation
If a low prio writer gets preempted while holding the seqlock write
locked, a high prio reader spins forever on RT.
diff --git a/patches/0235-timer-Fix-hotplug-for-rt.patch b/patches/0235-timer-Fix-hotplug-for-rt.patch
index b2a9cc7..70d1c0a 100644
--- a/patches/0235-timer-Fix-hotplug-for-rt.patch
+++ b/patches/0235-timer-Fix-hotplug-for-rt.patch
@@ -1,7 +1,7 @@
From 818f63a2fd1445b9723502079135aa8101486de1 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 1 Mar 2012 13:55:28 -0500
-Subject: [PATCH 235/256] timer: Fix hotplug for -rt
+Subject: [PATCH 235/267] timer: Fix hotplug for -rt
Revert the RT patch:
Author: Ingo Molnar <mingo@elte.hu>
diff --git a/patches/0236-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch b/patches/0236-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
index e58b2d1..210d12e 100644
--- a/patches/0236-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
+++ b/patches/0236-futex-rt-Fix-possible-lockup-when-taking-pi_lock-in-.patch
@@ -1,7 +1,7 @@
From 5f34c2fecd000fa56735d08a735a1ae2e4d41f9c Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 1 Mar 2012 13:55:29 -0500
-Subject: [PATCH 236/256] futex/rt: Fix possible lockup when taking pi_lock in
+Subject: [PATCH 236/267] futex/rt: Fix possible lockup when taking pi_lock in
proxy handler
When taking the pi_lock, we must disable interrupts because the
diff --git a/patches/0237-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch b/patches/0237-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
index c9c5d40..6d61c47 100644
--- a/patches/0237-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
+++ b/patches/0237-ring-buffer-rt-Check-for-irqs-disabled-before-grabbi.patch
@@ -1,7 +1,7 @@
From d1cd4f9d663188da0abaca7e35186955434030c5 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 1 Mar 2012 13:55:32 -0500
-Subject: [PATCH 237/256] ring-buffer/rt: Check for irqs disabled before
+Subject: [PATCH 237/267] ring-buffer/rt: Check for irqs disabled before
grabbing reader lock
In RT the reader lock is a mutex and we can not grab it when preemption is
diff --git a/patches/0238-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch b/patches/0238-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
index b80c550..4f8d6aa 100644
--- a/patches/0238-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
+++ b/patches/0238-sched-rt-Fix-wait_task_interactive-to-test-rt_spin_l.patch
@@ -1,7 +1,7 @@
From 61b20fa24de8e05b9156f00953b223ad15076808 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 1 Mar 2012 13:55:33 -0500
-Subject: [PATCH 238/256] sched/rt: Fix wait_task_interactive() to test
+Subject: [PATCH 238/267] sched/rt: Fix wait_task_interactive() to test
rt_spin_lock state
The wait_task_interactive() will have a task sleep waiting for another
diff --git a/patches/0239-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch b/patches/0239-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
index 2f622aa..32a2991 100644
--- a/patches/0239-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
+++ b/patches/0239-lglock-rt-Use-non-rt-for_each_cpu-in-rt-code.patch
@@ -1,7 +1,7 @@
From 3a56741dc30e11b2df958377c2bc9a6f603ef990 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Thu, 1 Mar 2012 13:55:30 -0500
-Subject: [PATCH 239/256] lglock/rt: Use non-rt for_each_cpu() in -rt code
+Subject: [PATCH 239/267] lglock/rt: Use non-rt for_each_cpu() in -rt code
Currently the RT version of the lglocks() does a for_each_online_cpu()
in the name##_global_lock_online() functions. Non-rt uses its own
diff --git a/patches/0240-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch b/patches/0240-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
index 95769d6..a42bcaf 100644
--- a/patches/0240-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
+++ b/patches/0240-cpu-Make-hotplug.lock-a-sleeping-spinlock-on-RT.patch
@@ -1,7 +1,7 @@
From c6bd5675cda088dacd4f09bf7a6ebbaafa581589 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <rostedt@goodmis.org>
Date: Fri, 2 Mar 2012 10:36:57 -0500
-Subject: [PATCH 240/256] cpu: Make hotplug.lock a "sleeping" spinlock on RT
+Subject: [PATCH 240/267] cpu: Make hotplug.lock a "sleeping" spinlock on RT
Tasks can block on hotplug.lock in pin_current_cpu(), but their state
might be != RUNNING. So the mutex wakeup will set the state
diff --git a/patches/0241-softirq-Check-preemption-after-reenabling-interrupts.patch b/patches/0241-softirq-Check-preemption-after-reenabling-interrupts.patch
index ddfec33..62971a7 100644
--- a/patches/0241-softirq-Check-preemption-after-reenabling-interrupts.patch
+++ b/patches/0241-softirq-Check-preemption-after-reenabling-interrupts.patch
@@ -1,7 +1,7 @@
From d0af9326880d64fe4c2d2940e692c6bc93031d64 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 13 Nov 2011 17:17:09 +0100
-Subject: [PATCH 241/256] softirq: Check preemption after reenabling
+Subject: [PATCH 241/267] softirq: Check preemption after reenabling
interrupts
raise_softirq_irqoff() disables interrupts and wakes the softirq
diff --git a/patches/0242-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch b/patches/0242-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
index 2ca860f..2f28755 100644
--- a/patches/0242-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
+++ b/patches/0242-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch
@@ -1,7 +1,7 @@
From 5a4b2e924ae169d59702be5635169c483bd1b15f Mon Sep 17 00:00:00 2001
From: John Kacur <jkacur@redhat.com>
Date: Fri, 27 Apr 2012 12:48:46 +0200
-Subject: [PATCH 242/256] scsi: qla2xxx: Use local_irq_save_nort() in
+Subject: [PATCH 242/267] scsi: qla2xxx: Use local_irq_save_nort() in
qla2x00_poll
RT triggers the following:
diff --git a/patches/0243-net-RT-REmove-preemption-disabling-in-netif_rx.patch b/patches/0243-net-RT-REmove-preemption-disabling-in-netif_rx.patch
index 76ddec3..b88b130 100644
--- a/patches/0243-net-RT-REmove-preemption-disabling-in-netif_rx.patch
+++ b/patches/0243-net-RT-REmove-preemption-disabling-in-netif_rx.patch
@@ -1,7 +1,7 @@
From 42a13452102effbafe38310e7bfb4f79a92c3801 Mon Sep 17 00:00:00 2001
From: Priyanka Jain <Priyanka.Jain@freescale.com>
Date: Thu, 17 May 2012 09:35:11 +0530
-Subject: [PATCH 243/256] net,RT:REmove preemption disabling in netif_rx()
+Subject: [PATCH 243/267] net,RT:REmove preemption disabling in netif_rx()
1)enqueue_to_backlog() (called from netif_rx) should be
bind to a particluar CPU. This can be achieved by
diff --git a/patches/0244-rt-Introduce-cpu_chill.patch b/patches/0244-rt-Introduce-cpu_chill.patch
index 92fdc6b..d1225bd 100644
--- a/patches/0244-rt-Introduce-cpu_chill.patch
+++ b/patches/0244-rt-Introduce-cpu_chill.patch
@@ -1,7 +1,7 @@
From 00fa0b57d2e9dcfc2482e72e85111776fac22e53 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 7 Mar 2012 20:51:03 +0100
-Subject: [PATCH 244/256] rt: Introduce cpu_chill()
+Subject: [PATCH 244/267] rt: Introduce cpu_chill()
Retry loops on RT might loop forever when the modifying side was
preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill()
diff --git a/patches/0245-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/patches/0245-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
index c6e775e..6b938e7 100644
--- a/patches/0245-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
+++ b/patches/0245-fs-dcache-Use-cpu_chill-in-trylock-loops.patch
@@ -1,7 +1,7 @@
From ba7ac3a9415b0c09e16f37e5c56fc5cf64aaf71f Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 7 Mar 2012 21:00:34 +0100
-Subject: [PATCH 245/256] fs: dcache: Use cpu_chill() in trylock loops
+Subject: [PATCH 245/267] fs: dcache: Use cpu_chill() in trylock loops
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
diff --git a/patches/0246-net-Use-cpu_chill-instead-of-cpu_relax.patch b/patches/0246-net-Use-cpu_chill-instead-of-cpu_relax.patch
index a5d1eec..3182ca5 100644
--- a/patches/0246-net-Use-cpu_chill-instead-of-cpu_relax.patch
+++ b/patches/0246-net-Use-cpu_chill-instead-of-cpu_relax.patch
@@ -1,7 +1,7 @@
From 1ed32db89bcd77937d60536a72e83830aee5ae00 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 7 Mar 2012 21:10:04 +0100
-Subject: [PATCH 246/256] net: Use cpu_chill() instead of cpu_relax()
+Subject: [PATCH 246/267] net: Use cpu_chill() instead of cpu_relax()
Retry loops on RT might loop forever when the modifying side was
preempted. Use cpu_chill() instead of cpu_relax() to let the system
diff --git a/patches/0247-ntp-Make-ntp_lock-raw.patch b/patches/0247-ntp-Make-ntp_lock-raw.patch
index 406080b..d697fc7 100644
--- a/patches/0247-ntp-Make-ntp_lock-raw.patch
+++ b/patches/0247-ntp-Make-ntp_lock-raw.patch
@@ -1,7 +1,7 @@
From 4bfe9cdf14057a0abeabc1bf86ad5b51f61d4ae8 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 10 Apr 2012 11:14:55 +0200
-Subject: [PATCH 247/256] ntp: Make ntp_lock raw.
+Subject: [PATCH 247/267] ntp: Make ntp_lock raw.
This needs to be revisited. Not sure whether we can avoid to make this
lock raw, but it'd really like to.
diff --git a/patches/0248-mips-remove-smp-reserve-lock.patch.patch b/patches/0248-mips-remove-smp-reserve-lock.patch.patch
index 0511c20..92209b9 100644
--- a/patches/0248-mips-remove-smp-reserve-lock.patch.patch
+++ b/patches/0248-mips-remove-smp-reserve-lock.patch.patch
@@ -1,7 +1,7 @@
From efceff18a2779d9e65f0bc83629e9f5ac3988a15 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Tue, 22 May 2012 21:15:10 +0200
-Subject: [PATCH 248/256] mips-remove-smp-reserve-lock.patch
+Subject: [PATCH 248/267] mips-remove-smp-reserve-lock.patch
Instead of making the lock raw, remove it as it protects nothing.
diff --git a/patches/0249-lockdep-Selftest-convert-spinlock-to-raw-spinlock.patch b/patches/0249-lockdep-Selftest-convert-spinlock-to-raw-spinlock.patch
index 320ca63..8116f62 100644
--- a/patches/0249-lockdep-Selftest-convert-spinlock-to-raw-spinlock.patch
+++ b/patches/0249-lockdep-Selftest-convert-spinlock-to-raw-spinlock.patch
@@ -1,7 +1,7 @@
From 396350c9bf8c577fc3b8ca8009ad73bfa720380a Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang@windriver.com>
Date: Mon, 16 Apr 2012 15:01:55 +0800
-Subject: [PATCH 249/256] lockdep: Selftest: convert spinlock to raw spinlock
+Subject: [PATCH 249/267] lockdep: Selftest: convert spinlock to raw spinlock
spinlock is sleepable on -rt and can not be used in
interrupt context.
diff --git a/patches/0250-lockdep-Selftest-Only-do-hardirq-context-test-for-ra.patch b/patches/0250-lockdep-Selftest-Only-do-hardirq-context-test-for-ra.patch
index 50bb0e0..5171cb8 100644
--- a/patches/0250-lockdep-Selftest-Only-do-hardirq-context-test-for-ra.patch
+++ b/patches/0250-lockdep-Selftest-Only-do-hardirq-context-test-for-ra.patch
@@ -1,7 +1,7 @@
From ddaed6a3e4ed4924642d2ca42cc21011f0c4a2a8 Mon Sep 17 00:00:00 2001
From: Yong Zhang <yong.zhang@windriver.com>
Date: Mon, 16 Apr 2012 15:01:56 +0800
-Subject: [PATCH 250/256] lockdep: Selftest: Only do hardirq context test for
+Subject: [PATCH 250/267] lockdep: Selftest: Only do hardirq context test for
raw spinlock
On -rt there is no softirq context any more and rwlock is sleepable,
diff --git a/patches/0251-genirq-Add-default-affinity-mask-command-line-option.patch b/patches/0251-genirq-Add-default-affinity-mask-command-line-option.patch
index 14b50b4..4a9b6fe 100644
--- a/patches/0251-genirq-Add-default-affinity-mask-command-line-option.patch
+++ b/patches/0251-genirq-Add-default-affinity-mask-command-line-option.patch
@@ -1,7 +1,7 @@
From 909da5deefc2d3dcede823c42a91380ea0bec608 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Fri, 25 May 2012 16:59:47 +0200
-Subject: [PATCH 251/256] genirq: Add default affinity mask command line
+Subject: [PATCH 251/267] genirq: Add default affinity mask command line
option
If we isolate CPUs, then we don't want random device interrupts on
diff --git a/patches/0252-kconfig-disable-a-few-options-rt.patch.patch b/patches/0252-kconfig-disable-a-few-options-rt.patch.patch
index 62f460d..698a032 100644
--- a/patches/0252-kconfig-disable-a-few-options-rt.patch.patch
+++ b/patches/0252-kconfig-disable-a-few-options-rt.patch.patch
@@ -1,7 +1,7 @@
From 14b8eadbeb7464a5e6b566f75cde75853ad6b528 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Sun, 24 Jul 2011 12:11:43 +0200
-Subject: [PATCH 252/256] kconfig-disable-a-few-options-rt.patch
+Subject: [PATCH 252/267] kconfig-disable-a-few-options-rt.patch
Disable stuff which is known to have issues on RT
diff --git a/patches/0253-kconfig-preempt-rt-full.patch.patch b/patches/0253-kconfig-preempt-rt-full.patch.patch
index 5d28f06..221f71a 100644
--- a/patches/0253-kconfig-preempt-rt-full.patch.patch
+++ b/patches/0253-kconfig-preempt-rt-full.patch.patch
@@ -1,7 +1,7 @@
From d520488a76082f5f4811de981d57fb52bd6233f2 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Wed, 29 Jun 2011 14:58:57 +0200
-Subject: [PATCH 253/256] kconfig-preempt-rt-full.patch
+Subject: [PATCH 253/267] kconfig-preempt-rt-full.patch
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
diff --git a/patches/0254-spinlock-rt-Include-bug.h-in-spinlock_rt.h-to-satisf.patch b/patches/0254-spinlock-rt-Include-bug.h-in-spinlock_rt.h-to-satisf.patch
index 44cb365..f034edc 100644
--- a/patches/0254-spinlock-rt-Include-bug.h-in-spinlock_rt.h-to-satisf.patch
+++ b/patches/0254-spinlock-rt-Include-bug.h-in-spinlock_rt.h-to-satisf.patch
@@ -1,7 +1,7 @@
From c5cdefa21e0ebd1e86aace4e07ea1114b840ff00 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <srostedt@redhat.com>
Date: Fri, 22 Jun 2012 07:25:14 -0400
-Subject: [PATCH 254/256] spinlock/rt: Include bug.h in spinlock_rt.h to
+Subject: [PATCH 254/267] spinlock/rt: Include bug.h in spinlock_rt.h to
satisfy BUG() usage
Some archs (powerpc) failed to compile because of the reference to
diff --git a/patches/0255-Subject-powerpc-Mark-low-level-irq-handlers-NO_THREA.patch b/patches/0255-Subject-powerpc-Mark-low-level-irq-handlers-NO_THREA.patch
index 98b56ad..0e08dc9 100644
--- a/patches/0255-Subject-powerpc-Mark-low-level-irq-handlers-NO_THREA.patch
+++ b/patches/0255-Subject-powerpc-Mark-low-level-irq-handlers-NO_THREA.patch
@@ -1,7 +1,7 @@
From c5d1b28f48fea29be4499539a40a3259398bc4d1 Mon Sep 17 00:00:00 2001
From: Thomas Gleixner <tglx@linutronix.de>
Date: Mon, 18 Jun 2012 19:53:17 +0200
-Subject: [PATCH 255/256] Subject: powerpc: Mark low level irq handlers
+Subject: [PATCH 255/267] Subject: powerpc: Mark low level irq handlers
NO_THREAD
These low level handlers cannot be threaded. Mark them NO_THREAD
diff --git a/patches/0256-Latency-histogramms-Cope-with-backwards-running-loca.patch b/patches/0256-Latency-histogramms-Cope-with-backwards-running-loca.patch
new file mode 100644
index 0000000..ad2b0eb
--- /dev/null
+++ b/patches/0256-Latency-histogramms-Cope-with-backwards-running-loca.patch
@@ -0,0 +1,267 @@
+From 27b1c89db1a65e6948006acee763a44c6e0fc29b Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde@osadl.org>
+Date: Wed, 11 Jul 2012 22:05:17 +0000
+Subject: [PATCH 256/267] Latency histogramms: Cope with backwards running
+ local trace clock
+
+Thanks to the wonders of modern technology, the local trace clock can
+now run backwards. Since this never happened before, the time difference
+between now and somewhat earlier was expected to never become negative
+and, thus, stored in an unsigned integer variable. Nowadays, we need a
+signed integer to ensure that the value is stored as underflow in the
+related histogram. (In cases where this is not a misfunction, bipolar
+histograms can be used.)
+
+This patch takes care that all latency variables are represented as
+signed integers and negative numbers are considered as histogram
+underflows.
+
+In one of the misbehaving processors switching to global clock solved
+the problem:
+ echo global >/sys/kernel/debug/tracing/trace_clock
+
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ include/linux/sched.h | 2 +-
+ kernel/trace/latency_hist.c | 71 ++++++++++++++++++++++---------------------
+ 2 files changed, 38 insertions(+), 35 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 7fc8321..8461abc 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1629,7 +1629,7 @@ struct task_struct {
+ #ifdef CONFIG_WAKEUP_LATENCY_HIST
+ u64 preempt_timestamp_hist;
+ #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
+- unsigned long timer_offset;
++ long timer_offset;
+ #endif
+ #endif
+ #endif /* CONFIG_TRACING */
+diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
+index 9d49fcb..d514eef 100644
+--- a/kernel/trace/latency_hist.c
++++ b/kernel/trace/latency_hist.c
+@@ -27,6 +27,8 @@
+ #include "trace.h"
+ #include <trace/events/sched.h>
+
++#define NSECS_PER_USECS 1000L
++
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/hist.h>
+
+@@ -46,11 +48,11 @@ enum {
+ struct hist_data {
+ atomic_t hist_mode; /* 0 log, 1 don't log */
+ long offset; /* set it to MAX_ENTRY_NUM/2 for a bipolar scale */
+- unsigned long min_lat;
+- unsigned long max_lat;
++ long min_lat;
++ long max_lat;
+ unsigned long long below_hist_bound_samples;
+ unsigned long long above_hist_bound_samples;
+- unsigned long long accumulate_lat;
++ long long accumulate_lat;
+ unsigned long long total_samples;
+ unsigned long long hist_array[MAX_ENTRY_NUM];
+ };
+@@ -152,8 +154,8 @@ static struct enable_data timerandwakeup_enabled_data = {
+ static DEFINE_PER_CPU(struct maxlatproc_data, timerandwakeup_maxlatproc);
+ #endif
+
+-void notrace latency_hist(int latency_type, int cpu, unsigned long latency,
+- unsigned long timeroffset, cycle_t stop,
++void notrace latency_hist(int latency_type, int cpu, long latency,
++ long timeroffset, cycle_t stop,
+ struct task_struct *p)
+ {
+ struct hist_data *my_hist;
+@@ -224,7 +226,7 @@ void notrace latency_hist(int latency_type, int cpu, unsigned long latency,
+ my_hist->hist_array[latency]++;
+
+ if (unlikely(latency > my_hist->max_lat ||
+- my_hist->min_lat == ULONG_MAX)) {
++ my_hist->min_lat == LONG_MAX)) {
+ #if defined(CONFIG_WAKEUP_LATENCY_HIST) || \
+ defined(CONFIG_MISSED_TIMER_OFFSETS_HIST)
+ if (latency_type == WAKEUP_LATENCY ||
+@@ -263,15 +265,14 @@ static void *l_start(struct seq_file *m, loff_t *pos)
+ atomic_dec(&my_hist->hist_mode);
+
+ if (likely(my_hist->total_samples)) {
+- unsigned long avg = (unsigned long)
+- div64_u64(my_hist->accumulate_lat,
++ long avg = (long) div64_s64(my_hist->accumulate_lat,
+ my_hist->total_samples);
+ snprintf(minstr, sizeof(minstr), "%ld",
+- (long) my_hist->min_lat - my_hist->offset);
++ my_hist->min_lat - my_hist->offset);
+ snprintf(avgstr, sizeof(avgstr), "%ld",
+- (long) avg - my_hist->offset);
++ avg - my_hist->offset);
+ snprintf(maxstr, sizeof(maxstr), "%ld",
+- (long) my_hist->max_lat - my_hist->offset);
++ my_hist->max_lat - my_hist->offset);
+ } else {
+ strcpy(minstr, "<undef>");
+ strcpy(avgstr, minstr);
+@@ -376,10 +377,10 @@ static void hist_reset(struct hist_data *hist)
+ memset(hist->hist_array, 0, sizeof(hist->hist_array));
+ hist->below_hist_bound_samples = 0ULL;
+ hist->above_hist_bound_samples = 0ULL;
+- hist->min_lat = ULONG_MAX;
+- hist->max_lat = 0UL;
++ hist->min_lat = LONG_MAX;
++ hist->max_lat = LONG_MIN;
+ hist->total_samples = 0ULL;
+- hist->accumulate_lat = 0ULL;
++ hist->accumulate_lat = 0LL;
+
+ atomic_inc(&hist->hist_mode);
+ }
+@@ -790,9 +791,9 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason,
+
+ stop = ftrace_now(cpu);
+ time_set++;
+- if (start && stop >= start) {
+- unsigned long latency =
+- nsecs_to_usecs(stop - start);
++ if (start) {
++ long latency = ((long) (stop - start)) /
++ NSECS_PER_USECS;
+
+ latency_hist(IRQSOFF_LATENCY, cpu, latency, 0,
+ stop, NULL);
+@@ -808,9 +809,9 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason,
+
+ if (!(time_set++))
+ stop = ftrace_now(cpu);
+- if (start && stop >= start) {
+- unsigned long latency =
+- nsecs_to_usecs(stop - start);
++ if (start) {
++ long latency = ((long) (stop - start)) /
++ NSECS_PER_USECS;
+
+ latency_hist(PREEMPTOFF_LATENCY, cpu, latency,
+ 0, stop, NULL);
+@@ -827,9 +828,10 @@ static notrace void probe_preemptirqsoff_hist(void *v, int reason,
+
+ if (!time_set)
+ stop = ftrace_now(cpu);
+- if (start && stop >= start) {
+- unsigned long latency =
+- nsecs_to_usecs(stop - start);
++ if (start) {
++ long latency = ((long) (stop - start)) /
++ NSECS_PER_USECS;
++
+ latency_hist(PREEMPTIRQSOFF_LATENCY, cpu,
+ latency, 0, stop, NULL);
+ }
+@@ -908,7 +910,7 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
+ {
+ unsigned long flags;
+ int cpu = task_cpu(next);
+- unsigned long latency;
++ long latency;
+ cycle_t stop;
+ struct task_struct *cpu_wakeup_task;
+
+@@ -939,7 +941,8 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
+ */
+ stop = ftrace_now(raw_smp_processor_id());
+
+- latency = nsecs_to_usecs(stop - next->preempt_timestamp_hist);
++ latency = ((long) (stop - next->preempt_timestamp_hist)) /
++ NSECS_PER_USECS;
+
+ if (per_cpu(wakeup_sharedprio, cpu)) {
+ latency_hist(WAKEUP_LATENCY_SHAREDPRIO, cpu, latency, 0, stop,
+@@ -975,7 +978,7 @@ static notrace void probe_hrtimer_interrupt(void *v, int cpu,
+ (task->prio < curr->prio ||
+ (task->prio == curr->prio &&
+ !cpumask_test_cpu(cpu, &task->cpus_allowed)))) {
+- unsigned long latency;
++ long latency;
+ cycle_t now;
+
+ if (missed_timer_offsets_pid) {
+@@ -985,7 +988,7 @@ static notrace void probe_hrtimer_interrupt(void *v, int cpu,
+ }
+
+ now = ftrace_now(cpu);
+- latency = (unsigned long) div_s64(-latency_ns, 1000);
++ latency = (long) div_s64(-latency_ns, NSECS_PER_USECS);
+ latency_hist(MISSED_TIMER_OFFSETS, cpu, latency, latency, now,
+ task);
+ #ifdef CONFIG_WAKEUP_LATENCY_HIST
+@@ -1026,7 +1029,7 @@ static __init int latency_hist_init(void)
+ &per_cpu(irqsoff_hist, i), &latency_hist_fops);
+ my_hist = &per_cpu(irqsoff_hist, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+ }
+ entry = debugfs_create_file("reset", 0644, dentry,
+ (void *)IRQSOFF_LATENCY, &latency_hist_reset_fops);
+@@ -1041,7 +1044,7 @@ static __init int latency_hist_init(void)
+ &per_cpu(preemptoff_hist, i), &latency_hist_fops);
+ my_hist = &per_cpu(preemptoff_hist, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+ }
+ entry = debugfs_create_file("reset", 0644, dentry,
+ (void *)PREEMPTOFF_LATENCY, &latency_hist_reset_fops);
+@@ -1056,7 +1059,7 @@ static __init int latency_hist_init(void)
+ &per_cpu(preemptirqsoff_hist, i), &latency_hist_fops);
+ my_hist = &per_cpu(preemptirqsoff_hist, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+ }
+ entry = debugfs_create_file("reset", 0644, dentry,
+ (void *)PREEMPTIRQSOFF_LATENCY, &latency_hist_reset_fops);
+@@ -1081,14 +1084,14 @@ static __init int latency_hist_init(void)
+ &latency_hist_fops);
+ my_hist = &per_cpu(wakeup_latency_hist, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+
+ entry = debugfs_create_file(name, 0444, dentry_sharedprio,
+ &per_cpu(wakeup_latency_hist_sharedprio, i),
+ &latency_hist_fops);
+ my_hist = &per_cpu(wakeup_latency_hist_sharedprio, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+
+ sprintf(name, cpufmt_maxlatproc, i);
+
+@@ -1122,7 +1125,7 @@ static __init int latency_hist_init(void)
+ &per_cpu(missed_timer_offsets, i), &latency_hist_fops);
+ my_hist = &per_cpu(missed_timer_offsets, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+
+ sprintf(name, cpufmt_maxlatproc, i);
+ mp = &per_cpu(missed_timer_offsets_maxlatproc, i);
+@@ -1150,7 +1153,7 @@ static __init int latency_hist_init(void)
+ &latency_hist_fops);
+ my_hist = &per_cpu(timerandwakeup_latency_hist, i);
+ atomic_set(&my_hist->hist_mode, 1);
+- my_hist->min_lat = 0xFFFFFFFFUL;
++ my_hist->min_lat = LONG_MAX;
+
+ sprintf(name, cpufmt_maxlatproc, i);
+ mp = &per_cpu(timerandwakeup_maxlatproc, i);
+--
+1.7.10.4
+
diff --git a/patches/0257-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch b/patches/0257-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
new file mode 100644
index 0000000..753e124
--- /dev/null
+++ b/patches/0257-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
@@ -0,0 +1,73 @@
+From 82256b375849e051eab76618f1e70b7eaa17aaa5 Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde@osadl.org>
+Date: Wed, 11 Jul 2012 22:05:18 +0000
+Subject: [PATCH 257/267] Latency histograms: Adjust timer, if already elapsed
+ when programmed
+
+Nothing prevents a programmer from calling clock_nanosleep() with an
+already elapsed wakeup time in absolute time mode or with a too small
+delay in relative time mode. Such timers cannot wake up in time and,
+thus, should be corrected when entered into the missed timers latency
+histogram (CONFIG_MISSED_TIMERS_HIST).
+
+This patch marks such timers and uses a corrected expiration time.
+
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ include/linux/hrtimer.h | 3 +++
+ kernel/hrtimer.c | 16 ++++++++++++++--
+ 2 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
+index 0e37086..7408760 100644
+--- a/include/linux/hrtimer.h
++++ b/include/linux/hrtimer.h
+@@ -113,6 +113,9 @@ struct hrtimer {
+ unsigned long state;
+ struct list_head cb_entry;
+ int irqsafe;
++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
++ ktime_t praecox;
++#endif
+ #ifdef CONFIG_TIMER_STATS
+ int start_pid;
+ void *start_site;
+diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
+index 3991464..a080e62 100644
+--- a/kernel/hrtimer.c
++++ b/kernel/hrtimer.c
+@@ -1021,6 +1021,17 @@ int __hrtimer_start_range_ns(struct hrtimer *timer, ktime_t tim,
+ #endif
+ }
+
++#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST
++ {
++ ktime_t now = new_base->get_time();
++
++ if (ktime_to_ns(tim) < ktime_to_ns(now))
++ timer->praecox = now;
++ else
++ timer->praecox = ktime_set(0, 0);
++ }
++#endif
++
+ hrtimer_set_expires_range_ns(timer, tim, delta_ns);
+
+ timer_stats_hrtimer_set_start_info(timer);
+@@ -1458,8 +1469,9 @@ retry:
+ timer = container_of(node, struct hrtimer, node);
+
+ trace_hrtimer_interrupt(raw_smp_processor_id(),
+- ktime_to_ns(ktime_sub(
+- hrtimer_get_expires(timer), basenow)),
++ ktime_to_ns(ktime_sub(ktime_to_ns(timer->praecox) ?
++ timer->praecox : hrtimer_get_expires(timer),
++ basenow)),
+ current,
+ timer->function == hrtimer_wakeup ?
+ container_of(timer, struct hrtimer_sleeper,
+--
+1.7.10.4
+
diff --git a/patches/0258-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch b/patches/0258-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
new file mode 100644
index 0000000..53209e9
--- /dev/null
+++ b/patches/0258-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
@@ -0,0 +1,32 @@
+From f3a1062abd043f2807247afdc84e04fef47dcc7c Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde@osadl.org>
+Date: Wed, 11 Jul 2012 22:05:18 +0000
+Subject: [PATCH 258/267] Disable RT_GROUP_SCHED in PREEMPT_RT_FULL
+
+Strange CPU stalls have been observed in RT when RT_GROUP_SCHED
+was configured.
+
+Disable it for now.
+
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ init/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/init/Kconfig b/init/Kconfig
+index 7c0b369..c06208b 100644
+--- a/init/Kconfig
++++ b/init/Kconfig
+@@ -746,6 +746,7 @@ config RT_GROUP_SCHED
+ bool "Group scheduling for SCHED_RR/FIFO"
+ depends on EXPERIMENTAL
+ depends on CGROUP_SCHED
++ depends on !PREEMPT_RT_FULL
+ default n
+ help
+ This feature lets you explicitly allocate real CPU bandwidth
+--
+1.7.10.4
+
diff --git a/patches/0259-Latency-histograms-Detect-another-yet-overlooked-sha.patch b/patches/0259-Latency-histograms-Detect-another-yet-overlooked-sha.patch
new file mode 100644
index 0000000..87cb58a
--- /dev/null
+++ b/patches/0259-Latency-histograms-Detect-another-yet-overlooked-sha.patch
@@ -0,0 +1,38 @@
+From 0b9de04bbf9b9df6d9dc030f5737db3bb8ac300b Mon Sep 17 00:00:00 2001
+From: Carsten Emde <C.Emde@osadl.org>
+Date: Wed, 11 Jul 2012 22:05:19 +0000
+Subject: [PATCH 259/267] Latency histograms: Detect another yet overlooked
+ sharedprio condition
+
+While waiting for an RT process to be woken up, the previous process may
+go to wait and switch to another one with the same priority which then
+becomes current. This condition was not correctly recognized and led to
+erroneously high latency recordings during periods of low CPU load.
+
+This patch correctly marks such latencies as sharedprio and prevents
+them from being recorded as actual system latency.
+
+Signed-off-by: Carsten Emde <C.Emde@osadl.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ kernel/trace/latency_hist.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/kernel/trace/latency_hist.c b/kernel/trace/latency_hist.c
+index d514eef..6a4c869 100644
+--- a/kernel/trace/latency_hist.c
++++ b/kernel/trace/latency_hist.c
+@@ -935,6 +935,9 @@ static notrace void probe_wakeup_latency_hist_stop(void *v,
+ goto out;
+ }
+
++ if (current->prio == cpu_wakeup_task->prio)
++ per_cpu(wakeup_sharedprio, cpu) = 1;
++
+ /*
+ * The task we are waiting for is about to be switched to.
+ * Calculate latency and store it in histogram.
+--
+1.7.10.4
+
diff --git a/patches/0260-slab-Prevent-local-lock-deadlock.patch b/patches/0260-slab-Prevent-local-lock-deadlock.patch
new file mode 100644
index 0000000..3f8ec75
--- /dev/null
+++ b/patches/0260-slab-Prevent-local-lock-deadlock.patch
@@ -0,0 +1,77 @@
+From 99c8fa17332db74bea0370fc82864d2b49fdcc31 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 11 Jul 2012 22:05:19 +0000
+Subject: [PATCH 260/267] slab: Prevent local lock deadlock
+
+On RT we avoid the cross cpu function calls and take the per cpu local
+locks instead. Now the code missed that taking the local lock on the
+cpu which runs the code must use the proper local lock functions and
+not a simple spin_lock(). Otherwise it deadlocks later when trying to
+acquire the local lock with the proper function.
+
+Reported-and-tested-by: Chris Pringle <chris.pringle@miranda.com>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ mm/slab.c | 26 ++++++++++++++++++++++----
+ 1 file changed, 22 insertions(+), 4 deletions(-)
+
+diff --git a/mm/slab.c b/mm/slab.c
+index 15bce6b..64eb636 100644
+--- a/mm/slab.c
++++ b/mm/slab.c
+@@ -743,8 +743,26 @@ slab_on_each_cpu(void (*func)(void *arg, int this_cpu), void *arg)
+ {
+ unsigned int i;
+
++ get_cpu_light();
+ for_each_online_cpu(i)
+ func(arg, i);
++ put_cpu_light();
++}
++
++static void lock_slab_on(unsigned int cpu)
++{
++ if (cpu == smp_processor_id())
++ local_lock_irq(slab_lock);
++ else
++ local_spin_lock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock);
++}
++
++static void unlock_slab_on(unsigned int cpu)
++{
++ if (cpu == smp_processor_id())
++ local_unlock_irq(slab_lock);
++ else
++ local_spin_unlock_irq(slab_lock, &per_cpu(slab_lock, cpu).lock);
+ }
+ #endif
+
+@@ -2692,10 +2710,10 @@ static void do_drain(void *arg, int cpu)
+ {
+ LIST_HEAD(tmp);
+
+- spin_lock_irq(&per_cpu(slab_lock, cpu).lock);
++ lock_slab_on(cpu);
+ __do_drain(arg, cpu);
+ list_splice_init(&per_cpu(slab_free_list, cpu), &tmp);
+- spin_unlock_irq(&per_cpu(slab_lock, cpu).lock);
++ unlock_slab_on(cpu);
+ free_delayed(&tmp);
+ }
+ #endif
+@@ -4163,9 +4181,9 @@ static void do_ccupdate_local(void *info)
+ #else
+ static void do_ccupdate_local(void *info, int cpu)
+ {
+- spin_lock_irq(&per_cpu(slab_lock, cpu).lock);
++ lock_slab_on(cpu);
+ __do_ccupdate_local(info, cpu);
+- spin_unlock_irq(&per_cpu(slab_lock, cpu).lock);
++ unlock_slab_on(cpu);
+ }
+ #endif
+
+--
+1.7.10.4
+
diff --git a/patches/0261-fs-jbd-pull-your-plug-when-waiting-for-space.patch b/patches/0261-fs-jbd-pull-your-plug-when-waiting-for-space.patch
new file mode 100644
index 0000000..0ca6a99
--- /dev/null
+++ b/patches/0261-fs-jbd-pull-your-plug-when-waiting-for-space.patch
@@ -0,0 +1,35 @@
+From 6c5a3ba7aca281c269f3ad6ddefeca8c874e1c3b Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <mgalbraith@suse.de>
+Date: Wed, 11 Jul 2012 22:05:20 +0000
+Subject: [PATCH 261/267] fs, jbd: pull your plug when waiting for space
+
+With an -rt kernel, and a heavy sync IO load, tasks can jam
+up on journal locks without unplugging, which can lead to
+terminal IO starvation. Unplug and schedule when waiting for space.
+
+Signed-off-by: Mike Galbraith <mgalbraith@suse.de>
+Cc: Steven Rostedt <rostedt@goodmis.org>
+Cc: Theodore Tso <tytso@mit.edu>
+Link: http://lkml.kernel.org/r/1341812414.7370.73.camel@marge.simpson.net
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ fs/jbd/checkpoint.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c
+index 05f0754..d8efcbc 100644
+--- a/fs/jbd/checkpoint.c
++++ b/fs/jbd/checkpoint.c
+@@ -129,6 +129,8 @@ void __log_wait_for_space(journal_t *journal)
+ if (journal->j_flags & JFS_ABORT)
+ return;
+ spin_unlock(&journal->j_state_lock);
++ if (current->plug)
++ io_schedule();
+ mutex_lock(&journal->j_checkpoint_mutex);
+
+ /*
+--
+1.7.10.4
+
diff --git a/patches/0262-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch b/patches/0262-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
new file mode 100644
index 0000000..ff7d8d0
--- /dev/null
+++ b/patches/0262-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
@@ -0,0 +1,74 @@
+From 0e933dbabdfa93f18a87aee3d09f1278bca66b61 Mon Sep 17 00:00:00 2001
+From: Yong Zhang <yong.zhang@windriver.com>
+Date: Wed, 11 Jul 2012 22:05:21 +0000
+Subject: [PATCH 262/267] perf: Make swevent hrtimer run in irq instead of
+ softirq
+
+Otherwise we get a deadlock like below:
+
+[ 1044.042749] BUG: scheduling while atomic: ksoftirqd/21/141/0x00010003
+[ 1044.042752] INFO: lockdep is turned off.
+[ 1044.042754] Modules linked in:
+[ 1044.042757] Pid: 141, comm: ksoftirqd/21 Tainted: G W 3.4.0-rc2-rt3-23676-ga723175-dirty #29
+[ 1044.042759] Call Trace:
+[ 1044.042761] <IRQ> [<ffffffff8107d8e5>] __schedule_bug+0x65/0x80
+[ 1044.042770] [<ffffffff8168978c>] __schedule+0x83c/0xa70
+[ 1044.042775] [<ffffffff8106bdd2>] ? prepare_to_wait+0x32/0xb0
+[ 1044.042779] [<ffffffff81689a5e>] schedule+0x2e/0xa0
+[ 1044.042782] [<ffffffff81071ebd>] hrtimer_wait_for_timer+0x6d/0xb0
+[ 1044.042786] [<ffffffff8106bb30>] ? wake_up_bit+0x40/0x40
+[ 1044.042790] [<ffffffff81071f20>] hrtimer_cancel+0x20/0x40
+[ 1044.042794] [<ffffffff8111da0c>] perf_swevent_cancel_hrtimer+0x3c/0x50
+[ 1044.042798] [<ffffffff8111da31>] task_clock_event_stop+0x11/0x40
+[ 1044.042802] [<ffffffff8111da6e>] task_clock_event_del+0xe/0x10
+[ 1044.042805] [<ffffffff8111c568>] event_sched_out+0x118/0x1d0
+[ 1044.042809] [<ffffffff8111c649>] group_sched_out+0x29/0x90
+[ 1044.042813] [<ffffffff8111ed7e>] __perf_event_disable+0x18e/0x200
+[ 1044.042817] [<ffffffff8111c343>] remote_function+0x63/0x70
+[ 1044.042821] [<ffffffff810b0aae>] generic_smp_call_function_single_interrupt+0xce/0x120
+[ 1044.042826] [<ffffffff81022bc7>] smp_call_function_single_interrupt+0x27/0x40
+[ 1044.042831] [<ffffffff8168d50c>] call_function_single_interrupt+0x6c/0x80
+[ 1044.042833] <EOI> [<ffffffff811275b0>] ? perf_event_overflow+0x20/0x20
+[ 1044.042840] [<ffffffff8168b970>] ? _raw_spin_unlock_irq+0x30/0x70
+[ 1044.042844] [<ffffffff8168b976>] ? _raw_spin_unlock_irq+0x36/0x70
+[ 1044.042848] [<ffffffff810702e2>] run_hrtimer_softirq+0xc2/0x200
+[ 1044.042853] [<ffffffff811275b0>] ? perf_event_overflow+0x20/0x20
+[ 1044.042857] [<ffffffff81045265>] __do_softirq_common+0xf5/0x3a0
+[ 1044.042862] [<ffffffff81045c3d>] __thread_do_softirq+0x15d/0x200
+[ 1044.042865] [<ffffffff81045dda>] run_ksoftirqd+0xfa/0x210
+[ 1044.042869] [<ffffffff81045ce0>] ? __thread_do_softirq+0x200/0x200
+[ 1044.042873] [<ffffffff81045ce0>] ? __thread_do_softirq+0x200/0x200
+[ 1044.042877] [<ffffffff8106b596>] kthread+0xb6/0xc0
+[ 1044.042881] [<ffffffff8168b97b>] ? _raw_spin_unlock_irq+0x3b/0x70
+[ 1044.042886] [<ffffffff8168d994>] kernel_thread_helper+0x4/0x10
+[ 1044.042889] [<ffffffff8107d98c>] ? finish_task_switch+0x8c/0x110
+[ 1044.042894] [<ffffffff8168b97b>] ? _raw_spin_unlock_irq+0x3b/0x70
+[ 1044.042897] [<ffffffff8168bd5d>] ? retint_restore_args+0xe/0xe
+[ 1044.042900] [<ffffffff8106b4e0>] ? kthreadd+0x1e0/0x1e0
+[ 1044.042902] [<ffffffff8168d990>] ? gs_change+0xb/0xb
+
+Signed-off-by: Yong Zhang <yong.zhang0@gmail.com>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Cc: Steven Rostedt <rostedt@goodmis.org>
+Link: http://lkml.kernel.org/r/1341476476-5666-1-git-send-email-yong.zhang0@gmail.com
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ kernel/events/core.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/kernel/events/core.c b/kernel/events/core.c
+index fd126f8..451d452 100644
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -5403,6 +5403,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event)
+
+ hrtimer_init(&hwc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+ hwc->hrtimer.function = perf_swevent_hrtimer;
++ hwc->hrtimer.irqsafe = 1;
+
+ /*
+ * Since hrtimers have a fixed rate, we can do a static freq->period
+--
+1.7.10.4
+
diff --git a/patches/0263-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch b/patches/0263-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
new file mode 100644
index 0000000..fd516fe
--- /dev/null
+++ b/patches/0263-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
@@ -0,0 +1,545 @@
+From 3577e2951f82eaf5ffc1f0e39e9853ca24eb76e7 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt@redhat.com>
+Date: Mon, 16 Jul 2012 08:07:43 +0000
+Subject: [PATCH 263/267] cpu/rt: Rework cpu down for PREEMPT_RT
+
+Bringing a CPU down is a pain with the PREEMPT_RT kernel because
+tasks can be preempted in many more places than in non-RT. In
+order to handle per_cpu variables, tasks may be pinned to a CPU
+for a while, and even sleep. But these tasks need to be off the CPU
+if that CPU is going down.
+
+Several synchronization methods have been tried, but when stressed
+they failed. This is a new approach.
+
+A sync_tsk thread is still created and tasks may still block on a
+lock when the CPU is going down, but how that works is a bit different.
+When cpu_down() starts, it will create the sync_tsk and wait on it
+to inform that current tasks that are pinned on the CPU are no longer
+pinned. But new tasks that are about to be pinned will still be allowed
+to do so at this time.
+
+Then the notifiers are called. Several notifiers will bring down tasks
+that will enter these locations. Some of these tasks will take locks
+of other tasks that are on the CPU. If we don't let those other tasks
+continue, but make them block until CPU down is done, the tasks that
+the notifiers are waiting on will never complete as they are waiting
+for the locks held by the tasks that are blocked.
+
+Thus we still let the task pin the CPU until the notifiers are done.
+After the notifiers run, we then make new tasks entering the pinned
+CPU sections grab a mutex and wait. This mutex is now a per CPU mutex
+in the hotplug_pcp descriptor.
+
+To help things along, a new function in the scheduler code is created
+called migrate_me(). This function will try to migrate the current task
+off the CPU this is going down if possible. When the sync_tsk is created,
+all tasks will then try to migrate off the CPU going down. There are
+several cases that this wont work, but it helps in most cases.
+
+After the notifiers are called and if a task can't migrate off but enters
+the pin CPU sections, it will be forced to wait on the hotplug_pcp mutex
+until the CPU down is complete. Then the scheduler will force the migration
+anyway.
+
+Also, I found that THREAD_BOUND need to also be accounted for in the
+pinned CPU, and the migrate_disable no longer treats them special.
+This helps fix issues with ksoftirqd and workqueue that unbind on CPU down.
+
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/sched.h | 7 ++
+ kernel/cpu.c | 236 +++++++++++++++++++++++++++++++++++++++++--------
+ kernel/sched/core.c | 82 ++++++++++++++++-
+ 3 files changed, 285 insertions(+), 40 deletions(-)
+
+diff --git a/include/linux/sched.h b/include/linux/sched.h
+index 8461abc..fb4f4ac 100644
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -1973,6 +1973,10 @@ extern void do_set_cpus_allowed(struct task_struct *p,
+
+ extern int set_cpus_allowed_ptr(struct task_struct *p,
+ const struct cpumask *new_mask);
++int migrate_me(void);
++void tell_sched_cpu_down_begin(int cpu);
++void tell_sched_cpu_down_done(int cpu);
++
+ #else
+ static inline void do_set_cpus_allowed(struct task_struct *p,
+ const struct cpumask *new_mask)
+@@ -1985,6 +1989,9 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p,
+ return -EINVAL;
+ return 0;
+ }
++static inline int migrate_me(void) { return 0; }
++static inline void tell_sched_cpu_down_begin(int cpu) { }
++static inline void tell_sched_cpu_down_done(int cpu) { }
+ #endif
+
+ #ifndef CONFIG_CPUMASK_OFFSTACK
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index d79d33a..c5b3273 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -46,12 +46,7 @@ static int cpu_hotplug_disabled;
+
+ static struct {
+ struct task_struct *active_writer;
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- /* Makes the lock keep the task's state */
+- spinlock_t lock;
+-#else
+ struct mutex lock; /* Synchronizes accesses to refcount, */
+-#endif
+ /*
+ * Also blocks the new readers during
+ * an ongoing cpu hotplug operation.
+@@ -67,20 +62,42 @@ static struct {
+ .refcount = 0,
+ };
+
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-# define hotplug_lock() rt_spin_lock(&cpu_hotplug.lock)
+-# define hotplug_unlock() rt_spin_unlock(&cpu_hotplug.lock)
+-#else
+-# define hotplug_lock() mutex_lock(&cpu_hotplug.lock)
+-# define hotplug_unlock() mutex_unlock(&cpu_hotplug.lock)
+-#endif
+-
++/**
++ * hotplug_pcp - per cpu hotplug descriptor
++ * @unplug: set when pin_current_cpu() needs to sync tasks
++ * @sync_tsk: the task that waits for tasks to finish pinned sections
++ * @refcount: counter of tasks in pinned sections
++ * @grab_lock: set when the tasks entering pinned sections should wait
++ * @synced: notifier for @sync_tsk to tell cpu_down it's finished
++ * @mutex: the mutex to make tasks wait (used when @grab_lock is true)
++ * @mutex_init: zero if the mutex hasn't been initialized yet.
++ *
++ * Although @unplug and @sync_tsk may point to the same task, the @unplug
++ * is used as a flag and still exists after @sync_tsk has exited and
++ * @sync_tsk set to NULL.
++ */
+ struct hotplug_pcp {
+ struct task_struct *unplug;
++ struct task_struct *sync_tsk;
+ int refcount;
++ int grab_lock;
+ struct completion synced;
++#ifdef CONFIG_PREEMPT_RT_FULL
++ spinlock_t lock;
++#else
++ struct mutex mutex;
++#endif
++ int mutex_init;
+ };
+
++#ifdef CONFIG_PREEMPT_RT_FULL
++# define hotplug_lock(hp) rt_spin_lock(&(hp)->lock)
++# define hotplug_unlock(hp) rt_spin_unlock(&(hp)->lock)
++#else
++# define hotplug_lock(hp) mutex_lock(&(hp)->mutex)
++# define hotplug_unlock(hp) mutex_unlock(&(hp)->mutex)
++#endif
++
+ static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp);
+
+ /**
+@@ -94,18 +111,40 @@ static DEFINE_PER_CPU(struct hotplug_pcp, hotplug_pcp);
+ void pin_current_cpu(void)
+ {
+ struct hotplug_pcp *hp;
++ int force = 0;
+
+ retry:
+ hp = &__get_cpu_var(hotplug_pcp);
+
+- if (!hp->unplug || hp->refcount || preempt_count() > 1 ||
++ if (!hp->unplug || hp->refcount || force || preempt_count() > 1 ||
+ hp->unplug == current || (current->flags & PF_STOMPER)) {
+ hp->refcount++;
+ return;
+ }
+- preempt_enable();
+- hotplug_lock();
+- hotplug_unlock();
++
++ if (hp->grab_lock) {
++ preempt_enable();
++ hotplug_lock(hp);
++ hotplug_unlock(hp);
++ } else {
++ preempt_enable();
++ /*
++ * Try to push this task off of this CPU.
++ */
++ if (!migrate_me()) {
++ preempt_disable();
++ hp = &__get_cpu_var(hotplug_pcp);
++ if (!hp->grab_lock) {
++ /*
++ * Just let it continue it's already pinned
++ * or about to sleep.
++ */
++ force = 1;
++ goto retry;
++ }
++ preempt_enable();
++ }
++ }
+ preempt_disable();
+ goto retry;
+ }
+@@ -127,26 +166,84 @@ void unpin_current_cpu(void)
+ wake_up_process(hp->unplug);
+ }
+
+-/*
+- * FIXME: Is this really correct under all circumstances ?
+- */
++static void wait_for_pinned_cpus(struct hotplug_pcp *hp)
++{
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ while (hp->refcount) {
++ schedule_preempt_disabled();
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ }
++}
++
+ static int sync_unplug_thread(void *data)
+ {
+ struct hotplug_pcp *hp = data;
+
+ preempt_disable();
+ hp->unplug = current;
++ wait_for_pinned_cpus(hp);
++
++ /*
++ * This thread will synchronize the cpu_down() with threads
++ * that have pinned the CPU. When the pinned CPU count reaches
++ * zero, we inform the cpu_down code to continue to the next step.
++ */
+ set_current_state(TASK_UNINTERRUPTIBLE);
+- while (hp->refcount) {
+- schedule_preempt_disabled();
++ preempt_enable();
++ complete(&hp->synced);
++
++ /*
++ * If all succeeds, the next step will need tasks to wait till
++ * the CPU is offline before continuing. To do this, the grab_lock
++ * is set and tasks going into pin_current_cpu() will block on the
++ * mutex. But we still need to wait for those that are already in
++ * pinned CPU sections. If the cpu_down() failed, the kthread_should_stop()
++ * will kick this thread out.
++ */
++ while (!hp->grab_lock && !kthread_should_stop()) {
++ schedule();
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ }
++
++ /* Make sure grab_lock is seen before we see a stale completion */
++ smp_mb();
++
++ /*
++ * Now just before cpu_down() enters stop machine, we need to make
++ * sure all tasks that are in pinned CPU sections are out, and new
++ * tasks will now grab the lock, keeping them from entering pinned
++ * CPU sections.
++ */
++ if (!kthread_should_stop()) {
++ preempt_disable();
++ wait_for_pinned_cpus(hp);
++ preempt_enable();
++ complete(&hp->synced);
++ }
++
++ set_current_state(TASK_UNINTERRUPTIBLE);
++ while (!kthread_should_stop()) {
++ schedule();
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ }
+ set_current_state(TASK_RUNNING);
+- preempt_enable();
+- complete(&hp->synced);
++
++ /*
++ * Force this thread off this CPU as it's going down and
++ * we don't want any more work on this CPU.
++ */
++ current->flags &= ~PF_THREAD_BOUND;
++ do_set_cpus_allowed(current, cpu_present_mask);
++ migrate_me();
+ return 0;
+ }
+
++static void __cpu_unplug_sync(struct hotplug_pcp *hp)
++{
++ wake_up_process(hp->sync_tsk);
++ wait_for_completion(&hp->synced);
++}
++
+ /*
+ * Start the sync_unplug_thread on the target cpu and wait for it to
+ * complete.
+@@ -154,23 +251,83 @@ static int sync_unplug_thread(void *data)
+ static int cpu_unplug_begin(unsigned int cpu)
+ {
+ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
+- struct task_struct *tsk;
++ int err;
++
++ /* Protected by cpu_hotplug.lock */
++ if (!hp->mutex_init) {
++#ifdef CONFIG_PREEMPT_RT_FULL
++ spin_lock_init(&hp->lock);
++#else
++ mutex_init(&hp->mutex);
++#endif
++ hp->mutex_init = 1;
++ }
++
++ /* Inform the scheduler to migrate tasks off this CPU */
++ tell_sched_cpu_down_begin(cpu);
+
+ init_completion(&hp->synced);
+- tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu);
+- if (IS_ERR(tsk))
+- return (PTR_ERR(tsk));
+- kthread_bind(tsk, cpu);
+- wake_up_process(tsk);
+- wait_for_completion(&hp->synced);
++
++ hp->sync_tsk = kthread_create(sync_unplug_thread, hp, "sync_unplug/%d", cpu);
++ if (IS_ERR(hp->sync_tsk)) {
++ err = PTR_ERR(hp->sync_tsk);
++ hp->sync_tsk = NULL;
++ return err;
++ }
++ kthread_bind(hp->sync_tsk, cpu);
++
++ /*
++ * Wait for tasks to get out of the pinned sections,
++ * it's still OK if new tasks enter. Some CPU notifiers will
++ * wait for tasks that are going to enter these sections and
++ * we must not have them block.
++ */
++ __cpu_unplug_sync(hp);
++
+ return 0;
+ }
+
++static void cpu_unplug_sync(unsigned int cpu)
++{
++ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
++
++ init_completion(&hp->synced);
++ /* The completion needs to be initialzied before setting grab_lock */
++ smp_wmb();
++
++ /* Grab the mutex before setting grab_lock */
++ hotplug_lock(hp);
++ hp->grab_lock = 1;
++
++ /*
++ * The CPU notifiers have been completed.
++ * Wait for tasks to get out of pinned CPU sections and have new
++ * tasks block until the CPU is completely down.
++ */
++ __cpu_unplug_sync(hp);
++
++ /* All done with the sync thread */
++ kthread_stop(hp->sync_tsk);
++ hp->sync_tsk = NULL;
++}
++
+ static void cpu_unplug_done(unsigned int cpu)
+ {
+ struct hotplug_pcp *hp = &per_cpu(hotplug_pcp, cpu);
+
+ hp->unplug = NULL;
++ /* Let all tasks know cpu unplug is finished before cleaning up */
++ smp_wmb();
++
++ if (hp->sync_tsk)
++ kthread_stop(hp->sync_tsk);
++
++ if (hp->grab_lock) {
++ hotplug_unlock(hp);
++ /* protected by cpu_hotplug.lock */
++ hp->grab_lock = 0;
++ }
++ tell_sched_cpu_down_done(cpu);
+ }
+
+ void get_online_cpus(void)
+@@ -178,9 +335,9 @@ void get_online_cpus(void)
+ might_sleep();
+ if (cpu_hotplug.active_writer == current)
+ return;
+- hotplug_lock();
++ mutex_lock(&cpu_hotplug.lock);
+ cpu_hotplug.refcount++;
+- hotplug_unlock();
++ mutex_unlock(&cpu_hotplug.lock);
+
+ }
+ EXPORT_SYMBOL_GPL(get_online_cpus);
+@@ -189,10 +346,10 @@ void put_online_cpus(void)
+ {
+ if (cpu_hotplug.active_writer == current)
+ return;
+- hotplug_lock();
++ mutex_lock(&cpu_hotplug.lock);
+ if (!--cpu_hotplug.refcount && unlikely(cpu_hotplug.active_writer))
+ wake_up_process(cpu_hotplug.active_writer);
+- hotplug_unlock();
++ mutex_unlock(&cpu_hotplug.lock);
+
+ }
+ EXPORT_SYMBOL_GPL(put_online_cpus);
+@@ -224,11 +381,11 @@ static void cpu_hotplug_begin(void)
+ cpu_hotplug.active_writer = current;
+
+ for (;;) {
+- hotplug_lock();
++ mutex_lock(&cpu_hotplug.lock);
+ if (likely(!cpu_hotplug.refcount))
+ break;
+ __set_current_state(TASK_UNINTERRUPTIBLE);
+- hotplug_unlock();
++ mutex_unlock(&cpu_hotplug.lock);
+ schedule();
+ }
+ }
+@@ -236,7 +393,7 @@ static void cpu_hotplug_begin(void)
+ static void cpu_hotplug_done(void)
+ {
+ cpu_hotplug.active_writer = NULL;
+- hotplug_unlock();
++ mutex_unlock(&cpu_hotplug.lock);
+ }
+
+ #else /* #if CONFIG_HOTPLUG_CPU */
+@@ -370,6 +527,9 @@ static int __ref _cpu_down(unsigned int cpu, int tasks_frozen)
+ goto out_release;
+ }
+
++ /* Notifiers are done. Don't let any more tasks pin this CPU. */
++ cpu_unplug_sync(cpu);
++
+ err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
+ if (err) {
+ /* CPU didn't die: tell everyone. Can't complain. */
+diff --git a/kernel/sched/core.c b/kernel/sched/core.c
+index e8d5a10..f5ee392 100644
+--- a/kernel/sched/core.c
++++ b/kernel/sched/core.c
+@@ -3184,7 +3184,7 @@ void migrate_disable(void)
+ {
+ struct task_struct *p = current;
+
+- if (in_atomic() || p->flags & PF_THREAD_BOUND) {
++ if (in_atomic()) {
+ #ifdef CONFIG_SCHED_DEBUG
+ p->migrate_disable_atomic++;
+ #endif
+@@ -3215,7 +3215,7 @@ void migrate_enable(void)
+ unsigned long flags;
+ struct rq *rq;
+
+- if (in_atomic() || p->flags & PF_THREAD_BOUND) {
++ if (in_atomic()) {
+ #ifdef CONFIG_SCHED_DEBUG
+ p->migrate_disable_atomic--;
+ #endif
+@@ -5114,6 +5114,84 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
+ cpumask_copy(&p->cpus_allowed, new_mask);
+ }
+
++static DEFINE_PER_CPU(struct cpumask, sched_cpumasks);
++static DEFINE_MUTEX(sched_down_mutex);
++static cpumask_t sched_down_cpumask;
++
++void tell_sched_cpu_down_begin(int cpu)
++{
++ mutex_lock(&sched_down_mutex);
++ cpumask_set_cpu(cpu, &sched_down_cpumask);
++ mutex_unlock(&sched_down_mutex);
++}
++
++void tell_sched_cpu_down_done(int cpu)
++{
++ mutex_lock(&sched_down_mutex);
++ cpumask_clear_cpu(cpu, &sched_down_cpumask);
++ mutex_unlock(&sched_down_mutex);
++}
++
++/**
++ * migrate_me - try to move the current task off this cpu
++ *
++ * Used by the pin_current_cpu() code to try to get tasks
++ * to move off the current CPU as it is going down.
++ * It will only move the task if the task isn't pinned to
++ * the CPU (with migrate_disable, affinity or THREAD_BOUND)
++ * and the task has to be in a RUNNING state. Otherwise the
++ * movement of the task will wake it up (change its state
++ * to running) when the task did not expect it.
++ *
++ * Returns 1 if it succeeded in moving the current task
++ * 0 otherwise.
++ */
++int migrate_me(void)
++{
++ struct task_struct *p = current;
++ struct migration_arg arg;
++ struct cpumask *cpumask;
++ struct cpumask *mask;
++ unsigned long flags;
++ unsigned int dest_cpu;
++ struct rq *rq;
++
++ /*
++ * We can not migrate tasks bounded to a CPU or tasks not
++ * running. The movement of the task will wake it up.
++ */
++ if (p->flags & PF_THREAD_BOUND || p->state)
++ return 0;
++
++ mutex_lock(&sched_down_mutex);
++ rq = task_rq_lock(p, &flags);
++
++ cpumask = &__get_cpu_var(sched_cpumasks);
++ mask = &p->cpus_allowed;
++
++ cpumask_andnot(cpumask, mask, &sched_down_cpumask);
++
++ if (!cpumask_weight(cpumask)) {
++ /* It's only on this CPU? */
++ task_rq_unlock(rq, p, &flags);
++ mutex_unlock(&sched_down_mutex);
++ return 0;
++ }
++
++ dest_cpu = cpumask_any_and(cpu_active_mask, cpumask);
++
++ arg.task = p;
++ arg.dest_cpu = dest_cpu;
++
++ task_rq_unlock(rq, p, &flags);
++
++ stop_one_cpu(cpu_of(rq), migration_cpu_stop, &arg);
++ tlb_migrate_finish(p->mm);
++ mutex_unlock(&sched_down_mutex);
++
++ return 1;
++}
++
+ /*
+ * This is how migration works:
+ *
+--
+1.7.10.4
+
diff --git a/patches/0264-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch b/patches/0264-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
new file mode 100644
index 0000000..ea2de5f
--- /dev/null
+++ b/patches/0264-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
@@ -0,0 +1,35 @@
+From e49b7321c0c685e70b356d590a2db7503e3bd769 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt@redhat.com>
+Date: Tue, 17 Jul 2012 10:45:59 -0400
+Subject: [PATCH 264/267] cpu/rt: Fix cpu_hotplug variable initialization
+
+The commit "cpu/rt: Rework cpu down for PREEMPT_RT" changed the double
+meaning of the cpu_hotplug.lock, where it was a spinlock for RT and a
+mutex for non-RT, to just a mutex for both. But the initialization of
+the variable was not updated to reflect this change.
+
+Cc: stable-rt@vger.kernel.org
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+---
+ kernel/cpu.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/kernel/cpu.c b/kernel/cpu.c
+index c5b3273..3e722c0 100644
+--- a/kernel/cpu.c
++++ b/kernel/cpu.c
+@@ -54,11 +54,7 @@ static struct {
+ int refcount;
+ } cpu_hotplug = {
+ .active_writer = NULL,
+-#ifdef CONFIG_PREEMPT_RT_FULL
+- .lock = __SPIN_LOCK_UNLOCKED(cpu_hotplug.lock),
+-#else
+ .lock = __MUTEX_INITIALIZER(cpu_hotplug.lock),
+-#endif
+ .refcount = 0,
+ };
+
+--
+1.7.10.4
+
diff --git a/patches/0265-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch b/patches/0265-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
new file mode 100644
index 0000000..9a348c3
--- /dev/null
+++ b/patches/0265-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
@@ -0,0 +1,96 @@
+From 1d52d12fe114853b641a5c80c075acb0270bbdd4 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt@redhat.com>
+Date: Mon, 16 Jul 2012 08:07:44 +0000
+Subject: [PATCH 265/267] workqueue: Revert workqueue: Fix PF_THREAD_BOUND
+ abuse
+
+Revert commit
+
+ Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
+ Date: Mon Oct 3 12:43:25 2011 +0200
+ workqueue: Fix PF_THREAD_BOUND abuse
+
+As TREAD_BOUND no longer affects cpu down, and this code introduced
+a lot of races with taking down a CPU.
+
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ kernel/workqueue.c | 29 +++++++++--------------------
+ 1 file changed, 9 insertions(+), 20 deletions(-)
+
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index bc867e8..1e7f9c7 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -1283,14 +1283,8 @@ __acquires(&gcwq->lock)
+ return false;
+ if (task_cpu(task) == gcwq->cpu &&
+ cpumask_equal(&current->cpus_allowed,
+- get_cpu_mask(gcwq->cpu))) {
+- /*
+- * Since we're binding to a particular cpu and need to
+- * stay there for correctness, mark us PF_THREAD_BOUND.
+- */
+- task->flags |= PF_THREAD_BOUND;
++ get_cpu_mask(gcwq->cpu)))
+ return true;
+- }
+ spin_unlock_irq(&gcwq->lock);
+
+ /*
+@@ -1304,18 +1298,6 @@ __acquires(&gcwq->lock)
+ }
+ }
+
+-static void worker_unbind_and_unlock(struct worker *worker)
+-{
+- struct global_cwq *gcwq = worker->gcwq;
+- struct task_struct *task = worker->task;
+-
+- /*
+- * Its no longer required we're PF_THREAD_BOUND, the work is done.
+- */
+- task->flags &= ~PF_THREAD_BOUND;
+- spin_unlock_irq(&gcwq->lock);
+-}
+-
+ static struct worker *alloc_worker(void)
+ {
+ struct worker *worker;
+@@ -1378,9 +1360,15 @@ static struct worker *create_worker(struct global_cwq *gcwq, bool bind)
+ if (IS_ERR(worker->task))
+ goto fail;
+
++ /*
++ * A rogue worker will become a regular one if CPU comes
++ * online later on. Make sure every worker has
++ * PF_THREAD_BOUND set.
++ */
+ if (bind && !on_unbound_cpu)
+ kthread_bind(worker->task, gcwq->cpu);
+ else {
++ worker->task->flags |= PF_THREAD_BOUND;
+ if (on_unbound_cpu)
+ worker->flags |= WORKER_UNBOUND;
+ }
+@@ -2057,7 +2045,7 @@ repeat:
+ if (keep_working(gcwq))
+ wake_up_worker(gcwq);
+
+- worker_unbind_and_unlock(rescuer);
++ spin_unlock_irq(&gcwq->lock);
+ }
+
+ schedule();
+@@ -3007,6 +2995,7 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
+ if (IS_ERR(rescuer->task))
+ goto err;
+
++ rescuer->task->flags |= PF_THREAD_BOUND;
+ wake_up_process(rescuer->task);
+ }
+
+--
+1.7.10.4
+
diff --git a/patches/0266-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch b/patches/0266-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch
new file mode 100644
index 0000000..5484dd1
--- /dev/null
+++ b/patches/0266-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch
@@ -0,0 +1,803 @@
+From 5d65ac9b56b0f4cd942798c5462c05ba5317bae4 Mon Sep 17 00:00:00 2001
+From: Steven Rostedt <srostedt@redhat.com>
+Date: Mon, 16 Jul 2012 08:07:44 +0000
+Subject: [PATCH 266/267] workqueue: Revert workqueue: Fix cpuhotplug
+ trainwreck
+
+Revert
+
+ Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
+ Date: Fri Sep 30 11:57:58 2011 +0200
+ workqueue: Fix cpuhotplug trainwreck
+
+As TREAD_BOUND no longer affects cpu down, and this code introduced
+a lot of races with taking down a CPU.
+
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+---
+ include/linux/cpu.h | 6 +-
+ include/linux/workqueue.h | 5 +-
+ kernel/workqueue.c | 561 +++++++++++++++++++++++++++++++++------------
+ 3 files changed, 415 insertions(+), 157 deletions(-)
+
+diff --git a/include/linux/cpu.h b/include/linux/cpu.h
+index a6bda1b..00d2f6f8 100644
+--- a/include/linux/cpu.h
++++ b/include/linux/cpu.h
+@@ -75,10 +75,8 @@ enum {
+ /* migration should happen before other stuff but after perf */
+ CPU_PRI_PERF = 20,
+ CPU_PRI_MIGRATION = 10,
+-
+- CPU_PRI_WORKQUEUE_ACTIVE = 5, /* prepare workqueues for others */
+- CPU_PRI_NORMAL = 0,
+- CPU_PRI_WORKQUEUE_INACTIVE = -5, /* flush workqueues after others */
++ /* prepare workqueues for other notifiers */
++ CPU_PRI_WORKQUEUE = 5,
+ };
+
+ #define CPU_ONLINE 0x0002 /* CPU (unsigned)v is up */
+diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
+index 9849be1..af15545 100644
+--- a/include/linux/workqueue.h
++++ b/include/linux/workqueue.h
+@@ -254,10 +254,9 @@ enum {
+ WQ_MEM_RECLAIM = 1 << 3, /* may be used for memory reclaim */
+ WQ_HIGHPRI = 1 << 4, /* high priority */
+ WQ_CPU_INTENSIVE = 1 << 5, /* cpu instensive workqueue */
+- WQ_NON_AFFINE = 1 << 6, /* free to move works around cpus */
+
+- WQ_DRAINING = 1 << 7, /* internal: workqueue is draining */
+- WQ_RESCUER = 1 << 8, /* internal: workqueue has rescuer */
++ WQ_DRAINING = 1 << 6, /* internal: workqueue is draining */
++ WQ_RESCUER = 1 << 7, /* internal: workqueue has rescuer */
+
+ WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */
+ WQ_MAX_UNBOUND_PER_CPU = 4, /* 4 * #cpus for unbound wq */
+diff --git a/kernel/workqueue.c b/kernel/workqueue.c
+index 1e7f9c7..33d1095 100644
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -41,7 +41,6 @@
+ #include <linux/debug_locks.h>
+ #include <linux/lockdep.h>
+ #include <linux/idr.h>
+-#include <linux/delay.h>
+
+ #include "workqueue_sched.h"
+
+@@ -58,10 +57,20 @@ enum {
+ WORKER_DIE = 1 << 1, /* die die die */
+ WORKER_IDLE = 1 << 2, /* is idle */
+ WORKER_PREP = 1 << 3, /* preparing to run works */
+- WORKER_CPU_INTENSIVE = 1 << 4, /* cpu intensive */
+- WORKER_UNBOUND = 1 << 5, /* worker is unbound */
++ WORKER_ROGUE = 1 << 4, /* not bound to any cpu */
++ WORKER_REBIND = 1 << 5, /* mom is home, come back */
++ WORKER_CPU_INTENSIVE = 1 << 6, /* cpu intensive */
++ WORKER_UNBOUND = 1 << 7, /* worker is unbound */
+
+- WORKER_NOT_RUNNING = WORKER_PREP | WORKER_CPU_INTENSIVE | WORKER_UNBOUND,
++ WORKER_NOT_RUNNING = WORKER_PREP | WORKER_ROGUE | WORKER_REBIND |
++ WORKER_CPU_INTENSIVE | WORKER_UNBOUND,
++
++ /* gcwq->trustee_state */
++ TRUSTEE_START = 0, /* start */
++ TRUSTEE_IN_CHARGE = 1, /* trustee in charge of gcwq */
++ TRUSTEE_BUTCHER = 2, /* butcher workers */
++ TRUSTEE_RELEASE = 3, /* release workers */
++ TRUSTEE_DONE = 4, /* trustee is done */
+
+ BUSY_WORKER_HASH_ORDER = 6, /* 64 pointers */
+ BUSY_WORKER_HASH_SIZE = 1 << BUSY_WORKER_HASH_ORDER,
+@@ -75,6 +84,7 @@ enum {
+ (min two ticks) */
+ MAYDAY_INTERVAL = HZ / 10, /* and then every 100ms */
+ CREATE_COOLDOWN = HZ, /* time to breath after fail */
++ TRUSTEE_COOLDOWN = HZ / 10, /* for trustee draining */
+
+ /*
+ * Rescue workers are used only on emergencies and shared by
+@@ -126,6 +136,7 @@ struct worker {
+ unsigned long last_active; /* L: last active timestamp */
+ unsigned int flags; /* X: flags */
+ int id; /* I: worker id */
++ struct work_struct rebind_work; /* L: rebind worker to cpu */
+ int sleeping; /* None */
+ };
+
+@@ -153,8 +164,10 @@ struct global_cwq {
+
+ struct ida worker_ida; /* L: for worker IDs */
+
++ struct task_struct *trustee; /* L: for gcwq shutdown */
++ unsigned int trustee_state; /* L: trustee state */
++ wait_queue_head_t trustee_wait; /* trustee wait */
+ struct worker *first_idle; /* L: first idle worker */
+- wait_queue_head_t idle_wait;
+ } ____cacheline_aligned_in_smp;
+
+ /*
+@@ -956,38 +969,13 @@ static bool is_chained_work(struct workqueue_struct *wq)
+ return false;
+ }
+
+-static void ___queue_work(struct workqueue_struct *wq, struct global_cwq *gcwq,
+- struct work_struct *work)
+-{
+- struct cpu_workqueue_struct *cwq;
+- struct list_head *worklist;
+- unsigned int work_flags;
+-
+- /* gcwq determined, get cwq and queue */
+- cwq = get_cwq(gcwq->cpu, wq);
+- trace_workqueue_queue_work(gcwq->cpu, cwq, work);
+-
+- BUG_ON(!list_empty(&work->entry));
+-
+- cwq->nr_in_flight[cwq->work_color]++;
+- work_flags = work_color_to_flags(cwq->work_color);
+-
+- if (likely(cwq->nr_active < cwq->max_active)) {
+- trace_workqueue_activate_work(work);
+- cwq->nr_active++;
+- worklist = gcwq_determine_ins_pos(gcwq, cwq);
+- } else {
+- work_flags |= WORK_STRUCT_DELAYED;
+- worklist = &cwq->delayed_works;
+- }
+-
+- insert_work(cwq, work, worklist, work_flags);
+-}
+-
+ static void __queue_work(unsigned int cpu, struct workqueue_struct *wq,
+ struct work_struct *work)
+ {
+ struct global_cwq *gcwq;
++ struct cpu_workqueue_struct *cwq;
++ struct list_head *worklist;
++ unsigned int work_flags;
+ unsigned long flags;
+
+ debug_work_activate(work);
+@@ -1033,32 +1021,27 @@ static void __queue_work(unsigned int cpu, struct workqueue_struct *wq,
+ spin_lock_irqsave(&gcwq->lock, flags);
+ }
+
+- ___queue_work(wq, gcwq, work);
++ /* gcwq determined, get cwq and queue */
++ cwq = get_cwq(gcwq->cpu, wq);
++ trace_workqueue_queue_work(cpu, cwq, work);
+
+- spin_unlock_irqrestore(&gcwq->lock, flags);
+-}
++ BUG_ON(!list_empty(&work->entry));
+
+-/**
+- * queue_work_on - queue work on specific cpu
+- * @cpu: CPU number to execute work on
+- * @wq: workqueue to use
+- * @work: work to queue
+- *
+- * Returns 0 if @work was already on a queue, non-zero otherwise.
+- *
+- * We queue the work to a specific CPU, the caller must ensure it
+- * can't go away.
+- */
+-static int
+-__queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work)
+-{
+- int ret = 0;
++ cwq->nr_in_flight[cwq->work_color]++;
++ work_flags = work_color_to_flags(cwq->work_color);
+
+- if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+- __queue_work(cpu, wq, work);
+- ret = 1;
++ if (likely(cwq->nr_active < cwq->max_active)) {
++ trace_workqueue_activate_work(work);
++ cwq->nr_active++;
++ worklist = gcwq_determine_ins_pos(gcwq, cwq);
++ } else {
++ work_flags |= WORK_STRUCT_DELAYED;
++ worklist = &cwq->delayed_works;
+ }
+- return ret;
++
++ insert_work(cwq, work, worklist, work_flags);
++
++ spin_unlock_irqrestore(&gcwq->lock, flags);
+ }
+
+ /**
+@@ -1075,19 +1058,34 @@ int queue_work(struct workqueue_struct *wq, struct work_struct *work)
+ {
+ int ret;
+
+- ret = __queue_work_on(get_cpu_light(), wq, work);
++ ret = queue_work_on(get_cpu_light(), wq, work);
+ put_cpu_light();
+
+ return ret;
+ }
+ EXPORT_SYMBOL_GPL(queue_work);
+
++/**
++ * queue_work_on - queue work on specific cpu
++ * @cpu: CPU number to execute work on
++ * @wq: workqueue to use
++ * @work: work to queue
++ *
++ * Returns 0 if @work was already on a queue, non-zero otherwise.
++ *
++ * We queue the work to a specific CPU, the caller must ensure it
++ * can't go away.
++ */
+ int
+ queue_work_on(int cpu, struct workqueue_struct *wq, struct work_struct *work)
+ {
+- WARN_ON(wq->flags & WQ_NON_AFFINE);
++ int ret = 0;
+
+- return __queue_work_on(cpu, wq, work);
++ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
++ __queue_work(cpu, wq, work);
++ ret = 1;
++ }
++ return ret;
+ }
+ EXPORT_SYMBOL_GPL(queue_work_on);
+
+@@ -1133,8 +1131,6 @@ int queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
+ struct timer_list *timer = &dwork->timer;
+ struct work_struct *work = &dwork->work;
+
+- WARN_ON((wq->flags & WQ_NON_AFFINE) && cpu != -1);
+-
+ if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
+ unsigned int lcpu;
+
+@@ -1200,13 +1196,12 @@ static void worker_enter_idle(struct worker *worker)
+ /* idle_list is LIFO */
+ list_add(&worker->entry, &gcwq->idle_list);
+
+- if (gcwq->nr_idle == gcwq->nr_workers)
+- wake_up_all(&gcwq->idle_wait);
+-
+- if (too_many_workers(gcwq) && !timer_pending(&gcwq->idle_timer)) {
+- mod_timer(&gcwq->idle_timer,
+- jiffies + IDLE_WORKER_TIMEOUT);
+- }
++ if (likely(!(worker->flags & WORKER_ROGUE))) {
++ if (too_many_workers(gcwq) && !timer_pending(&gcwq->idle_timer))
++ mod_timer(&gcwq->idle_timer,
++ jiffies + IDLE_WORKER_TIMEOUT);
++ } else
++ wake_up_all(&gcwq->trustee_wait);
+
+ /* sanity check nr_running */
+ WARN_ON_ONCE(gcwq->nr_workers == gcwq->nr_idle &&
+@@ -1298,6 +1293,23 @@ __acquires(&gcwq->lock)
+ }
+ }
+
++/*
++ * Function for worker->rebind_work used to rebind rogue busy workers
++ * to the associated cpu which is coming back online. This is
++ * scheduled by cpu up but can race with other cpu hotplug operations
++ * and may be executed twice without intervening cpu down.
++ */
++static void worker_rebind_fn(struct work_struct *work)
++{
++ struct worker *worker = container_of(work, struct worker, rebind_work);
++ struct global_cwq *gcwq = worker->gcwq;
++
++ if (worker_maybe_bind_and_lock(worker))
++ worker_clr_flags(worker, WORKER_REBIND);
++
++ spin_unlock_irq(&gcwq->lock);
++}
++
+ static struct worker *alloc_worker(void)
+ {
+ struct worker *worker;
+@@ -1306,6 +1318,7 @@ static struct worker *alloc_worker(void)
+ if (worker) {
+ INIT_LIST_HEAD(&worker->entry);
+ INIT_LIST_HEAD(&worker->scheduled);
++ INIT_WORK(&worker->rebind_work, worker_rebind_fn);
+ /* on creation a worker is in !idle && prep state */
+ worker->flags = WORKER_PREP;
+ }
+@@ -1645,6 +1658,13 @@ static bool manage_workers(struct worker *worker)
+
+ gcwq->flags &= ~GCWQ_MANAGING_WORKERS;
+
++ /*
++ * The trustee might be waiting to take over the manager
++ * position, tell it we're done.
++ */
++ if (unlikely(gcwq->trustee))
++ wake_up_all(&gcwq->trustee_wait);
++
+ return ret;
+ }
+
+@@ -3185,76 +3205,171 @@ EXPORT_SYMBOL_GPL(work_busy);
+ * gcwqs serve mix of short, long and very long running works making
+ * blocked draining impractical.
+ *
++ * This is solved by allowing a gcwq to be detached from CPU, running
++ * it with unbound (rogue) workers and allowing it to be reattached
++ * later if the cpu comes back online. A separate thread is created
++ * to govern a gcwq in such state and is called the trustee of the
++ * gcwq.
++ *
++ * Trustee states and their descriptions.
++ *
++ * START Command state used on startup. On CPU_DOWN_PREPARE, a
++ * new trustee is started with this state.
++ *
++ * IN_CHARGE Once started, trustee will enter this state after
++ * assuming the manager role and making all existing
++ * workers rogue. DOWN_PREPARE waits for trustee to
++ * enter this state. After reaching IN_CHARGE, trustee
++ * tries to execute the pending worklist until it's empty
++ * and the state is set to BUTCHER, or the state is set
++ * to RELEASE.
++ *
++ * BUTCHER Command state which is set by the cpu callback after
++ * the cpu has went down. Once this state is set trustee
++ * knows that there will be no new works on the worklist
++ * and once the worklist is empty it can proceed to
++ * killing idle workers.
++ *
++ * RELEASE Command state which is set by the cpu callback if the
++ * cpu down has been canceled or it has come online
++ * again. After recognizing this state, trustee stops
++ * trying to drain or butcher and clears ROGUE, rebinds
++ * all remaining workers back to the cpu and releases
++ * manager role.
++ *
++ * DONE Trustee will enter this state after BUTCHER or RELEASE
++ * is complete.
++ *
++ * trustee CPU draining
++ * took over down complete
++ * START -----------> IN_CHARGE -----------> BUTCHER -----------> DONE
++ * | | ^
++ * | CPU is back online v return workers |
++ * ----------------> RELEASE --------------
+ */
+
+-static int __devinit workqueue_cpu_up_callback(struct notifier_block *nfb,
+- unsigned long action,
+- void *hcpu)
+-{
+- unsigned int cpu = (unsigned long)hcpu;
+- struct global_cwq *gcwq = get_gcwq(cpu);
+- struct worker *uninitialized_var(new_worker);
+- unsigned long flags;
++/**
++ * trustee_wait_event_timeout - timed event wait for trustee
++ * @cond: condition to wait for
++ * @timeout: timeout in jiffies
++ *
++ * wait_event_timeout() for trustee to use. Handles locking and
++ * checks for RELEASE request.
++ *
++ * CONTEXT:
++ * spin_lock_irq(gcwq->lock) which may be released and regrabbed
++ * multiple times. To be used by trustee.
++ *
++ * RETURNS:
++ * Positive indicating left time if @cond is satisfied, 0 if timed
++ * out, -1 if canceled.
++ */
++#define trustee_wait_event_timeout(cond, timeout) ({ \
++ long __ret = (timeout); \
++ while (!((cond) || (gcwq->trustee_state == TRUSTEE_RELEASE)) && \
++ __ret) { \
++ spin_unlock_irq(&gcwq->lock); \
++ __wait_event_timeout(gcwq->trustee_wait, (cond) || \
++ (gcwq->trustee_state == TRUSTEE_RELEASE), \
++ __ret); \
++ spin_lock_irq(&gcwq->lock); \
++ } \
++ gcwq->trustee_state == TRUSTEE_RELEASE ? -1 : (__ret); \
++})
+
+- action &= ~CPU_TASKS_FROZEN;
++/**
++ * trustee_wait_event - event wait for trustee
++ * @cond: condition to wait for
++ *
++ * wait_event() for trustee to use. Automatically handles locking and
++ * checks for CANCEL request.
++ *
++ * CONTEXT:
++ * spin_lock_irq(gcwq->lock) which may be released and regrabbed
++ * multiple times. To be used by trustee.
++ *
++ * RETURNS:
++ * 0 if @cond is satisfied, -1 if canceled.
++ */
++#define trustee_wait_event(cond) ({ \
++ long __ret1; \
++ __ret1 = trustee_wait_event_timeout(cond, MAX_SCHEDULE_TIMEOUT);\
++ __ret1 < 0 ? -1 : 0; \
++})
+
+- switch (action) {
+- case CPU_UP_PREPARE:
+- BUG_ON(gcwq->first_idle);
+- new_worker = create_worker(gcwq, false);
+- if (!new_worker)
+- return NOTIFY_BAD;
+- case CPU_UP_CANCELED:
+- case CPU_ONLINE:
+- break;
+- default:
+- return notifier_from_errno(0);
+- }
++static int __cpuinit trustee_thread(void *__gcwq)
++{
++ struct global_cwq *gcwq = __gcwq;
++ struct worker *worker;
++ struct work_struct *work;
++ struct hlist_node *pos;
++ long rc;
++ int i;
+
+- /* some are called w/ irq disabled, don't disturb irq status */
+- spin_lock_irqsave(&gcwq->lock, flags);
++ BUG_ON(gcwq->cpu != smp_processor_id());
+
+- switch (action) {
+- case CPU_UP_PREPARE:
+- BUG_ON(gcwq->first_idle);
+- gcwq->first_idle = new_worker;
+- break;
++ spin_lock_irq(&gcwq->lock);
++ /*
++ * Claim the manager position and make all workers rogue.
++ * Trustee must be bound to the target cpu and can't be
++ * cancelled.
++ */
++ BUG_ON(gcwq->cpu != smp_processor_id());
++ rc = trustee_wait_event(!(gcwq->flags & GCWQ_MANAGING_WORKERS));
++ BUG_ON(rc < 0);
+
+- case CPU_UP_CANCELED:
+- destroy_worker(gcwq->first_idle);
+- gcwq->first_idle = NULL;
+- break;
++ gcwq->flags |= GCWQ_MANAGING_WORKERS;
+
+- case CPU_ONLINE:
+- spin_unlock_irq(&gcwq->lock);
+- kthread_bind(gcwq->first_idle->task, cpu);
+- spin_lock_irq(&gcwq->lock);
+- gcwq->flags |= GCWQ_MANAGE_WORKERS;
+- start_worker(gcwq->first_idle);
+- gcwq->first_idle = NULL;
+- break;
+- }
++ list_for_each_entry(worker, &gcwq->idle_list, entry)
++ worker->flags |= WORKER_ROGUE;
+
+- spin_unlock_irqrestore(&gcwq->lock, flags);
++ for_each_busy_worker(worker, i, pos, gcwq)
++ worker->flags |= WORKER_ROGUE;
+
+- return notifier_from_errno(0);
+-}
++ /*
++ * Call schedule() so that we cross rq->lock and thus can
++ * guarantee sched callbacks see the rogue flag. This is
++ * necessary as scheduler callbacks may be invoked from other
++ * cpus.
++ */
++ spin_unlock_irq(&gcwq->lock);
++ schedule();
++ spin_lock_irq(&gcwq->lock);
+
+-static void flush_gcwq(struct global_cwq *gcwq)
+-{
+- struct work_struct *work, *nw;
+- struct worker *worker, *n;
+- LIST_HEAD(non_affine_works);
++ /*
++ * Sched callbacks are disabled now. Zap nr_running. After
++ * this, nr_running stays zero and need_more_worker() and
++ * keep_working() are always true as long as the worklist is
++ * not empty.
++ */
++ atomic_set(get_gcwq_nr_running(gcwq->cpu), 0);
+
++ spin_unlock_irq(&gcwq->lock);
++ del_timer_sync(&gcwq->idle_timer);
+ spin_lock_irq(&gcwq->lock);
+- list_for_each_entry_safe(work, nw, &gcwq->worklist, entry) {
+- struct workqueue_struct *wq = get_work_cwq(work)->wq;
+
+- if (wq->flags & WQ_NON_AFFINE)
+- list_move(&work->entry, &non_affine_works);
+- }
++ /*
++ * We're now in charge. Notify and proceed to drain. We need
++ * to keep the gcwq running during the whole CPU down
++ * procedure as other cpu hotunplug callbacks may need to
++ * flush currently running tasks.
++ */
++ gcwq->trustee_state = TRUSTEE_IN_CHARGE;
++ wake_up_all(&gcwq->trustee_wait);
+
+- while (!list_empty(&gcwq->worklist)) {
++ /*
++ * The original cpu is in the process of dying and may go away
++ * anytime now. When that happens, we and all workers would
++ * be migrated to other cpus. Try draining any left work. We
++ * want to get it over with ASAP - spam rescuers, wake up as
++ * many idlers as necessary and create new ones till the
++ * worklist is empty. Note that if the gcwq is frozen, there
++ * may be frozen works in freezable cwqs. Don't declare
++ * completion while frozen.
++ */
++ while (gcwq->nr_workers != gcwq->nr_idle ||
++ gcwq->flags & GCWQ_FREEZING ||
++ gcwq->trustee_state == TRUSTEE_IN_CHARGE) {
+ int nr_works = 0;
+
+ list_for_each_entry(work, &gcwq->worklist, entry) {
+@@ -3268,55 +3383,200 @@ static void flush_gcwq(struct global_cwq *gcwq)
+ wake_up_process(worker->task);
+ }
+
+- spin_unlock_irq(&gcwq->lock);
+-
+ if (need_to_create_worker(gcwq)) {
+- worker = create_worker(gcwq, true);
+- if (worker)
++ spin_unlock_irq(&gcwq->lock);
++ worker = create_worker(gcwq, false);
++ spin_lock_irq(&gcwq->lock);
++ if (worker) {
++ worker->flags |= WORKER_ROGUE;
+ start_worker(worker);
++ }
+ }
+
+- wait_event_timeout(gcwq->idle_wait,
+- gcwq->nr_idle == gcwq->nr_workers, HZ/10);
+-
+- spin_lock_irq(&gcwq->lock);
++ /* give a breather */
++ if (trustee_wait_event_timeout(false, TRUSTEE_COOLDOWN) < 0)
++ break;
+ }
+
+- WARN_ON(gcwq->nr_workers != gcwq->nr_idle);
++ /*
++ * Either all works have been scheduled and cpu is down, or
++ * cpu down has already been canceled. Wait for and butcher
++ * all workers till we're canceled.
++ */
++ do {
++ rc = trustee_wait_event(!list_empty(&gcwq->idle_list));
++ while (!list_empty(&gcwq->idle_list))
++ destroy_worker(list_first_entry(&gcwq->idle_list,
++ struct worker, entry));
++ } while (gcwq->nr_workers && rc >= 0);
+
+- list_for_each_entry_safe(worker, n, &gcwq->idle_list, entry)
+- destroy_worker(worker);
++ /*
++ * At this point, either draining has completed and no worker
++ * is left, or cpu down has been canceled or the cpu is being
++ * brought back up. There shouldn't be any idle one left.
++ * Tell the remaining busy ones to rebind once it finishes the
++ * currently scheduled works by scheduling the rebind_work.
++ */
++ WARN_ON(!list_empty(&gcwq->idle_list));
+
+- WARN_ON(gcwq->nr_workers || gcwq->nr_idle);
++ for_each_busy_worker(worker, i, pos, gcwq) {
++ struct work_struct *rebind_work = &worker->rebind_work;
+
+- spin_unlock_irq(&gcwq->lock);
++ /*
++ * Rebind_work may race with future cpu hotplug
++ * operations. Use a separate flag to mark that
++ * rebinding is scheduled.
++ */
++ worker->flags |= WORKER_REBIND;
++ worker->flags &= ~WORKER_ROGUE;
+
+- gcwq = get_gcwq(get_cpu_light());
+- spin_lock_irq(&gcwq->lock);
+- list_for_each_entry_safe(work, nw, &non_affine_works, entry) {
+- list_del_init(&work->entry);
+- ___queue_work(get_work_cwq(work)->wq, gcwq, work);
++ /* queue rebind_work, wq doesn't matter, use the default one */
++ if (test_and_set_bit(WORK_STRUCT_PENDING_BIT,
++ work_data_bits(rebind_work)))
++ continue;
++
++ debug_work_activate(rebind_work);
++ insert_work(get_cwq(gcwq->cpu, system_wq), rebind_work,
++ worker->scheduled.next,
++ work_color_to_flags(WORK_NO_COLOR));
+ }
++
++ /* relinquish manager role */
++ gcwq->flags &= ~GCWQ_MANAGING_WORKERS;
++
++ /* notify completion */
++ gcwq->trustee = NULL;
++ gcwq->trustee_state = TRUSTEE_DONE;
++ wake_up_all(&gcwq->trustee_wait);
+ spin_unlock_irq(&gcwq->lock);
+- put_cpu_light();
++ return 0;
+ }
+
+-static int __devinit workqueue_cpu_down_callback(struct notifier_block *nfb,
++/**
++ * wait_trustee_state - wait for trustee to enter the specified state
++ * @gcwq: gcwq the trustee of interest belongs to
++ * @state: target state to wait for
++ *
++ * Wait for the trustee to reach @state. DONE is already matched.
++ *
++ * CONTEXT:
++ * spin_lock_irq(gcwq->lock) which may be released and regrabbed
++ * multiple times. To be used by cpu_callback.
++ */
++static void __cpuinit wait_trustee_state(struct global_cwq *gcwq, int state)
++__releases(&gcwq->lock)
++__acquires(&gcwq->lock)
++{
++ if (!(gcwq->trustee_state == state ||
++ gcwq->trustee_state == TRUSTEE_DONE)) {
++ spin_unlock_irq(&gcwq->lock);
++ __wait_event(gcwq->trustee_wait,
++ gcwq->trustee_state == state ||
++ gcwq->trustee_state == TRUSTEE_DONE);
++ spin_lock_irq(&gcwq->lock);
++ }
++}
++
++static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
+ unsigned long action,
+ void *hcpu)
+ {
+ unsigned int cpu = (unsigned long)hcpu;
+ struct global_cwq *gcwq = get_gcwq(cpu);
++ struct task_struct *new_trustee = NULL;
++ struct worker *uninitialized_var(new_worker);
++ unsigned long flags;
+
+ action &= ~CPU_TASKS_FROZEN;
+
+- switch (action) {
+- case CPU_DOWN_PREPARE:
+- flush_gcwq(gcwq);
+- break;
+- }
++ switch (action) {
++ case CPU_DOWN_PREPARE:
++ new_trustee = kthread_create(trustee_thread, gcwq,
++ "workqueue_trustee/%d\n", cpu);
++ if (IS_ERR(new_trustee))
++ return notifier_from_errno(PTR_ERR(new_trustee));
++ kthread_bind(new_trustee, cpu);
++ /* fall through */
++ case CPU_UP_PREPARE:
++ BUG_ON(gcwq->first_idle);
++ new_worker = create_worker(gcwq, false);
++ if (!new_worker) {
++ if (new_trustee)
++ kthread_stop(new_trustee);
++ return NOTIFY_BAD;
++ }
++ break;
++ case CPU_POST_DEAD:
++ case CPU_UP_CANCELED:
++ case CPU_DOWN_FAILED:
++ case CPU_ONLINE:
++ break;
++ case CPU_DYING:
++ /*
++ * We access this lockless. We are on the dying CPU
++ * and called from stomp machine.
++ *
++ * Before this, the trustee and all workers except for
++ * the ones which are still executing works from
++ * before the last CPU down must be on the cpu. After
++ * this, they'll all be diasporas.
++ */
++ gcwq->flags |= GCWQ_DISASSOCIATED;
++ default:
++ goto out;
++ }
++
++ /* some are called w/ irq disabled, don't disturb irq status */
++ spin_lock_irqsave(&gcwq->lock, flags);
++
++ switch (action) {
++ case CPU_DOWN_PREPARE:
++ /* initialize trustee and tell it to acquire the gcwq */
++ BUG_ON(gcwq->trustee || gcwq->trustee_state != TRUSTEE_DONE);
++ gcwq->trustee = new_trustee;
++ gcwq->trustee_state = TRUSTEE_START;
++ wake_up_process(gcwq->trustee);
++ wait_trustee_state(gcwq, TRUSTEE_IN_CHARGE);
++ /* fall through */
++ case CPU_UP_PREPARE:
++ BUG_ON(gcwq->first_idle);
++ gcwq->first_idle = new_worker;
++ break;
++
++ case CPU_POST_DEAD:
++ gcwq->trustee_state = TRUSTEE_BUTCHER;
++ /* fall through */
++ case CPU_UP_CANCELED:
++ destroy_worker(gcwq->first_idle);
++ gcwq->first_idle = NULL;
++ break;
+
++ case CPU_DOWN_FAILED:
++ case CPU_ONLINE:
++ gcwq->flags &= ~GCWQ_DISASSOCIATED;
++ if (gcwq->trustee_state != TRUSTEE_DONE) {
++ gcwq->trustee_state = TRUSTEE_RELEASE;
++ wake_up_process(gcwq->trustee);
++ wait_trustee_state(gcwq, TRUSTEE_DONE);
++ }
++
++ /*
++ * Trustee is done and there might be no worker left.
++ * Put the first_idle in and request a real manager to
++ * take a look.
++ */
++ spin_unlock_irq(&gcwq->lock);
++ kthread_bind(gcwq->first_idle->task, cpu);
++ spin_lock_irq(&gcwq->lock);
++ gcwq->flags |= GCWQ_MANAGE_WORKERS;
++ start_worker(gcwq->first_idle);
++ gcwq->first_idle = NULL;
++ break;
++ }
++
++ spin_unlock_irqrestore(&gcwq->lock, flags);
+
++out:
+ return notifier_from_errno(0);
+ }
+
+@@ -3513,8 +3773,7 @@ static int __init init_workqueues(void)
+ unsigned int cpu;
+ int i;
+
+- cpu_notifier(workqueue_cpu_up_callback, CPU_PRI_WORKQUEUE_ACTIVE);
+- hotcpu_notifier(workqueue_cpu_down_callback, CPU_PRI_WORKQUEUE_INACTIVE);
++ cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
+
+ /* initialize gcwqs */
+ for_each_gcwq_cpu(cpu) {
+@@ -3537,7 +3796,9 @@ static int __init init_workqueues(void)
+ (unsigned long)gcwq);
+
+ ida_init(&gcwq->worker_ida);
+- init_waitqueue_head(&gcwq->idle_wait);
++
++ gcwq->trustee_state = TRUSTEE_DONE;
++ init_waitqueue_head(&gcwq->trustee_wait);
+ }
+
+ /* create the initial worker */
+--
+1.7.10.4
+
diff --git a/patches/0256-Linux-3.4.4-rt13-REBASE.patch b/patches/0267-Linux-3.4.4-rt14-REBASE.patch
index a978c7d..b69a2ed 100644
--- a/patches/0256-Linux-3.4.4-rt13-REBASE.patch
+++ b/patches/0267-Linux-3.4.4-rt14-REBASE.patch
@@ -1,19 +1,19 @@
-From e74823c5171f3a6d4eb4d957105a85ae4848054b Mon Sep 17 00:00:00 2001
+From 12260c6db656c6e56dfd04f15382458191541a28 Mon Sep 17 00:00:00 2001
From: Steven Rostedt <srostedt@redhat.com>
-Date: Fri, 22 Jun 2012 19:44:35 -0400
-Subject: [PATCH 256/256] Linux 3.4.4-rt13 REBASE
+Date: Mon, 16 Jul 2012 14:33:55 -0400
+Subject: [PATCH 267/267] Linux 3.4.4-rt14 REBASE
---
localversion-rt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/localversion-rt b/localversion-rt
-index 700c857..9f7d0bd 100644
+index 700c857..08b3e75 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt8
-+-rt13
++-rt14
--
1.7.10.4
diff --git a/patches/series b/patches/series
index 417139e..2c81ceb 100644
--- a/patches/series
+++ b/patches/series
@@ -253,4 +253,15 @@
0253-kconfig-preempt-rt-full.patch.patch
0254-spinlock-rt-Include-bug.h-in-spinlock_rt.h-to-satisf.patch
0255-Subject-powerpc-Mark-low-level-irq-handlers-NO_THREA.patch
-0256-Linux-3.4.4-rt13-REBASE.patch
+0256-Latency-histogramms-Cope-with-backwards-running-loca.patch
+0257-Latency-histograms-Adjust-timer-if-already-elapsed-w.patch
+0258-Disable-RT_GROUP_SCHED-in-PREEMPT_RT_FULL.patch
+0259-Latency-histograms-Detect-another-yet-overlooked-sha.patch
+0260-slab-Prevent-local-lock-deadlock.patch
+0261-fs-jbd-pull-your-plug-when-waiting-for-space.patch
+0262-perf-Make-swevent-hrtimer-run-in-irq-instead-of-soft.patch
+0263-cpu-rt-Rework-cpu-down-for-PREEMPT_RT.patch
+0264-cpu-rt-Fix-cpu_hotplug-variable-initialization.patch
+0265-workqueue-Revert-workqueue-Fix-PF_THREAD_BOUND-abuse.patch
+0266-workqueue-Revert-workqueue-Fix-cpuhotplug-trainwreck.patch
+0267-Linux-3.4.4-rt14-REBASE.patch