Hi Kevin,
Added latest RT patches from v3.18.11-rt7
Cheers, Anders
----
The following changes since commit f154a14e3efa547025d014d0a3f29396f03b1f74:
Linux 3.18.11 (2015-04-03 22:46:37 -0400)
are available in the git repository at:
git://git.linaro.org/people/anders.roxell/linux-rt.git tags/v3.18.11-rt7-lno1
for you to fetch changes up to 5ca8b78aa8ffde148a028aceef58f71a38c90088:
localversion.patch (2015-04-13 16:33:36 +0200)
---------------------------------------------------------------- Linux 3.18.11-rt7
---------------------------------------------------------------- Alex Deucher (6): drm/radeon: do a posting read in rs600_set_irq drm/radeon: do a posting read in r600_set_irq drm/radeon: do a posting read in evergreen_set_irq drm/radeon: do a posting read in si_set_irq drm/radeon: only enable kv/kb dpm interrupts once v3 drm/radeon: do a posting read in cik_set_irq
Allen Pais (1): sparc64: use generic rwsem spinlocks rt
Anders Roxell (3): Merge tag 'v3.18.10' into v3.18-rt Merge tag 'v3.18.11' into v3.18-rt Revert "block/mq: don't complete requests via IPI"
Arnaldo Carvalho de Melo (1): posix-timers: Shorten posix_cpu_timers/<CPU> kernel thread names
Benedikt Spranger (2): ARM: AT91: PIT: Remove irq handler when clock event is unused clocksource: TCLIB: Allow higher clock rates for clock events
Brad Mouring (1): rtmutex.c: Fix incorrect waiter check
Brian Silverman (1): sched: fix RLIMIT_RTTIME when PI-boosting to RT
Carsten Emde (3): latency-hist.patch hwlatdetect.patch net: sysrq via icmp
Clark Williams (1): add /sys/kernel/realtime entry
Daniel Wagner (2): thermal: Defer thermal wakups to threads work-simple: Simple work queue implemenation
Frank Rowand (2): preempt-rt: Convert arm boot_lock to raw ARM: Initialize ptl->lock for vector page
Gustavo Bittencourt (1): rtmutex: enable deadlock detection in ww_mutex_lock functions
Ingo Molnar (22): drivers: random: Reduce preempt disabled region drivers/net: Use disable_irq_nosync() in 8139too mm: Prepare decoupling the page fault disabling logic x86: Do not unmask io_apic when interrupt is in progress printk-kill.patch bug: BUG_ON/WARN_ON variants dependend on RT/!RT ide: Do not disable interrupts for PREEMPT-RT input: gameport: Do not disable interrupts on PREEMPT_RT core: Do not disable interrupts on RT in res_counter.c genirq: disable irqpoll on -rt mm: page_alloc: rt-friendly per-cpu pages mm: convert swap to percpu locked mm: make vmstat -rt aware mm: Allow only slub on RT ipc: Make the ipc code -rt aware relay: fix timer madness timers: prepare for full preemption timers: preempt-rt support hrtimers: prepare full preemption stop_machine: convert stop_machine_run() to PREEMPT_RT tasklet: Prevent tasklets from going into infinite spin in RT rt: Improve the serial console PASS_LIMIT
Jason Wessel (1): kgdb/serial: Short term workaround
John Kacur (2): rwlocks: Fix section mismatch scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_poll
John Stultz (1): posix-timers: thread posix-cpu-timers on -rt
Josh Cartwright (1): lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals
Juri Lelli (1): sched/deadline: dl_task_timer has to be irqsafe
KOBAYASHI Yoshitake (1): ipc/mqueue: Add a critical section to avoid a deadlock
Kirill Tkhai (1): sparc: provide EARLY_PRINTK for SPARC
Lai Jiangshan (1): rcu: Revert "Allow post-unlock reference for rt_mutex" to avoid priority-inversion
Maarten Lankhorst (1): drm/radeon: fix wait to actually occur after the signaling callback
Marc Kleine-Budde (1): net: sched: dev_deactivate_many(): use msleep(1) instead of yield() to wait for outstanding qdisc_run calls
Marcelo Tosatti (2): KVM: lapic: mark LAPIC timer handler as irqsafe KVM: use simple waitqueue for vcpu->wq
Mike Galbraith (14): hwlat-detector: Don't ignore threshold module parameter sched, rt: Fix migrate_enable() thinko sunrpc: make svc_xprt_do_enqueue() use get_cpu_light() rt,locking: fix __ww_mutex_lock_interruptible() lockdep annotation locking: ww_mutex: fix ww_mutex vs self-deadlock stomp-machine: create lg_global_trylock_relax() primitive stomp-machine: use lg_global_trylock_relax() to dead with stop_cpus_lock lglock fs: ntfs: disable interrupt only on !RT fs, jbd: pull your plug when waiting for space x86: UV: raw_spinlock conversion snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled() splats scheduling while atomic in cgroup code hotplug: Use set_cpus_allowed_ptr() in sync_unplug_thread() rt, nohz_full: fix nohz_full for PREEMPT_RT_FULL
Nicholas Mc Guire (13): use local spin_locks in local_lock allow preemption in recursive migrate_disable call sched: dont calculate hweight in update_migrate_disable() condition migration_disable on lock acquisition migrate_disable pushd down in atomic_dec_and_spin_lock migrate_disable pushd down in rt_spin_trylock_irqsave migrate_disable pushd down in rt_write_trylock_irqsave write_lock migrate_disable pushdown to rt_write_lock read_lock migrate_disable pushdown to rt_read_lock rt: Cleanup of unnecessary do while 0 in read/write _lock() seqlock: consolidate spin_lock/unlock waiting with spin_unlock_wait API cleanup - use local_lock not __local_lock for soft softirq: make migrate disable/enable conditioned on softirq_nestcnt transition
Oleg Nesterov (1): signal/x86: Delay calling signals in atomic
Paul E. McKenney (2): rcu: Make ksoftirqd do RCU quiescent states rcu: Eliminate softirq processing from rcutree
Paul Gortmaker (3): list_bl.h: make list head locking RT safe sas-ata/isci: dont't disable interrupts in qc_issue handler simple-wait: rename and export the equivalent of waitqueue_active()
Peter Zijlstra (16): mm: pagefault_disabled() mm: raw_pagefault_disable mm-page-alloc-use-list-last-entry.patch printk: 'force_early_printk' boot param to help with debugging mm: page_alloc reduce lock sections further timer: delay waking softirqs from the jiffy tick sched: Optimize migrate_disable sched: Generic migrate_disable sched: teach migrate_disable about atomic contexts sched: Do not compare cpu masks in scheduler sched: Have migrate_disable ignore bounded threads rcu: Frob softirq test mm, rt: kmap_atomic scheduling ipc/sem: Rework semaphore wakeups x86: crypto: Reduce preempt disabled regions crypto: Convert crypto notifier chain to SRCU
Priyanka Jain (1): net,RT:REmove preemption disabling in netif_rx()
Sebastian Andrzej Siewior (51): kernel/SRCU: provide a static initializer gpio: omap: use raw locks for locking ptrace: fix ptrace vs tasklist_lock race usb: use _nort in giveback mm/workingset: do not protect workingset_shadow_nodes with irq off genirq: do not invoke the affinity callback via a workqueue net: gianfar: do not disable interrupts slub: delay ctor until the object is requested mm/memcontrol: do no disable interrupts Revert "rwsem-rt: Do not allow readers to nest" Revert "migrate_disable pushd down in atomic_dec_and_spin_lock" percpu-rwsem: compile fix locking/rt-mutex: avoid a NULL pointer dereference on deadlock rtmutex: add a first shot of ww_mutex rtmutex: use a trylock for waiter lock in trylock timer: do not spin_trylock() on UP Revert "timers: do not raise softirq unconditionally" fs: jbd2: pull your plug when waiting for space fs/aio: simple simple work block: mq: use cpu_light() block/mq: do not invoke preempt_disable() block/mq: don't complete requests via IPI kernel/hrtimer: be non-freezeable in cpu_chill() blk-mq: revert raw locks, post pone notifier to POST_DEAD block: blk-mq: use swait block/mq: drop per ctx cpu_lock percpu_ida: use locklocks irq_work: allow certain work in hard irq context HACK: printk: drop the logbuf_lock more often arm/unwind: use a raw_spin_lock arm/futex: disable preemption during futex_atomic_cmpxchg_inatomic() x86/highmem: add a "already used pte" check arm/highmem: flush tlb on unmap crypto: Reduce preempt disabled regions, more algos kernel/cpu: fix cpu down problem if kthread's cpu is going down kernel/hotplug: restore original cpu mask oncpu/down net: Add a mutex around devnet_rename_seq rcu: make RCU_BOOST default on RT leds: trigger: disable CPU trigger on -RT i2c/omap: drop the lock hard irq context mmc: sdhci: don't provide hard irq handler gpu/i915: don't open code these things drm/i915: drop trace_i915_gem_ring_dispatch on rt wait.h: include atomic.h kernel/treercu: use a simple waitqueue a few open coded completions cgroups: use simple wait in css_release() md: disable bcache block/mq: don't complete requests via IPI kernel/irq_work: fix no_hz deadlock cpufreq: drop K8's driver from beeing selected
Steven Rostedt (26): tracing: Account for preempt off in preempt_schedule() x86: Do not disable preemption in int3 on 32bit hwlat-detector: Update hwlat_detector to add outer loop detection hwlat-detector: Use trace_clock_local if available hwlat-detector: Use thread instead of stop machine ata: Do not disable interrupts in ide code for preempt-rt drivers/net: vortex fix locking issues sched/workqueue: Only wake up idle workers if not blocked on sleeping spin lock tracing: Show padding as unsigned short sched: Postpone actual migration disalbe to schedule futex: Fix bug on when a requeued RT task times out rwlock: disable migration before taking a lock timer: Raise softirq if there's irq_work timer/rt: Always raise the softirq if there's irq_work to be done x86/mce: use swait queue for mce wakeups rt: Make cpu_chill() use hrtimer instead of msleep() cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep irq_work: Hide access to hirq_work_list in PREEMPT_RT_FULL net: Avoid livelock in net_tx_action() on RT acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t cpu: Make hotplug.lock a "sleeping" spinlock on RT cpu/rt: Rework cpu down for PREEMPT_RT cpu hotplug: Document why PREEMPT_RT uses a spinlock softirq: Init softirq local lock after per cpu section is set up rt,ntp: Move call to schedule_delayed_work() to helper thread sched: Do not clear PF_NO_SETAFFINITY flag in select_fallback_rq()
Steven Rostedt (Red Hat) (1): rwsem-rt: Do not allow readers to nest
Sven-Thorsten Dietrich (1): infiniband: Mellanox IB driver patch use _nort() primitives
Thomas Gleixner (146): early-printk-consolidate.patch block: Shorten interrupt disabled regions timekeeping-split-jiffies-lock.patch vtime-split-lock-and-seqcount.patch mips-enable-interrupts-in-signal.patch signal-revert-ptrace-preempt-magic.patch posix-timers: Prevent broadcast signals signals: Allow rt tasks to cache one sigqueue struct mm: Fixup all fault handlers to check current->pagefault_disable mm: Remove preempt count from pagefault disable/enable suspend: Prevent might sleep splats rwsem-inlcude-fix.patch sysctl-include-fix.patch net-flip-lock-dep-thingy.patch softirq-thread-do-softirq.patch softirq-split-out-code.patch pci: Use __wake_up_all_locked pci_unblock_user_cfg_access() rt-preempt-base-config.patch kconfig-disable-a-few-options-rt.patch kconfig-preempt-rt-full.patch rt: local_irq_* variants depending on RT/!RT preempt: Provide preempt_*_(no)rt variants core: Do not disable interrupts on RT in kernel/users.c mm: scatterlist dont disable irqs on RT signal-fix-up-rcu-wreckage.patch net-wireless-warn-nort.patch buffer_head: Replace bh_uptodate_lock for -rt fs: jbd/jbd2: Make state lock and journal head lock rt safe genirq: Disable DEBUG_SHIRQ for rt genirq-force-threading.patch drivers/net: fix livelock issues local-var.patch rt-local-irq-lock.patch cpu-rt-variants.patch mm-page-alloc-fix.patch mm: bounce: Use local_irq_save_nort mm: Enable SLUB for RT slub: Enable irqs for __GFP_WAIT mm: page_alloc: Use local_lock_on() instead of plain spinlock radix-tree-rt-aware.patch panic: skip get_random_bytes for RT_FULL in init_oops_id timers: Avoid the switch timers base set to NULL trick on RT hrtimer: fixup hrtimer callback changes for preempt-rt timer-fd: Prevent live lock posix-timers: Avoid wakeups when no timers are active sched-delay-put-task.patch sched-limit-nr-migrate.patch sched-mmdrop-delayed.patch sched-rt-mutex-wakeup.patch sched-might-sleep-do-not-account-rcu-depth.patch sched-cond-resched.patch cond-resched-softirq-fix.patch cond-resched-lock-rt-tweak.patch sched-disable-ttwu-queue.patch sched: Disable CONFIG_RT_GROUP_SCHED on RT sched: ttwu: Return success when only changing the saved_state value stomp-machine-raw-lock.patch hotplug: Lightweight get online cpus sched-migrate-disable.patch hotplug-use-migrate-disable.patch ftrace-migrate-disable-tracing.patch migrate-disable-rt-variant.patch sched-clear-pf-thread-bound-on-fallback-rq.patch net-netif_rx_ni-migrate-disable.patch softirq: Sanitize softirq pending for NOHZ/RT lockdep-rt.patch mutex-no-spin-on-rt.patch softirq-local-lock.patch softirq-disable-softirq-stacks-for-rt.patch softirq-make-fifo.patch genirq: Allow disabling of softirq processing in irq thread context local-vars-migrate-disable.patch md: raid5: Make raid5_percpu handling RT aware rtmutex-futex-prepare-rt.patch futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock rtmutex-lock-killable.patch rt-mutex-add-sleeping-spinlocks-support.patch spinlock-types-separate-raw.patch rtmutex-avoid-include-hell.patch rt-add-rt-spinlocks.patch rt-add-rt-to-mutex-headers.patch rwsem-add-rt-variant.patch rt: Add the preempt-rt lock replacement APIs timer-handle-idle-trylock-in-get-next-timer-irq.patch timers: do not raise softirq unconditionally rcu: Merge RCU-bh into RCU-preempt rcu-more-fallout.patch lglocks-rt.patch drivers-tty-fix-omap-lock-crap.patch drivers-tty-pl011-irq-disable-madness.patch fs: namespace preemption fix fs-block-rt-support.patch x86: Convert mce timer to hrtimer x86: stackprotector: Avoid random pool on rt x86: Use generic rwsem_spinlocks on -rt epoll.patch mm-vmalloc.patch rt: Introduce cpu_chill() block: Use cpu_chill() for retry loops fs: dcache: Use cpu_chill() in trylock loops net: Use cpu_chill() instead of cpu_relax() workqueue: Use normal rcu Use local irq lock instead of irq disable regions workqueue vs ata-piix livelock fixup sched: Distangle worker accounting from rqlock idr: Use local lock instead of preempt enable/disable debugobjects-rt.patch jump-label-rt.patch use skbufhead with raw lock x86-no-perf-irq-work-rt.patch printk-rt-aware.patch Powerpc: Use generic rwsem on RT power-disable-highmem-on-rt.patch arm-disable-highmem-on-rt.patch ARM: at91: tclib: Default to tclib timer for RT mips-disable-highmem-on-rt.patch arm-enable-highmem-for-rt.patch x86-kvm-require-const-tsc-for-rt.patch scsi-fcoe-rt-aware.patch dm: Make rt aware cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT random: Make it work on rt seqlock: Prevent rt starvation net: Another local_irq_disable/kmalloc headache net: netfilter: Serialize xt_write_recseq sections on RT net: Use local_bh_disable in netif_rx_ni() rt: rwsem/rwlock: lockdep annotations softirq: Check preemption after reenabling interrupts softirq: Make serving softirqs a task flag softirq: Split handling function softirq: Split softirq locks softirq: Adapt NOHZ softirq pending check to new RT scheme rcu: Disable RCU_FAST_NO_HZ on RT sched: Add support for lazy preemption x86-preempt-lazy.patch arm-preempt-lazy-support.patch powerpc-preempt-lazy-support.patch mmci: Remove bogus local_irq_save() wait-simple: Simple waitqueue implementation wait-simple: Rework for use with completions rcu-more-swait-conversions.patch completion: Use simple wait queues workqueue: Prevent deadlock/stall on RT localversion.patch localversion.patch localversion.patch
Tiejun Chen (2): rcutree/rcu_bh_qs: disable irq while calling rcu_preempt_qs() cpu_down: move migrate_enable() back
Watanabe (1): hrtimer: Raise softirq if hrtimer irq stalled
Yadi.hu (1): ARM: enable irq in translation/section permission fault handlers
Yang Shi (3): mm/memcontrol: Don't call schedule_work_on in preemption disabled context hrtimer: Move schedule_work call to helper thread mips: rt: Replace pagefault_* to raw version
Yong Zhang (6): hotplug: sync_unplug: No " " in task name hotplug: Reread hotplug_pcp on pin_current_cpu() retry mm: Protect activate_mm() by preempt_[disable&enable]_rt() ARM: cmpxchg: define __HAVE_ARCH_CMPXCHG for armv6 and later lockdep: Selftest: Only do hardirq context test for raw spinlock perf: Make swevent hrtimer run in irq instead of softirq
Zhao Hongjiang (1): timers: prepare for full preemption improve
Documentation/hwlat_detector.txt | 64 + Documentation/sysrq.txt | 11 +- Documentation/trace/histograms.txt | 186 +++ arch/Kconfig | 1 + arch/alpha/mm/fault.c | 2 +- arch/arm/Kconfig | 1 + arch/arm/include/asm/cmpxchg.h | 2 + arch/arm/include/asm/futex.h | 4 + arch/arm/include/asm/switch_to.h | 8 + arch/arm/include/asm/thread_info.h | 3 + arch/arm/kernel/asm-offsets.c | 1 + arch/arm/kernel/entry-armv.S | 13 +- arch/arm/kernel/process.c | 24 + arch/arm/kernel/signal.c | 3 +- arch/arm/kernel/unwind.c | 14 +- arch/arm/kvm/arm.c | 4 +- arch/arm/kvm/psci.c | 4 +- arch/arm/mach-at91/at91rm9200_time.c | 1 + arch/arm/mach-exynos/platsmp.c | 12 +- arch/arm/mach-hisi/platmcpm.c | 26 +- arch/arm/mach-omap2/omap-smp.c | 10 +- arch/arm/mach-prima2/platsmp.c | 10 +- arch/arm/mach-qcom/platsmp.c | 10 +- arch/arm/mach-spear/platsmp.c | 10 +- arch/arm/mach-sti/platsmp.c | 10 +- arch/arm/mach-ux500/platsmp.c | 10 +- arch/arm/mm/fault.c | 8 +- arch/arm/mm/highmem.c | 42 +- arch/arm/plat-versatile/platsmp.c | 10 +- arch/avr32/mm/fault.c | 2 +- arch/cris/mm/fault.c | 2 +- arch/frv/mm/fault.c | 2 +- arch/ia64/mm/fault.c | 2 +- arch/m32r/mm/fault.c | 2 +- arch/m68k/mm/fault.c | 2 +- arch/microblaze/mm/fault.c | 2 +- arch/mips/Kconfig | 2 +- arch/mips/kernel/signal.c | 1 + arch/mips/mm/fault.c | 2 +- arch/mips/mm/init.c | 4 +- arch/mn10300/mm/fault.c | 2 +- arch/parisc/mm/fault.c | 2 +- arch/powerpc/Kconfig | 6 +- arch/powerpc/include/asm/kvm_host.h | 4 +- arch/powerpc/include/asm/thread_info.h | 11 +- arch/powerpc/kernel/asm-offsets.c | 1 + arch/powerpc/kernel/entry_32.S | 17 +- arch/powerpc/kernel/entry_64.S | 14 +- arch/powerpc/kernel/irq.c | 2 + arch/powerpc/kernel/misc_32.S | 2 + arch/powerpc/kernel/misc_64.S | 2 + arch/powerpc/kernel/time.c | 2 +- arch/powerpc/kvm/book3s_hv.c | 20 +- arch/powerpc/mm/fault.c | 2 +- arch/s390/include/asm/kvm_host.h | 2 +- arch/s390/kvm/interrupt.c | 8 +- arch/s390/mm/fault.c | 3 +- arch/score/mm/fault.c | 2 +- arch/sh/kernel/irq.c | 2 + arch/sh/mm/fault.c | 2 +- arch/sparc/Kconfig | 10 +- arch/sparc/kernel/irq_64.c | 2 + arch/sparc/kernel/setup_32.c | 1 + arch/sparc/kernel/setup_64.c | 8 +- arch/sparc/mm/fault_32.c | 2 +- arch/sparc/mm/fault_64.c | 2 +- arch/tile/mm/fault.c | 2 +- arch/um/kernel/trap.c | 2 +- arch/x86/Kconfig | 8 +- arch/x86/crypto/aesni-intel_glue.c | 24 +- arch/x86/crypto/cast5_avx_glue.c | 21 +- arch/x86/crypto/glue_helper.c | 31 +- arch/x86/include/asm/preempt.h | 18 +- arch/x86/include/asm/signal.h | 13 + arch/x86/include/asm/stackprotector.h | 10 +- arch/x86/include/asm/thread_info.h | 6 + arch/x86/include/asm/uv/uv_bau.h | 14 +- arch/x86/include/asm/uv/uv_hub.h | 2 +- arch/x86/kernel/apic/io_apic.c | 3 +- arch/x86/kernel/apic/x2apic_uv_x.c | 2 +- arch/x86/kernel/asm-offsets.c | 2 + arch/x86/kernel/cpu/mcheck/mce.c | 126 +- arch/x86/kernel/entry_32.S | 20 +- arch/x86/kernel/entry_64.S | 31 +- arch/x86/kernel/irq_32.c | 2 + arch/x86/kernel/process_32.c | 32 + arch/x86/kernel/signal.c | 8 + arch/x86/kernel/traps.c | 28 +- arch/x86/kvm/lapic.c | 48 +- arch/x86/kvm/x86.c | 7 + arch/x86/mm/fault.c | 2 +- arch/x86/mm/highmem_32.c | 9 +- arch/x86/mm/iomap_32.c | 11 +- arch/x86/platform/uv/tlb_uv.c | 26 +- arch/x86/platform/uv/uv_time.c | 21 +- arch/xtensa/mm/fault.c | 2 +- block/blk-core.c | 19 +- block/blk-ioc.c | 5 +- block/blk-iopoll.c | 3 + block/blk-mq-cpu.c | 17 +- block/blk-mq.c | 46 +- block/blk-mq.h | 9 +- block/blk-softirq.c | 3 + block/bounce.c | 4 +- crypto/algapi.c | 4 +- crypto/api.c | 6 +- crypto/internal.h | 4 +- drivers/acpi/acpica/acglobal.h | 2 +- drivers/acpi/acpica/hwregs.c | 4 +- drivers/acpi/acpica/hwxface.c | 4 +- drivers/acpi/acpica/utmutex.c | 4 +- drivers/ata/libata-sff.c | 12 +- drivers/char/random.c | 14 +- drivers/clocksource/tcb_clksrc.c | 37 +- drivers/clocksource/timer-atmel-pit.c | 4 + drivers/cpufreq/Kconfig.x86 | 2 +- drivers/gpio/gpio-omap.c | 74 +- drivers/gpu/drm/i915/i915_gem.c | 2 +- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 + drivers/i2c/busses/i2c-omap.c | 5 +- drivers/ide/alim15x3.c | 4 +- drivers/ide/hpt366.c | 4 +- drivers/ide/ide-io-std.c | 8 +- drivers/ide/ide-io.c | 2 +- drivers/ide/ide-iops.c | 4 +- drivers/ide/ide-probe.c | 4 +- drivers/ide/ide-taskfile.c | 6 +- drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 4 +- drivers/input/gameport/gameport.c | 8 +- drivers/leds/trigger/Kconfig | 2 +- drivers/md/bcache/Kconfig | 1 + drivers/md/dm.c | 4 +- drivers/md/raid5.c | 7 +- drivers/md/raid5.h | 1 + drivers/misc/Kconfig | 42 +- drivers/misc/Makefile | 1 + drivers/misc/hwlat_detector.c | 1240 ++++++++++++++++++++ drivers/mmc/host/mmci.c | 5 - drivers/mmc/host/sdhci.c | 32 +- drivers/net/ethernet/3com/3c59x.c | 8 +- drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 6 +- drivers/net/ethernet/atheros/atl1e/atl1e_main.c | 3 +- drivers/net/ethernet/chelsio/cxgb/sge.c | 3 +- drivers/net/ethernet/freescale/gianfar.c | 12 +- drivers/net/ethernet/neterion/s2io.c | 7 +- .../net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c | 6 +- drivers/net/ethernet/realtek/8139too.c | 2 +- drivers/net/ethernet/tehuti/tehuti.c | 9 +- drivers/net/rionet.c | 6 +- drivers/net/wireless/orinoco/orinoco_usb.c | 2 +- drivers/pci/access.c | 2 +- drivers/scsi/fcoe/fcoe.c | 18 +- drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- drivers/scsi/libfc/fc_exch.c | 4 +- drivers/scsi/libsas/sas_ata.c | 4 +- drivers/scsi/qla2xxx/qla_inline.h | 4 +- drivers/thermal/x86_pkg_temp_thermal.c | 50 +- drivers/tty/serial/8250/8250_core.c | 14 +- drivers/tty/serial/amba-pl011.c | 15 +- drivers/tty/serial/omap-serial.c | 12 +- drivers/usb/core/hcd.c | 4 +- drivers/usb/gadget/function/f_fs.c | 2 +- drivers/usb/gadget/legacy/inode.c | 4 +- fs/aio.c | 24 +- fs/autofs4/autofs_i.h | 1 + fs/autofs4/expire.c | 2 +- fs/buffer.c | 21 +- fs/dcache.c | 5 +- fs/eventpoll.c | 4 +- fs/exec.c | 2 + fs/jbd/checkpoint.c | 2 + fs/jbd2/checkpoint.c | 2 + fs/namespace.c | 8 +- fs/ntfs/aops.c | 14 +- fs/timerfd.c | 5 +- include/acpi/platform/aclinux.h | 15 + include/asm-generic/bug.h | 14 + include/linux/blk-mq.h | 1 + include/linux/blkdev.h | 3 +- include/linux/bottom_half.h | 12 + include/linux/buffer_head.h | 44 + include/linux/cgroup.h | 2 + include/linux/completion.h | 9 +- include/linux/cpu.h | 4 + include/linux/delay.h | 6 + include/linux/ftrace_event.h | 3 + include/linux/highmem.h | 28 +- include/linux/hrtimer.h | 16 + include/linux/idr.h | 4 + include/linux/init_task.h | 10 +- include/linux/interrupt.h | 63 +- include/linux/irq.h | 4 +- include/linux/irq_work.h | 1 + include/linux/irqdesc.h | 1 + include/linux/irqflags.h | 29 +- include/linux/jbd_common.h | 24 + include/linux/jump_label.h | 3 +- include/linux/kdb.h | 3 +- include/linux/kernel.h | 1 + include/linux/kvm_host.h | 4 +- include/linux/lglock.h | 27 +- include/linux/list_bl.h | 28 +- include/linux/locallock.h | 270 +++++ include/linux/mm_types.h | 4 + include/linux/mutex.h | 20 +- include/linux/mutex_rt.h | 84 ++ include/linux/netdevice.h | 1 + include/linux/netfilter/x_tables.h | 7 + include/linux/notifier.h | 34 +- include/linux/percpu.h | 29 + include/linux/pid.h | 1 + include/linux/preempt.h | 59 +- include/linux/preempt_mask.h | 15 +- include/linux/printk.h | 3 +- include/linux/radix-tree.h | 7 +- include/linux/random.h | 2 +- include/linux/rcupdate.h | 26 + include/linux/rcutree.h | 18 +- include/linux/rtmutex.h | 30 +- include/linux/rwlock_rt.h | 99 ++ include/linux/rwlock_types.h | 7 +- include/linux/rwlock_types_rt.h | 33 + include/linux/rwsem.h | 6 + include/linux/rwsem_rt.h | 134 +++ include/linux/sched.h | 196 +++- include/linux/seqlock.h | 56 +- include/linux/signal.h | 1 + include/linux/skbuff.h | 7 + include/linux/smp.h | 3 + include/linux/spinlock.h | 12 +- include/linux/spinlock_api_smp.h | 4 +- include/linux/spinlock_rt.h | 167 +++ include/linux/spinlock_types.h | 79 +- include/linux/spinlock_types_nort.h | 33 + include/linux/spinlock_types_raw.h | 56 + include/linux/spinlock_types_rt.h | 51 + include/linux/srcu.h | 9 +- include/linux/swap.h | 4 +- include/linux/sysctl.h | 1 + include/linux/thread_info.h | 12 +- include/linux/timer.h | 2 +- include/linux/uaccess.h | 30 +- include/linux/uprobes.h | 1 + include/linux/vmstat.h | 4 + include/linux/wait-simple.h | 207 ++++ include/linux/wait.h | 1 + include/linux/work-simple.h | 24 + include/net/dst.h | 2 +- include/net/neighbour.h | 4 +- include/net/netns/ipv4.h | 1 + include/trace/events/hist.h | 72 ++ include/trace/events/latency_hist.h | 29 + init/Kconfig | 7 +- init/Makefile | 2 +- init/main.c | 1 + ipc/mqueue.c | 24 +- ipc/msg.c | 16 +- ipc/sem.c | 10 + kernel/Kconfig.locks | 4 +- kernel/Kconfig.preempt | 33 +- kernel/cgroup.c | 9 +- kernel/cpu.c | 325 ++++- kernel/debug/kdb/kdb_io.c | 6 +- kernel/events/core.c | 1 + kernel/exit.c | 2 +- kernel/fork.c | 40 +- kernel/futex.c | 84 +- kernel/irq/handle.c | 8 +- kernel/irq/manage.c | 100 +- kernel/irq/settings.h | 12 + kernel/irq/spurious.c | 8 + kernel/irq_work.c | 50 +- kernel/ksysfs.c | 12 + kernel/locking/Makefile | 9 +- kernel/locking/lglock.c | 79 +- kernel/locking/lockdep.c | 2 + kernel/locking/percpu-rwsem.c | 4 + kernel/locking/rt.c | 456 +++++++ kernel/locking/rtmutex.c | 734 +++++++++++- kernel/locking/rtmutex_common.h | 14 + kernel/locking/spinlock.c | 7 + kernel/locking/spinlock_debug.c | 5 + kernel/panic.c | 2 + kernel/power/hibernate.c | 7 + kernel/power/suspend.c | 4 + kernel/printk/printk.c | 139 ++- kernel/ptrace.c | 7 +- kernel/rcu/tiny.c | 2 + kernel/rcu/tree.c | 149 ++- kernel/rcu/tree.h | 15 +- kernel/rcu/tree_plugin.h | 170 +-- kernel/rcu/update.c | 2 + kernel/relay.c | 14 +- kernel/res_counter.c | 8 +- kernel/sched/Makefile | 2 +- kernel/sched/completion.c | 34 +- kernel/sched/core.c | 467 ++++++-- kernel/sched/cputime.c | 62 +- kernel/sched/deadline.c | 1 + kernel/sched/debug.c | 7 + kernel/sched/fair.c | 16 +- kernel/sched/features.h | 8 +- kernel/sched/rt.c | 1 + kernel/sched/sched.h | 10 + kernel/sched/wait-simple.c | 115 ++ kernel/sched/work-simple.c | 172 +++ kernel/signal.c | 135 ++- kernel/softirq.c | 732 +++++++++--- kernel/stop_machine.c | 98 +- kernel/time/hrtimer.c | 346 +++++- kernel/time/itimer.c | 1 + kernel/time/jiffies.c | 7 +- kernel/time/ntp.c | 43 + kernel/time/posix-cpu-timers.c | 198 +++- kernel/time/posix-timers.c | 37 +- kernel/time/tick-common.c | 10 +- kernel/time/tick-internal.h | 3 +- kernel/time/tick-sched.c | 40 +- kernel/time/timekeeping.c | 6 +- kernel/time/timer.c | 109 +- kernel/trace/Kconfig | 104 ++ kernel/trace/Makefile | 4 + kernel/trace/latency_hist.c | 1178 +++++++++++++++++++ kernel/trace/trace.c | 42 +- kernel/trace/trace.h | 2 + kernel/trace/trace_events.c | 2 + kernel/trace/trace_irqsoff.c | 11 + kernel/trace/trace_output.c | 18 +- kernel/user.c | 4 +- kernel/watchdog.c | 15 +- kernel/workqueue.c | 223 ++-- kernel/workqueue_internal.h | 5 +- lib/Kconfig | 1 + lib/Kconfig.debug | 2 +- lib/debugobjects.c | 5 +- lib/idr.c | 36 +- lib/locking-selftest.c | 50 + lib/percpu_ida.c | 20 +- lib/radix-tree.c | 5 +- lib/scatterlist.c | 6 +- lib/smp_processor_id.c | 5 +- localversion-rt | 1 + mm/Kconfig | 2 +- mm/filemap.c | 11 +- mm/highmem.c | 6 +- mm/memcontrol.c | 26 +- mm/memory.c | 26 + mm/mmu_context.c | 2 + mm/page_alloc.c | 142 ++- mm/slab.h | 4 + mm/slub.c | 125 +- mm/swap.c | 34 +- mm/truncate.c | 7 +- mm/vmalloc.c | 13 +- mm/vmstat.c | 6 + mm/workingset.c | 23 +- net/core/dev.c | 112 +- net/core/skbuff.c | 6 +- net/core/sock.c | 3 +- net/ipv4/icmp.c | 30 + net/ipv4/sysctl_net_ipv4.c | 7 + net/mac80211/rx.c | 2 +- net/netfilter/core.c | 6 + net/packet/af_packet.c | 5 +- net/rds/ib_rdma.c | 3 +- net/sched/sch_generic.c | 2 +- net/sunrpc/svc_xprt.c | 4 +- scripts/mkcompile_h | 4 +- sound/core/pcm_native.c | 8 +- virt/kvm/async_pf.c | 4 +- virt/kvm/kvm_main.c | 16 +- 371 files changed, 11320 insertions(+), 1762 deletions(-) create mode 100644 Documentation/hwlat_detector.txt create mode 100644 Documentation/trace/histograms.txt create mode 100644 drivers/misc/hwlat_detector.c create mode 100644 include/linux/locallock.h create mode 100644 include/linux/mutex_rt.h create mode 100644 include/linux/rwlock_rt.h create mode 100644 include/linux/rwlock_types_rt.h create mode 100644 include/linux/rwsem_rt.h create mode 100644 include/linux/spinlock_rt.h create mode 100644 include/linux/spinlock_types_nort.h create mode 100644 include/linux/spinlock_types_raw.h create mode 100644 include/linux/spinlock_types_rt.h create mode 100644 include/linux/wait-simple.h create mode 100644 include/linux/work-simple.h create mode 100644 include/trace/events/hist.h create mode 100644 include/trace/events/latency_hist.h create mode 100644 kernel/locking/rt.c create mode 100644 kernel/sched/wait-simple.c create mode 100644 kernel/sched/work-simple.c create mode 100644 kernel/trace/latency_hist.c create mode 100644 localversion-rt