From 59cf2ceea60a2bac4e28d84ef2c77ab27930939f Mon Sep 17 00:00:00 2001 From: Tiejun Chen Date: Mon, 8 Oct 2018 13:14:02 -0700 Subject: [PATCH] update -rt to 4.14.71-rt44 Signed-off-by: Tiejun Chen --- examples/rt-for-vmware.yml | 2 +- kernel/Makefile | 4 +- ...mutex_futex_unlock-safe-for-irq-off-.patch | 8 +- ...kdep-false-positive-boost_mtx-compla.patch | 4 +- .../0003-brd-remove-unused-brd_mutex.patch | 4 +- ...-Remove-redundant-preemptible-checks.patch | 4 +- ...se-raw-locks-on-atomic-context-paths.patch | 4 +- ...use-dev_data-in-irte_ga_set_affinity.patch | 4 +- ...locking-get_irq_table-from-atomic-co.patch | 4 +- ...-dev_data_list-into-a-lock-less-list.patch | 4 +- ...domain-id-out-of-amd_iommu_devtable_.patch | 4 +- ...irq_lookup_table-out-of-the-amd_iomm.patch | 4 +- ...-the-special-case-from-alloc_irq_tab.patch | 4 +- ...ble-instead-irt-as-variable-name-in-.patch | 4 +- ...-out-setting-the-remap-table-for-a-d.patch | 4 +- ...he-lock-while-allocating-new-irq-rem.patch | 4 +- ...-amd_iommu_devtable_lock-a-spin_lock.patch | 4 +- ...-proper-error-code-in-irq_remapping_.patch | 4 +- ...c-keys-for-migrate_enable-nohz_activ.patch | 6 +- ...imer-Correct-blantanly-wrong-comment.patch | 4 +- ...erneldoc-for-struct-hrtimer_cpu_base.patch | 4 +- ...clock-argument-in-schedule_hrtimeout.patch | 4 +- ...mer-Fix-hrtimer-function-description.patch | 4 +- ...22-hrtimer-Cleanup-hrtimer_mode-enum.patch | 4 +- ...Print-hrtimer-mode-in-hrtimer_start-.patch | 4 +- ...r-Switch-for-loop-to-_ffs-evaluation.patch | 4 +- ...-running-timer-in-hrtimer_clock_base.patch | 4 +- ...Make-room-in-struct-hrtimer_cpu_base.patch | 4 +- ...-Reduce-conditional-code-hres_active.patch | 4 +- ...sor-functions-instead-of-direct-acce.patch | 4 +- ...e-remote-enqueue-check-unconditional.patch | 4 +- ...imer_cpu_base.next_timer-handling-un.patch | 4 +- ...ake-hrtimer_reprogramm-unconditional.patch | 4 +- ...imer_force_reprogramm-unconditionall.patch | 4 +- ...mer-Unify-handling-of-hrtimer-remove.patch | 4 +- ...mer-Unify-handling-of-remote-enqueue.patch | 6 +- ...ote-enqueue-decision-less-restrictiv.patch | 4 +- ...base-argument-from-hrtimer_reprogram.patch | 4 +- ...hrtimer-Split-hrtimer_start_range_ns.patch | 4 +- ...timer-Split-__hrtimer_get_next_event.patch | 4 +- ...save-irqrestore-around-__run_hrtimer.patch | 4 +- ...k-bases-and-hrtimer-mode-for-soft-ir.patch | 4 +- ...handling-of-hard-and-softirq-based-h.patch | 4 +- ...t-support-for-softirq-based-hrtimers.patch | 4 +- ...ement-SOFT-HARD-clock-base-selection.patch | 4 +- ...hrtimer_tasklet-with-softirq-based-h.patch | 4 +- ...eplace-hrtimer-tasklet-with-softirq-.patch | 4 +- ...hrtimer-tasklet-with-softirq-hrtimer.patch | 4 +- .../0047-softirq-Remove-tasklet_hrtimer.patch | 4 +- ...Replace-tasklet-with-softirq-hrtimer.patch | 4 +- ...Replace-tasklet-with-softirq-hrtimer.patch | 4 +- ...Replace-tasklet-with-softirq-hrtimer.patch | 4 +- ...o-not-disable-enable-clocks-in-a-row.patch | 4 +- ...ar_tasks_mm_cpumask-call-to-__cpu_di.patch | 4 +- ...ndle-non-enqueued-waiters-gracefully.patch | 8 +- ...tree-include-rcu.h-because-we-use-it.patch | 4 +- ...rxrpc-remove-unused-static-variables.patch | 4 +- ...fd-syscon-atmel-smc-include-string.h.patch | 4 +- .../0057-sched-swait-include-wait.h.patch | 4 +- ...-replace-seqcount_t-with-a-seqlock_t.patch | 10 +- ...recursive-locking-in-hci_send_to_cha.patch | 4 +- ...aw_cpu_ptr-instead-of-get_cpu_ptr-fo.patch | 4 +- ...udio-don-t-inclide-rwlock.h-directly.patch | 4 +- ...9pfs-don-t-inclide-rwlock.h-directly.patch | 6 +- ...drm-i915-properly-init-lockdep-class.patch | 4 +- ...ent-return-values-of-timerqueue_add-.patch | 4 +- ...arc64-use-generic-rwsem-spinlocks-rt.patch | 4 +- ...el-SRCU-provide-a-static-initializer.patch | 4 +- ..._lock_assert-irqs_disabled-combo-che.patch | 10 +- ...vide-a-pointer-to-the-valid-CPU-mask.patch | 26 +- ...ernel-sched-core-add-migrate_disable.patch | 4 +- ...the-order-of-trace_types_lock-and-ev.patch | 16 +- ...ite-trace_recursive_-un-lock-to-be-s.patch | 4 +- ...ve-lookups-from-tracing_map-hitcount.patch | 4 +- ...g-Increase-tracing-map-KEYS_MAX-size.patch | 4 +- ...ake-traceprobe-parsing-code-reusable.patch | 10 +- ...acing-Clean-up-hist_field_flags-enum.patch | 4 +- ...tracing-Add-hist_field_name-accessor.patch | 4 +- .../0077-tracing-Reimplement-log2.patch | 4 +- ...t-trigger-Documentation-to-histogram.patch | 4 +- ...-Add-Documentation-for-log2-modifier.patch | 4 +- ...pport-to-detect-and-avoid-duplicates.patch | 4 +- ...-Remove-code-which-merges-duplicates.patch | 4 +- ...interface-for-setting-absolute-time-.patch | 8 +- ...fine-the-unimplemented-RINGBUF_TYPE_.patch | 4 +- ...racing-Add-timestamp_mode-trace-file.patch | 14 +- ...nt-triggers-access-to-ring_buffer_ev.patch | 4 +- ...-buffer-event-param-to-hist-field-fu.patch | 4 +- ...-out-hist-trigger-assignment-parsing.patch | 4 +- ...g-Add-hist-trigger-timestamp-support.patch | 4 +- ...element-variable-support-to-tracing_.patch | 4 +- ...g-Add-hist_data-member-to-hist_field.patch | 4 +- ...s-modifier-for-hist-trigger-timestam.patch | 8 +- ...dd-variable-support-to-hist-triggers.patch | 4 +- ...for-variables-in-named-trigger-compa.patch | 4 +- ...94-tracing-Move-get_hist_field_flags.patch | 4 +- ...le-expression-support-to-hist-trigge.patch | 4 +- ...ralize-per-element-hist-trigger-data.patch | 4 +- ...cing_map_elt-to-hist_field-accessor-.patch | 4 +- ...98-tracing-Add-hist_field-type-field.patch | 4 +- ...able-reference-handling-to-hist-trig.patch | 10 +- ...tracing-Add-hist-trigger-action-hook.patch | 4 +- ...ing-Add-support-for-synthetic-events.patch | 4 +- ...cing-Add-support-for-field-variables.patch | 4 +- ...-onmatch-hist-trigger-action-support.patch | 4 +- ...dd-onmax-hist-trigger-action-support.patch | 4 +- ...itespace-to-surround-hist-trigger-fi.patch | 4 +- ...cing-Add-cpu-field-for-hist-triggers.patch | 4 +- ...-trigger-support-for-variable-refere.patch | 4 +- ...-error-error-facility-for-hist-trigg.patch | 4 +- ...ter-event-hist-trigger-Documentation.patch | 4 +- ...ng-Make-tracing_set_clock-non-static.patch | 8 +- ...-a-clock-attribute-for-hist-triggers.patch | 4 +- ...g-back-context-level-recursive-check.patch | 4 +- ...duplicate-results-in-mapping-context.patch | 4 +- ...nesting-for-adding-events-within-eve.patch | 4 +- ...ring-buffer-nesting-to-allow-synthet.patch | 4 +- ...r-event-blurb-to-HIST_TRIGGERS-confi.patch | 4 +- ...-Add-inter-event-hist-triggers-testc.patch | 4 +- ...lay-of-hist-trigger-expressions-cont.patch | 4 +- ...d-flag-strings-when-displaying-varia.patch | 4 +- ...on-comparisons-when-testing-matching.patch | 4 +- ...e-variable-string-fields-are-NULL-te.patch | 4 +- ...k-Shorten-interrupt-disabled-regions.patch | 16 +- ...23-timekeeping-Split-jiffies-seqlock.patch | 4 +- ...-for-preempt-off-in-preempt_schedule.patch | 4 +- ...5-signal-Revert-ptrace-preempt-magic.patch | 4 +- ...126-arm-Convert-arm-boot_lock-to-raw.patch | 12 +- ...probe-replace-patch_lock-to-raw-lock.patch | 4 +- ...six-timers-Prevent-broadcast-signals.patch | 4 +- ...t-tasks-to-cache-one-sigqueue-struct.patch | 8 +- ...andom-Reduce-preempt-disabled-region.patch | 4 +- ...ove-irq-handler-when-clock-event-is-.patch | 4 +- ...ers-timer-atmel-pit-fix-double-free_.patch | 4 +- ...B-Allow-higher-clock-rates-for-clock.patch | 4 +- ...4-suspend-Prevent-might-sleep-splats.patch | 4 +- .../0135-net-flip-lock-dep-thingy.patch.patch | 4 +- ...et-sched-Use-msleep-instead-of-yield.patch | 4 +- ...37-net-core-disable-NET_RX_BUSY_POLL.patch | 4 +- ...t-unmask-io_apic-when-interrupt-is-i.patch | 4 +- ...139-rcu-segcblist-include-rcupdate.h.patch | 4 +- ...0140-printk-Add-a-printk-kill-switch.patch | 106 ++++---- ..._early_printk-boot-param-to-help-wit.patch | 16 +- ...rovide-PREEMPT_RT_BASE-config-switch.patch | 4 +- ...config-options-which-are-not-RT-comp.patch | 6 +- .../0144-kconfig-Add-PREEMPT_RT_FULL.patch | 4 +- ...-WARN_ON-variants-dependend-on-RT-RT.patch | 4 +- ...-Use-WARN_ON_NORT-in-__attach_device.patch | 4 +- ...cal_irq_-variants-depending-on-RT-RT.patch | 4 +- ...pt-Provide-preempt_-_-no-rt-variants.patch | 4 +- ...-migrate_disable-enable-in-different.patch | 4 +- .../0150-rt-Add-local-irq-locks.patch | 4 +- ...le-interrupts-in-ide-code-for-preemp.patch | 4 +- ...ot-disable-interrupts-for-PREEMPT-RT.patch | 4 +- ...nox-IB-driver-patch-use-_nort-primit.patch | 4 +- ...o-not-disable-interrupts-on-PREEMPT_.patch | 4 +- ...ble-interrupts-on-RT-in-kernel-users.patch | 4 +- ...6-usb-Use-_nort-in-giveback-function.patch | 4 +- ...catterlist-Do-not-disable-irqs-on-RT.patch | 4 +- ...-not-protect-workingset_shadow_nodes.patch | 4 +- ...al-Make-__lock_task_sighand-RT-aware.patch | 4 +- ...-x86-Delay-calling-signals-in-atomic.patch | 4 +- ...ignal-delay-calling-signals-on-32bit.patch | 4 +- .../0162-net-wireless-Use-WARN_ON_NORT.patch | 4 +- ...head-Replace-bh_uptodate_lock-for-rt.patch | 4 +- ...-state-lock-and-journal-head-lock-rt.patch | 4 +- ...st_bl-Make-list-head-locking-RT-safe.patch | 4 +- ...-list_bl-fixup-bogus-lockdep-warning.patch | 4 +- .../0167-genirq-Disable-irqpoll-on-rt.patch | 4 +- ...-genirq-Force-interrupt-thread-on-RT.patch | 4 +- ...rivers-net-vortex-fix-locking-issues.patch | 4 +- ...page_alloc-rt-friendly-per-cpu-pages.patch | 4 +- ...e_alloc-Reduce-lock-sections-further.patch | 4 +- ...172-mm-swap-Convert-to-percpu-locked.patch | 4 +- ...m-perform-lru_add_drain_all-remotely.patch | 4 +- ...t-per-cpu-variables-with-preempt-dis.patch | 4 +- ...plit-page-table-locks-for-vector-pag.patch | 4 +- ...76-mm-bounce-Use-local_irq_save_nort.patch | 4 +- .../0177-mm-Allow-only-slub-on-RT.patch | 4 +- .../0178-mm-Enable-SLUB-for-RT.patch | 4 +- ...ssible-memory-leak-in-kmem_cache_all.patch | 4 +- ...0180-slub-Enable-irqs-for-__GFP_WAIT.patch | 4 +- .../0181-slub-Disable-SLUB_CPU_PARTIAL.patch | 4 +- ...e-local_lock_on-instead-of-plain-spi.patch | 4 +- ...n-t-call-schedule_work_on-in-preempt.patch | 6 +- ...place-local_irq_disable-with-local-l.patch | 20 +- ...on-t-disable-IRQs-in-wb_congested_pu.patch | 4 +- ...oc-copy-with-get_cpu_var-and-locking.patch | 4 +- .../0187-radix-tree-use-local-locks.patch | 4 +- ...andom_bytes-for-RT_FULL-in-init_oops.patch | 4 +- ...9-timers-Prepare-for-full-preemption.patch | 10 +- ...-waking-softirqs-from-the-jiffy-tick.patch | 6 +- ...vent-erroneous-tick-stop-invocations.patch | 4 +- ...192-x86-kvm-Require-const-tsc-for-RT.patch | 8 +- .../0193-wait.h-include-atomic.h.patch | 4 +- ...mple-Simple-work-queue-implemenation.patch | 4 +- ...95-completion-Use-simple-wait-queues.patch | 8 +- .../0196-fs-aio-simple-simple-work.patch | 4 +- ...voke-the-affinity-callback-via-a-wor.patch | 4 +- ...id-schedule_work-with-interrupts-dis.patch | 6 +- ...ate-hrtimer_init-hrtimer_init_sleepe.patch | 4 +- ...200-hrtimers-Prepare-full-preemption.patch | 4 +- ...s-by-default-into-the-softirq-contex.patch | 10 +- ...er-Prevent-live-lock-in-alarm_cancel.patch | 4 +- ...r-proper-timer-while-waiting-for-ala.patch | 4 +- ...s-move-the-rcu-head-out-of-the-union.patch | 4 +- ...-schedule_work-call-to-helper-thread.patch | 4 +- .../0206-timer-fd-Prevent-live-lock.patch | 4 +- ...timers-Thread-posix-cpu-timers-on-rt.patch | 8 +- ...ched-Move-task_struct-cleanup-to-RCU.patch | 6 +- ...-number-of-task-migrations-per-batch.patch | 4 +- .../0210-sched-Move-mmdrop-to-RCU-on-RT.patch | 8 +- ...e-stack-kprobe-clean-up-to-__put_tas.patch | 6 +- ...state-for-tasks-blocked-on-sleeping-.patch | 4 +- ...sk-state-corruption-by-spurious-lock.patch | 4 +- .../0214-sched-Remove-TASK_ALL.patch | 4 +- ...ount-rcu_preempt_depth-on-RT-in-migh.patch | 4 +- ...ftirq-semantics-into-account-in-cond.patch | 4 +- ...-proper-LOCK_OFFSET-for-cond_resched.patch | 4 +- .../0218-sched-Disable-TTWU_QUEUE-on-RT.patch | 4 +- ...-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch | 4 +- ...n-success-when-only-changing-the-sav.patch | 4 +- ...Only-wake-up-idle-workers-if-not-blo.patch | 4 +- ...ease-the-nr-of-migratory-tasks-when-.patch | 4 +- ...nvert-stop_machine_run-to-PREEMPT_RT.patch | 8 +- .../0224-stop_machine-Use-raw-spinlocks.patch | 8 +- ...-hotplug-Lightweight-get-online-cpus.patch | 6 +- ...e-disabled-counter-to-tracing-output.patch | 8 +- .../0227-lockdep-Make-it-RT-aware.patch | 6 +- .../0228-lockdep-disable-self-test.patch | 4 +- ...locking-Disable-spin-on-owner-for-RT.patch | 4 +- ...tasklets-from-going-into-infinite-sp.patch | 4 +- ...eemption-after-reenabling-interrupts.patch | 6 +- ...oftirq-Disable-softirq-stacks-for-RT.patch | 4 +- .../0233-softirq-Split-softirq-locks.patch | 6 +- ...4-kernel-softirq-unlock-with-irqs-on.patch | 4 +- ...abling-of-softirq-processing-in-irq-.patch | 4 +- ...plit-timer-softirqs-out-of-ksoftirqd.patch | 4 +- ...irq-wake-the-timer-softirq-if-needed.patch | 4 +- .../0238-rtmutex-trylock-is-okay-on-RT.patch | 8 +- ...-nfs-turn-rmdir_sem-into-a-semaphore.patch | 4 +- ...he-various-new-futex-race-conditions.patch | 6 +- ...on-when-a-requeued-RT-task-times-out.patch | 8 +- ...mutex-don-t-drop-the-wait_lock-twice.patch | 8 +- ...k-unlock-symetry-versus-pi_lock-and-.patch | 4 +- .../0244-pid.h-include-atomic.h.patch | 4 +- ...arm-include-definition-for-cpumask_t.patch | 4 +- ...ure-Do-NOT-include-rwlock.h-directly.patch | 4 +- ...47-rtmutex-Add-rtmutex_lock_killable.patch | 14 +- ...0248-rtmutex-Make-lock_killable-work.patch | 6 +- ...spinlock-Split-the-lock-types-header.patch | 4 +- .../0250-rtmutex-Avoid-include-hell.patch | 6 +- ...-rbtree-don-t-include-the-rcu-header.patch | 4 +- ...tex-Provide-rt_mutex_slowlock_locked.patch | 6 +- ...ockdep-less-version-of-rt_mutex-s-lo.patch | 66 +++-- ...tex-add-sleeping-lock-implementation.patch | 20 +- ...utex-implementation-based-on-rtmutex.patch | 4 +- ...wsem-implementation-based-on-rtmutex.patch | 4 +- ...lock-implementation-based-on-rtmutex.patch | 4 +- .../0258-rtmutex-wire-up-RT-s-locking.patch | 4 +- ...utex-add-ww_mutex-addon-for-mutex-rt.patch | 12 +- ...-fix-deadlock-in-device-mapper-block.patch | 6 +- ...re-init-the-wait_lock-in-rt_mutex_in.patch | 8 +- ...ace-fix-ptrace-vs-tasklist_lock-race.patch | 4 +- ...kip-that-warning-but-only-on-sleepin.patch | 4 +- ...edule-in-RCU-section-warning-on-UP-t.patch | 4 +- ...eck-for-__LINUX_SPINLOCK_TYPES_H-on-.patch | 4 +- .../0266-rcu-Frob-softirq-test.patch | 4 +- ...67-rcu-Merge-RCU-bh-into-RCU-preempt.patch | 4 +- ...ke-ksoftirqd-do-RCU-quiescent-states.patch | 4 +- ...s-Disable-irq-while-calling-rcu_pree.patch | 4 +- ...erial-omap-Make-the-locking-RT-aware.patch | 4 +- ...al-pl011-Make-the-locking-work-on-RT.patch | 4 +- ...mprove-the-serial-console-PASS_LIMIT.patch | 4 +- ...0-don-t-take-the-trylock-during-oops.patch | 8 +- ...wsem-Remove-preempt_disable-variants.patch | 4 +- .../0275-fs-namespace-preemption-fix.patch | 4 +- ...ate_mm-by-preempt_-disable-enable-_r.patch | 4 +- ...urn-off-warning-which-is-bogus-on-RT.patch | 6 +- ...fs-ntfs-disable-interrupt-only-on-RT.patch | 4 +- ...ull-your-plug-when-waiting-for-space.patch | 4 +- ...ull-your-plug-when-waiting-for-space.patch | 4 +- ...-back-explicit-INIT_HLIST_BL_HEAD-in.patch | 12 +- ...e-preemption-on-i_dir_seq-s-write-si.patch | 14 +- ...283-x86-Convert-mce-timer-to-hrtimer.patch | 4 +- ...-mce-use-swait-queue-for-mce-wakeups.patch | 4 +- ...ackprotector-Avoid-random-pool-on-rt.patch | 4 +- ...86-Use-generic-rwsem_spinlocks-on-rt.patch | 8 +- .../0287-x86-UV-raw_spinlock-conversion.patch | 4 +- ...rmal-Defer-thermal-wakups-to-threads.patch | 4 +- ...poll-Do-not-disable-preemption-on-RT.patch | 4 +- ...er-preempt-disable-region-which-suck.patch | 4 +- .../0291-block-mq-use-cpu_light.patch | 4 +- ...ock-mq-do-not-invoke-preempt_disable.patch | 4 +- ...k-mq-don-t-complete-requests-via-IPI.patch | 6 +- ...-Make-raid5_percpu-handling-RT-aware.patch | 10 +- ...5-md-raid5-do-not-disable-interrupts.patch | 6 +- .../0296-rt-Introduce-cpu_chill.patch | 4 +- ...-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch | 4 +- ...nel-cpu_chill-use-schedule_hrtimeout.patch | 4 +- ...-Add-a-UNINTERRUPTIBLE-hrtimer_nanos.patch | 4 +- ...mutex-annotate-sleeping-lock-context.patch | 6 +- ...e-blk_queue_usage_counter_release-in.patch | 8 +- ...-block-Use-cpu_chill-for-retry-loops.patch | 4 +- ...cache-Use-cpu_chill-in-trylock-loops.patch | 14 +- ...t-Use-cpu_chill-instead-of-cpu_relax.patch | 6 +- ...use-swait_queue-instead-of-waitqueue.patch | 14 +- .../0306-workqueue-Use-normal-rcu.patch | 6 +- ...cal-irq-lock-instead-of-irq-disable-.patch | 6 +- ...t-workqueue-versus-ata-piix-livelock.patch | 6 +- ...tangle-worker-accounting-from-rqlock.patch | 6 +- .../0310-percpu_ida-Use-local-locks.patch | 4 +- .../0311-debugobjects-Make-RT-aware.patch | 8 +- ...abel-disable-if-stop_machine-is-used.patch | 4 +- .../0313-seqlock-Prevent-rt-starvation.patch | 4 +- ...vc_xprt_do_enqueue-use-get_cpu_light.patch | 4 +- ...0315-net-Use-skbufhead-with-raw-lock.patch | 10 +- ...tplug-Drain-input_pkt_queue-lockless.patch | 6 +- ...recursion-to-per-task-variable-on-RT.patch | 6 +- ...uct-instead-of-CPU-number-as-the-que.patch | 6 +- ...y-to-delegate-processing-a-softirq-t.patch | 6 +- ...ake-qdisc-s-busylock-in-__dev_xmit_s.patch | 6 +- ...Qdisc-use-a-seqlock-instead-seqcount.patch | 4 +- ...-missing-serialization-in-ip_send_un.patch | 6 +- ...he-tcp_sk_lock-lock-with-BH-disabled.patch | 6 +- .../0324-net-add-a-lock-around-icmp_sk.patch | 4 +- .../0325-net-use-trylock-in-icmp_sk.patch | 4 +- ...schedule_irqoff-disable-interrupts-o.patch | 6 +- ...-push-most-work-into-softirq-context.patch | 14 +- ...rk-Move-irq-safe-work-to-irq-context.patch | 14 +- ...pcm_stream_lock-irqs_disabled-splats.patch | 4 +- .../0330-printk-Make-rt-aware.patch | 14 +- ...n-t-try-to-print-from-IRQ-NMI-region.patch | 10 +- ...intk-Drop-the-logbuf_lock-more-often.patch | 16 +- ...0333-powerpc-Use-generic-rwsem-on-RT.patch | 4 +- ...ble-in-kernel-MPIC-emulation-for-PRE.patch | 4 +- ...ce-init.c-adapt-to-completions-using.patch | 4 +- ...-tclib-Default-to-tclib-timer-for-RT.patch | 4 +- .../0337-arm-unwind-use-a-raw_spin_lock.patch | 4 +- ...n-translation-section-permission-fau.patch | 4 +- ...-irq_set_irqchip_state-documentation.patch | 4 +- ...wngrade-preempt_disable-d-region-to-.patch | 4 +- ...0341-arm64-xen-Make-XEN-depend-on-RT.patch | 8 +- ...42-kgdb-serial-Short-term-workaround.patch | 8 +- ...-sysfs-Add-sys-kernel-realtime-entry.patch | 4 +- .../0344-powerpc-Disable-highmem-on-RT.patch | 4 +- .../0345-mips-Disable-highmem-on-RT.patch | 4 +- .../0346-mm-rt-kmap_atomic-scheduling.patch | 4 +- ...mm-rt-Fix-generic-kmap_atomic-for-RT.patch | 4 +- ...highmem-Add-a-already-used-pte-check.patch | 4 +- .../0349-arm-highmem-Flush-tlb-on-unmap.patch | 4 +- .../0350-arm-Enable-highmem-for-rt.patch | 4 +- .../0351-scsi-fcoe-Make-RT-aware.patch | 6 +- ...t-t-disable-interrupts-in-qc_issue-h.patch | 4 +- ...ypto-Reduce-preempt-disabled-regions.patch | 4 +- ...-preempt-disabled-regions-more-algos.patch | 4 +- ...ypto-limit-more-FPU-enabled-sections.patch | 4 +- ...0356-arm-disable-NEON-in-kernel-mode.patch | 4 +- .../0357-dm-Make-rt-aware.patch | 4 +- ...acpi_gbl_hardware-lock-back-to-a-raw.patch | 4 +- ...sable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch | 8 +- .../0360-random-Make-it-work-on-rt.patch | 4 +- ...dom-avoid-preempt_disable-ed-section.patch | 4 +- ...om-don-t-print-that-the-init-is-done.patch | 4 +- ...63-cpu-hotplug-Implement-CPU-pinning.patch | 6 +- ...duct-tape-RT-rwlock-usage-for-non-RT.patch | 6 +- ...-local_irq_save_nort-in-qla2x00_poll.patch | 4 +- ...ove-preemption-disabling-in-netif_rx.patch | 6 +- ...r-local_irq_disable-kmalloc-headache.patch | 6 +- ...-users-of-napi_alloc_cache-against-r.patch | 6 +- ...rialize-xt_write_recseq-sections-on-.patch | 4 +- ...Add-a-mutex-around-devnet_rename_seq.patch | 6 +- ...onvert-crypto-notifier-chain-to-SRCU.patch | 4 +- ...-Only-do-hardirq-context-test-for-ra.patch | 4 +- ...-fix-warnings-due-to-missing-PREEMPT.patch | 4 +- ...-use-cpu_online-instead-custom-check.patch | 4 +- ...it-call_srcu-use-under-raw-spinlocks.patch | 4 +- ...place-local_irqsave-with-a-locallock.patch | 4 +- ...377-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch | 4 +- ...nate-softirq-processing-from-rcutree.patch | 4 +- ...379-rcu-make-RCU_BOOST-default-on-RT.patch | 4 +- ..._normal_after_boot-by-default-for-RT.patch | 4 +- ...ched-Add-support-for-lazy-preemption.patch | 10 +- ...82-ftrace-Fix-trace-header-alignment.patch | 8 +- ...0383-x86-Support-for-lazy-preemption.patch | 8 +- ...-arm-Add-support-for-lazy-preemption.patch | 4 +- ...erpc-Add-support-for-lazy-preemption.patch | 4 +- ...-arch-arm64-Add-lazy-preempt-support.patch | 6 +- ...ds-trigger-disable-CPU-trigger-on-RT.patch | 4 +- ...388-mmci-Remove-bogus-local_irq_save.patch | 4 +- ...rop-K8-s-driver-from-beeing-selected.patch | 4 +- ...c-Protect-send_msg-with-a-local-lock.patch | 4 +- ...am-Replace-bit-spinlocks-with-rtmute.patch | 12 +- ...-t-disable-preemption-in-zcomp_strea.patch | 12 +- ...-zcomp_stream_get-smp_processor_id-u.patch | 4 +- ...94-tpm_tis-fix-stall-after-iowrite-s.patch | 4 +- ...ec-Don-t-use-completion-s-wait-queue.patch | 22 +- ...Use-preempt_disable-enable_rt-where-.patch | 4 +- ...al_lock-unlock_irq-in-intel_pipe_upd.patch | 4 +- ...roups-use-simple-wait-in-css_release.patch | 4 +- ...nt-scheduling-while-atomic-in-cgroup.patch | 6 +- ...l-Prevent-scheduling-while-atomic-in.patch | 6 +- ...vert-callback_lock-to-raw_spinlock_t.patch | 4 +- ...-to-schedule_delayed_work-to-helper-.patch | 4 +- ...ve-call-to-schedule_delayed_work-to-.patch | 4 +- .../0404-md-disable-bcache.patch | 4 +- ...-a-locallock-instead-preempt_disable.patch | 4 +- ...rkqueue-Prevent-deadlock-stall-on-RT.patch | 6 +- ...0407-Add-localversion-for-RT-release.patch | 4 +- ...d-modifier-parsing-hist-error-for-hi.patch | 4 +- ...d-parsing-hist-error-for-hist-trigge.patch | 4 +- ...proper-field-flag-printing-when-disp.patch | 4 +- ...lized-variable-in-create_tracing_map.patch | 4 +- ...ing-Fix-a-potential-NULL-dereference.patch | 4 +- .../0413-Linux-4.14.63-rt40-REBASE.patch | 21 -- ...FS-bandwidth-control-lockdep-DEADLOC.patch | 58 ++++ .../0414-Miss-the-irq_regs.h-file.patch | 26 -- ...provide-get-put-_locked_ptr-variants.patch | 51 ++++ ...e-of-local-lock-in-multi_cpu-decompr.patch | 74 +++++ ...d-Prevent-might-sleep-splats-updated.patch | 39 +++ ...keup-Make-events_lock-a-RAW_SPINLOCK.patch | 91 +++++++ ...le-Make-s2idle_wait_head-swait-based.patch | 62 +++++ ...the-same-ordering-semantics-as-mainl.patch | 39 +++ ...evert-x86-UV-raw_spinlock-conversion.patch | 256 ++++++++++++++++++ ...ay-waking-softirqs-from-the-jiffy-ti.patch | 44 +++ ...-its-Make-its_lock-a-raw_spin_lock_t.patch | 65 +++++ ...sable-fallback-to-preempt_disable-in.patch | 206 ++++++++++++++ ...ts-Move-ITS-pend_page-allocation-int.patch | 137 ++++++++++ ...ts-Move-pending-table-allocation-to-.patch | 173 ++++++++++++ ...-let-setaffinity-unmask-threaded-EOI.patch | 116 ++++++++ .../0427-efi-Allow-efi-runtime.patch | 33 +++ ...8-efi-Disable-runtime-services-on-RT.patch | 47 ++++ ...d-a-lock-instead-preempt_disable-loc.patch | 87 ++++++ ...-serialize-RT-percpu-scratch-buffer-.patch | 85 ++++++ ...-__schedule-being-called-twice-in-a-.patch | 63 +++++ ...vert-arm64-xen-Make-XEN-depend-on-RT.patch | 33 +++ ...ed-user-tasks-to-be-awakened-to-the-.patch | 40 +++ ...mbus-include-header-for-get_irq_regs.patch | 44 +++ ...eep-the-softirq-pending-check-RT-onl.patch | 44 +++ .../0436-Linux-4.14.71-rt44-REBASE.patch | 19 ++ 440 files changed, 3070 insertions(+), 1197 deletions(-) delete mode 100644 kernel/patches-4.14.x-rt/0413-Linux-4.14.63-rt40-REBASE.patch create mode 100644 kernel/patches-4.14.x-rt/0413-sched-fair-Fix-CFS-bandwidth-control-lockdep-DEADLOC.patch delete mode 100644 kernel/patches-4.14.x-rt/0414-Miss-the-irq_regs.h-file.patch create mode 100644 kernel/patches-4.14.x-rt/0414-locallock-provide-get-put-_locked_ptr-variants.patch create mode 100644 kernel/patches-4.14.x-rt/0415-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch create mode 100644 kernel/patches-4.14.x-rt/0416-PM-suspend-Prevent-might-sleep-splats-updated.patch create mode 100644 kernel/patches-4.14.x-rt/0417-PM-wakeup-Make-events_lock-a-RAW_SPINLOCK.patch create mode 100644 kernel/patches-4.14.x-rt/0418-PM-s2idle-Make-s2idle_wait_head-swait-based.patch create mode 100644 kernel/patches-4.14.x-rt/0419-seqlock-provide-the-same-ordering-semantics-as-mainl.patch create mode 100644 kernel/patches-4.14.x-rt/0420-Revert-x86-UV-raw_spinlock-conversion.patch create mode 100644 kernel/patches-4.14.x-rt/0421-Revert-timer-delay-waking-softirqs-from-the-jiffy-ti.patch create mode 100644 kernel/patches-4.14.x-rt/0422-irqchip-gic-v3-its-Make-its_lock-a-raw_spin_lock_t.patch create mode 100644 kernel/patches-4.14.x-rt/0423-sched-migrate_disable-fallback-to-preempt_disable-in.patch create mode 100644 kernel/patches-4.14.x-rt/0424-irqchip-gic-v3-its-Move-ITS-pend_page-allocation-int.patch create mode 100644 kernel/patches-4.14.x-rt/0425-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch create mode 100644 kernel/patches-4.14.x-rt/0426-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch create mode 100644 kernel/patches-4.14.x-rt/0427-efi-Allow-efi-runtime.patch create mode 100644 kernel/patches-4.14.x-rt/0428-efi-Disable-runtime-services-on-RT.patch create mode 100644 kernel/patches-4.14.x-rt/0429-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch create mode 100644 kernel/patches-4.14.x-rt/0430-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch create mode 100644 kernel/patches-4.14.x-rt/0431-sched-core-Avoid-__schedule-being-called-twice-in-a-.patch create mode 100644 kernel/patches-4.14.x-rt/0432-Revert-arm64-xen-Make-XEN-depend-on-RT.patch create mode 100644 kernel/patches-4.14.x-rt/0433-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch create mode 100644 kernel/patches-4.14.x-rt/0434-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch create mode 100644 kernel/patches-4.14.x-rt/0435-Revert-softirq-keep-the-softirq-pending-check-RT-onl.patch create mode 100644 kernel/patches-4.14.x-rt/0436-Linux-4.14.71-rt44-REBASE.patch diff --git a/examples/rt-for-vmware.yml b/examples/rt-for-vmware.yml index b7db7fc35..ca740eb2c 100644 --- a/examples/rt-for-vmware.yml +++ b/examples/rt-for-vmware.yml @@ -1,5 +1,5 @@ kernel: - image: linuxkit/kernel:4.14.74-rt + image: linuxkit/kernel:4.14.71-rt cmdline: "console=tty0" init: - linuxkit/init:6eb0158059b056a1567236280880cb87f03ff008 diff --git a/kernel/Makefile b/kernel/Makefile index 0449ac2e2..192ca529d 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -262,14 +262,14 @@ ifeq ($(ARCH),x86_64) $(eval $(call kernel,4.18.12,4.18.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.14.74,4.14.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.14.74,4.14.x,,-dbg)) -$(eval $(call kernel,4.14.63,4.14.x,-rt,)) +$(eval $(call kernel,4.14.71,4.14.x,-rt,)) $(eval $(call kernel,4.9.131,4.9.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.4.159,4.4.x,$(EXTRA),$(DEBUG))) else ifeq ($(ARCH),aarch64) $(eval $(call kernel,4.18.12,4.18.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.14.74,4.14.x,$(EXTRA),$(DEBUG))) -$(eval $(call kernel,4.14.63,4.14.x,-rt,)) +$(eval $(call kernel,4.14.71,4.14.x,-rt,)) else ifeq ($(ARCH),s390x) $(eval $(call kernel,4.18.12,4.18.x,$(EXTRA),$(DEBUG))) diff --git a/kernel/patches-4.14.x-rt/0001-rtmutex-Make-rt_mutex_futex_unlock-safe-for-irq-off-.patch b/kernel/patches-4.14.x-rt/0001-rtmutex-Make-rt_mutex_futex_unlock-safe-for-irq-off-.patch index 2ff4edb0f..f5817ccec 100644 --- a/kernel/patches-4.14.x-rt/0001-rtmutex-Make-rt_mutex_futex_unlock-safe-for-irq-off-.patch +++ b/kernel/patches-4.14.x-rt/0001-rtmutex-Make-rt_mutex_futex_unlock-safe-for-irq-off-.patch @@ -1,7 +1,7 @@ -From f32c0ebd27d45b33cf1bdd575a9587a30db705a7 Mon Sep 17 00:00:00 2001 +From 7db4815d5134e2d106985f95226ff4b2b0f33cf8 Mon Sep 17 00:00:00 2001 From: Boqun Feng Date: Fri, 9 Mar 2018 14:56:28 +0800 -Subject: [PATCH 001/413] rtmutex: Make rt_mutex_futex_unlock() safe for +Subject: [PATCH 001/436] rtmutex: Make rt_mutex_futex_unlock() safe for irq-off callsites Upstream commit 6b0ef92fee2a3189eba6d6b827b247cb4f6da7e9 @@ -104,10 +104,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 65cc0cb984e6..940633c63254 100644 +index 4ad35718f123..456750bf9c95 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -1616,11 +1616,12 @@ bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock, +@@ -1637,11 +1637,12 @@ bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock, void __sched rt_mutex_futex_unlock(struct rt_mutex *lock) { DEFINE_WAKE_Q(wake_q); diff --git a/kernel/patches-4.14.x-rt/0002-rcu-Suppress-lockdep-false-positive-boost_mtx-compla.patch b/kernel/patches-4.14.x-rt/0002-rcu-Suppress-lockdep-false-positive-boost_mtx-compla.patch index 4932935ae..e3d166f8b 100644 --- a/kernel/patches-4.14.x-rt/0002-rcu-Suppress-lockdep-false-positive-boost_mtx-compla.patch +++ b/kernel/patches-4.14.x-rt/0002-rcu-Suppress-lockdep-false-positive-boost_mtx-compla.patch @@ -1,7 +1,7 @@ -From 52ab7f8907e4d09a203c9f4c6864456f4dbb74af Mon Sep 17 00:00:00 2001 +From 7dd6932742d496b40ed7403758ebc75dcac11229 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Tue, 19 Sep 2017 15:36:42 -0700 -Subject: [PATCH 002/413] rcu: Suppress lockdep false-positive ->boost_mtx +Subject: [PATCH 002/436] rcu: Suppress lockdep false-positive ->boost_mtx complaints Upstream commit bcda31a2659497df39d6bedfbdf17498b4f4ac89 diff --git a/kernel/patches-4.14.x-rt/0003-brd-remove-unused-brd_mutex.patch b/kernel/patches-4.14.x-rt/0003-brd-remove-unused-brd_mutex.patch index 89bdeddca..f20521842 100644 --- a/kernel/patches-4.14.x-rt/0003-brd-remove-unused-brd_mutex.patch +++ b/kernel/patches-4.14.x-rt/0003-brd-remove-unused-brd_mutex.patch @@ -1,7 +1,7 @@ -From 1104c43e61c583b6885fdaed7128e493befd0c5c Mon Sep 17 00:00:00 2001 +From ac56dff9f85e0d7130c45867803cef847839cdee Mon Sep 17 00:00:00 2001 From: Mikulas Patocka Date: Fri, 10 Nov 2017 12:29:34 -0500 -Subject: [PATCH 003/413] brd: remove unused brd_mutex +Subject: [PATCH 003/436] brd: remove unused brd_mutex Upstream commit 15f7b41f70ddcca3b555bd0fdc7c8da7466b517e diff --git a/kernel/patches-4.14.x-rt/0004-KVM-arm-arm64-Remove-redundant-preemptible-checks.patch b/kernel/patches-4.14.x-rt/0004-KVM-arm-arm64-Remove-redundant-preemptible-checks.patch index 989b2add6..2db0f844d 100644 --- a/kernel/patches-4.14.x-rt/0004-KVM-arm-arm64-Remove-redundant-preemptible-checks.patch +++ b/kernel/patches-4.14.x-rt/0004-KVM-arm-arm64-Remove-redundant-preemptible-checks.patch @@ -1,7 +1,7 @@ -From 62c7e1e5244db424f8beff313bbe0e498330e910 Mon Sep 17 00:00:00 2001 +From 4f15498115e8126908c145a2ca312e638d5076dd Mon Sep 17 00:00:00 2001 From: Christoffer Dall Date: Fri, 8 Sep 2017 07:07:13 -0700 -Subject: [PATCH 004/413] KVM: arm/arm64: Remove redundant preemptible checks +Subject: [PATCH 004/436] KVM: arm/arm64: Remove redundant preemptible checks Upstream commit 5a24575032971c5a9a4580417a791c427ebdb8e5 diff --git a/kernel/patches-4.14.x-rt/0005-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch b/kernel/patches-4.14.x-rt/0005-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch index 986830079..92b926afb 100644 --- a/kernel/patches-4.14.x-rt/0005-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch +++ b/kernel/patches-4.14.x-rt/0005-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch @@ -1,7 +1,7 @@ -From 1c24fc48416055e67d7995c90db527f1ebb26ba4 Mon Sep 17 00:00:00 2001 +From d6aadcb0b395bd9ecbc561bfcbbe813b721f2832 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sun, 21 Jan 2018 03:28:54 -0600 -Subject: [PATCH 005/413] iommu/amd: Use raw locks on atomic context paths +Subject: [PATCH 005/436] iommu/amd: Use raw locks on atomic context paths Upstream commit 27790398c2aed917828dc3c6f81240d57f1584c9 diff --git a/kernel/patches-4.14.x-rt/0006-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch b/kernel/patches-4.14.x-rt/0006-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch index 190ad7336..431c4c168 100644 --- a/kernel/patches-4.14.x-rt/0006-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch +++ b/kernel/patches-4.14.x-rt/0006-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch @@ -1,7 +1,7 @@ -From f4854290ac0421066bb86324a0a3d9b4019b7d80 Mon Sep 17 00:00:00 2001 +From f51b70017d4d268d1dcdd19a6efd6c9b1a30752b Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Sun, 28 Jan 2018 14:22:19 -0600 -Subject: [PATCH 006/413] iommu/amd: Don't use dev_data in +Subject: [PATCH 006/436] iommu/amd: Don't use dev_data in irte_ga_set_affinity() Upstream commit 01ee04badefd296eb7a4430497373be9b7b16783 diff --git a/kernel/patches-4.14.x-rt/0007-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch b/kernel/patches-4.14.x-rt/0007-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch index 059e19207..1c160ae16 100644 --- a/kernel/patches-4.14.x-rt/0007-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch +++ b/kernel/patches-4.14.x-rt/0007-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch @@ -1,7 +1,7 @@ -From 3fbd8e3a71166bdf55537b1d24f4adfe83a32495 Mon Sep 17 00:00:00 2001 +From 33b2b217e709628347ea5619fc9174a642700b16 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Wed, 14 Feb 2018 17:36:28 -0600 -Subject: [PATCH 007/413] iommu/amd: Avoid locking get_irq_table() from atomic +Subject: [PATCH 007/436] iommu/amd: Avoid locking get_irq_table() from atomic context Upstream commit df42a04b15f19a842393dc98a84cbc52b1f8ed49 diff --git a/kernel/patches-4.14.x-rt/0008-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch b/kernel/patches-4.14.x-rt/0008-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch index abf2cef86..a4049215d 100644 --- a/kernel/patches-4.14.x-rt/0008-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch +++ b/kernel/patches-4.14.x-rt/0008-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch @@ -1,7 +1,7 @@ -From bba6248dc05bcfad8e8ef21a22bd6e63cadd953d Mon Sep 17 00:00:00 2001 +From 61f3bdb54c57649095506464ef0d662a224281b9 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:34 +0100 -Subject: [PATCH 008/413] iommu/amd: Turn dev_data_list into a lock less list +Subject: [PATCH 008/436] iommu/amd: Turn dev_data_list into a lock less list Upstream commit 779da73273fc4c4c6f41579a95e4fb7880a1720e diff --git a/kernel/patches-4.14.x-rt/0009-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch b/kernel/patches-4.14.x-rt/0009-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch index 7f675cd14..c0db05375 100644 --- a/kernel/patches-4.14.x-rt/0009-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch +++ b/kernel/patches-4.14.x-rt/0009-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch @@ -1,7 +1,7 @@ -From bb893b3f9364003820ea8219a69afbed2cf45001 Mon Sep 17 00:00:00 2001 +From 490281fbd2969d4e1bb622288c6102569f6faaaf Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:35 +0100 -Subject: [PATCH 009/413] iommu/amd: Split domain id out of +Subject: [PATCH 009/436] iommu/amd: Split domain id out of amd_iommu_devtable_lock Upstream commit 2bc00180890427dcc092b2f2b0d03c904bcade29 diff --git a/kernel/patches-4.14.x-rt/0010-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch b/kernel/patches-4.14.x-rt/0010-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch index de1a9ac1e..8c54f333f 100644 --- a/kernel/patches-4.14.x-rt/0010-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch +++ b/kernel/patches-4.14.x-rt/0010-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch @@ -1,7 +1,7 @@ -From ae5816d77220aaccf245674b852facf09822b534 Mon Sep 17 00:00:00 2001 +From 64c08365c969038dfb304ce83908a93aaa519baa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:36 +0100 -Subject: [PATCH 010/413] iommu/amd: Split irq_lookup_table out of the +Subject: [PATCH 010/436] iommu/amd: Split irq_lookup_table out of the amd_iommu_devtable_lock Upstream commit ea6166f4b83e9cfba1c18f46a764d50045682fe5 diff --git a/kernel/patches-4.14.x-rt/0011-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch b/kernel/patches-4.14.x-rt/0011-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch index 7dcb3ad05..b95c2b6b0 100644 --- a/kernel/patches-4.14.x-rt/0011-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch +++ b/kernel/patches-4.14.x-rt/0011-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch @@ -1,7 +1,7 @@ -From f9e7252eb1c41def5d916de943ec2277b7cb7495 Mon Sep 17 00:00:00 2001 +From e42ee86a6c0aa18a93bd28ec274622be903a11ce Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:37 +0100 -Subject: [PATCH 011/413] iommu/amd: Remove the special case from +Subject: [PATCH 011/436] iommu/amd: Remove the special case from alloc_irq_table() Upstream commit fde65dd3d3096e8f6ecc7bbe544eb91f4220772c diff --git a/kernel/patches-4.14.x-rt/0012-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch b/kernel/patches-4.14.x-rt/0012-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch index 5b083f71b..4b4d01390 100644 --- a/kernel/patches-4.14.x-rt/0012-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch +++ b/kernel/patches-4.14.x-rt/0012-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch @@ -1,7 +1,7 @@ -From b19751cfe856edcbf65bad62e566f458cbf7fb97 Mon Sep 17 00:00:00 2001 +From d258a9457f521a1b93c3cc3907ac14ff79559708 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:38 +0100 -Subject: [PATCH 012/413] iommu/amd: Use `table' instead `irt' as variable name +Subject: [PATCH 012/436] iommu/amd: Use `table' instead `irt' as variable name in amd_iommu_update_ga() Upstream commit 4fde541c9dc114c5b448ad34b0286fe8b7c550f1 diff --git a/kernel/patches-4.14.x-rt/0013-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch b/kernel/patches-4.14.x-rt/0013-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch index c8e8d7b52..8b673d8ce 100644 --- a/kernel/patches-4.14.x-rt/0013-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch +++ b/kernel/patches-4.14.x-rt/0013-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch @@ -1,7 +1,7 @@ -From 1fd7be1ae38c27e7d631068ecb594c17e39035b5 Mon Sep 17 00:00:00 2001 +From c903281f196c92a71078d0c1d3d5c0d43a1b8911 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:39 +0100 -Subject: [PATCH 013/413] iommu/amd: Factor out setting the remap table for a +Subject: [PATCH 013/436] iommu/amd: Factor out setting the remap table for a devid Upstream commit 2fcc1e8ac4a8514c64f946178fc36c2e30e56a41 diff --git a/kernel/patches-4.14.x-rt/0014-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch b/kernel/patches-4.14.x-rt/0014-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch index b8b1db44d..91a94b45a 100644 --- a/kernel/patches-4.14.x-rt/0014-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch +++ b/kernel/patches-4.14.x-rt/0014-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch @@ -1,7 +1,7 @@ -From 7567c98c4ad5710bae08f45a10e7bf22833d1644 Mon Sep 17 00:00:00 2001 +From bc4bc989f2b83c7ba8d1cedd9b2399ae0118f1ca Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:40 +0100 -Subject: [PATCH 014/413] iommu/amd: Drop the lock while allocating new irq +Subject: [PATCH 014/436] iommu/amd: Drop the lock while allocating new irq remap table Upstream commit 993ca6e063a69a0c65ca42ed449b6bc1b3844151 diff --git a/kernel/patches-4.14.x-rt/0015-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch b/kernel/patches-4.14.x-rt/0015-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch index f36da6426..b258ffc20 100644 --- a/kernel/patches-4.14.x-rt/0015-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch +++ b/kernel/patches-4.14.x-rt/0015-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch @@ -1,7 +1,7 @@ -From 5fe259167e7969e2f51f10b7261498ddc6cd028c Mon Sep 17 00:00:00 2001 +From 4aad92ddb789710e332ad322e51ae6ef1b7e1027 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:41 +0100 -Subject: [PATCH 015/413] iommu/amd: Make amd_iommu_devtable_lock a spin_lock +Subject: [PATCH 015/436] iommu/amd: Make amd_iommu_devtable_lock a spin_lock Upstream commit 2cd1083d79a0a8c223af430ca97884c28a1e2fc0 diff --git a/kernel/patches-4.14.x-rt/0016-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch b/kernel/patches-4.14.x-rt/0016-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch index 716d66d75..66606a251 100644 --- a/kernel/patches-4.14.x-rt/0016-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch +++ b/kernel/patches-4.14.x-rt/0016-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch @@ -1,7 +1,7 @@ -From 12b7908685ca79009ebad69a4b409300629aeafd Mon Sep 17 00:00:00 2001 +From fcb9e23c1149e856d0b0330c5d638272847c266d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Mar 2018 16:22:42 +0100 -Subject: [PATCH 016/413] iommu/amd: Return proper error code in +Subject: [PATCH 016/436] iommu/amd: Return proper error code in irq_remapping_alloc() Upstream commit 29d049be9438278c47253a74cf8d0ddf36bd5d68 diff --git a/kernel/patches-4.14.x-rt/0017-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch b/kernel/patches-4.14.x-rt/0017-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch index eb65dfa56..480507ecf 100644 --- a/kernel/patches-4.14.x-rt/0017-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch +++ b/kernel/patches-4.14.x-rt/0017-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch @@ -1,7 +1,7 @@ -From b3ad0d0a382ccacf4b70d284f293ff109701d0bf Mon Sep 17 00:00:00 2001 +From 58c7c7274188d6ddaaf5fbe9138fb3f12083d8cc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 20 Dec 2017 17:12:50 +0100 -Subject: [PATCH 017/413] timers: Use static keys for +Subject: [PATCH 017/436] timers: Use static keys for migrate_enable/nohz_active The members migrate_enable and nohz_active in the timer/hrtimer per CPU @@ -134,7 +134,7 @@ index ea3c062e7e1c..7f924eba78da 100644 /** diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 9fe525f410bf..b24232985960 100644 +index f17c76a1a05f..9b644e70b660 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -200,8 +200,6 @@ struct timer_base { diff --git a/kernel/patches-4.14.x-rt/0018-hrtimer-Correct-blantanly-wrong-comment.patch b/kernel/patches-4.14.x-rt/0018-hrtimer-Correct-blantanly-wrong-comment.patch index f8222ac5b..a166a3d12 100644 --- a/kernel/patches-4.14.x-rt/0018-hrtimer-Correct-blantanly-wrong-comment.patch +++ b/kernel/patches-4.14.x-rt/0018-hrtimer-Correct-blantanly-wrong-comment.patch @@ -1,7 +1,7 @@ -From ed3375830e0a42c193e8c5c89990d1d09db6c2ee Mon Sep 17 00:00:00 2001 +From 38088d047d673ecfbddff3cc02a15c1093abfcf0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 20 Dec 2017 17:12:51 +0100 -Subject: [PATCH 018/413] hrtimer: Correct blantanly wrong comment +Subject: [PATCH 018/436] hrtimer: Correct blantanly wrong comment The protection of a hrtimer which runs its callback against migration to a different CPU has nothing to do with hard interrupt context. diff --git a/kernel/patches-4.14.x-rt/0019-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch b/kernel/patches-4.14.x-rt/0019-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch index 0772e65ae..ace21dad8 100644 --- a/kernel/patches-4.14.x-rt/0019-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch +++ b/kernel/patches-4.14.x-rt/0019-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch @@ -1,7 +1,7 @@ -From e18c0b4a7e4a4c18c9a89c44cfcbbf16d3161a04 Mon Sep 17 00:00:00 2001 +From f9b4a04c476fab74c2e54dd5971dace93558c2e9 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:12:52 +0100 -Subject: [PATCH 019/413] hrtimer: Fix kerneldoc for struct hrtimer_cpu_base +Subject: [PATCH 019/436] hrtimer: Fix kerneldoc for struct hrtimer_cpu_base The sequence '/**' marks the start of a struct description. Add the missing second asterisk. While at it adapt the ordering of the struct diff --git a/kernel/patches-4.14.x-rt/0020-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch b/kernel/patches-4.14.x-rt/0020-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch index 525587bf6..3e412bf0d 100644 --- a/kernel/patches-4.14.x-rt/0020-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch +++ b/kernel/patches-4.14.x-rt/0020-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch @@ -1,7 +1,7 @@ -From 7cd020dedd871257e6ca7c9782d1ac151e1b9899 Mon Sep 17 00:00:00 2001 +From b682676b3ec0ca18ff4fea4e67b618e5e043d827 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:12:53 +0100 -Subject: [PATCH 020/413] hrtimer: Cleanup clock argument in +Subject: [PATCH 020/436] hrtimer: Cleanup clock argument in schedule_hrtimeout_range_clock() schedule_hrtimeout_range_clock() uses an integer for the clock id diff --git a/kernel/patches-4.14.x-rt/0021-hrtimer-Fix-hrtimer-function-description.patch b/kernel/patches-4.14.x-rt/0021-hrtimer-Fix-hrtimer-function-description.patch index 1493609f4..37cbf1bfe 100644 --- a/kernel/patches-4.14.x-rt/0021-hrtimer-Fix-hrtimer-function-description.patch +++ b/kernel/patches-4.14.x-rt/0021-hrtimer-Fix-hrtimer-function-description.patch @@ -1,7 +1,7 @@ -From bf593b81a69f815100e8fd6fe44010b85d856c61 Mon Sep 17 00:00:00 2001 +From 0118c08efa3375e08717b49e5546245f6561d6ba Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:12:54 +0100 -Subject: [PATCH 021/413] hrtimer: Fix hrtimer function description +Subject: [PATCH 021/436] hrtimer: Fix hrtimer function description The hrtimer_start[_range_ns]() starts a timer reliable on this CPU only when HRTIMER_MODE_PINNED is set. Furthermore the HRTIMER_MODE_PINNED mode diff --git a/kernel/patches-4.14.x-rt/0022-hrtimer-Cleanup-hrtimer_mode-enum.patch b/kernel/patches-4.14.x-rt/0022-hrtimer-Cleanup-hrtimer_mode-enum.patch index 0f77cb581..f381129bf 100644 --- a/kernel/patches-4.14.x-rt/0022-hrtimer-Cleanup-hrtimer_mode-enum.patch +++ b/kernel/patches-4.14.x-rt/0022-hrtimer-Cleanup-hrtimer_mode-enum.patch @@ -1,7 +1,7 @@ -From 263d78ecb76fc93322cdf5bcfd3615b96fbd4262 Mon Sep 17 00:00:00 2001 +From ffdc6cac980d804fe7abaf7b9389159be7a3dc64 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:12:56 +0100 -Subject: [PATCH 022/413] hrtimer: Cleanup hrtimer_mode enum +Subject: [PATCH 022/436] hrtimer: Cleanup hrtimer_mode enum It's not obvious that the HRTIMER_MODE variants are bit combinations because all modes are hard coded constants. diff --git a/kernel/patches-4.14.x-rt/0023-tracing-hrtimer-Print-hrtimer-mode-in-hrtimer_start-.patch b/kernel/patches-4.14.x-rt/0023-tracing-hrtimer-Print-hrtimer-mode-in-hrtimer_start-.patch index dbf4a9a7a..7a4d2816f 100644 --- a/kernel/patches-4.14.x-rt/0023-tracing-hrtimer-Print-hrtimer-mode-in-hrtimer_start-.patch +++ b/kernel/patches-4.14.x-rt/0023-tracing-hrtimer-Print-hrtimer-mode-in-hrtimer_start-.patch @@ -1,7 +1,7 @@ -From 6f84153b211f7fb270f43e7636a68bce4241df30 Mon Sep 17 00:00:00 2001 +From 0fbbc5043b19de348d3c058d15955a94403181af Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:12:58 +0100 -Subject: [PATCH 023/413] tracing/hrtimer: Print hrtimer mode in hrtimer_start +Subject: [PATCH 023/436] tracing/hrtimer: Print hrtimer mode in hrtimer_start tracepoint The hrtimer_start tracepoint lacks the mode information. The mode is diff --git a/kernel/patches-4.14.x-rt/0024-hrtimer-Switch-for-loop-to-_ffs-evaluation.patch b/kernel/patches-4.14.x-rt/0024-hrtimer-Switch-for-loop-to-_ffs-evaluation.patch index 9630e55c8..9102507fe 100644 --- a/kernel/patches-4.14.x-rt/0024-hrtimer-Switch-for-loop-to-_ffs-evaluation.patch +++ b/kernel/patches-4.14.x-rt/0024-hrtimer-Switch-for-loop-to-_ffs-evaluation.patch @@ -1,7 +1,7 @@ -From 73a81054586a0dccb601a8454b905b8d33b619d8 Mon Sep 17 00:00:00 2001 +From 48eebfef85769020e955db3ca24374296fe1e73e Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:12:59 +0100 -Subject: [PATCH 024/413] hrtimer: Switch for loop to _ffs() evaluation +Subject: [PATCH 024/436] hrtimer: Switch for loop to _ffs() evaluation Looping over all clock bases to find active bits is suboptimal if not all bases are active. diff --git a/kernel/patches-4.14.x-rt/0025-hrtimer-Store-running-timer-in-hrtimer_clock_base.patch b/kernel/patches-4.14.x-rt/0025-hrtimer-Store-running-timer-in-hrtimer_clock_base.patch index 2c0f1e328..f5b50d6d4 100644 --- a/kernel/patches-4.14.x-rt/0025-hrtimer-Store-running-timer-in-hrtimer_clock_base.patch +++ b/kernel/patches-4.14.x-rt/0025-hrtimer-Store-running-timer-in-hrtimer_clock_base.patch @@ -1,7 +1,7 @@ -From 0eb80ff2452afbdeb89fe23de78ae2aa5768f48b Mon Sep 17 00:00:00 2001 +From 4fecae22b5b96eabbdafa2477970e32ae49186e6 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:00 +0100 -Subject: [PATCH 025/413] hrtimer: Store running timer in hrtimer_clock_base +Subject: [PATCH 025/436] hrtimer: Store running timer in hrtimer_clock_base The pointer to the currently running timer is stored in hrtimer_cpu_base before the base lock is dropped and the callback is invoked. diff --git a/kernel/patches-4.14.x-rt/0026-hrtimer-Make-room-in-struct-hrtimer_cpu_base.patch b/kernel/patches-4.14.x-rt/0026-hrtimer-Make-room-in-struct-hrtimer_cpu_base.patch index d5364dec6..8bc6e21b6 100644 --- a/kernel/patches-4.14.x-rt/0026-hrtimer-Make-room-in-struct-hrtimer_cpu_base.patch +++ b/kernel/patches-4.14.x-rt/0026-hrtimer-Make-room-in-struct-hrtimer_cpu_base.patch @@ -1,7 +1,7 @@ -From 17f57d21ba2f7e1c8a3b0d9af131fa1ccfa9dd6a Mon Sep 17 00:00:00 2001 +From b5d163478c9a5913968d6e7851788a3420e9eac9 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:01 +0100 -Subject: [PATCH 026/413] hrtimer: Make room in struct hrtimer_cpu_base +Subject: [PATCH 026/436] hrtimer: Make room in struct hrtimer_cpu_base The upcoming softirq based hrtimers support requires an additional field in the hrtimer_cpu_base struct, which would grow the struct size beyond a diff --git a/kernel/patches-4.14.x-rt/0027-hrtimer-Reduce-conditional-code-hres_active.patch b/kernel/patches-4.14.x-rt/0027-hrtimer-Reduce-conditional-code-hres_active.patch index 4e3038f64..cb3a62982 100644 --- a/kernel/patches-4.14.x-rt/0027-hrtimer-Reduce-conditional-code-hres_active.patch +++ b/kernel/patches-4.14.x-rt/0027-hrtimer-Reduce-conditional-code-hres_active.patch @@ -1,7 +1,7 @@ -From f3202ee4dafba5d63ef6159a6f99ca69156cf9e1 Mon Sep 17 00:00:00 2001 +From 172f15aad07ddab73511108b1502c1000d90d1d8 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:02 +0100 -Subject: [PATCH 027/413] hrtimer: Reduce conditional code (hres_active) +Subject: [PATCH 027/436] hrtimer: Reduce conditional code (hres_active) The hrtimer_cpu_base struct has the CONFIG_HIGH_RES_TIMERS conditional struct member hres_active. All related functions to this member are diff --git a/kernel/patches-4.14.x-rt/0028-hrtimer-Use-accesor-functions-instead-of-direct-acce.patch b/kernel/patches-4.14.x-rt/0028-hrtimer-Use-accesor-functions-instead-of-direct-acce.patch index 55aa4475f..5b7d08d1d 100644 --- a/kernel/patches-4.14.x-rt/0028-hrtimer-Use-accesor-functions-instead-of-direct-acce.patch +++ b/kernel/patches-4.14.x-rt/0028-hrtimer-Use-accesor-functions-instead-of-direct-acce.patch @@ -1,7 +1,7 @@ -From 4497ed468019c6d815cae26a937cd45dead9b101 Mon Sep 17 00:00:00 2001 +From d5170ac607094f2114fdd6c14e0083416a9f260a Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:03 +0100 -Subject: [PATCH 028/413] hrtimer: Use accesor functions instead of direct +Subject: [PATCH 028/436] hrtimer: Use accesor functions instead of direct access __hrtimer_hres_active() is now available unconditionally. Replace the diff --git a/kernel/patches-4.14.x-rt/0029-hrtimer-Make-the-remote-enqueue-check-unconditional.patch b/kernel/patches-4.14.x-rt/0029-hrtimer-Make-the-remote-enqueue-check-unconditional.patch index 6e472add5..8c9c71f49 100644 --- a/kernel/patches-4.14.x-rt/0029-hrtimer-Make-the-remote-enqueue-check-unconditional.patch +++ b/kernel/patches-4.14.x-rt/0029-hrtimer-Make-the-remote-enqueue-check-unconditional.patch @@ -1,7 +1,7 @@ -From f44ff83daacbd575e62c7c496fae6918b9e02072 Mon Sep 17 00:00:00 2001 +From 326d6f320310c950bd455bcfcabe0ecfc4ee367e Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:04 +0100 -Subject: [PATCH 029/413] hrtimer: Make the remote enqueue check unconditional +Subject: [PATCH 029/436] hrtimer: Make the remote enqueue check unconditional hrtimer_cpu_base.expires_next is used to cache the next event armed in the timer hardware. The value is used to check whether an hrtimer can be diff --git a/kernel/patches-4.14.x-rt/0030-hrtimer-Make-hrtimer_cpu_base.next_timer-handling-un.patch b/kernel/patches-4.14.x-rt/0030-hrtimer-Make-hrtimer_cpu_base.next_timer-handling-un.patch index 981a3e254..3755de160 100644 --- a/kernel/patches-4.14.x-rt/0030-hrtimer-Make-hrtimer_cpu_base.next_timer-handling-un.patch +++ b/kernel/patches-4.14.x-rt/0030-hrtimer-Make-hrtimer_cpu_base.next_timer-handling-un.patch @@ -1,7 +1,7 @@ -From 2897f3039bcafac1de0a3d9bd819790d02348bc4 Mon Sep 17 00:00:00 2001 +From 5a92ca11caa38ffe32d7f29e5ccc38d471c8af9d Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:05 +0100 -Subject: [PATCH 030/413] hrtimer: Make hrtimer_cpu_base.next_timer handling +Subject: [PATCH 030/436] hrtimer: Make hrtimer_cpu_base.next_timer handling unconditional hrtimer_cpu_base.next_timer stores the pointer to the next expiring timer diff --git a/kernel/patches-4.14.x-rt/0031-hrtimer-Make-hrtimer_reprogramm-unconditional.patch b/kernel/patches-4.14.x-rt/0031-hrtimer-Make-hrtimer_reprogramm-unconditional.patch index 0d7ec3225..16b63a7f3 100644 --- a/kernel/patches-4.14.x-rt/0031-hrtimer-Make-hrtimer_reprogramm-unconditional.patch +++ b/kernel/patches-4.14.x-rt/0031-hrtimer-Make-hrtimer_reprogramm-unconditional.patch @@ -1,7 +1,7 @@ -From 8b971457c51090aad6385968f41074b8d5610fde Mon Sep 17 00:00:00 2001 +From c32e631587454e9343f80d77ff5b4231d9ee7dc9 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:06 +0100 -Subject: [PATCH 031/413] hrtimer: Make hrtimer_reprogramm() unconditional +Subject: [PATCH 031/436] hrtimer: Make hrtimer_reprogramm() unconditional hrtimer_reprogram() needs to be available unconditionally for softirq based hrtimers. Move the function and all required struct members out of the diff --git a/kernel/patches-4.14.x-rt/0032-hrtimer-Make-hrtimer_force_reprogramm-unconditionall.patch b/kernel/patches-4.14.x-rt/0032-hrtimer-Make-hrtimer_force_reprogramm-unconditionall.patch index 80a611fde..4c8dab54d 100644 --- a/kernel/patches-4.14.x-rt/0032-hrtimer-Make-hrtimer_force_reprogramm-unconditionall.patch +++ b/kernel/patches-4.14.x-rt/0032-hrtimer-Make-hrtimer_force_reprogramm-unconditionall.patch @@ -1,7 +1,7 @@ -From 9ee0b0d8cdc3d1166b79d7ce508206c0712a7d58 Mon Sep 17 00:00:00 2001 +From dd4ce36a7454c59c459a450444a2e8914ded6213 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:07 +0100 -Subject: [PATCH 032/413] hrtimer: Make hrtimer_force_reprogramm() +Subject: [PATCH 032/436] hrtimer: Make hrtimer_force_reprogramm() unconditionally available hrtimer_force_reprogram() needs to be available unconditionally for softirq diff --git a/kernel/patches-4.14.x-rt/0033-hrtimer-Unify-handling-of-hrtimer-remove.patch b/kernel/patches-4.14.x-rt/0033-hrtimer-Unify-handling-of-hrtimer-remove.patch index 8bbd9abb1..a0804222c 100644 --- a/kernel/patches-4.14.x-rt/0033-hrtimer-Unify-handling-of-hrtimer-remove.patch +++ b/kernel/patches-4.14.x-rt/0033-hrtimer-Unify-handling-of-hrtimer-remove.patch @@ -1,7 +1,7 @@ -From a54d37065d2922d1d67d38fa44394f54b0bcb68c Mon Sep 17 00:00:00 2001 +From 077bf3d3f5ac279e4ddc10b07b1d5e2b94482026 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:08 +0100 -Subject: [PATCH 033/413] hrtimer: Unify handling of hrtimer remove +Subject: [PATCH 033/436] hrtimer: Unify handling of hrtimer remove When the first hrtimer on the current CPU is removed, hrtimer_force_reprogram() is invoked but only when diff --git a/kernel/patches-4.14.x-rt/0034-hrtimer-Unify-handling-of-remote-enqueue.patch b/kernel/patches-4.14.x-rt/0034-hrtimer-Unify-handling-of-remote-enqueue.patch index d713b6777..91d9816e8 100644 --- a/kernel/patches-4.14.x-rt/0034-hrtimer-Unify-handling-of-remote-enqueue.patch +++ b/kernel/patches-4.14.x-rt/0034-hrtimer-Unify-handling-of-remote-enqueue.patch @@ -1,7 +1,7 @@ -From dde2d69a6a4c73667c805b32876febf324c9c002 Mon Sep 17 00:00:00 2001 +From 337756a4678c4e1267a8c3ec1748a7b422763d5a Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:09 +0100 -Subject: [PATCH 034/413] hrtimer: Unify handling of remote enqueue +Subject: [PATCH 034/436] hrtimer: Unify handling of remote enqueue hrtimer_reprogram() is conditionally invoked from hrtimer_start_range_ns() when hrtimer_cpu_base.hres_active is true. @@ -127,7 +127,7 @@ index 4ac74dff59f0..e277284c2831 100644 DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases); diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index b24232985960..34415f2b3f04 100644 +index 9b644e70b660..3b6c7e287f23 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -210,7 +210,7 @@ static DEFINE_PER_CPU(struct timer_base, timer_bases[NR_BASES]); diff --git a/kernel/patches-4.14.x-rt/0035-hrtimer-Make-remote-enqueue-decision-less-restrictiv.patch b/kernel/patches-4.14.x-rt/0035-hrtimer-Make-remote-enqueue-decision-less-restrictiv.patch index c83828141..d8f27e9ec 100644 --- a/kernel/patches-4.14.x-rt/0035-hrtimer-Make-remote-enqueue-decision-less-restrictiv.patch +++ b/kernel/patches-4.14.x-rt/0035-hrtimer-Make-remote-enqueue-decision-less-restrictiv.patch @@ -1,7 +1,7 @@ -From b6f4ff863d93350c0645a418b579466396f804bb Mon Sep 17 00:00:00 2001 +From 5707aa463be1edba0dcb8913b71c0779d21923e6 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:10 +0100 -Subject: [PATCH 035/413] hrtimer: Make remote enqueue decision less +Subject: [PATCH 035/436] hrtimer: Make remote enqueue decision less restrictive The current decision whether a timer can be queued on a remote CPU checks diff --git a/kernel/patches-4.14.x-rt/0036-hrtimer-Remove-base-argument-from-hrtimer_reprogram.patch b/kernel/patches-4.14.x-rt/0036-hrtimer-Remove-base-argument-from-hrtimer_reprogram.patch index fd57b15fd..53b85bde1 100644 --- a/kernel/patches-4.14.x-rt/0036-hrtimer-Remove-base-argument-from-hrtimer_reprogram.patch +++ b/kernel/patches-4.14.x-rt/0036-hrtimer-Remove-base-argument-from-hrtimer_reprogram.patch @@ -1,7 +1,7 @@ -From 4bb86bcae586476f20ddc1a154a7de89aa263cd2 Mon Sep 17 00:00:00 2001 +From 86540f637a6359cb3e73f68e6d15414e1bd75658 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:11 +0100 -Subject: [PATCH 036/413] hrtimer: Remove base argument from +Subject: [PATCH 036/436] hrtimer: Remove base argument from hrtimer_reprogram() hrtimer_reprogram() must have access to the hrtimer_clock_base of the new diff --git a/kernel/patches-4.14.x-rt/0037-hrtimer-Split-hrtimer_start_range_ns.patch b/kernel/patches-4.14.x-rt/0037-hrtimer-Split-hrtimer_start_range_ns.patch index b239e2622..b695f90af 100644 --- a/kernel/patches-4.14.x-rt/0037-hrtimer-Split-hrtimer_start_range_ns.patch +++ b/kernel/patches-4.14.x-rt/0037-hrtimer-Split-hrtimer_start_range_ns.patch @@ -1,7 +1,7 @@ -From 064b4807c34c9806e7b47112691b8e2879e60c18 Mon Sep 17 00:00:00 2001 +From 4920cb2e2960150f0fe8352962d526fc14ca0aba Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:12 +0100 -Subject: [PATCH 037/413] hrtimer: Split hrtimer_start_range_ns() +Subject: [PATCH 037/436] hrtimer: Split hrtimer_start_range_ns() Preparatory patch for softirq based hrtimers to avoid code duplication. No functional change. diff --git a/kernel/patches-4.14.x-rt/0038-hrtimer-Split-__hrtimer_get_next_event.patch b/kernel/patches-4.14.x-rt/0038-hrtimer-Split-__hrtimer_get_next_event.patch index b662cb2f3..354c5ee7d 100644 --- a/kernel/patches-4.14.x-rt/0038-hrtimer-Split-__hrtimer_get_next_event.patch +++ b/kernel/patches-4.14.x-rt/0038-hrtimer-Split-__hrtimer_get_next_event.patch @@ -1,7 +1,7 @@ -From 70d21872a9b1a71675676eb4d42218d89787d845 Mon Sep 17 00:00:00 2001 +From 4da973b0f618e921421b1b5b2fbf161a61481be5 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:13 +0100 -Subject: [PATCH 038/413] hrtimer: Split __hrtimer_get_next_event() +Subject: [PATCH 038/436] hrtimer: Split __hrtimer_get_next_event() Preparatory patch for softirq based hrtimers to avoid code duplication. No functional change. diff --git a/kernel/patches-4.14.x-rt/0039-hrtimer-Use-irqsave-irqrestore-around-__run_hrtimer.patch b/kernel/patches-4.14.x-rt/0039-hrtimer-Use-irqsave-irqrestore-around-__run_hrtimer.patch index c9f9fe095..e9e7fccf9 100644 --- a/kernel/patches-4.14.x-rt/0039-hrtimer-Use-irqsave-irqrestore-around-__run_hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0039-hrtimer-Use-irqsave-irqrestore-around-__run_hrtimer.patch @@ -1,7 +1,7 @@ -From 6228d88fd2fa50ac7785f0f0acb373dc81ecd735 Mon Sep 17 00:00:00 2001 +From 868c0f3e6231a9f1ffae418b3411176e49dcf6bc Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:14 +0100 -Subject: [PATCH 039/413] hrtimer: Use irqsave/irqrestore around +Subject: [PATCH 039/436] hrtimer: Use irqsave/irqrestore around __run_hrtimer() __run_hrtimer() is called with the hrtimer_cpu_base.lock held and diff --git a/kernel/patches-4.14.x-rt/0040-hrtimer-Add-clock-bases-and-hrtimer-mode-for-soft-ir.patch b/kernel/patches-4.14.x-rt/0040-hrtimer-Add-clock-bases-and-hrtimer-mode-for-soft-ir.patch index 6c5965692..98033da51 100644 --- a/kernel/patches-4.14.x-rt/0040-hrtimer-Add-clock-bases-and-hrtimer-mode-for-soft-ir.patch +++ b/kernel/patches-4.14.x-rt/0040-hrtimer-Add-clock-bases-and-hrtimer-mode-for-soft-ir.patch @@ -1,7 +1,7 @@ -From 5ebee81db54159612d178a5b77f2e4e6e8028a56 Mon Sep 17 00:00:00 2001 +From 29cdcdda3c1bdb680aac26a93d7ab0990b43bd92 Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:15 +0100 -Subject: [PATCH 040/413] hrtimer: Add clock bases and hrtimer mode for soft +Subject: [PATCH 040/436] hrtimer: Add clock bases and hrtimer mode for soft irq context hrtimer callback functions are always executed in hard interrupt diff --git a/kernel/patches-4.14.x-rt/0041-hrtimer-Prepare-handling-of-hard-and-softirq-based-h.patch b/kernel/patches-4.14.x-rt/0041-hrtimer-Prepare-handling-of-hard-and-softirq-based-h.patch index 4a87273dd..7dfe75c83 100644 --- a/kernel/patches-4.14.x-rt/0041-hrtimer-Prepare-handling-of-hard-and-softirq-based-h.patch +++ b/kernel/patches-4.14.x-rt/0041-hrtimer-Prepare-handling-of-hard-and-softirq-based-h.patch @@ -1,7 +1,7 @@ -From 9b0bb3e5f3f980c8c18ea14a8adbcead2a93e286 Mon Sep 17 00:00:00 2001 +From 5be08d7e484f8400265d77ca7a45e6d2f04ed3ce Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:16 +0100 -Subject: [PATCH 041/413] hrtimer: Prepare handling of hard and softirq based +Subject: [PATCH 041/436] hrtimer: Prepare handling of hard and softirq based hrtimers The softirq based hrtimer can utilize most of the existing hrtimers diff --git a/kernel/patches-4.14.x-rt/0042-hrtimer-Implement-support-for-softirq-based-hrtimers.patch b/kernel/patches-4.14.x-rt/0042-hrtimer-Implement-support-for-softirq-based-hrtimers.patch index 85f230ab0..777d900ec 100644 --- a/kernel/patches-4.14.x-rt/0042-hrtimer-Implement-support-for-softirq-based-hrtimers.patch +++ b/kernel/patches-4.14.x-rt/0042-hrtimer-Implement-support-for-softirq-based-hrtimers.patch @@ -1,7 +1,7 @@ -From ef22defd5fa82e8e8837e8c1047c4f2c902f1480 Mon Sep 17 00:00:00 2001 +From 73e02e3354fc98f0eeab008de30711a76b9d41ef Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:17 +0100 -Subject: [PATCH 042/413] hrtimer: Implement support for softirq based hrtimers +Subject: [PATCH 042/436] hrtimer: Implement support for softirq based hrtimers hrtimer callbacks are always invoked in hard interrupt context. Several users in tree require soft interrupt context for their callbacks and diff --git a/kernel/patches-4.14.x-rt/0043-hrtimer-Implement-SOFT-HARD-clock-base-selection.patch b/kernel/patches-4.14.x-rt/0043-hrtimer-Implement-SOFT-HARD-clock-base-selection.patch index 695256ffd..02fa10ff4 100644 --- a/kernel/patches-4.14.x-rt/0043-hrtimer-Implement-SOFT-HARD-clock-base-selection.patch +++ b/kernel/patches-4.14.x-rt/0043-hrtimer-Implement-SOFT-HARD-clock-base-selection.patch @@ -1,7 +1,7 @@ -From e00aad52582b4b7bc8cb583a826c30e05dfe5c3b Mon Sep 17 00:00:00 2001 +From 1de00b17a8bb4b23243dc5930921881b4296ae6d Mon Sep 17 00:00:00 2001 From: Anna-Maria Gleixner Date: Wed, 20 Dec 2017 17:13:18 +0100 -Subject: [PATCH 043/413] hrtimer: Implement SOFT/HARD clock base selection +Subject: [PATCH 043/436] hrtimer: Implement SOFT/HARD clock base selection All prerequisites to handle hrtimers for expiry in either hard or soft interrupt context are in place. diff --git a/kernel/patches-4.14.x-rt/0044-can-bcm-Replace-hrtimer_tasklet-with-softirq-based-h.patch b/kernel/patches-4.14.x-rt/0044-can-bcm-Replace-hrtimer_tasklet-with-softirq-based-h.patch index 7ed18e71e..f4db5bf2a 100644 --- a/kernel/patches-4.14.x-rt/0044-can-bcm-Replace-hrtimer_tasklet-with-softirq-based-h.patch +++ b/kernel/patches-4.14.x-rt/0044-can-bcm-Replace-hrtimer_tasklet-with-softirq-based-h.patch @@ -1,7 +1,7 @@ -From b127459a9003fd794f5ff33cff10094b24d81b2c Mon Sep 17 00:00:00 2001 +From cf9e8833c01852ff74293b8c7be564c62a3d7bdd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:11 +0100 -Subject: [PATCH 044/413] can/bcm: Replace hrtimer_tasklet with softirq based +Subject: [PATCH 044/436] can/bcm: Replace hrtimer_tasklet with softirq based hrtimer Switch the timer to HRTIMER_MODE_SOFT, which executed the timer diff --git a/kernel/patches-4.14.x-rt/0045-mac80211_hwsim-Replace-hrtimer-tasklet-with-softirq-.patch b/kernel/patches-4.14.x-rt/0045-mac80211_hwsim-Replace-hrtimer-tasklet-with-softirq-.patch index 752fc887c..921ee0305 100644 --- a/kernel/patches-4.14.x-rt/0045-mac80211_hwsim-Replace-hrtimer-tasklet-with-softirq-.patch +++ b/kernel/patches-4.14.x-rt/0045-mac80211_hwsim-Replace-hrtimer-tasklet-with-softirq-.patch @@ -1,7 +1,7 @@ -From 6266b3f9a910cc55009474c96d3e1058cc423efa Mon Sep 17 00:00:00 2001 +From e8cec8f5d711185cca665fd903898095defb87c8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:12 +0100 -Subject: [PATCH 045/413] mac80211_hwsim: Replace hrtimer tasklet with softirq +Subject: [PATCH 045/436] mac80211_hwsim: Replace hrtimer tasklet with softirq hrtimer Switch the timer to HRTIMER_MODE_SOFT, which executed the timer diff --git a/kernel/patches-4.14.x-rt/0046-xfrm-Replace-hrtimer-tasklet-with-softirq-hrtimer.patch b/kernel/patches-4.14.x-rt/0046-xfrm-Replace-hrtimer-tasklet-with-softirq-hrtimer.patch index 76def62c7..88c28802a 100644 --- a/kernel/patches-4.14.x-rt/0046-xfrm-Replace-hrtimer-tasklet-with-softirq-hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0046-xfrm-Replace-hrtimer-tasklet-with-softirq-hrtimer.patch @@ -1,7 +1,7 @@ -From 295973f9eae37222414abe12d242898237230c9b Mon Sep 17 00:00:00 2001 +From 696f05a4e72be05c134c56b35d031306396d5283 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:13 +0100 -Subject: [PATCH 046/413] xfrm: Replace hrtimer tasklet with softirq hrtimer +Subject: [PATCH 046/436] xfrm: Replace hrtimer tasklet with softirq hrtimer Switch the timer to HRTIMER_MODE_SOFT, which executed the timer callback in softirq context and remove the hrtimer_tasklet. diff --git a/kernel/patches-4.14.x-rt/0047-softirq-Remove-tasklet_hrtimer.patch b/kernel/patches-4.14.x-rt/0047-softirq-Remove-tasklet_hrtimer.patch index d9f193d95..111d87fa6 100644 --- a/kernel/patches-4.14.x-rt/0047-softirq-Remove-tasklet_hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0047-softirq-Remove-tasklet_hrtimer.patch @@ -1,7 +1,7 @@ -From 5c03f39867b511e7be17cb632d82d052779ea74d Mon Sep 17 00:00:00 2001 +From 64003ecdd13ffe63e322c81b7ab4a02b1284cf31 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:14 +0100 -Subject: [PATCH 047/413] softirq: Remove tasklet_hrtimer +Subject: [PATCH 047/436] softirq: Remove tasklet_hrtimer There are no more tasklet_hrtimer users of this interface. Remove it. diff --git a/kernel/patches-4.14.x-rt/0048-ALSA-dummy-Replace-tasklet-with-softirq-hrtimer.patch b/kernel/patches-4.14.x-rt/0048-ALSA-dummy-Replace-tasklet-with-softirq-hrtimer.patch index e650c29ef..77216d085 100644 --- a/kernel/patches-4.14.x-rt/0048-ALSA-dummy-Replace-tasklet-with-softirq-hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0048-ALSA-dummy-Replace-tasklet-with-softirq-hrtimer.patch @@ -1,7 +1,7 @@ -From 4435bcc7e189b8d5b5afb71535a36c937937d4ed Mon Sep 17 00:00:00 2001 +From dc8384331679e5c2fe59fcc1e2d2159de9a1f263 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:15 +0100 -Subject: [PATCH 048/413] ALSA/dummy: Replace tasklet with softirq hrtimer +Subject: [PATCH 048/436] ALSA/dummy: Replace tasklet with softirq hrtimer The tasklet is used to defer the execution of snd_pcm_period_elapsed() to the softirq context. Using the HRTIMER_MODE_SOFT mode invokes the timer diff --git a/kernel/patches-4.14.x-rt/0049-usb-gadget-NCM-Replace-tasklet-with-softirq-hrtimer.patch b/kernel/patches-4.14.x-rt/0049-usb-gadget-NCM-Replace-tasklet-with-softirq-hrtimer.patch index a530cca27..5f6f5ea2f 100644 --- a/kernel/patches-4.14.x-rt/0049-usb-gadget-NCM-Replace-tasklet-with-softirq-hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0049-usb-gadget-NCM-Replace-tasklet-with-softirq-hrtimer.patch @@ -1,7 +1,7 @@ -From d33f6f8b7d73de2a918cf0c98de41258a27d335a Mon Sep 17 00:00:00 2001 +From 9b4cce559093d3fdf2b3beebbe28f3adb087636b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:16 +0100 -Subject: [PATCH 049/413] usb/gadget/NCM: Replace tasklet with softirq hrtimer +Subject: [PATCH 049/436] usb/gadget/NCM: Replace tasklet with softirq hrtimer The tx_tasklet tasklet is used in invoke the hrtimer (task_timer) in softirq context. This can be also achieved without the tasklet but diff --git a/kernel/patches-4.14.x-rt/0050-net-mvpp2-Replace-tasklet-with-softirq-hrtimer.patch b/kernel/patches-4.14.x-rt/0050-net-mvpp2-Replace-tasklet-with-softirq-hrtimer.patch index fabb59093..be37a06f9 100644 --- a/kernel/patches-4.14.x-rt/0050-net-mvpp2-Replace-tasklet-with-softirq-hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0050-net-mvpp2-Replace-tasklet-with-softirq-hrtimer.patch @@ -1,7 +1,7 @@ -From 2112223f97d7ac6c162b9a5228692761fc23b592 Mon Sep 17 00:00:00 2001 +From e33fb47723f7ecc21c6156b26303a6b002d8595e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 23 Nov 2017 16:39:17 +0100 -Subject: [PATCH 050/413] net/mvpp2: Replace tasklet with softirq hrtimer +Subject: [PATCH 050/436] net/mvpp2: Replace tasklet with softirq hrtimer The tx_done_tasklet tasklet is used in invoke the hrtimer (mvpp2_hr_timer_cb) in softirq context. This can be also achieved without diff --git a/kernel/patches-4.14.x-rt/0051-arm-at91-do-not-disable-enable-clocks-in-a-row.patch b/kernel/patches-4.14.x-rt/0051-arm-at91-do-not-disable-enable-clocks-in-a-row.patch index 626452ccf..705e5a927 100644 --- a/kernel/patches-4.14.x-rt/0051-arm-at91-do-not-disable-enable-clocks-in-a-row.patch +++ b/kernel/patches-4.14.x-rt/0051-arm-at91-do-not-disable-enable-clocks-in-a-row.patch @@ -1,7 +1,7 @@ -From 2b498ad21a6aba531148a6f8d5b1555f71a88b21 Mon Sep 17 00:00:00 2001 +From 1e6b6353e19e85ee48e5d3266cb246584ba57937 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 9 Mar 2016 10:51:06 +0100 -Subject: [PATCH 051/413] arm: at91: do not disable/enable clocks in a row +Subject: [PATCH 051/436] arm: at91: do not disable/enable clocks in a row Currently the driver will disable the clock and enable it one line later if it is switching from periodic mode into one shot. diff --git a/kernel/patches-4.14.x-rt/0052-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch b/kernel/patches-4.14.x-rt/0052-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch index fadcac775..3d14e5728 100644 --- a/kernel/patches-4.14.x-rt/0052-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch +++ b/kernel/patches-4.14.x-rt/0052-ARM-smp-Move-clear_tasks_mm_cpumask-call-to-__cpu_di.patch @@ -1,7 +1,7 @@ -From 36957734aaba76d52eced69c50daa274e334faaa Mon Sep 17 00:00:00 2001 +From f7b15f51329f5051d329d9b8199009e24e1133fb Mon Sep 17 00:00:00 2001 From: Grygorii Strashko Date: Fri, 11 Sep 2015 21:21:23 +0300 -Subject: [PATCH 052/413] ARM: smp: Move clear_tasks_mm_cpumask() call to +Subject: [PATCH 052/436] ARM: smp: Move clear_tasks_mm_cpumask() call to __cpu_die() When running with the RT-kernel (4.1.5-rt5) on TI OMAP dra7-evm and trying diff --git a/kernel/patches-4.14.x-rt/0053-rtmutex-Handle-non-enqueued-waiters-gracefully.patch b/kernel/patches-4.14.x-rt/0053-rtmutex-Handle-non-enqueued-waiters-gracefully.patch index 4d4bc09eb..b714f448c 100644 --- a/kernel/patches-4.14.x-rt/0053-rtmutex-Handle-non-enqueued-waiters-gracefully.patch +++ b/kernel/patches-4.14.x-rt/0053-rtmutex-Handle-non-enqueued-waiters-gracefully.patch @@ -1,7 +1,7 @@ -From 92418d20f8e7dd36adbab3a4bcf93662c3a078f6 Mon Sep 17 00:00:00 2001 +From 508de124bbcbdf4a33aaa0d0775df688685264f5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 6 Nov 2015 18:51:03 +0100 -Subject: [PATCH 053/413] rtmutex: Handle non enqueued waiters gracefully +Subject: [PATCH 053/436] rtmutex: Handle non enqueued waiters gracefully Yimin debugged that in case of a PI wakeup in progress when rt_mutex_start_proxy_lock() calls task_blocks_on_rt_mutex() the latter @@ -20,10 +20,10 @@ Cc: stable-rt@vger.kernel.org 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 940633c63254..fe7f97edc94e 100644 +index 456750bf9c95..a8119deef92e 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -1729,7 +1729,7 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, +@@ -1750,7 +1750,7 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, ret = 0; } diff --git a/kernel/patches-4.14.x-rt/0054-rbtree-include-rcu.h-because-we-use-it.patch b/kernel/patches-4.14.x-rt/0054-rbtree-include-rcu.h-because-we-use-it.patch index 842002475..ff213836b 100644 --- a/kernel/patches-4.14.x-rt/0054-rbtree-include-rcu.h-because-we-use-it.patch +++ b/kernel/patches-4.14.x-rt/0054-rbtree-include-rcu.h-because-we-use-it.patch @@ -1,7 +1,7 @@ -From 2faab80428c8d44783448c6131cc8282b71c16a6 Mon Sep 17 00:00:00 2001 +From 93a25b59cca9caf4f0007bd57cb5ac353abea5c7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 11:52:17 +0200 -Subject: [PATCH 054/413] rbtree: include rcu.h because we use it +Subject: [PATCH 054/436] rbtree: include rcu.h because we use it Since commit c1adf20052d8 ("Introduce rb_replace_node_rcu()") rbtree_augmented.h uses RCU related data structures but does not include diff --git a/kernel/patches-4.14.x-rt/0055-rxrpc-remove-unused-static-variables.patch b/kernel/patches-4.14.x-rt/0055-rxrpc-remove-unused-static-variables.patch index 6b350761a..aa1fe8de8 100644 --- a/kernel/patches-4.14.x-rt/0055-rxrpc-remove-unused-static-variables.patch +++ b/kernel/patches-4.14.x-rt/0055-rxrpc-remove-unused-static-variables.patch @@ -1,7 +1,7 @@ -From 57dd454f351897f664765ea248bd047991104193 Mon Sep 17 00:00:00 2001 +From a1fad51970b3d5e06a1d1874ba4d9322a9fbea04 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Oct 2016 10:54:50 +0200 -Subject: [PATCH 055/413] rxrpc: remove unused static variables +Subject: [PATCH 055/436] rxrpc: remove unused static variables The rxrpc_security_methods and rxrpc_security_sem user has been removed in 648af7fca159 ("rxrpc: Absorb the rxkad security module"). This was diff --git a/kernel/patches-4.14.x-rt/0056-mfd-syscon-atmel-smc-include-string.h.patch b/kernel/patches-4.14.x-rt/0056-mfd-syscon-atmel-smc-include-string.h.patch index 1ea821472..9d0d6488e 100644 --- a/kernel/patches-4.14.x-rt/0056-mfd-syscon-atmel-smc-include-string.h.patch +++ b/kernel/patches-4.14.x-rt/0056-mfd-syscon-atmel-smc-include-string.h.patch @@ -1,7 +1,7 @@ -From 9f0770f9b7e16ce7f97f29560777ff0ec657af1f Mon Sep 17 00:00:00 2001 +From 026fb06acfc2486138e719b73577e1f58ef46e67 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 4 Oct 2017 09:55:58 +0200 -Subject: [PATCH 056/413] mfd: syscon: atmel-smc: include string.h +Subject: [PATCH 056/436] mfd: syscon: atmel-smc: include string.h The string.h header file is needed for the memset() definition. The RT build fails because it is not pulled in via other header files. diff --git a/kernel/patches-4.14.x-rt/0057-sched-swait-include-wait.h.patch b/kernel/patches-4.14.x-rt/0057-sched-swait-include-wait.h.patch index 256056925..1c95320c9 100644 --- a/kernel/patches-4.14.x-rt/0057-sched-swait-include-wait.h.patch +++ b/kernel/patches-4.14.x-rt/0057-sched-swait-include-wait.h.patch @@ -1,7 +1,7 @@ -From 643507ddc97f2bbb7721f6ff5698c506b4422c6f Mon Sep 17 00:00:00 2001 +From 63ade393ebd8b57acc65a226af3872c8bde7e9a6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 4 Dec 2017 13:11:10 +0100 -Subject: [PATCH 057/413] sched/swait: include wait.h +Subject: [PATCH 057/436] sched/swait: include wait.h kbuild bot reported against an intermediate RT patch that the build fails with: diff --git a/kernel/patches-4.14.x-rt/0058-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/kernel/patches-4.14.x-rt/0058-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch index 5f21bae7a..7744016b6 100644 --- a/kernel/patches-4.14.x-rt/0058-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +++ b/kernel/patches-4.14.x-rt/0058-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -1,7 +1,7 @@ -From 49fad3878c49d387a502caae3693bbeaf0fd3706 Mon Sep 17 00:00:00 2001 +From 089e5ef607cf2e3fd8919fcc1bc20c73eb1ffa6d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 28 Oct 2016 23:05:11 +0200 -Subject: [PATCH 058/413] NFSv4: replace seqcount_t with a seqlock_t +Subject: [PATCH 058/436] NFSv4: replace seqcount_t with a seqlock_t The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me because it maps to preempt_disable() in -RT which I can't have at this @@ -57,10 +57,10 @@ index a73144b3cb8c..0c403d280b96 100644 }; diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index 43fbf4495090..751063bd6211 100644 +index 77c7d29fcd3b..e0a9f811f0ef 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c -@@ -2689,7 +2689,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, +@@ -2696,7 +2696,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, unsigned int seq; int ret; @@ -69,7 +69,7 @@ index 43fbf4495090..751063bd6211 100644 ret = _nfs4_proc_open(opendata); if (ret != 0) -@@ -2727,7 +2727,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, +@@ -2734,7 +2734,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, if (d_inode(dentry) == state->inode) { nfs_inode_attach_open_context(ctx); diff --git a/kernel/patches-4.14.x-rt/0059-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch b/kernel/patches-4.14.x-rt/0059-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch index b8522bb30..d93571e55 100644 --- a/kernel/patches-4.14.x-rt/0059-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch +++ b/kernel/patches-4.14.x-rt/0059-Bluetooth-avoid-recursive-locking-in-hci_send_to_cha.patch @@ -1,7 +1,7 @@ -From 84b282efc3f74ec3ad5b30c6c07e2165670faf47 Mon Sep 17 00:00:00 2001 +From 91bd40494ac886787556bfe618a6ccb078a90cd0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2017 15:35:57 +0200 -Subject: [PATCH 059/413] Bluetooth: avoid recursive locking in +Subject: [PATCH 059/436] Bluetooth: avoid recursive locking in hci_send_to_channel() Mart reported a deadlock in -RT in the call path: diff --git a/kernel/patches-4.14.x-rt/0060-iommu-iova-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-fo.patch b/kernel/patches-4.14.x-rt/0060-iommu-iova-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-fo.patch index 339cedab8..9f5a32755 100644 --- a/kernel/patches-4.14.x-rt/0060-iommu-iova-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-fo.patch +++ b/kernel/patches-4.14.x-rt/0060-iommu-iova-Use-raw_cpu_ptr-instead-of-get_cpu_ptr-fo.patch @@ -1,7 +1,7 @@ -From c120a8611a24911e2fecf862bbe3ae2579ccbcc2 Mon Sep 17 00:00:00 2001 +From d3ae7bc61af8924ab28751f620d3d6f3118363ee Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2017 17:21:40 +0200 -Subject: [PATCH 060/413] iommu/iova: Use raw_cpu_ptr() instead of +Subject: [PATCH 060/436] iommu/iova: Use raw_cpu_ptr() instead of get_cpu_ptr() for ->fq get_cpu_ptr() disabled preemption and returns the ->fq object of the diff --git a/kernel/patches-4.14.x-rt/0061-greybus-audio-don-t-inclide-rwlock.h-directly.patch b/kernel/patches-4.14.x-rt/0061-greybus-audio-don-t-inclide-rwlock.h-directly.patch index 06fecaf41..6dbc1a9e2 100644 --- a/kernel/patches-4.14.x-rt/0061-greybus-audio-don-t-inclide-rwlock.h-directly.patch +++ b/kernel/patches-4.14.x-rt/0061-greybus-audio-don-t-inclide-rwlock.h-directly.patch @@ -1,7 +1,7 @@ -From b5f1bb4aa1185c26be47996d4bf22239070b4e3b Mon Sep 17 00:00:00 2001 +From 54fa8fe9050c30ee4fe01447b94c5fc9f5e933f4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 5 Oct 2017 14:38:52 +0200 -Subject: [PATCH 061/413] greybus: audio: don't inclide rwlock.h directly. +Subject: [PATCH 061/436] greybus: audio: don't inclide rwlock.h directly. rwlock.h should not be included directly. Instead linux/splinlock.h should be included. One thing it does is to break the RT build. diff --git a/kernel/patches-4.14.x-rt/0062-xen-9pfs-don-t-inclide-rwlock.h-directly.patch b/kernel/patches-4.14.x-rt/0062-xen-9pfs-don-t-inclide-rwlock.h-directly.patch index 45965e2bb..67ccea506 100644 --- a/kernel/patches-4.14.x-rt/0062-xen-9pfs-don-t-inclide-rwlock.h-directly.patch +++ b/kernel/patches-4.14.x-rt/0062-xen-9pfs-don-t-inclide-rwlock.h-directly.patch @@ -1,7 +1,7 @@ -From 59713b0380114cd3191016cd76a177fddd7803bc Mon Sep 17 00:00:00 2001 +From d874c26680c40cd40b7bc10e7ebdc6cb36e2fc45 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 5 Oct 2017 14:38:52 +0200 -Subject: [PATCH 062/413] xen/9pfs: don't inclide rwlock.h directly. +Subject: [PATCH 062/436] xen/9pfs: don't inclide rwlock.h directly. rwlock.h should not be included directly. Instead linux/splinlock.h should be included. One thing it does is to break the RT build. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 deletion(-) diff --git a/net/9p/trans_xen.c b/net/9p/trans_xen.c -index 325c56043007..a3f577e81c79 100644 +index c10bdf63eae7..84a49f2bcfbc 100644 --- a/net/9p/trans_xen.c +++ b/net/9p/trans_xen.c @@ -38,7 +38,6 @@ diff --git a/kernel/patches-4.14.x-rt/0063-drm-i915-properly-init-lockdep-class.patch b/kernel/patches-4.14.x-rt/0063-drm-i915-properly-init-lockdep-class.patch index 50cda5103..fde27933e 100644 --- a/kernel/patches-4.14.x-rt/0063-drm-i915-properly-init-lockdep-class.patch +++ b/kernel/patches-4.14.x-rt/0063-drm-i915-properly-init-lockdep-class.patch @@ -1,7 +1,7 @@ -From b6275ffe0ac1a982ef49d560bf8d14b98eec055b Mon Sep 17 00:00:00 2001 +From 6d523149511531f634b7c752df093241b19fec8b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 30 Nov 2017 16:06:13 +0100 -Subject: [PATCH 063/413] drm/i915: properly init lockdep class +Subject: [PATCH 063/436] drm/i915: properly init lockdep class The code has an ifdef and uses two functions to either init the bare spinlock or init it and set a lock-class. It is possible to do the same diff --git a/kernel/patches-4.14.x-rt/0064-timerqueue-Document-return-values-of-timerqueue_add-.patch b/kernel/patches-4.14.x-rt/0064-timerqueue-Document-return-values-of-timerqueue_add-.patch index d1fad139f..dc24e8102 100644 --- a/kernel/patches-4.14.x-rt/0064-timerqueue-Document-return-values-of-timerqueue_add-.patch +++ b/kernel/patches-4.14.x-rt/0064-timerqueue-Document-return-values-of-timerqueue_add-.patch @@ -1,7 +1,7 @@ -From 58ab0f67ec601164cce1d01624202a38dd4d1c66 Mon Sep 17 00:00:00 2001 +From 257d335c0ab27c3c55eec0752c44deabe72f3955 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 22 Dec 2017 15:51:15 +0100 -Subject: [PATCH 064/413] timerqueue: Document return values of +Subject: [PATCH 064/436] timerqueue: Document return values of timerqueue_add/del() The return values of timerqueue_add/del() are not documented in the kernel doc diff --git a/kernel/patches-4.14.x-rt/0065-sparc64-use-generic-rwsem-spinlocks-rt.patch b/kernel/patches-4.14.x-rt/0065-sparc64-use-generic-rwsem-spinlocks-rt.patch index b1b52f8c6..5d9ca2650 100644 --- a/kernel/patches-4.14.x-rt/0065-sparc64-use-generic-rwsem-spinlocks-rt.patch +++ b/kernel/patches-4.14.x-rt/0065-sparc64-use-generic-rwsem-spinlocks-rt.patch @@ -1,7 +1,7 @@ -From a038ba15d573f92bc217dad93dc4b1399b1288a0 Mon Sep 17 00:00:00 2001 +From 010d7e77aed8708fb2c906404614df2b4f086943 Mon Sep 17 00:00:00 2001 From: Allen Pais Date: Fri, 13 Dec 2013 09:44:41 +0530 -Subject: [PATCH 065/413] sparc64: use generic rwsem spinlocks rt +Subject: [PATCH 065/436] sparc64: use generic rwsem spinlocks rt Signed-off-by: Allen Pais Signed-off-by: Sebastian Andrzej Siewior diff --git a/kernel/patches-4.14.x-rt/0066-kernel-SRCU-provide-a-static-initializer.patch b/kernel/patches-4.14.x-rt/0066-kernel-SRCU-provide-a-static-initializer.patch index 4c6f84353..b1590abc4 100644 --- a/kernel/patches-4.14.x-rt/0066-kernel-SRCU-provide-a-static-initializer.patch +++ b/kernel/patches-4.14.x-rt/0066-kernel-SRCU-provide-a-static-initializer.patch @@ -1,7 +1,7 @@ -From 76cc7af748db49faf5d5215d6e7c3e3a9278eb2b Mon Sep 17 00:00:00 2001 +From 9815d820d4c649226788ec669c6a149e851e794b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Mar 2013 14:44:30 +0100 -Subject: [PATCH 066/413] kernel/SRCU: provide a static initializer +Subject: [PATCH 066/436] kernel/SRCU: provide a static initializer There are macros for static initializer for the three out of four possible notifier types, that are: diff --git a/kernel/patches-4.14.x-rt/0067-target-drop-spin_lock_assert-irqs_disabled-combo-che.patch b/kernel/patches-4.14.x-rt/0067-target-drop-spin_lock_assert-irqs_disabled-combo-che.patch index f78e49371..bec22e9fa 100644 --- a/kernel/patches-4.14.x-rt/0067-target-drop-spin_lock_assert-irqs_disabled-combo-che.patch +++ b/kernel/patches-4.14.x-rt/0067-target-drop-spin_lock_assert-irqs_disabled-combo-che.patch @@ -1,7 +1,7 @@ -From d2ec59058e734354ec4b8374a79bc7fa2325be87 Mon Sep 17 00:00:00 2001 +From ae5add3aef2583f36a068347af08ba65e5ce3abc Mon Sep 17 00:00:00 2001 From: "bigeasy@linutronix.de" Date: Fri, 23 Mar 2018 18:17:36 +0100 -Subject: [PATCH 067/413] target: drop spin_lock_assert() + irqs_disabled() +Subject: [PATCH 067/436] target: drop spin_lock_assert() + irqs_disabled() combo checks There are a few functions which check for if the lock is held @@ -40,10 +40,10 @@ index 9c7bc1ca341a..3d35dad1de2c 100644 * If command already reached CMD_T_COMPLETE state within * target_complete_cmd() or CMD_T_FABRIC_STOP due to shutdown, diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c -index e6d51135d105..b00829995131 100644 +index 0d0be7d8b9d6..f652e58e2988 100644 --- a/drivers/target/target_core_transport.c +++ b/drivers/target/target_core_transport.c -@@ -2966,9 +2966,6 @@ __transport_wait_for_tasks(struct se_cmd *cmd, bool fabric_stop, +@@ -2967,9 +2967,6 @@ __transport_wait_for_tasks(struct se_cmd *cmd, bool fabric_stop, __acquires(&cmd->t_state_lock) { @@ -53,7 +53,7 @@ index e6d51135d105..b00829995131 100644 if (fabric_stop) cmd->transport_state |= CMD_T_FABRIC_STOP; -@@ -3238,9 +3235,6 @@ static int __transport_check_aborted_status(struct se_cmd *cmd, int send_status) +@@ -3239,9 +3236,6 @@ static int __transport_check_aborted_status(struct se_cmd *cmd, int send_status) { int ret; diff --git a/kernel/patches-4.14.x-rt/0068-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch b/kernel/patches-4.14.x-rt/0068-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch index 0ddbe682d..cbce36dba 100644 --- a/kernel/patches-4.14.x-rt/0068-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch +++ b/kernel/patches-4.14.x-rt/0068-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch @@ -1,7 +1,7 @@ -From d7c5c11bebb377880836dbca53cd81aca444b56a Mon Sep 17 00:00:00 2001 +From 347101debb55e25b088cfecdfdf27a75fca2a066 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 4 Apr 2017 12:50:16 +0200 -Subject: [PATCH 068/413] kernel: sched: Provide a pointer to the valid CPU +Subject: [PATCH 068/436] kernel: sched: Provide a pointer to the valid CPU mask MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -219,10 +219,10 @@ index 2fd1694ac1d0..98f4fb696289 100644 } diff --git a/drivers/infiniband/hw/hfi1/affinity.c b/drivers/infiniband/hw/hfi1/affinity.c -index b5fab55cc275..4b32a4e8d5da 100644 +index b197e925fe36..95ac319c8e69 100644 --- a/drivers/infiniband/hw/hfi1/affinity.c +++ b/drivers/infiniband/hw/hfi1/affinity.c -@@ -575,7 +575,7 @@ int hfi1_get_proc_affinity(int node) +@@ -593,7 +593,7 @@ int hfi1_get_proc_affinity(int node) struct hfi1_affinity_node *entry; cpumask_var_t diff, hw_thread_mask, available_mask, intrs_mask; const struct cpumask *node_mask, @@ -231,7 +231,7 @@ index b5fab55cc275..4b32a4e8d5da 100644 struct hfi1_affinity_node_list *affinity = &node_affinity; struct cpu_mask_set *set = &affinity->proc; -@@ -583,7 +583,7 @@ int hfi1_get_proc_affinity(int node) +@@ -601,7 +601,7 @@ int hfi1_get_proc_affinity(int node) * check whether process/context affinity has already * been set */ @@ -240,7 +240,7 @@ index b5fab55cc275..4b32a4e8d5da 100644 hfi1_cdbg(PROC, "PID %u %s affinity set to CPU %*pbl", current->pid, current->comm, cpumask_pr_args(proc_mask)); -@@ -594,7 +594,7 @@ int hfi1_get_proc_affinity(int node) +@@ -612,7 +612,7 @@ int hfi1_get_proc_affinity(int node) cpu = cpumask_first(proc_mask); cpumask_set_cpu(cpu, &set->used); goto done; @@ -361,7 +361,7 @@ index 4657e2924ecb..7bb7384b543a 100644 } diff --git a/kernel/fork.c b/kernel/fork.c -index 91907a3701ce..d146f616bf9e 100644 +index 6a219fea4926..d45043432b17 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -563,7 +563,8 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -582,7 +582,7 @@ index 2511aba36b89..7b9bc1de0e6c 100644 /* * We have to ensure that we have at least one bit diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index 501f17c642ab..a55cb8ce395d 100644 +index b2589c7e9439..7be1f4421cb8 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -504,7 +504,7 @@ static struct rq *dl_task_offline_migration(struct rq *rq, struct task_struct *p @@ -594,7 +594,7 @@ index 501f17c642ab..a55cb8ce395d 100644 if (cpu >= nr_cpu_ids) { /* * Fail to find any suitable cpu. -@@ -1749,7 +1749,7 @@ static void set_curr_task_dl(struct rq *rq) +@@ -1753,7 +1753,7 @@ static void set_curr_task_dl(struct rq *rq) static int pick_dl_task(struct rq *rq, struct task_struct *p, int cpu) { if (!task_running(rq, p) && @@ -603,7 +603,7 @@ index 501f17c642ab..a55cb8ce395d 100644 return 1; return 0; } -@@ -1899,7 +1899,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq) +@@ -1903,7 +1903,7 @@ static struct rq *find_lock_later_rq(struct task_struct *task, struct rq *rq) /* Retry if something changed. */ if (double_lock_balance(rq, later_rq)) { if (unlikely(task_rq(task) != rq || @@ -742,10 +742,10 @@ index 0cc7098c6dfd..4388c2b26f70 100644 flags); env.flags |= LBF_ALL_PINNED; diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index bba2217652ff..590c6eea6974 100644 +index cb9a5b8532fa..fbe1aa2bb948 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c -@@ -1594,7 +1594,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) +@@ -1596,7 +1596,7 @@ static void put_prev_task_rt(struct rq *rq, struct task_struct *p) static int pick_rt_task(struct rq *rq, struct task_struct *p, int cpu) { if (!task_running(rq, p) && @@ -754,7 +754,7 @@ index bba2217652ff..590c6eea6974 100644 return 1; return 0; } -@@ -1729,7 +1729,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) +@@ -1731,7 +1731,7 @@ static struct rq *find_lock_lowest_rq(struct task_struct *task, struct rq *rq) * Also make sure that it wasn't scheduled on its rq. */ if (unlikely(task_rq(task) != rq || diff --git a/kernel/patches-4.14.x-rt/0069-kernel-sched-core-add-migrate_disable.patch b/kernel/patches-4.14.x-rt/0069-kernel-sched-core-add-migrate_disable.patch index 1b0eb7f13..72305376e 100644 --- a/kernel/patches-4.14.x-rt/0069-kernel-sched-core-add-migrate_disable.patch +++ b/kernel/patches-4.14.x-rt/0069-kernel-sched-core-add-migrate_disable.patch @@ -1,7 +1,7 @@ -From 9d513f6df015915b0bb5c92f1f36c914b5918824 Mon Sep 17 00:00:00 2001 +From 57f95402e515398dc1cb6c73c3cd72e4511f5543 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 27 May 2017 19:02:06 +0200 -Subject: [PATCH 069/413] kernel/sched/core: add migrate_disable() +Subject: [PATCH 069/436] kernel/sched/core: add migrate_disable() --- include/linux/preempt.h | 23 +++++++ diff --git a/kernel/patches-4.14.x-rt/0070-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch b/kernel/patches-4.14.x-rt/0070-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch index 20a95d247..bc5d1cef1 100644 --- a/kernel/patches-4.14.x-rt/0070-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch +++ b/kernel/patches-4.14.x-rt/0070-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch @@ -1,7 +1,7 @@ -From cd42f05eb5aae88394b423c9f216321cfefac5db Mon Sep 17 00:00:00 2001 +From 990033cdd2cadcdf24ccda42457ff96031f70cdb Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Thu, 21 Sep 2017 16:22:49 -0400 -Subject: [PATCH 070/413] tracing: Reverse the order of trace_types_lock and +Subject: [PATCH 070/436] tracing: Reverse the order of trace_types_lock and event_mutex In order to make future changes where we need to call @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 20919489883f..c3d9b89a8267 100644 +index e9cbb96cd99e..ee24e0bfc391 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -7677,6 +7677,7 @@ static int instance_mkdir(const char *name) +@@ -7684,6 +7684,7 @@ static int instance_mkdir(const char *name) struct trace_array *tr; int ret; @@ -33,7 +33,7 @@ index 20919489883f..c3d9b89a8267 100644 mutex_lock(&trace_types_lock); ret = -EEXIST; -@@ -7732,6 +7733,7 @@ static int instance_mkdir(const char *name) +@@ -7739,6 +7740,7 @@ static int instance_mkdir(const char *name) list_add(&tr->list, &ftrace_trace_arrays); mutex_unlock(&trace_types_lock); @@ -41,7 +41,7 @@ index 20919489883f..c3d9b89a8267 100644 return 0; -@@ -7743,6 +7745,7 @@ static int instance_mkdir(const char *name) +@@ -7750,6 +7752,7 @@ static int instance_mkdir(const char *name) out_unlock: mutex_unlock(&trace_types_lock); @@ -49,7 +49,7 @@ index 20919489883f..c3d9b89a8267 100644 return ret; -@@ -7755,6 +7758,7 @@ static int instance_rmdir(const char *name) +@@ -7762,6 +7765,7 @@ static int instance_rmdir(const char *name) int ret; int i; @@ -57,7 +57,7 @@ index 20919489883f..c3d9b89a8267 100644 mutex_lock(&trace_types_lock); ret = -ENODEV; -@@ -7800,6 +7804,7 @@ static int instance_rmdir(const char *name) +@@ -7807,6 +7811,7 @@ static int instance_rmdir(const char *name) out_unlock: mutex_unlock(&trace_types_lock); diff --git a/kernel/patches-4.14.x-rt/0071-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch b/kernel/patches-4.14.x-rt/0071-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch index 63937db66..7c6b1fbd5 100644 --- a/kernel/patches-4.14.x-rt/0071-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch +++ b/kernel/patches-4.14.x-rt/0071-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch @@ -1,7 +1,7 @@ -From bd51d40fd53281d79e88bb1bd96a9a3b58fd89f9 Mon Sep 17 00:00:00 2001 +From 4640032fbb9a1b85f3b35972cca81b60c40fe474 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Fri, 22 Sep 2017 16:59:02 -0400 -Subject: [PATCH 071/413] ring-buffer: Rewrite trace_recursive_(un)lock() to be +Subject: [PATCH 071/436] ring-buffer: Rewrite trace_recursive_(un)lock() to be simpler The current method to prevent the ring buffer from entering into a recursize diff --git a/kernel/patches-4.14.x-rt/0072-tracing-Remove-lookups-from-tracing_map-hitcount.patch b/kernel/patches-4.14.x-rt/0072-tracing-Remove-lookups-from-tracing_map-hitcount.patch index ef1f41c54..93017a87a 100644 --- a/kernel/patches-4.14.x-rt/0072-tracing-Remove-lookups-from-tracing_map-hitcount.patch +++ b/kernel/patches-4.14.x-rt/0072-tracing-Remove-lookups-from-tracing_map-hitcount.patch @@ -1,7 +1,7 @@ -From 1df3ab2ba2d95d9623be62bcc4eb8e54837a00c1 Mon Sep 17 00:00:00 2001 +From 64ecbc2f8fd6f506d936c801a7d7d6a2fef52d82 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Fri, 22 Sep 2017 14:58:18 -0500 -Subject: [PATCH 072/413] tracing: Remove lookups from tracing_map hitcount +Subject: [PATCH 072/436] tracing: Remove lookups from tracing_map hitcount Lookups inflate the hitcount, making it essentially useless. Only inserts and updates should really affect the hitcount anyway, so diff --git a/kernel/patches-4.14.x-rt/0073-tracing-Increase-tracing-map-KEYS_MAX-size.patch b/kernel/patches-4.14.x-rt/0073-tracing-Increase-tracing-map-KEYS_MAX-size.patch index cf66134f6..3d168bfbe 100644 --- a/kernel/patches-4.14.x-rt/0073-tracing-Increase-tracing-map-KEYS_MAX-size.patch +++ b/kernel/patches-4.14.x-rt/0073-tracing-Increase-tracing-map-KEYS_MAX-size.patch @@ -1,7 +1,7 @@ -From 20520cafc810815c7b14dc1257ed12729b378f54 Mon Sep 17 00:00:00 2001 +From f8f8e42333ac0355c2675bbe6c4d0135678f6535 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Fri, 22 Sep 2017 14:58:19 -0500 -Subject: [PATCH 073/413] tracing: Increase tracing map KEYS_MAX size +Subject: [PATCH 073/436] tracing: Increase tracing map KEYS_MAX size The current default for the number of subkeys in a compound key is 2, which is too restrictive. Increase it to a more realistic value of 3. diff --git a/kernel/patches-4.14.x-rt/0074-tracing-Make-traceprobe-parsing-code-reusable.patch b/kernel/patches-4.14.x-rt/0074-tracing-Make-traceprobe-parsing-code-reusable.patch index 9e573c6be..477ec1c4a 100644 --- a/kernel/patches-4.14.x-rt/0074-tracing-Make-traceprobe-parsing-code-reusable.patch +++ b/kernel/patches-4.14.x-rt/0074-tracing-Make-traceprobe-parsing-code-reusable.patch @@ -1,7 +1,7 @@ -From 272b77138a9e6e7785e46cac33ed5badfe04d601 Mon Sep 17 00:00:00 2001 +From 8acdd6d55c9e80699e749a79790d94a2db6e757c Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Fri, 22 Sep 2017 14:58:20 -0500 -Subject: [PATCH 074/413] tracing: Make traceprobe parsing code reusable +Subject: [PATCH 074/436] tracing: Make traceprobe parsing code reusable traceprobe_probes_write() and traceprobe_command() actually contain nothing that ties them to kprobes - the code is generically useful for @@ -28,10 +28,10 @@ Signed-off-by: Sebastian Andrzej Siewior 6 files changed, 103 insertions(+), 103 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index c3d9b89a8267..99b415e5cd11 100644 +index ee24e0bfc391..f3d7c259e424 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -8271,6 +8271,92 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) +@@ -8280,6 +8280,92 @@ void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) } EXPORT_SYMBOL_GPL(ftrace_dump); @@ -320,7 +320,7 @@ index dc39472ca9e4..a0d750e3d17c 100644 static nokprobe_inline int __get_data_size(struct trace_probe *tp, struct pt_regs *regs) diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c -index 7197ff9f0bbd..2db5a19833ed 100644 +index ea0d90a31fc9..2ccfbb8efeb2 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c @@ -647,7 +647,7 @@ static int probes_open(struct inode *inode, struct file *file) diff --git a/kernel/patches-4.14.x-rt/0075-tracing-Clean-up-hist_field_flags-enum.patch b/kernel/patches-4.14.x-rt/0075-tracing-Clean-up-hist_field_flags-enum.patch index 52f2df8f2..7e99044f3 100644 --- a/kernel/patches-4.14.x-rt/0075-tracing-Clean-up-hist_field_flags-enum.patch +++ b/kernel/patches-4.14.x-rt/0075-tracing-Clean-up-hist_field_flags-enum.patch @@ -1,7 +1,7 @@ -From 7aa3241e49aeb877d3b6db85db821702a5c87b7b Mon Sep 17 00:00:00 2001 +From b008f71fa3fe8acb1142f561d3b0485a13d159a5 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Fri, 22 Sep 2017 14:58:21 -0500 -Subject: [PATCH 075/413] tracing: Clean up hist_field_flags enum +Subject: [PATCH 075/436] tracing: Clean up hist_field_flags enum As we add more flags, specifying explicit integers for the flag values becomes more unwieldy and error-prone - switch them over to left-shift diff --git a/kernel/patches-4.14.x-rt/0076-tracing-Add-hist_field_name-accessor.patch b/kernel/patches-4.14.x-rt/0076-tracing-Add-hist_field_name-accessor.patch index b05fa0cd2..97484c7aa 100644 --- a/kernel/patches-4.14.x-rt/0076-tracing-Add-hist_field_name-accessor.patch +++ b/kernel/patches-4.14.x-rt/0076-tracing-Add-hist_field_name-accessor.patch @@ -1,7 +1,7 @@ -From 1d446035c5e9360d34385d7a9925752c12afd229 Mon Sep 17 00:00:00 2001 +From fdf53562d8cca6ed1b310fc06fcec32ad8dc9e45 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Fri, 22 Sep 2017 14:58:22 -0500 -Subject: [PATCH 076/413] tracing: Add hist_field_name() accessor +Subject: [PATCH 076/436] tracing: Add hist_field_name() accessor In preparation for hist_fields that won't be strictly based on trace_event_fields, add a new hist_field_name() accessor to allow that diff --git a/kernel/patches-4.14.x-rt/0077-tracing-Reimplement-log2.patch b/kernel/patches-4.14.x-rt/0077-tracing-Reimplement-log2.patch index 34c5d41dc..feda596f6 100644 --- a/kernel/patches-4.14.x-rt/0077-tracing-Reimplement-log2.patch +++ b/kernel/patches-4.14.x-rt/0077-tracing-Reimplement-log2.patch @@ -1,7 +1,7 @@ -From 24c189923ec2a18ec59f026a61de134ab839fc8a Mon Sep 17 00:00:00 2001 +From dcc03e9cd88c63b47c7b7e8fef52cd2d84085ef0 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Fri, 22 Sep 2017 14:58:23 -0500 -Subject: [PATCH 077/413] tracing: Reimplement log2 +Subject: [PATCH 077/436] tracing: Reimplement log2 log2 as currently implemented applies only to u64 trace_event_field derived fields, and assumes that anything it's applied to is a u64 diff --git a/kernel/patches-4.14.x-rt/0078-tracing-Move-hist-trigger-Documentation-to-histogram.patch b/kernel/patches-4.14.x-rt/0078-tracing-Move-hist-trigger-Documentation-to-histogram.patch index 621d10bc8..72a2bbd71 100644 --- a/kernel/patches-4.14.x-rt/0078-tracing-Move-hist-trigger-Documentation-to-histogram.patch +++ b/kernel/patches-4.14.x-rt/0078-tracing-Move-hist-trigger-Documentation-to-histogram.patch @@ -1,7 +1,7 @@ -From dcc5cc2dd6f46960cd168e8329c85d33cc500cc6 Mon Sep 17 00:00:00 2001 +From 98d7854c84a951f48716262fa16cff392dce9a23 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:35 -0600 -Subject: [PATCH 078/413] tracing: Move hist trigger Documentation to +Subject: [PATCH 078/436] tracing: Move hist trigger Documentation to histogram.txt The hist trigger Documentation takes up a large part of events.txt - diff --git a/kernel/patches-4.14.x-rt/0079-tracing-Add-Documentation-for-log2-modifier.patch b/kernel/patches-4.14.x-rt/0079-tracing-Add-Documentation-for-log2-modifier.patch index ff7ba1c12..6fd64626d 100644 --- a/kernel/patches-4.14.x-rt/0079-tracing-Add-Documentation-for-log2-modifier.patch +++ b/kernel/patches-4.14.x-rt/0079-tracing-Add-Documentation-for-log2-modifier.patch @@ -1,7 +1,7 @@ -From 90ec131e92fd943ca8250811af309bf97438c17f Mon Sep 17 00:00:00 2001 +From 28d4e828b8756fe16b2cebb58a54014f7de0c441 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:36 -0600 -Subject: [PATCH 079/413] tracing: Add Documentation for log2 modifier +Subject: [PATCH 079/436] tracing: Add Documentation for log2 modifier Add a line for the log2 modifier, to keep it aligned with tracing/README. diff --git a/kernel/patches-4.14.x-rt/0080-tracing-Add-support-to-detect-and-avoid-duplicates.patch b/kernel/patches-4.14.x-rt/0080-tracing-Add-support-to-detect-and-avoid-duplicates.patch index 069d2960d..4f18eba73 100644 --- a/kernel/patches-4.14.x-rt/0080-tracing-Add-support-to-detect-and-avoid-duplicates.patch +++ b/kernel/patches-4.14.x-rt/0080-tracing-Add-support-to-detect-and-avoid-duplicates.patch @@ -1,7 +1,7 @@ -From 004c8777f5674a0e505eae0860dbb9c007a3b428 Mon Sep 17 00:00:00 2001 +From 0b5d29b5fc70e3909ca24b686fd65fb898f23fae Mon Sep 17 00:00:00 2001 From: Vedang Patel Date: Mon, 15 Jan 2018 20:51:37 -0600 -Subject: [PATCH 080/413] tracing: Add support to detect and avoid duplicates +Subject: [PATCH 080/436] tracing: Add support to detect and avoid duplicates A duplicate in the tracing_map hash table is when 2 different entries have the same key and, as a result, the key_hash. This is possible due diff --git a/kernel/patches-4.14.x-rt/0081-tracing-Remove-code-which-merges-duplicates.patch b/kernel/patches-4.14.x-rt/0081-tracing-Remove-code-which-merges-duplicates.patch index 5341bd708..759c46304 100644 --- a/kernel/patches-4.14.x-rt/0081-tracing-Remove-code-which-merges-duplicates.patch +++ b/kernel/patches-4.14.x-rt/0081-tracing-Remove-code-which-merges-duplicates.patch @@ -1,7 +1,7 @@ -From 31f4fd0e513378bc4d9b302657fa4ce577e4e27e Mon Sep 17 00:00:00 2001 +From 4d7f182a1f16bcc40a8427cdfd76975bec8f7801 Mon Sep 17 00:00:00 2001 From: Vedang Patel Date: Mon, 15 Jan 2018 20:51:38 -0600 -Subject: [PATCH 081/413] tracing: Remove code which merges duplicates +Subject: [PATCH 081/436] tracing: Remove code which merges duplicates We now have the logic to detect and remove duplicates in the tracing_map hash table. The code which merges duplicates in the diff --git a/kernel/patches-4.14.x-rt/0082-ring-buffer-Add-interface-for-setting-absolute-time-.patch b/kernel/patches-4.14.x-rt/0082-ring-buffer-Add-interface-for-setting-absolute-time-.patch index 9bd9b6af6..2e0563ec2 100644 --- a/kernel/patches-4.14.x-rt/0082-ring-buffer-Add-interface-for-setting-absolute-time-.patch +++ b/kernel/patches-4.14.x-rt/0082-ring-buffer-Add-interface-for-setting-absolute-time-.patch @@ -1,7 +1,7 @@ -From 340a244f82269fcefc375632ede3243326f403ee Mon Sep 17 00:00:00 2001 +From bbe92ec8c4769f61acd94dedbc739994cc1a6678 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:39 -0600 -Subject: [PATCH 082/413] ring-buffer: Add interface for setting absolute time +Subject: [PATCH 082/436] ring-buffer: Add interface for setting absolute time stamps Define a new function, tracing_set_time_stamp_abs(), which can be used @@ -68,7 +68,7 @@ index c3b6b47fd44a..dc6f47802d02 100644 static inline unsigned long rb_page_entries(struct buffer_page *bpage) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 99b415e5cd11..e64ba2addfe7 100644 +index f3d7c259e424..ffb67272b642 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2275,7 +2275,7 @@ trace_event_buffer_lock_reserve(struct ring_buffer **current_rb, @@ -80,7 +80,7 @@ index 99b415e5cd11..e64ba2addfe7 100644 (EVENT_FILE_FL_SOFT_DISABLED | EVENT_FILE_FL_FILTERED)) && (entry = this_cpu_read(trace_buffered_event))) { /* Try to use the per cpu buffer first */ -@@ -6293,6 +6293,37 @@ static int tracing_clock_open(struct inode *inode, struct file *file) +@@ -6298,6 +6298,37 @@ static int tracing_clock_open(struct inode *inode, struct file *file) return ret; } diff --git a/kernel/patches-4.14.x-rt/0083-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch b/kernel/patches-4.14.x-rt/0083-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch index 52e77b68d..03ebb523e 100644 --- a/kernel/patches-4.14.x-rt/0083-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch +++ b/kernel/patches-4.14.x-rt/0083-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch @@ -1,7 +1,7 @@ -From 84238420757684f86aa07eca0f5fc81fffdaeb27 Mon Sep 17 00:00:00 2001 +From 74cb1bc561fd6f88c30b9bd5a36c71f79c972d0c Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:40 -0600 -Subject: [PATCH 083/413] ring-buffer: Redefine the unimplemented +Subject: [PATCH 083/436] ring-buffer: Redefine the unimplemented RINGBUF_TYPE_TIME_STAMP RINGBUF_TYPE_TIME_STAMP is defined but not used, and from what I can diff --git a/kernel/patches-4.14.x-rt/0084-tracing-Add-timestamp_mode-trace-file.patch b/kernel/patches-4.14.x-rt/0084-tracing-Add-timestamp_mode-trace-file.patch index aae078658..264a6a382 100644 --- a/kernel/patches-4.14.x-rt/0084-tracing-Add-timestamp_mode-trace-file.patch +++ b/kernel/patches-4.14.x-rt/0084-tracing-Add-timestamp_mode-trace-file.patch @@ -1,7 +1,7 @@ -From 91cf6512ab5c35ffa8de75ccea423edd949d0bf2 Mon Sep 17 00:00:00 2001 +From 2b2a746d15921b1ed320b025d4bf6c1221e4e460 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:41 -0600 -Subject: [PATCH 084/413] tracing: Add timestamp_mode trace file +Subject: [PATCH 084/436] tracing: Add timestamp_mode trace file Add a new option flag indicating whether or not the ring buffer is in 'absolute timestamp' mode. @@ -62,10 +62,10 @@ index d4601df6e72e..54213e5c23f6 100644 Directory for the Hardware Latency Detector. diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index e64ba2addfe7..b101ccf0b9fb 100644 +index ffb67272b642..c358cae7461f 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -4526,6 +4526,9 @@ static const char readme_msg[] = +@@ -4531,6 +4531,9 @@ static const char readme_msg[] = #ifdef CONFIG_X86_64 " x86-tsc: TSC cycle counter\n" #endif @@ -75,7 +75,7 @@ index e64ba2addfe7..b101ccf0b9fb 100644 "\n trace_marker\t\t- Writes into this file writes into the kernel buffer\n" "\n trace_marker_raw\t\t- Writes into this file writes binary data into the kernel buffer\n" " tracing_cpumask\t- Limit which CPUs to trace\n" -@@ -6293,6 +6296,40 @@ static int tracing_clock_open(struct inode *inode, struct file *file) +@@ -6298,6 +6301,40 @@ static int tracing_clock_open(struct inode *inode, struct file *file) return ret; } @@ -116,7 +116,7 @@ index e64ba2addfe7..b101ccf0b9fb 100644 int tracing_set_time_stamp_abs(struct trace_array *tr, bool abs) { int ret = 0; -@@ -6571,6 +6608,13 @@ static const struct file_operations trace_clock_fops = { +@@ -6576,6 +6613,13 @@ static const struct file_operations trace_clock_fops = { .write = tracing_clock_write, }; @@ -130,7 +130,7 @@ index e64ba2addfe7..b101ccf0b9fb 100644 #ifdef CONFIG_TRACER_SNAPSHOT static const struct file_operations snapshot_fops = { .open = tracing_snapshot_open, -@@ -7893,6 +7937,9 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer) +@@ -7900,6 +7944,9 @@ init_tracer_tracefs(struct trace_array *tr, struct dentry *d_tracer) trace_create_file("tracing_on", 0644, d_tracer, tr, &rb_simple_fops); diff --git a/kernel/patches-4.14.x-rt/0085-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch b/kernel/patches-4.14.x-rt/0085-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch index 988af013f..dedc3b8c7 100644 --- a/kernel/patches-4.14.x-rt/0085-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch +++ b/kernel/patches-4.14.x-rt/0085-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch @@ -1,7 +1,7 @@ -From 794e7fb5827ff40ea3d54b8e4a1ce42d0fec1fc2 Mon Sep 17 00:00:00 2001 +From e72ce81313743863730c6df969d034b2dd036a93 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:42 -0600 -Subject: [PATCH 085/413] tracing: Give event triggers access to +Subject: [PATCH 085/436] tracing: Give event triggers access to ring_buffer_event The ring_buffer event can provide a timestamp that may be useful to diff --git a/kernel/patches-4.14.x-rt/0086-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch b/kernel/patches-4.14.x-rt/0086-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch index 1f87bbf9d..513beddf0 100644 --- a/kernel/patches-4.14.x-rt/0086-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch +++ b/kernel/patches-4.14.x-rt/0086-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch @@ -1,7 +1,7 @@ -From 61f2ce425bc32c663a1d89fa603d0dc3906ab88d Mon Sep 17 00:00:00 2001 +From 37e8a2ddbcd7e30f65512f71ac3c0b6420fb1af4 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:43 -0600 -Subject: [PATCH 086/413] tracing: Add ring buffer event param to hist field +Subject: [PATCH 086/436] tracing: Add ring buffer event param to hist field functions Some events such as timestamps require access to a ring_buffer_event diff --git a/kernel/patches-4.14.x-rt/0087-tracing-Break-out-hist-trigger-assignment-parsing.patch b/kernel/patches-4.14.x-rt/0087-tracing-Break-out-hist-trigger-assignment-parsing.patch index 731bb2ffc..2443d3a82 100644 --- a/kernel/patches-4.14.x-rt/0087-tracing-Break-out-hist-trigger-assignment-parsing.patch +++ b/kernel/patches-4.14.x-rt/0087-tracing-Break-out-hist-trigger-assignment-parsing.patch @@ -1,7 +1,7 @@ -From fe44332c3b607f3d93463a5a61faa65eda660a5a Mon Sep 17 00:00:00 2001 +From 09ea7ab2ecccaed453749327e2220ea1d58a73e9 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:44 -0600 -Subject: [PATCH 087/413] tracing: Break out hist trigger assignment parsing +Subject: [PATCH 087/436] tracing: Break out hist trigger assignment parsing This will make it easier to add variables, and makes the parsing code cleaner regardless. diff --git a/kernel/patches-4.14.x-rt/0088-tracing-Add-hist-trigger-timestamp-support.patch b/kernel/patches-4.14.x-rt/0088-tracing-Add-hist-trigger-timestamp-support.patch index ab2fd5e0b..252b9d3cb 100644 --- a/kernel/patches-4.14.x-rt/0088-tracing-Add-hist-trigger-timestamp-support.patch +++ b/kernel/patches-4.14.x-rt/0088-tracing-Add-hist-trigger-timestamp-support.patch @@ -1,7 +1,7 @@ -From da1d8b0719fef4b967e297068245144456a8e3a3 Mon Sep 17 00:00:00 2001 +From dd9c0a9f392182e65dcd82c6f577bbd4d66f4acc Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:45 -0600 -Subject: [PATCH 088/413] tracing: Add hist trigger timestamp support +Subject: [PATCH 088/436] tracing: Add hist trigger timestamp support Add support for a timestamp event field. This is actually a 'pseudo-' event field in that it behaves like it's part of the event record, but diff --git a/kernel/patches-4.14.x-rt/0089-tracing-Add-per-element-variable-support-to-tracing_.patch b/kernel/patches-4.14.x-rt/0089-tracing-Add-per-element-variable-support-to-tracing_.patch index 28b8b1adb..c0ec3c76c 100644 --- a/kernel/patches-4.14.x-rt/0089-tracing-Add-per-element-variable-support-to-tracing_.patch +++ b/kernel/patches-4.14.x-rt/0089-tracing-Add-per-element-variable-support-to-tracing_.patch @@ -1,7 +1,7 @@ -From d955af7c03a290cac89faa263eaf599af12faa44 Mon Sep 17 00:00:00 2001 +From 4e567b5b432eae07dcd30dd2311ecb587e243d7e Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:46 -0600 -Subject: [PATCH 089/413] tracing: Add per-element variable support to +Subject: [PATCH 089/436] tracing: Add per-element variable support to tracing_map In order to allow information to be passed between trace events, add diff --git a/kernel/patches-4.14.x-rt/0090-tracing-Add-hist_data-member-to-hist_field.patch b/kernel/patches-4.14.x-rt/0090-tracing-Add-hist_data-member-to-hist_field.patch index e924b48ce..61a9719bb 100644 --- a/kernel/patches-4.14.x-rt/0090-tracing-Add-hist_data-member-to-hist_field.patch +++ b/kernel/patches-4.14.x-rt/0090-tracing-Add-hist_data-member-to-hist_field.patch @@ -1,7 +1,7 @@ -From 31100a21a9f76a38e09616077600214a62799b53 Mon Sep 17 00:00:00 2001 +From 1416d170806a9362bb5ffd4f428893bb25ad3f2f Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:47 -0600 -Subject: [PATCH 090/413] tracing: Add hist_data member to hist_field +Subject: [PATCH 090/436] tracing: Add hist_data member to hist_field Allow hist_data access via hist_field. Some users of hist_fields require or will require more access to the associated hist_data. diff --git a/kernel/patches-4.14.x-rt/0091-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch b/kernel/patches-4.14.x-rt/0091-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch index a46bd39e2..5cc731359 100644 --- a/kernel/patches-4.14.x-rt/0091-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch +++ b/kernel/patches-4.14.x-rt/0091-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch @@ -1,7 +1,7 @@ -From 5aaa61969c551722784944cbb9586c489ca210d7 Mon Sep 17 00:00:00 2001 +From 81bd3310894eaa928be2d3c476e7827cee10fbc4 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:48 -0600 -Subject: [PATCH 091/413] tracing: Add usecs modifier for hist trigger +Subject: [PATCH 091/436] tracing: Add usecs modifier for hist trigger timestamps Appending .usecs onto a common_timestamp field will cause the @@ -41,7 +41,7 @@ index a4143f04a097..25c94730d3fe 100644 Note that in general the semantics of a given field aren't interpreted when applying a modifier to it, but there are some diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index b101ccf0b9fb..49d2457947f5 100644 +index c358cae7461f..1f695da375df 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -1170,6 +1170,14 @@ static struct { @@ -59,7 +59,7 @@ index b101ccf0b9fb..49d2457947f5 100644 /* * trace_parser_get_init - gets the buffer for trace parser */ -@@ -4705,8 +4713,9 @@ static const char readme_msg[] = +@@ -4710,8 +4718,9 @@ static const char readme_msg[] = "\t .sym display an address as a symbol\n" "\t .sym-offset display an address as a symbol and offset\n" "\t .execname display a common_pid as a program name\n" diff --git a/kernel/patches-4.14.x-rt/0092-tracing-Add-variable-support-to-hist-triggers.patch b/kernel/patches-4.14.x-rt/0092-tracing-Add-variable-support-to-hist-triggers.patch index 43885e340..72277de54 100644 --- a/kernel/patches-4.14.x-rt/0092-tracing-Add-variable-support-to-hist-triggers.patch +++ b/kernel/patches-4.14.x-rt/0092-tracing-Add-variable-support-to-hist-triggers.patch @@ -1,7 +1,7 @@ -From e625c5a90ca52df684096746d21dd42d88b7746f Mon Sep 17 00:00:00 2001 +From a5ab43e5b183dba9a93b0ef504bca4110d399546 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:49 -0600 -Subject: [PATCH 092/413] tracing: Add variable support to hist triggers +Subject: [PATCH 092/436] tracing: Add variable support to hist triggers Add support for saving the value of a current event's event field by assigning it to a variable that can be read by a subsequent event. diff --git a/kernel/patches-4.14.x-rt/0093-tracing-Account-for-variables-in-named-trigger-compa.patch b/kernel/patches-4.14.x-rt/0093-tracing-Account-for-variables-in-named-trigger-compa.patch index fcc31f73c..c08728612 100644 --- a/kernel/patches-4.14.x-rt/0093-tracing-Account-for-variables-in-named-trigger-compa.patch +++ b/kernel/patches-4.14.x-rt/0093-tracing-Account-for-variables-in-named-trigger-compa.patch @@ -1,7 +1,7 @@ -From 73c0b87644cdbf798e5f4de966debbc39c770b08 Mon Sep 17 00:00:00 2001 +From 21bba4cd569aac8f28019dc244353d4dad2421f1 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:50 -0600 -Subject: [PATCH 093/413] tracing: Account for variables in named trigger +Subject: [PATCH 093/436] tracing: Account for variables in named trigger compatibility Named triggers must also have the same set of variables in order to be diff --git a/kernel/patches-4.14.x-rt/0094-tracing-Move-get_hist_field_flags.patch b/kernel/patches-4.14.x-rt/0094-tracing-Move-get_hist_field_flags.patch index 938735eac..3e29548ac 100644 --- a/kernel/patches-4.14.x-rt/0094-tracing-Move-get_hist_field_flags.patch +++ b/kernel/patches-4.14.x-rt/0094-tracing-Move-get_hist_field_flags.patch @@ -1,7 +1,7 @@ -From 0b4fd077fb3691992a3bdc061531582eaeed8d8b Mon Sep 17 00:00:00 2001 +From 554e1835cbcbda85d19b7f3a766bc59eb226c5c4 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:51 -0600 -Subject: [PATCH 094/413] tracing: Move get_hist_field_flags() +Subject: [PATCH 094/436] tracing: Move get_hist_field_flags() Move get_hist_field_flags() to make it more easily accessible for new code (and keep the move separate from new functionality). diff --git a/kernel/patches-4.14.x-rt/0095-tracing-Add-simple-expression-support-to-hist-trigge.patch b/kernel/patches-4.14.x-rt/0095-tracing-Add-simple-expression-support-to-hist-trigge.patch index 93e8bf5dd..fd6ea344c 100644 --- a/kernel/patches-4.14.x-rt/0095-tracing-Add-simple-expression-support-to-hist-trigge.patch +++ b/kernel/patches-4.14.x-rt/0095-tracing-Add-simple-expression-support-to-hist-trigge.patch @@ -1,7 +1,7 @@ -From 9ec4b3b72eb7ad4a5f464146950e03a33868154c Mon Sep 17 00:00:00 2001 +From 63c4765ded6dd1c2421b9f82c8e3ca55f708dfbf Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:52 -0600 -Subject: [PATCH 095/413] tracing: Add simple expression support to hist +Subject: [PATCH 095/436] tracing: Add simple expression support to hist triggers Add support for simple addition, subtraction, and unary expressions diff --git a/kernel/patches-4.14.x-rt/0096-tracing-Generalize-per-element-hist-trigger-data.patch b/kernel/patches-4.14.x-rt/0096-tracing-Generalize-per-element-hist-trigger-data.patch index 9b576f983..dde9b0d56 100644 --- a/kernel/patches-4.14.x-rt/0096-tracing-Generalize-per-element-hist-trigger-data.patch +++ b/kernel/patches-4.14.x-rt/0096-tracing-Generalize-per-element-hist-trigger-data.patch @@ -1,7 +1,7 @@ -From d95785f49fa17053815aaf4aa879b0bb5f680b8c Mon Sep 17 00:00:00 2001 +From 4f3e76bd3081f635b560189c3e2ec27a11c0b9e8 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:53 -0600 -Subject: [PATCH 096/413] tracing: Generalize per-element hist trigger data +Subject: [PATCH 096/436] tracing: Generalize per-element hist trigger data Up until now, hist triggers only needed per-element support for saving 'comm' data, which was saved directly as a private data pointer. diff --git a/kernel/patches-4.14.x-rt/0097-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch b/kernel/patches-4.14.x-rt/0097-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch index e8a6c10c3..c91cce885 100644 --- a/kernel/patches-4.14.x-rt/0097-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch +++ b/kernel/patches-4.14.x-rt/0097-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch @@ -1,7 +1,7 @@ -From 8166b214eed5311463c837dc24b349d65f06b9f0 Mon Sep 17 00:00:00 2001 +From 67873b4ec50b9aa27425e8c7aa0e76a223aba669 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:54 -0600 -Subject: [PATCH 097/413] tracing: Pass tracing_map_elt to hist_field accessor +Subject: [PATCH 097/436] tracing: Pass tracing_map_elt to hist_field accessor functions Some accessor functions, such as for variable references, require diff --git a/kernel/patches-4.14.x-rt/0098-tracing-Add-hist_field-type-field.patch b/kernel/patches-4.14.x-rt/0098-tracing-Add-hist_field-type-field.patch index 696750dfd..aacc53d87 100644 --- a/kernel/patches-4.14.x-rt/0098-tracing-Add-hist_field-type-field.patch +++ b/kernel/patches-4.14.x-rt/0098-tracing-Add-hist_field-type-field.patch @@ -1,7 +1,7 @@ -From 4a62814a84d553e653af96d3ac62631711d0e5ad Mon Sep 17 00:00:00 2001 +From 828254c5b8e4253c9b9190e021078fda82528efe Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:55 -0600 -Subject: [PATCH 098/413] tracing: Add hist_field 'type' field +Subject: [PATCH 098/436] tracing: Add hist_field 'type' field Future support for synthetic events requires hist_field 'type' information, so add a field for that. diff --git a/kernel/patches-4.14.x-rt/0099-tracing-Add-variable-reference-handling-to-hist-trig.patch b/kernel/patches-4.14.x-rt/0099-tracing-Add-variable-reference-handling-to-hist-trig.patch index 03bc49da8..c71854901 100644 --- a/kernel/patches-4.14.x-rt/0099-tracing-Add-variable-reference-handling-to-hist-trig.patch +++ b/kernel/patches-4.14.x-rt/0099-tracing-Add-variable-reference-handling-to-hist-trig.patch @@ -1,7 +1,7 @@ -From cac5f3c3ce0bc6dff0a2f453b8a99c8a67ba9ec1 Mon Sep 17 00:00:00 2001 +From 3e0e4d82381b6107a7fcd68979f3c1ab36967de4 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:56 -0600 -Subject: [PATCH 099/413] tracing: Add variable reference handling to hist +Subject: [PATCH 099/436] tracing: Add variable reference handling to hist triggers Add the necessary infrastructure to allow the variables defined on one @@ -36,10 +36,10 @@ Signed-off-by: Sebastian Andrzej Siewior 4 files changed, 656 insertions(+), 16 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 49d2457947f5..1bbef798b98c 100644 +index 1f695da375df..5b35e4257cc5 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -7794,6 +7794,7 @@ static int instance_mkdir(const char *name) +@@ -7801,6 +7801,7 @@ static int instance_mkdir(const char *name) INIT_LIST_HEAD(&tr->systems); INIT_LIST_HEAD(&tr->events); @@ -47,7 +47,7 @@ index 49d2457947f5..1bbef798b98c 100644 if (allocate_trace_buffers(tr, trace_buf_size) < 0) goto out_free_tr; -@@ -8544,6 +8545,7 @@ __init static int tracer_alloc_buffers(void) +@@ -8553,6 +8554,7 @@ __init static int tracer_alloc_buffers(void) INIT_LIST_HEAD(&global_trace.systems); INIT_LIST_HEAD(&global_trace.events); diff --git a/kernel/patches-4.14.x-rt/0100-tracing-Add-hist-trigger-action-hook.patch b/kernel/patches-4.14.x-rt/0100-tracing-Add-hist-trigger-action-hook.patch index 6e2cb160a..d5970513f 100644 --- a/kernel/patches-4.14.x-rt/0100-tracing-Add-hist-trigger-action-hook.patch +++ b/kernel/patches-4.14.x-rt/0100-tracing-Add-hist-trigger-action-hook.patch @@ -1,7 +1,7 @@ -From 79ee29d5b982e3238f6738aaa2bbfd449e092a7d Mon Sep 17 00:00:00 2001 +From d0432cc4b5f4de8db438cb619900aaa62febcd85 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:57 -0600 -Subject: [PATCH 100/413] tracing: Add hist trigger action hook +Subject: [PATCH 100/436] tracing: Add hist trigger action hook Add a hook for executing extra actions whenever a histogram entry is added or updated. diff --git a/kernel/patches-4.14.x-rt/0101-tracing-Add-support-for-synthetic-events.patch b/kernel/patches-4.14.x-rt/0101-tracing-Add-support-for-synthetic-events.patch index 84225b506..22b2c2b5a 100644 --- a/kernel/patches-4.14.x-rt/0101-tracing-Add-support-for-synthetic-events.patch +++ b/kernel/patches-4.14.x-rt/0101-tracing-Add-support-for-synthetic-events.patch @@ -1,7 +1,7 @@ -From 196f5e395faf8badf57cfc35a0ec1f0440165621 Mon Sep 17 00:00:00 2001 +From 8311f5e0eb9c3ed043538f6513299c6140b1c28e Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:58 -0600 -Subject: [PATCH 101/413] tracing: Add support for 'synthetic' events +Subject: [PATCH 101/436] tracing: Add support for 'synthetic' events Synthetic events are user-defined events generated from hist trigger variables saved from one or more other events. diff --git a/kernel/patches-4.14.x-rt/0102-tracing-Add-support-for-field-variables.patch b/kernel/patches-4.14.x-rt/0102-tracing-Add-support-for-field-variables.patch index 8abbc24b0..3ac4508b2 100644 --- a/kernel/patches-4.14.x-rt/0102-tracing-Add-support-for-field-variables.patch +++ b/kernel/patches-4.14.x-rt/0102-tracing-Add-support-for-field-variables.patch @@ -1,7 +1,7 @@ -From 6619ce5da801599160c7aa9f201c92f42d5ae339 Mon Sep 17 00:00:00 2001 +From f83f7a5b109189724c5be12e506e696890c3cb85 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:51:59 -0600 -Subject: [PATCH 102/413] tracing: Add support for 'field variables' +Subject: [PATCH 102/436] tracing: Add support for 'field variables' Users should be able to directly specify event fields in hist trigger 'actions' rather than being forced to explicitly create a variable for diff --git a/kernel/patches-4.14.x-rt/0103-tracing-Add-onmatch-hist-trigger-action-support.patch b/kernel/patches-4.14.x-rt/0103-tracing-Add-onmatch-hist-trigger-action-support.patch index 749902df4..e249d0779 100644 --- a/kernel/patches-4.14.x-rt/0103-tracing-Add-onmatch-hist-trigger-action-support.patch +++ b/kernel/patches-4.14.x-rt/0103-tracing-Add-onmatch-hist-trigger-action-support.patch @@ -1,7 +1,7 @@ -From bc1e8e96346b050f885ee2bfc339022752233ae6 Mon Sep 17 00:00:00 2001 +From 68aea95c6e6778ac94323d46c8bd533ee644fcad Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:00 -0600 -Subject: [PATCH 103/413] tracing: Add 'onmatch' hist trigger action support +Subject: [PATCH 103/436] tracing: Add 'onmatch' hist trigger action support Add an 'onmatch(matching.event).(param list)' hist trigger action which is invoked with the set of variables or diff --git a/kernel/patches-4.14.x-rt/0104-tracing-Add-onmax-hist-trigger-action-support.patch b/kernel/patches-4.14.x-rt/0104-tracing-Add-onmax-hist-trigger-action-support.patch index eb848a1ea..9b751b1d6 100644 --- a/kernel/patches-4.14.x-rt/0104-tracing-Add-onmax-hist-trigger-action-support.patch +++ b/kernel/patches-4.14.x-rt/0104-tracing-Add-onmax-hist-trigger-action-support.patch @@ -1,7 +1,7 @@ -From 97d834e3fbed12dcab7e969ec85ca9a6f91af937 Mon Sep 17 00:00:00 2001 +From 1f0f50b1a21c7aeff7eadba417ed0b572fb10ca5 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:01 -0600 -Subject: [PATCH 104/413] tracing: Add 'onmax' hist trigger action support +Subject: [PATCH 104/436] tracing: Add 'onmax' hist trigger action support Add an 'onmax(var).save(field,...)' hist trigger action which is invoked whenever an event exceeds the current maximum. diff --git a/kernel/patches-4.14.x-rt/0105-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch b/kernel/patches-4.14.x-rt/0105-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch index 7867dda86..9795c2f0c 100644 --- a/kernel/patches-4.14.x-rt/0105-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch +++ b/kernel/patches-4.14.x-rt/0105-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch @@ -1,7 +1,7 @@ -From 4b72e6c298c4a4bb412803bd380bb2bc4c526e1a Mon Sep 17 00:00:00 2001 +From 1a0b256dfc095306651e1d5e6d958baa3a7fd89c Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:02 -0600 -Subject: [PATCH 105/413] tracing: Allow whitespace to surround hist trigger +Subject: [PATCH 105/436] tracing: Allow whitespace to surround hist trigger filter The existing code only allows for one space before and after the 'if' diff --git a/kernel/patches-4.14.x-rt/0106-tracing-Add-cpu-field-for-hist-triggers.patch b/kernel/patches-4.14.x-rt/0106-tracing-Add-cpu-field-for-hist-triggers.patch index 8eae458aa..24ecbf8dd 100644 --- a/kernel/patches-4.14.x-rt/0106-tracing-Add-cpu-field-for-hist-triggers.patch +++ b/kernel/patches-4.14.x-rt/0106-tracing-Add-cpu-field-for-hist-triggers.patch @@ -1,7 +1,7 @@ -From 7164030a052fa33739389ac57bb0fc8ea972b1a6 Mon Sep 17 00:00:00 2001 +From 5cf8459cf4cd44c92c8079b80256bab3d70ebd8c Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:03 -0600 -Subject: [PATCH 106/413] tracing: Add cpu field for hist triggers +Subject: [PATCH 106/436] tracing: Add cpu field for hist triggers A common key to use in a histogram is the cpuid - add a new cpu 'synthetic' field named 'cpu' for that purpose. diff --git a/kernel/patches-4.14.x-rt/0107-tracing-Add-hist-trigger-support-for-variable-refere.patch b/kernel/patches-4.14.x-rt/0107-tracing-Add-hist-trigger-support-for-variable-refere.patch index 656127a2d..f0aba5c92 100644 --- a/kernel/patches-4.14.x-rt/0107-tracing-Add-hist-trigger-support-for-variable-refere.patch +++ b/kernel/patches-4.14.x-rt/0107-tracing-Add-hist-trigger-support-for-variable-refere.patch @@ -1,7 +1,7 @@ -From 5b6ac5c210fab67ecd3814c350f75e3c4b2dded2 Mon Sep 17 00:00:00 2001 +From 0511b4eaf3310861df561feadaa66fd636bc7a1c Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:04 -0600 -Subject: [PATCH 107/413] tracing: Add hist trigger support for variable +Subject: [PATCH 107/436] tracing: Add hist trigger support for variable reference aliases Add support for alias=$somevar where alias can be used as diff --git a/kernel/patches-4.14.x-rt/0108-tracing-Add-last-error-error-facility-for-hist-trigg.patch b/kernel/patches-4.14.x-rt/0108-tracing-Add-last-error-error-facility-for-hist-trigg.patch index fba493c66..1cee7eb83 100644 --- a/kernel/patches-4.14.x-rt/0108-tracing-Add-last-error-error-facility-for-hist-trigg.patch +++ b/kernel/patches-4.14.x-rt/0108-tracing-Add-last-error-error-facility-for-hist-trigg.patch @@ -1,7 +1,7 @@ -From de3217e3360ab336812f25ff76727829118a6ef4 Mon Sep 17 00:00:00 2001 +From 91942db4680ce1622cc68cbc3dff8401b648990a Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:05 -0600 -Subject: [PATCH 108/413] tracing: Add 'last error' error facility for hist +Subject: [PATCH 108/436] tracing: Add 'last error' error facility for hist triggers With the addition of variables and actions, it's become necessary to diff --git a/kernel/patches-4.14.x-rt/0109-tracing-Add-inter-event-hist-trigger-Documentation.patch b/kernel/patches-4.14.x-rt/0109-tracing-Add-inter-event-hist-trigger-Documentation.patch index 9e31d6b9f..7fe3da445 100644 --- a/kernel/patches-4.14.x-rt/0109-tracing-Add-inter-event-hist-trigger-Documentation.patch +++ b/kernel/patches-4.14.x-rt/0109-tracing-Add-inter-event-hist-trigger-Documentation.patch @@ -1,7 +1,7 @@ -From 40158a259afd7713f15d34fae11ff6ceb1000765 Mon Sep 17 00:00:00 2001 +From 07caff216d3af9e7dd5998e8f0fe51666b5e1ac9 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:06 -0600 -Subject: [PATCH 109/413] tracing: Add inter-event hist trigger Documentation +Subject: [PATCH 109/436] tracing: Add inter-event hist trigger Documentation Add background and details on inter-event hist triggers, including hist variables, synthetic events, and actions. diff --git a/kernel/patches-4.14.x-rt/0110-tracing-Make-tracing_set_clock-non-static.patch b/kernel/patches-4.14.x-rt/0110-tracing-Make-tracing_set_clock-non-static.patch index 9ed6dcae2..3b2c9f06c 100644 --- a/kernel/patches-4.14.x-rt/0110-tracing-Make-tracing_set_clock-non-static.patch +++ b/kernel/patches-4.14.x-rt/0110-tracing-Make-tracing_set_clock-non-static.patch @@ -1,7 +1,7 @@ -From 9d1afc68755f7a6c5ab077e59ad5a3eec8fea99b Mon Sep 17 00:00:00 2001 +From 30cd7275d4d0678008e62679cf34bd0e6ac8be5a Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:07 -0600 -Subject: [PATCH 110/413] tracing: Make tracing_set_clock() non-static +Subject: [PATCH 110/436] tracing: Make tracing_set_clock() non-static Allow tracing code outside of trace.c to access tracing_set_clock(). @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 1bbef798b98c..73b3e330ac0a 100644 +index 5b35e4257cc5..6c2aae7629a7 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -6225,7 +6225,7 @@ static int tracing_clock_show(struct seq_file *m, void *v) +@@ -6230,7 +6230,7 @@ static int tracing_clock_show(struct seq_file *m, void *v) return 0; } diff --git a/kernel/patches-4.14.x-rt/0111-tracing-Add-a-clock-attribute-for-hist-triggers.patch b/kernel/patches-4.14.x-rt/0111-tracing-Add-a-clock-attribute-for-hist-triggers.patch index ec5cf5aab..af05e6509 100644 --- a/kernel/patches-4.14.x-rt/0111-tracing-Add-a-clock-attribute-for-hist-triggers.patch +++ b/kernel/patches-4.14.x-rt/0111-tracing-Add-a-clock-attribute-for-hist-triggers.patch @@ -1,7 +1,7 @@ -From d2279861360cdfc04dcf05d1d006d69a4c72f164 Mon Sep 17 00:00:00 2001 +From 2006341abfd68ad2b10ebff9e622dbb61f7bd26c Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:08 -0600 -Subject: [PATCH 111/413] tracing: Add a clock attribute for hist triggers +Subject: [PATCH 111/436] tracing: Add a clock attribute for hist triggers The default clock if timestamps are used in a histogram is "global". If timestamps aren't used, the clock is irrelevant. diff --git a/kernel/patches-4.14.x-rt/0112-ring-buffer-Bring-back-context-level-recursive-check.patch b/kernel/patches-4.14.x-rt/0112-ring-buffer-Bring-back-context-level-recursive-check.patch index e0ad7e422..04947b5ef 100644 --- a/kernel/patches-4.14.x-rt/0112-ring-buffer-Bring-back-context-level-recursive-check.patch +++ b/kernel/patches-4.14.x-rt/0112-ring-buffer-Bring-back-context-level-recursive-check.patch @@ -1,7 +1,7 @@ -From 76b7d21ec0ec5f6d9a60f9374be7c168ee82cf34 Mon Sep 17 00:00:00 2001 +From 13b6ffb530a5dd6b69406cc37f7a23a9a23b133b Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Mon, 15 Jan 2018 10:47:09 -0500 -Subject: [PATCH 112/413] ring-buffer: Bring back context level recursive +Subject: [PATCH 112/436] ring-buffer: Bring back context level recursive checks Commit 1a149d7d3f45 ("ring-buffer: Rewrite trace_recursive_(un)lock() to be diff --git a/kernel/patches-4.14.x-rt/0113-ring-buffer-Fix-duplicate-results-in-mapping-context.patch b/kernel/patches-4.14.x-rt/0113-ring-buffer-Fix-duplicate-results-in-mapping-context.patch index 4bb701fc0..6011e3e48 100644 --- a/kernel/patches-4.14.x-rt/0113-ring-buffer-Fix-duplicate-results-in-mapping-context.patch +++ b/kernel/patches-4.14.x-rt/0113-ring-buffer-Fix-duplicate-results-in-mapping-context.patch @@ -1,7 +1,7 @@ -From 79951da37849d43aff7494bb673be2f630b7ce21 Mon Sep 17 00:00:00 2001 +From 9126465c92adfb901115f055c93164e933e453c3 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Thu, 18 Jan 2018 15:42:09 -0500 -Subject: [PATCH 113/413] ring-buffer: Fix duplicate results in mapping context +Subject: [PATCH 113/436] ring-buffer: Fix duplicate results in mapping context to bits in recursive lock In bringing back the context checks, the code checks first if its normal diff --git a/kernel/patches-4.14.x-rt/0114-ring-buffer-Add-nesting-for-adding-events-within-eve.patch b/kernel/patches-4.14.x-rt/0114-ring-buffer-Add-nesting-for-adding-events-within-eve.patch index a8e6b5a84..814b8374a 100644 --- a/kernel/patches-4.14.x-rt/0114-ring-buffer-Add-nesting-for-adding-events-within-eve.patch +++ b/kernel/patches-4.14.x-rt/0114-ring-buffer-Add-nesting-for-adding-events-within-eve.patch @@ -1,7 +1,7 @@ -From b11b0220347c782777ff50059fc4f283ce7f1a5b Mon Sep 17 00:00:00 2001 +From 218a26c701a520d6fd977c47af54ba1eb99532a7 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Wed, 7 Feb 2018 17:26:32 -0500 -Subject: [PATCH 114/413] ring-buffer: Add nesting for adding events within +Subject: [PATCH 114/436] ring-buffer: Add nesting for adding events within events The ring-buffer code has recusion protection in case tracing ends up tracing diff --git a/kernel/patches-4.14.x-rt/0115-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch b/kernel/patches-4.14.x-rt/0115-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch index 32f409341..b8f570d95 100644 --- a/kernel/patches-4.14.x-rt/0115-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch +++ b/kernel/patches-4.14.x-rt/0115-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch @@ -1,7 +1,7 @@ -From efb3e23919257687f390d2cb31c3b5727274dd29 Mon Sep 17 00:00:00 2001 +From 27950879d863a572e818dd0b976a3ad75292fa7f Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Wed, 7 Feb 2018 17:29:46 -0500 -Subject: [PATCH 115/413] tracing: Use the ring-buffer nesting to allow +Subject: [PATCH 115/436] tracing: Use the ring-buffer nesting to allow synthetic events to be traced Synthetic events can be done within the recording of other events. Notify diff --git a/kernel/patches-4.14.x-rt/0116-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch b/kernel/patches-4.14.x-rt/0116-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch index 22de9b805..d39fc3682 100644 --- a/kernel/patches-4.14.x-rt/0116-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch +++ b/kernel/patches-4.14.x-rt/0116-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch @@ -1,7 +1,7 @@ -From 3f6f5cb5821242c5bdb3dfbc3a4f8c2562669d69 Mon Sep 17 00:00:00 2001 +From 8b9390254dcb58da442d69e7b3a7d2c2772827a5 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 15 Jan 2018 20:52:10 -0600 -Subject: [PATCH 116/413] tracing: Add inter-event blurb to HIST_TRIGGERS +Subject: [PATCH 116/436] tracing: Add inter-event blurb to HIST_TRIGGERS config option So that users know that inter-event tracing is supported as part of diff --git a/kernel/patches-4.14.x-rt/0117-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch b/kernel/patches-4.14.x-rt/0117-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch index 8a0ca717d..fc180b998 100644 --- a/kernel/patches-4.14.x-rt/0117-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch +++ b/kernel/patches-4.14.x-rt/0117-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch @@ -1,7 +1,7 @@ -From c8580367997fd26ff3e82c58bb0d0193c02a6b42 Mon Sep 17 00:00:00 2001 +From 374e2f89e2fe61609a18ff316adfe42aeab70840 Mon Sep 17 00:00:00 2001 From: Rajvi Jingar Date: Mon, 15 Jan 2018 20:52:11 -0600 -Subject: [PATCH 117/413] selftests: ftrace: Add inter-event hist triggers +Subject: [PATCH 117/436] selftests: ftrace: Add inter-event hist triggers testcases This adds inter-event hist triggers testcases which covers following: diff --git a/kernel/patches-4.14.x-rt/0118-tracing-Fix-display-of-hist-trigger-expressions-cont.patch b/kernel/patches-4.14.x-rt/0118-tracing-Fix-display-of-hist-trigger-expressions-cont.patch index 8d27503b0..49b6b4d55 100644 --- a/kernel/patches-4.14.x-rt/0118-tracing-Fix-display-of-hist-trigger-expressions-cont.patch +++ b/kernel/patches-4.14.x-rt/0118-tracing-Fix-display-of-hist-trigger-expressions-cont.patch @@ -1,7 +1,7 @@ -From 2f93bc0b523102f46bbb4ea708b40e0cff8a7c59 Mon Sep 17 00:00:00 2001 +From 5c5080da942549edf7d10ee51219b92205e16f66 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Wed, 28 Mar 2018 15:10:53 -0500 -Subject: [PATCH 118/413] tracing: Fix display of hist trigger expressions +Subject: [PATCH 118/436] tracing: Fix display of hist trigger expressions containing timestamps When displaying hist triggers, variable references that have the diff --git a/kernel/patches-4.14.x-rt/0119-tracing-Don-t-add-flag-strings-when-displaying-varia.patch b/kernel/patches-4.14.x-rt/0119-tracing-Don-t-add-flag-strings-when-displaying-varia.patch index dcceb8f33..3ed9ab593 100644 --- a/kernel/patches-4.14.x-rt/0119-tracing-Don-t-add-flag-strings-when-displaying-varia.patch +++ b/kernel/patches-4.14.x-rt/0119-tracing-Don-t-add-flag-strings-when-displaying-varia.patch @@ -1,7 +1,7 @@ -From 619645d5a5982dc2dc533c6567344d48a1288397 Mon Sep 17 00:00:00 2001 +From 24e71c54e991d2cc91670e77e9238b1a99271e29 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Wed, 28 Mar 2018 15:10:54 -0500 -Subject: [PATCH 119/413] tracing: Don't add flag strings when displaying +Subject: [PATCH 119/436] tracing: Don't add flag strings when displaying variable references Variable references should never have flags appended when displayed - diff --git a/kernel/patches-4.14.x-rt/0120-tracing-Add-action-comparisons-when-testing-matching.patch b/kernel/patches-4.14.x-rt/0120-tracing-Add-action-comparisons-when-testing-matching.patch index 15e5e9181..6ab725e3b 100644 --- a/kernel/patches-4.14.x-rt/0120-tracing-Add-action-comparisons-when-testing-matching.patch +++ b/kernel/patches-4.14.x-rt/0120-tracing-Add-action-comparisons-when-testing-matching.patch @@ -1,7 +1,7 @@ -From 270dc0a08e5c47b40f876a67bf26c46148f6b5bf Mon Sep 17 00:00:00 2001 +From dce1b102eafcdb2ec305a0cb1fa0dbc0adbb0753 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Wed, 28 Mar 2018 15:10:55 -0500 -Subject: [PATCH 120/413] tracing: Add action comparisons when testing matching +Subject: [PATCH 120/436] tracing: Add action comparisons when testing matching hist triggers Actions also need to be considered when checking for matching triggers diff --git a/kernel/patches-4.14.x-rt/0121-tracing-Make-sure-variable-string-fields-are-NULL-te.patch b/kernel/patches-4.14.x-rt/0121-tracing-Make-sure-variable-string-fields-are-NULL-te.patch index 2741b7268..90f222805 100644 --- a/kernel/patches-4.14.x-rt/0121-tracing-Make-sure-variable-string-fields-are-NULL-te.patch +++ b/kernel/patches-4.14.x-rt/0121-tracing-Make-sure-variable-string-fields-are-NULL-te.patch @@ -1,7 +1,7 @@ -From fb5d4884cb1cfd7c58c4afb46dff91d5fbd7a23e Mon Sep 17 00:00:00 2001 +From 1a75bdba626cffd803b33e1048bd1e9a9ae6def1 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Wed, 28 Mar 2018 15:10:56 -0500 -Subject: [PATCH 121/413] tracing: Make sure variable string fields are +Subject: [PATCH 121/436] tracing: Make sure variable string fields are NULL-terminated The strncpy() currently being used for variable string fields can diff --git a/kernel/patches-4.14.x-rt/0122-block-Shorten-interrupt-disabled-regions.patch b/kernel/patches-4.14.x-rt/0122-block-Shorten-interrupt-disabled-regions.patch index cba7dae99..270083661 100644 --- a/kernel/patches-4.14.x-rt/0122-block-Shorten-interrupt-disabled-regions.patch +++ b/kernel/patches-4.14.x-rt/0122-block-Shorten-interrupt-disabled-regions.patch @@ -1,7 +1,7 @@ -From ccee4234cea2df5d719dbb0b7709260b7a2884e1 Mon Sep 17 00:00:00 2001 +From df7843e9951ba2d3c60cce1e22b16af8313f2e77 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 19:47:02 +0200 -Subject: [PATCH 122/413] block: Shorten interrupt disabled regions +Subject: [PATCH 122/436] 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 @@ -47,10 +47,10 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/block/blk-core.c b/block/blk-core.c -index 68bae6338ad4..2b026f66ecf1 100644 +index 1d27e2a152e0..f71540b98c24 100644 --- a/block/blk-core.c +++ b/block/blk-core.c -@@ -3308,7 +3308,7 @@ static void queue_unplugged(struct request_queue *q, unsigned int depth, +@@ -3309,7 +3309,7 @@ static void queue_unplugged(struct request_queue *q, unsigned int depth, blk_run_queue_async(q); else __blk_run_queue(q); @@ -59,7 +59,7 @@ index 68bae6338ad4..2b026f66ecf1 100644 } static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule) -@@ -3356,7 +3356,6 @@ EXPORT_SYMBOL(blk_check_plugged); +@@ -3357,7 +3357,6 @@ EXPORT_SYMBOL(blk_check_plugged); void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) { struct request_queue *q; @@ -67,7 +67,7 @@ index 68bae6338ad4..2b026f66ecf1 100644 struct request *rq; LIST_HEAD(list); unsigned int depth; -@@ -3376,11 +3375,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) +@@ -3377,11 +3376,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) q = NULL; depth = 0; @@ -79,7 +79,7 @@ index 68bae6338ad4..2b026f66ecf1 100644 while (!list_empty(&list)) { rq = list_entry_rq(list.next); list_del_init(&rq->queuelist); -@@ -3393,7 +3387,7 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) +@@ -3394,7 +3388,7 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) queue_unplugged(q, depth, from_schedule); q = rq->q; depth = 0; @@ -88,7 +88,7 @@ index 68bae6338ad4..2b026f66ecf1 100644 } /* -@@ -3420,8 +3414,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) +@@ -3421,8 +3415,6 @@ void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) */ if (q) queue_unplugged(q, depth, from_schedule); diff --git a/kernel/patches-4.14.x-rt/0123-timekeeping-Split-jiffies-seqlock.patch b/kernel/patches-4.14.x-rt/0123-timekeeping-Split-jiffies-seqlock.patch index ef0dc4081..b8b1f9b93 100644 --- a/kernel/patches-4.14.x-rt/0123-timekeeping-Split-jiffies-seqlock.patch +++ b/kernel/patches-4.14.x-rt/0123-timekeeping-Split-jiffies-seqlock.patch @@ -1,7 +1,7 @@ -From 58adfd3be63c551354a9e2d73cde488d720890a6 Mon Sep 17 00:00:00 2001 +From 06ffc346d257f203c1b00a007133731cc603f1bf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Feb 2013 22:36:59 +0100 -Subject: [PATCH 123/413] timekeeping: Split jiffies seqlock +Subject: [PATCH 123/436] timekeeping: Split jiffies seqlock Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so it can be taken in atomic context on RT. diff --git a/kernel/patches-4.14.x-rt/0124-tracing-Account-for-preempt-off-in-preempt_schedule.patch b/kernel/patches-4.14.x-rt/0124-tracing-Account-for-preempt-off-in-preempt_schedule.patch index 8c12d15cf..e4213d281 100644 --- a/kernel/patches-4.14.x-rt/0124-tracing-Account-for-preempt-off-in-preempt_schedule.patch +++ b/kernel/patches-4.14.x-rt/0124-tracing-Account-for-preempt-off-in-preempt_schedule.patch @@ -1,7 +1,7 @@ -From d0020df0656bca7ba130c14d4132a7bf3992fa4b Mon Sep 17 00:00:00 2001 +From 0e31a3d0f5204bdc91b335b672e3e1a7dd080203 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Thu, 29 Sep 2011 12:24:30 -0500 -Subject: [PATCH 124/413] tracing: Account for preempt off in +Subject: [PATCH 124/436] tracing: Account for preempt off in preempt_schedule() The preempt_schedule() uses the preempt_disable_notrace() version diff --git a/kernel/patches-4.14.x-rt/0125-signal-Revert-ptrace-preempt-magic.patch b/kernel/patches-4.14.x-rt/0125-signal-Revert-ptrace-preempt-magic.patch index 77377c00a..739b59353 100644 --- a/kernel/patches-4.14.x-rt/0125-signal-Revert-ptrace-preempt-magic.patch +++ b/kernel/patches-4.14.x-rt/0125-signal-Revert-ptrace-preempt-magic.patch @@ -1,7 +1,7 @@ -From 32657ae0ca9a7f2e107f08aa68774d1b4f9977c2 Mon Sep 17 00:00:00 2001 +From c36c715e776a551e2d4c618b7c118f1bdfbc6578 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 21 Sep 2011 19:57:12 +0200 -Subject: [PATCH 125/413] signal: Revert ptrace preempt magic +Subject: [PATCH 125/436] signal: Revert ptrace preempt magic Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a diff --git a/kernel/patches-4.14.x-rt/0126-arm-Convert-arm-boot_lock-to-raw.patch b/kernel/patches-4.14.x-rt/0126-arm-Convert-arm-boot_lock-to-raw.patch index 62e4bc558..f9ab8c3b5 100644 --- a/kernel/patches-4.14.x-rt/0126-arm-Convert-arm-boot_lock-to-raw.patch +++ b/kernel/patches-4.14.x-rt/0126-arm-Convert-arm-boot_lock-to-raw.patch @@ -1,7 +1,7 @@ -From 3a404b67776194e86063ef352c7612dd405701f6 Mon Sep 17 00:00:00 2001 +From 2b3df7678b00dcb2ed79934b98dc49dc13a152bb Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Mon, 19 Sep 2011 14:51:14 -0700 -Subject: [PATCH 126/413] arm: Convert arm boot_lock to raw +Subject: [PATCH 126/436] arm: 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. @@ -171,7 +171,7 @@ index f66815c3dd07..00524abd963f 100644 } #endif diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c -index 69df3620eca5..7cc060865c92 100644 +index 1c73694c871a..ac4d2f030b87 100644 --- a/arch/arm/mach-omap2/omap-smp.c +++ b/arch/arm/mach-omap2/omap-smp.c @@ -69,7 +69,7 @@ static const struct omap_smp_config omap5_cfg __initconst = { @@ -183,7 +183,7 @@ index 69df3620eca5..7cc060865c92 100644 void __iomem *omap4_get_scu_base(void) { -@@ -136,8 +136,8 @@ static void omap4_secondary_init(unsigned int cpu) +@@ -177,8 +177,8 @@ static void omap4_secondary_init(unsigned int cpu) /* * Synchronise with the boot thread. */ @@ -194,7 +194,7 @@ index 69df3620eca5..7cc060865c92 100644 } static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) -@@ -150,7 +150,7 @@ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) +@@ -191,7 +191,7 @@ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) * Set synchronisation state between this boot processor * and the secondary one */ @@ -203,7 +203,7 @@ index 69df3620eca5..7cc060865c92 100644 /* * Update the AuxCoreBoot0 with boot state for secondary core. -@@ -229,7 +229,7 @@ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) +@@ -270,7 +270,7 @@ static int omap4_boot_secondary(unsigned int cpu, struct task_struct *idle) * Now the secondary core is starting up let it run its * calibrations, then wait for it to finish */ diff --git a/kernel/patches-4.14.x-rt/0127-arm-kprobe-replace-patch_lock-to-raw-lock.patch b/kernel/patches-4.14.x-rt/0127-arm-kprobe-replace-patch_lock-to-raw-lock.patch index 3451fe864..e9cc19e85 100644 --- a/kernel/patches-4.14.x-rt/0127-arm-kprobe-replace-patch_lock-to-raw-lock.patch +++ b/kernel/patches-4.14.x-rt/0127-arm-kprobe-replace-patch_lock-to-raw-lock.patch @@ -1,7 +1,7 @@ -From 6d1528b116cffde47e314e05c9166dae6fbeefa7 Mon Sep 17 00:00:00 2001 +From 1af30f5fa72038c1dbc9d7613b5d37c19447a1e2 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Thu, 10 Nov 2016 16:17:55 -0800 -Subject: [PATCH 127/413] arm: kprobe: replace patch_lock to raw lock +Subject: [PATCH 127/436] arm: kprobe: replace patch_lock to raw lock When running kprobe on -rt kernel, the below bug is caught: diff --git a/kernel/patches-4.14.x-rt/0128-posix-timers-Prevent-broadcast-signals.patch b/kernel/patches-4.14.x-rt/0128-posix-timers-Prevent-broadcast-signals.patch index 546034fb7..f7ad65c40 100644 --- a/kernel/patches-4.14.x-rt/0128-posix-timers-Prevent-broadcast-signals.patch +++ b/kernel/patches-4.14.x-rt/0128-posix-timers-Prevent-broadcast-signals.patch @@ -1,7 +1,7 @@ -From c058c34e9e18577071d029a5d03d5e4db24c7f57 Mon Sep 17 00:00:00 2001 +From 20358f176e3b515cce079d1e6bdad3d7e2671331 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:29:20 -0500 -Subject: [PATCH 128/413] posix-timers: Prevent broadcast signals +Subject: [PATCH 128/436] posix-timers: Prevent broadcast signals Posix timers should not send broadcast signals and kernel only signals. Prevent it. diff --git a/kernel/patches-4.14.x-rt/0129-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/kernel/patches-4.14.x-rt/0129-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch index d60ef5038..0431bb7ba 100644 --- a/kernel/patches-4.14.x-rt/0129-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/kernel/patches-4.14.x-rt/0129-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,7 +1,7 @@ -From d9e324e732ef78101684a4a5a48ede6404c64ed2 Mon Sep 17 00:00:00 2001 +From 5e3b6c62ec8688834e4a3b4e7adf7eeddffe485f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:56 -0500 -Subject: [PATCH 129/413] signals: Allow rt tasks to cache one sigqueue struct +Subject: [PATCH 129/436] signals: Allow rt tasks to cache one sigqueue struct To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. @@ -54,10 +54,10 @@ index e3a08761eb40..26f3b352b37a 100644 spin_unlock(&sighand->siglock); diff --git a/kernel/fork.c b/kernel/fork.c -index d146f616bf9e..390a401be5d6 100644 +index d45043432b17..c66167f0bba6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -1647,6 +1647,7 @@ static __latent_entropy struct task_struct *copy_process( +@@ -1649,6 +1649,7 @@ static __latent_entropy struct task_struct *copy_process( spin_lock_init(&p->alloc_lock); init_sigpending(&p->pending); diff --git a/kernel/patches-4.14.x-rt/0130-drivers-random-Reduce-preempt-disabled-region.patch b/kernel/patches-4.14.x-rt/0130-drivers-random-Reduce-preempt-disabled-region.patch index d0b7c5274..d6b8699a4 100644 --- a/kernel/patches-4.14.x-rt/0130-drivers-random-Reduce-preempt-disabled-region.patch +++ b/kernel/patches-4.14.x-rt/0130-drivers-random-Reduce-preempt-disabled-region.patch @@ -1,7 +1,7 @@ -From 51e79b022d74c886c89ee4fe02beb03534e409d8 Mon Sep 17 00:00:00 2001 +From a092a1acf45db25402c6fcb4d685a3b2ccb2810d Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:30 -0500 -Subject: [PATCH 130/413] drivers: random: Reduce preempt disabled region +Subject: [PATCH 130/436] drivers: random: Reduce preempt disabled region No need to keep preemption disabled across the whole function. diff --git a/kernel/patches-4.14.x-rt/0131-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch b/kernel/patches-4.14.x-rt/0131-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch index c4b3d77a3..63bc6448f 100644 --- a/kernel/patches-4.14.x-rt/0131-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch +++ b/kernel/patches-4.14.x-rt/0131-ARM-AT91-PIT-Remove-irq-handler-when-clock-event-is-.patch @@ -1,7 +1,7 @@ -From 031780d23867c915c2940c8c04e3b5b7d8e64f49 Mon Sep 17 00:00:00 2001 +From a7c8f4dd78d48d16dc260b06f7932b36afb1c9da Mon Sep 17 00:00:00 2001 From: Benedikt Spranger Date: Sat, 6 Mar 2010 17:47:10 +0100 -Subject: [PATCH 131/413] ARM: AT91: PIT: Remove irq handler when clock event +Subject: [PATCH 131/436] ARM: AT91: PIT: Remove irq handler when clock event is unused MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/kernel/patches-4.14.x-rt/0132-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch b/kernel/patches-4.14.x-rt/0132-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch index 4f023c6be..c742e659d 100644 --- a/kernel/patches-4.14.x-rt/0132-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch +++ b/kernel/patches-4.14.x-rt/0132-clockevents-drivers-timer-atmel-pit-fix-double-free_.patch @@ -1,7 +1,7 @@ -From 8b1d865f827e2b511b58477075b69224044dac32 Mon Sep 17 00:00:00 2001 +From 0506cd98084080be905f7c4f9386159a1d92478f Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 17 Mar 2016 21:09:43 +0100 -Subject: [PATCH 132/413] clockevents/drivers/timer-atmel-pit: fix double +Subject: [PATCH 132/436] clockevents/drivers/timer-atmel-pit: fix double free_irq clockevents_exchange_device() changes the state from detached to shutdown diff --git a/kernel/patches-4.14.x-rt/0133-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/kernel/patches-4.14.x-rt/0133-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch index 135f2661e..80bb1a615 100644 --- a/kernel/patches-4.14.x-rt/0133-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch +++ b/kernel/patches-4.14.x-rt/0133-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch @@ -1,7 +1,7 @@ -From affc78e03e4bff21dad45a0b92770e9398e5e765 Mon Sep 17 00:00:00 2001 +From 8a48b454776f6d49d122e3c5f27e2af8b3788a3e Mon Sep 17 00:00:00 2001 From: Benedikt Spranger Date: Mon, 8 Mar 2010 18:57:04 +0100 -Subject: [PATCH 133/413] clocksource: TCLIB: Allow higher clock rates for +Subject: [PATCH 133/436] clocksource: TCLIB: Allow higher clock rates for clock events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/kernel/patches-4.14.x-rt/0134-suspend-Prevent-might-sleep-splats.patch b/kernel/patches-4.14.x-rt/0134-suspend-Prevent-might-sleep-splats.patch index e891893c9..db7289ab9 100644 --- a/kernel/patches-4.14.x-rt/0134-suspend-Prevent-might-sleep-splats.patch +++ b/kernel/patches-4.14.x-rt/0134-suspend-Prevent-might-sleep-splats.patch @@ -1,7 +1,7 @@ -From 6b88b389d03fc38ef70181df0d0c989e38797e5e Mon Sep 17 00:00:00 2001 +From 3221976759d2966b877de45061807a9acd0a8bcc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 15 Jul 2010 10:29:00 +0200 -Subject: [PATCH 134/413] suspend: Prevent might sleep splats +Subject: [PATCH 134/436] 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/kernel/patches-4.14.x-rt/0135-net-flip-lock-dep-thingy.patch.patch b/kernel/patches-4.14.x-rt/0135-net-flip-lock-dep-thingy.patch.patch index d62780930..19ae45d03 100644 --- a/kernel/patches-4.14.x-rt/0135-net-flip-lock-dep-thingy.patch.patch +++ b/kernel/patches-4.14.x-rt/0135-net-flip-lock-dep-thingy.patch.patch @@ -1,7 +1,7 @@ -From 2d2b36eef64e8ceb75a858944ce1aca8a2b77d00 Mon Sep 17 00:00:00 2001 +From 574fa4ac15af5dbed2d87ae52a5e3f5165fa91d8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 28 Jun 2011 10:59:58 +0200 -Subject: [PATCH 135/413] net-flip-lock-dep-thingy.patch +Subject: [PATCH 135/436] net-flip-lock-dep-thingy.patch ======================================================= [ INFO: possible circular locking dependency detected ] diff --git a/kernel/patches-4.14.x-rt/0136-net-sched-Use-msleep-instead-of-yield.patch b/kernel/patches-4.14.x-rt/0136-net-sched-Use-msleep-instead-of-yield.patch index ac3559697..f03c16502 100644 --- a/kernel/patches-4.14.x-rt/0136-net-sched-Use-msleep-instead-of-yield.patch +++ b/kernel/patches-4.14.x-rt/0136-net-sched-Use-msleep-instead-of-yield.patch @@ -1,7 +1,7 @@ -From 8d1879bd5b22e6343a0eea0c316e941af133cae6 Mon Sep 17 00:00:00 2001 +From 60f58af7faf4d99957af9fe161481c26c1a61c77 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Wed, 5 Mar 2014 00:49:47 +0100 -Subject: [PATCH 136/413] net: sched: Use msleep() instead of yield() +Subject: [PATCH 136/436] net: sched: Use msleep() instead of yield() On PREEMPT_RT enabled systems the interrupt handler run as threads at prio 50 (by default). If a high priority userspace process tries to shut down a busy diff --git a/kernel/patches-4.14.x-rt/0137-net-core-disable-NET_RX_BUSY_POLL.patch b/kernel/patches-4.14.x-rt/0137-net-core-disable-NET_RX_BUSY_POLL.patch index 2cdfe8c83..484bb4d88 100644 --- a/kernel/patches-4.14.x-rt/0137-net-core-disable-NET_RX_BUSY_POLL.patch +++ b/kernel/patches-4.14.x-rt/0137-net-core-disable-NET_RX_BUSY_POLL.patch @@ -1,7 +1,7 @@ -From 11ec37812679939bde72fec16682fab9e6d25771 Mon Sep 17 00:00:00 2001 +From 3178d828bb4c6ea42ee01cc596f35016888c8bd8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 27 May 2017 19:02:06 +0200 -Subject: [PATCH 137/413] net/core: disable NET_RX_BUSY_POLL +Subject: [PATCH 137/436] net/core: disable NET_RX_BUSY_POLL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0138-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch b/kernel/patches-4.14.x-rt/0138-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch index 1f8010dc4..4e2571efe 100644 --- a/kernel/patches-4.14.x-rt/0138-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch +++ b/kernel/patches-4.14.x-rt/0138-x86-ioapic-Do-not-unmask-io_apic-when-interrupt-is-i.patch @@ -1,7 +1,7 @@ -From dae99daa571095fe826bc1b2b4739c2154133849 Mon Sep 17 00:00:00 2001 +From c93de90f6853db768e19b552f1570c47b8c5807c Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:27 -0500 -Subject: [PATCH 138/413] x86/ioapic: Do not unmask io_apic when interrupt is +Subject: [PATCH 138/436] x86/ioapic: Do not unmask io_apic when interrupt is in progress With threaded interrupts we might see an interrupt in progress on diff --git a/kernel/patches-4.14.x-rt/0139-rcu-segcblist-include-rcupdate.h.patch b/kernel/patches-4.14.x-rt/0139-rcu-segcblist-include-rcupdate.h.patch index 7b9ab2e44..81993ec3d 100644 --- a/kernel/patches-4.14.x-rt/0139-rcu-segcblist-include-rcupdate.h.patch +++ b/kernel/patches-4.14.x-rt/0139-rcu-segcblist-include-rcupdate.h.patch @@ -1,7 +1,7 @@ -From 42acc2821f5e4a9f596d81ec24500460a93f61da Mon Sep 17 00:00:00 2001 +From 890704261447021f07d3063eeb779b3f22ac285a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 22 Sep 2017 15:01:46 +0200 -Subject: [PATCH 139/413] rcu/segcblist: include rcupdate.h +Subject: [PATCH 139/436] rcu/segcblist: include rcupdate.h The RT build on ARM complains about non-existing ULONG_CMP_LT. Since rcu_segcblist.c uses that macro it should include the header file. diff --git a/kernel/patches-4.14.x-rt/0140-printk-Add-a-printk-kill-switch.patch b/kernel/patches-4.14.x-rt/0140-printk-Add-a-printk-kill-switch.patch index c12d7316c..a161ec0ea 100644 --- a/kernel/patches-4.14.x-rt/0140-printk-Add-a-printk-kill-switch.patch +++ b/kernel/patches-4.14.x-rt/0140-printk-Add-a-printk-kill-switch.patch @@ -1,20 +1,21 @@ -From 3b5c98e34ec1c0396afdd58a72f2446262cc5d30 Mon Sep 17 00:00:00 2001 +From 0235064fd34cd27562108649f8ebb4f8ae8fd27e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 22 Jul 2011 17:58:40 +0200 -Subject: [PATCH 140/413] printk: Add a printk kill switch +Subject: [PATCH 140/436] printk: Add a printk kill switch Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that it does not dead-lock with the early printk code. Signed-off-by: Thomas Gleixner --- - include/linux/printk.h | 2 ++ - kernel/printk/printk.c | 79 +++++++++++++++++++++++++++++++----------- - kernel/watchdog_hld.c | 10 ++++++ - 3 files changed, 71 insertions(+), 20 deletions(-) + include/linux/printk.h | 2 ++ + kernel/printk/printk.c | 20 ------------- + kernel/printk/printk_safe.c | 60 +++++++++++++++++++++++++++++++++++++ + kernel/watchdog_hld.c | 10 +++++++ + 4 files changed, 72 insertions(+), 20 deletions(-) diff --git a/include/linux/printk.h b/include/linux/printk.h -index 335926039adc..2289a26bbf68 100644 +index 6106befed756..1dba9cb7b91b 100644 --- a/include/linux/printk.h +++ b/include/linux/printk.h @@ -142,9 +142,11 @@ struct va_format { @@ -30,12 +31,51 @@ index 335926039adc..2289a26bbf68 100644 #ifdef CONFIG_PRINTK_NMI diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 512f7c2baedd..5b259bff7014 100644 +index f0223a7d9ed1..fec67b9d0fad 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -400,6 +400,58 @@ DEFINE_RAW_SPINLOCK(logbuf_lock); - printk_safe_exit_irqrestore(flags); \ - } while (0) +@@ -1872,26 +1872,6 @@ static bool suppress_message_printing(int level) { return false; } + + #endif /* CONFIG_PRINTK */ + +-#ifdef CONFIG_EARLY_PRINTK +-struct console *early_console; +- +-asmlinkage __visible void early_printk(const char *fmt, ...) +-{ +- va_list ap; +- char buf[512]; +- int n; +- +- if (!early_console) +- return; +- +- va_start(ap, fmt); +- n = vscnprintf(buf, sizeof(buf), fmt, ap); +- va_end(ap); +- +- early_console->write(early_console, buf, n); +-} +-#endif +- + static int __add_preferred_console(char *name, int idx, char *options, + char *brl_options) + { +diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c +index 64f8046586b6..f0855cecec9d 100644 +--- a/kernel/printk/printk_safe.c ++++ b/kernel/printk/printk_safe.c +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + + #include "internal.h" + +@@ -373,8 +374,67 @@ void __printk_safe_exit(void) + this_cpu_dec(printk_context); + } +#ifdef CONFIG_EARLY_PRINTK +struct console *early_console; @@ -89,13 +129,8 @@ index 512f7c2baedd..5b259bff7014 100644 +} +#endif + - #ifdef CONFIG_PRINTK - DECLARE_WAIT_QUEUE_HEAD(log_wait); - /* the next printk record to read by syslog(READ) or /proc/kmsg */ -@@ -1692,6 +1744,13 @@ asmlinkage int vprintk_emit(int facility, int level, - int printed_len; - bool in_sched = false; - + __printf(1, 0) int vprintk_func(const char *fmt, va_list args) + { + /* + * Fall back to early_printk if a debugging subsystem has + * killed printk output @@ -103,38 +138,11 @@ index 512f7c2baedd..5b259bff7014 100644 + if (unlikely(forced_early_printk(fmt, args))) + return 1; + - if (level == LOGLEVEL_SCHED) { - level = LOGLEVEL_DEFAULT; - in_sched = true; -@@ -1863,26 +1922,6 @@ static bool suppress_message_printing(int level) { return false; } - - #endif /* CONFIG_PRINTK */ - --#ifdef CONFIG_EARLY_PRINTK --struct console *early_console; -- --asmlinkage __visible void early_printk(const char *fmt, ...) --{ -- va_list ap; -- char buf[512]; -- int n; -- -- if (!early_console) -- return; -- -- va_start(ap, fmt); -- n = vscnprintf(buf, sizeof(buf), fmt, ap); -- va_end(ap); -- -- early_console->write(early_console, buf, n); --} --#endif -- - static int __add_preferred_console(char *name, int idx, char *options, - char *brl_options) - { + /* + * Try to use the main logbuf even in NMI. But avoid calling console + * drivers that might have their own locks. diff --git a/kernel/watchdog_hld.c b/kernel/watchdog_hld.c -index e449a23e9d59..5cdc09411b85 100644 +index 4ece6028007a..210dccc57c04 100644 --- a/kernel/watchdog_hld.c +++ b/kernel/watchdog_hld.c @@ -24,6 +24,8 @@ static DEFINE_PER_CPU(bool, hard_watchdog_warn); diff --git a/kernel/patches-4.14.x-rt/0141-printk-Add-force_early_printk-boot-param-to-help-wit.patch b/kernel/patches-4.14.x-rt/0141-printk-Add-force_early_printk-boot-param-to-help-wit.patch index e7dfa9150..2e57082e8 100644 --- a/kernel/patches-4.14.x-rt/0141-printk-Add-force_early_printk-boot-param-to-help-wit.patch +++ b/kernel/patches-4.14.x-rt/0141-printk-Add-force_early_printk-boot-param-to-help-wit.patch @@ -1,7 +1,7 @@ -From 29214cb68d4a0a56ac492c3925184db09a8a6d5a Mon Sep 17 00:00:00 2001 +From bfac03611e27998e340d9bdee3a11f175ae9bc81 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 2 Sep 2011 14:41:29 +0200 -Subject: [PATCH 141/413] printk: Add "force_early_printk" boot param to help +Subject: [PATCH 141/436] printk: Add "force_early_printk" boot param to help with debugging Gives me an option to screw printk and actually see what the machine @@ -12,14 +12,14 @@ Link: http://lkml.kernel.org/r/1314967289.1301.11.camel@twins Signed-off-by: Thomas Gleixner Link: http://lkml.kernel.org/n/tip-ykb97nsfmobq44xketrxs977@git.kernel.org --- - kernel/printk/printk.c | 7 +++++++ + kernel/printk/printk_safe.c | 7 +++++++ 1 file changed, 7 insertions(+) -diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 5b259bff7014..1da739f39a3d 100644 ---- a/kernel/printk/printk.c -+++ b/kernel/printk/printk.c -@@ -430,6 +430,13 @@ asmlinkage void early_printk(const char *fmt, ...) +diff --git a/kernel/printk/printk_safe.c b/kernel/printk/printk_safe.c +index f0855cecec9d..a24e16bef51c 100644 +--- a/kernel/printk/printk_safe.c ++++ b/kernel/printk/printk_safe.c +@@ -404,6 +404,13 @@ asmlinkage void early_printk(const char *fmt, ...) */ static bool __read_mostly printk_killswitch; diff --git a/kernel/patches-4.14.x-rt/0142-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/kernel/patches-4.14.x-rt/0142-rt-Provide-PREEMPT_RT_BASE-config-switch.patch index ee204bffc..bc461f3e8 100644 --- a/kernel/patches-4.14.x-rt/0142-rt-Provide-PREEMPT_RT_BASE-config-switch.patch +++ b/kernel/patches-4.14.x-rt/0142-rt-Provide-PREEMPT_RT_BASE-config-switch.patch @@ -1,7 +1,7 @@ -From d67c8c2ad5738f41476f7e6b9ea005879e2ff591 Mon Sep 17 00:00:00 2001 +From 441b84f2919512d6d0fb36030865721fc698f233 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 17 Jun 2011 12:39:57 +0200 -Subject: [PATCH 142/413] rt: Provide PREEMPT_RT_BASE config switch +Subject: [PATCH 142/436] rt: Provide PREEMPT_RT_BASE config switch Introduce PREEMPT_RT_BASE which enables parts of PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT diff --git a/kernel/patches-4.14.x-rt/0143-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/kernel/patches-4.14.x-rt/0143-kconfig-Disable-config-options-which-are-not-RT-comp.patch index 1038931eb..c8d57b890 100644 --- a/kernel/patches-4.14.x-rt/0143-kconfig-Disable-config-options-which-are-not-RT-comp.patch +++ b/kernel/patches-4.14.x-rt/0143-kconfig-Disable-config-options-which-are-not-RT-comp.patch @@ -1,7 +1,7 @@ -From 199d6d178f032f6c96f749cb130501155a916530 Mon Sep 17 00:00:00 2001 +From 2859f3f07fcaad82f07c9bbf2e05e88798b9ac95 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 24 Jul 2011 12:11:43 +0200 -Subject: [PATCH 143/413] kconfig: Disable config options which are not RT +Subject: [PATCH 143/436] kconfig: Disable config options which are not RT compatible Disable stuff which is known to have issues on RT @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/Kconfig b/arch/Kconfig -index 4e01862f58e4..ff8ae8cdaaf7 100644 +index 40dc31fea90c..7c6108479209 100644 --- a/arch/Kconfig +++ b/arch/Kconfig @@ -20,6 +20,7 @@ config OPROFILE diff --git a/kernel/patches-4.14.x-rt/0144-kconfig-Add-PREEMPT_RT_FULL.patch b/kernel/patches-4.14.x-rt/0144-kconfig-Add-PREEMPT_RT_FULL.patch index 1aa73bd58..be29ad77d 100644 --- a/kernel/patches-4.14.x-rt/0144-kconfig-Add-PREEMPT_RT_FULL.patch +++ b/kernel/patches-4.14.x-rt/0144-kconfig-Add-PREEMPT_RT_FULL.patch @@ -1,7 +1,7 @@ -From da1e8eca231faa6f336291940045ed3038526bfa Mon Sep 17 00:00:00 2001 +From c4ff59e78aca51bc89bbec3ba988c470376458c0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 14:58:57 +0200 -Subject: [PATCH 144/413] kconfig: Add PREEMPT_RT_FULL +Subject: [PATCH 144/436] kconfig: Add PREEMPT_RT_FULL Introduce the final symbol for PREEMPT_RT_FULL. diff --git a/kernel/patches-4.14.x-rt/0145-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch b/kernel/patches-4.14.x-rt/0145-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch index de6249882..d9a1bc8bd 100644 --- a/kernel/patches-4.14.x-rt/0145-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch +++ b/kernel/patches-4.14.x-rt/0145-bug-BUG_ON-WARN_ON-variants-dependend-on-RT-RT.patch @@ -1,7 +1,7 @@ -From 0576be5437acfaa11cfb642b3540c6bfcd0a393e Mon Sep 17 00:00:00 2001 +From 61c394d85c8387f574eab1bd21671b6c20292203 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:58 -0500 -Subject: [PATCH 145/413] bug: BUG_ON/WARN_ON variants dependend on RT/!RT +Subject: [PATCH 145/436] bug: BUG_ON/WARN_ON variants dependend on RT/!RT Introduce RT/NON-RT WARN/BUG statements to avoid ifdefs in the code. diff --git a/kernel/patches-4.14.x-rt/0146-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch b/kernel/patches-4.14.x-rt/0146-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch index 73332fae2..f200c69e7 100644 --- a/kernel/patches-4.14.x-rt/0146-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch +++ b/kernel/patches-4.14.x-rt/0146-iommu-amd-Use-WARN_ON_NORT-in-__attach_device.patch @@ -1,7 +1,7 @@ -From c2b6f6ff5194b5c76eea57cff6a25611129aa6e4 Mon Sep 17 00:00:00 2001 +From 5373529780f4060b2d44529f397b720e02c8b623 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 27 Feb 2016 10:22:23 +0100 -Subject: [PATCH 146/413] iommu/amd: Use WARN_ON_NORT in __attach_device() +Subject: [PATCH 146/436] iommu/amd: Use WARN_ON_NORT in __attach_device() RT does not disable interrupts here, but the protection is still correct. Fixup the WARN_ON so it won't yell on RT. diff --git a/kernel/patches-4.14.x-rt/0147-rt-local_irq_-variants-depending-on-RT-RT.patch b/kernel/patches-4.14.x-rt/0147-rt-local_irq_-variants-depending-on-RT-RT.patch index 49cefa04e..85b79d6b2 100644 --- a/kernel/patches-4.14.x-rt/0147-rt-local_irq_-variants-depending-on-RT-RT.patch +++ b/kernel/patches-4.14.x-rt/0147-rt-local_irq_-variants-depending-on-RT-RT.patch @@ -1,7 +1,7 @@ -From 390089fdda959fa80d82a9be49d46ef817e37c24 Mon Sep 17 00:00:00 2001 +From 6a9a1b0c72f50ff01837c25b17a2770af391503c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Jul 2009 22:34:14 +0200 -Subject: [PATCH 147/413] rt: local_irq_* variants depending on RT/!RT +Subject: [PATCH 147/436] 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/kernel/patches-4.14.x-rt/0148-preempt-Provide-preempt_-_-no-rt-variants.patch b/kernel/patches-4.14.x-rt/0148-preempt-Provide-preempt_-_-no-rt-variants.patch index a97e15267..f494334f0 100644 --- a/kernel/patches-4.14.x-rt/0148-preempt-Provide-preempt_-_-no-rt-variants.patch +++ b/kernel/patches-4.14.x-rt/0148-preempt-Provide-preempt_-_-no-rt-variants.patch @@ -1,7 +1,7 @@ -From 68ab2ca4f0c37128003be211a13ffa1a77efa27a Mon Sep 17 00:00:00 2001 +From 9091afcc9d7fa601266f36acb40866fe604d0a46 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jul 2009 12:38:56 +0200 -Subject: [PATCH 148/413] preempt: Provide preempt_*_(no)rt variants +Subject: [PATCH 148/436] 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/kernel/patches-4.14.x-rt/0149-futex-workaround-migrate_disable-enable-in-different.patch b/kernel/patches-4.14.x-rt/0149-futex-workaround-migrate_disable-enable-in-different.patch index 83e6ec749..209a3b2e5 100644 --- a/kernel/patches-4.14.x-rt/0149-futex-workaround-migrate_disable-enable-in-different.patch +++ b/kernel/patches-4.14.x-rt/0149-futex-workaround-migrate_disable-enable-in-different.patch @@ -1,7 +1,7 @@ -From 06ccd7bf2ef5a5a0a5b2763085a3dfd3b847ab5b Mon Sep 17 00:00:00 2001 +From 9fde02e2ee2dd2989409a6c654ca905383b0839f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Mar 2017 14:23:35 +0100 -Subject: [PATCH 149/413] futex: workaround migrate_disable/enable in different +Subject: [PATCH 149/436] futex: workaround migrate_disable/enable in different context migrate_disable()/migrate_enable() takes a different path in atomic() vs diff --git a/kernel/patches-4.14.x-rt/0150-rt-Add-local-irq-locks.patch b/kernel/patches-4.14.x-rt/0150-rt-Add-local-irq-locks.patch index 3c5a9b7cd..0d934d0a1 100644 --- a/kernel/patches-4.14.x-rt/0150-rt-Add-local-irq-locks.patch +++ b/kernel/patches-4.14.x-rt/0150-rt-Add-local-irq-locks.patch @@ -1,7 +1,7 @@ -From e5580c13b1cb3b7effa0ab3c3dd46d9facd80010 Mon Sep 17 00:00:00 2001 +From e2de9a0e8ca83e213a95072dfededd6bc823081a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 20 Jun 2011 09:03:47 +0200 -Subject: [PATCH 150/413] rt: Add local irq locks +Subject: [PATCH 150/436] rt: Add local irq locks Introduce locallock. For !RT this maps to preempt_disable()/ local_irq_disable() so there is not much that changes. For RT this will diff --git a/kernel/patches-4.14.x-rt/0151-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch b/kernel/patches-4.14.x-rt/0151-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch index dc5bc133d..0a2f0aee2 100644 --- a/kernel/patches-4.14.x-rt/0151-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch +++ b/kernel/patches-4.14.x-rt/0151-ata-Do-not-disable-interrupts-in-ide-code-for-preemp.patch @@ -1,7 +1,7 @@ -From c54d10c81e83b8ad824e5534585cf770345cb99e Mon Sep 17 00:00:00 2001 +From 9a6df95171f7979ec424d911855ace06d7b4120d Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 3 Jul 2009 08:44:29 -0500 -Subject: [PATCH 151/413] ata: Do not disable interrupts in ide code for +Subject: [PATCH 151/436] ata: Do not disable interrupts in ide code for preempt-rt Use the local_irq_*_nort variants. diff --git a/kernel/patches-4.14.x-rt/0152-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch b/kernel/patches-4.14.x-rt/0152-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch index 3c5c5c732..355e2a450 100644 --- a/kernel/patches-4.14.x-rt/0152-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch +++ b/kernel/patches-4.14.x-rt/0152-ide-Do-not-disable-interrupts-for-PREEMPT-RT.patch @@ -1,7 +1,7 @@ -From 78f30960840658bff95158e5be29429678b68b05 Mon Sep 17 00:00:00 2001 +From 5aca538e96d7244470e3c82802ad9fb09477c5db Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:16 -0500 -Subject: [PATCH 152/413] ide: Do not disable interrupts for PREEMPT-RT +Subject: [PATCH 152/436] ide: Do not disable interrupts for PREEMPT-RT Use the local_irq_*_nort variants. diff --git a/kernel/patches-4.14.x-rt/0153-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch b/kernel/patches-4.14.x-rt/0153-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch index 7e7c403ad..86cdadf83 100644 --- a/kernel/patches-4.14.x-rt/0153-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch +++ b/kernel/patches-4.14.x-rt/0153-infiniband-Mellanox-IB-driver-patch-use-_nort-primit.patch @@ -1,7 +1,7 @@ -From 663fe2aadfcaabdf239cfdfffe3c66a26ddc751b Mon Sep 17 00:00:00 2001 +From b3d594f3d3653cb8fb1190c5e910b66742fda270 Mon Sep 17 00:00:00 2001 From: Sven-Thorsten Dietrich Date: Fri, 3 Jul 2009 08:30:35 -0500 -Subject: [PATCH 153/413] infiniband: Mellanox IB driver patch use _nort() +Subject: [PATCH 153/436] infiniband: Mellanox IB driver patch use _nort() primitives Fixes in_atomic stack-dump, when Mellanox module is loaded into the RT diff --git a/kernel/patches-4.14.x-rt/0154-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch b/kernel/patches-4.14.x-rt/0154-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch index 5c86892c3..571b3893a 100644 --- a/kernel/patches-4.14.x-rt/0154-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch +++ b/kernel/patches-4.14.x-rt/0154-input-gameport-Do-not-disable-interrupts-on-PREEMPT_.patch @@ -1,7 +1,7 @@ -From 9c0f31a117bdc257012d65b9d769e9301bf95478 Mon Sep 17 00:00:00 2001 +From 1622db186dcb64c3e5e420f29b3acfaa4b22e940 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:16 -0500 -Subject: [PATCH 154/413] input: gameport: Do not disable interrupts on +Subject: [PATCH 154/436] input: gameport: Do not disable interrupts on PREEMPT_RT Use the _nort() primitives. diff --git a/kernel/patches-4.14.x-rt/0155-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch b/kernel/patches-4.14.x-rt/0155-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch index 845d36169..5db2162bf 100644 --- a/kernel/patches-4.14.x-rt/0155-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch +++ b/kernel/patches-4.14.x-rt/0155-core-Do-not-disable-interrupts-on-RT-in-kernel-users.patch @@ -1,7 +1,7 @@ -From d605b032a96d481dbaf60beeb0e8d7477e46b82b Mon Sep 17 00:00:00 2001 +From 74e20d3d1a128bf920a856120d4bb172b239e6b9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Jul 2009 23:06:05 +0200 -Subject: [PATCH 155/413] core: Do not disable interrupts on RT in +Subject: [PATCH 155/436] 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/kernel/patches-4.14.x-rt/0156-usb-Use-_nort-in-giveback-function.patch b/kernel/patches-4.14.x-rt/0156-usb-Use-_nort-in-giveback-function.patch index 2e4c10c63..a6b694f31 100644 --- a/kernel/patches-4.14.x-rt/0156-usb-Use-_nort-in-giveback-function.patch +++ b/kernel/patches-4.14.x-rt/0156-usb-Use-_nort-in-giveback-function.patch @@ -1,7 +1,7 @@ -From 9d7f256f26ee2247b975e14a0ee61235d33334cf Mon Sep 17 00:00:00 2001 +From bfd6b93bf4f808c0645ba538eeaba459ddf9f2fd Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 8 Nov 2013 17:34:54 +0100 -Subject: [PATCH 156/413] usb: Use _nort in giveback function +Subject: [PATCH 156/436] usb: Use _nort in giveback function Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet context") I see diff --git a/kernel/patches-4.14.x-rt/0157-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/kernel/patches-4.14.x-rt/0157-mm-scatterlist-Do-not-disable-irqs-on-RT.patch index 043d8990d..d3dc64981 100644 --- a/kernel/patches-4.14.x-rt/0157-mm-scatterlist-Do-not-disable-irqs-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0157-mm-scatterlist-Do-not-disable-irqs-on-RT.patch @@ -1,7 +1,7 @@ -From a275a4f284bbe53d927bc62394983a23e1cefe4c Mon Sep 17 00:00:00 2001 +From aca7d1aae1218a559831b8bdb735fab0cc8154bd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:34 -0500 -Subject: [PATCH 157/413] mm/scatterlist: Do not disable irqs on RT +Subject: [PATCH 157/436] mm/scatterlist: Do not disable irqs on RT For -RT it is enough to keep pagefault disabled (which is currently handled by kmap_atomic()). diff --git a/kernel/patches-4.14.x-rt/0158-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch b/kernel/patches-4.14.x-rt/0158-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch index 1c70ec5a9..fc38a72c7 100644 --- a/kernel/patches-4.14.x-rt/0158-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch +++ b/kernel/patches-4.14.x-rt/0158-mm-workingset-Do-not-protect-workingset_shadow_nodes.patch @@ -1,7 +1,7 @@ -From 414bc4726e63df9af453ded6613dd7083c3388a7 Mon Sep 17 00:00:00 2001 +From b8afa2c4be2fe3a3f4bdbe539609cd529c092a9c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Jan 2015 17:19:44 +0100 -Subject: [PATCH 158/413] mm/workingset: Do not protect workingset_shadow_nodes +Subject: [PATCH 158/436] mm/workingset: Do not protect workingset_shadow_nodes with irq off workingset_shadow_nodes is protected by local_irq_disable(). Some users diff --git a/kernel/patches-4.14.x-rt/0159-signal-Make-__lock_task_sighand-RT-aware.patch b/kernel/patches-4.14.x-rt/0159-signal-Make-__lock_task_sighand-RT-aware.patch index 067705089..e22a74f35 100644 --- a/kernel/patches-4.14.x-rt/0159-signal-Make-__lock_task_sighand-RT-aware.patch +++ b/kernel/patches-4.14.x-rt/0159-signal-Make-__lock_task_sighand-RT-aware.patch @@ -1,7 +1,7 @@ -From 33ddd963cffc0f9b25dbfec2e32e281284a7e7ce Mon Sep 17 00:00:00 2001 +From a25476cf82b2a067d4d9685498ea5fa8ef423af1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 22 Jul 2011 08:07:08 +0200 -Subject: [PATCH 159/413] signal: Make __lock_task_sighand() RT aware +Subject: [PATCH 159/436] signal: Make __lock_task_sighand() RT aware local_irq_save() + spin_lock(&sighand->siglock) does not work on -RT. Use the nort variants. diff --git a/kernel/patches-4.14.x-rt/0160-signal-x86-Delay-calling-signals-in-atomic.patch b/kernel/patches-4.14.x-rt/0160-signal-x86-Delay-calling-signals-in-atomic.patch index 0938d4d30..24bb58e0f 100644 --- a/kernel/patches-4.14.x-rt/0160-signal-x86-Delay-calling-signals-in-atomic.patch +++ b/kernel/patches-4.14.x-rt/0160-signal-x86-Delay-calling-signals-in-atomic.patch @@ -1,7 +1,7 @@ -From 56c536d8a5703cbc70180abb4bdc1ad4e57f02fb Mon Sep 17 00:00:00 2001 +From 336ee5c72cf0631eab96cfac163dde570c9f36e8 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 160/413] signal/x86: Delay calling signals in atomic +Subject: [PATCH 160/436] 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/kernel/patches-4.14.x-rt/0161-x86-signal-delay-calling-signals-on-32bit.patch b/kernel/patches-4.14.x-rt/0161-x86-signal-delay-calling-signals-on-32bit.patch index 33b876734..c948c53d1 100644 --- a/kernel/patches-4.14.x-rt/0161-x86-signal-delay-calling-signals-on-32bit.patch +++ b/kernel/patches-4.14.x-rt/0161-x86-signal-delay-calling-signals-on-32bit.patch @@ -1,7 +1,7 @@ -From d83e00d620794438af2d5fa2067540d963cb71c5 Mon Sep 17 00:00:00 2001 +From 68abdeec10ab458a3360e7975d489f6c21431a51 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Thu, 10 Dec 2015 10:58:51 -0800 -Subject: [PATCH 161/413] x86/signal: delay calling signals on 32bit +Subject: [PATCH 161/436] x86/signal: delay calling signals on 32bit When running some ptrace single step tests on x86-32 machine, the below problem is triggered: diff --git a/kernel/patches-4.14.x-rt/0162-net-wireless-Use-WARN_ON_NORT.patch b/kernel/patches-4.14.x-rt/0162-net-wireless-Use-WARN_ON_NORT.patch index f7e79dc3d..736be5add 100644 --- a/kernel/patches-4.14.x-rt/0162-net-wireless-Use-WARN_ON_NORT.patch +++ b/kernel/patches-4.14.x-rt/0162-net-wireless-Use-WARN_ON_NORT.patch @@ -1,7 +1,7 @@ -From d32055f20aec6d1fd9e6e0ce12d248961b42c398 Mon Sep 17 00:00:00 2001 +From ebb738bfcca93abc4ee36273d0be574bd314d83d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jul 2011 21:05:33 +0200 -Subject: [PATCH 162/413] net/wireless: Use WARN_ON_NORT() +Subject: [PATCH 162/436] net/wireless: Use WARN_ON_NORT() The softirq counter is meaningless on RT, so the check triggers a false positive. diff --git a/kernel/patches-4.14.x-rt/0163-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/kernel/patches-4.14.x-rt/0163-buffer_head-Replace-bh_uptodate_lock-for-rt.patch index df52bc981..95a18182b 100644 --- a/kernel/patches-4.14.x-rt/0163-buffer_head-Replace-bh_uptodate_lock-for-rt.patch +++ b/kernel/patches-4.14.x-rt/0163-buffer_head-Replace-bh_uptodate_lock-for-rt.patch @@ -1,7 +1,7 @@ -From b1b69a9f1dc6840bba68fa412c4671d21464fc5f Mon Sep 17 00:00:00 2001 +From 6973519ec51a0deb81b05b13a2a7356f9526634b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 09:18:52 +0100 -Subject: [PATCH 163/413] buffer_head: Replace bh_uptodate_lock for -rt +Subject: [PATCH 163/436] 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/kernel/patches-4.14.x-rt/0164-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/kernel/patches-4.14.x-rt/0164-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch index afe2a2a66..4d3380294 100644 --- a/kernel/patches-4.14.x-rt/0164-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch +++ b/kernel/patches-4.14.x-rt/0164-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch @@ -1,7 +1,7 @@ -From bb7c12780e572adc307d4982f9e565482fe064f7 Mon Sep 17 00:00:00 2001 +From 8749dbeb5c1c05ebd67fb5d17b083cc1e1196be0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 10:11:25 +0100 -Subject: [PATCH 164/413] fs: jbd/jbd2: Make state lock and journal head lock +Subject: [PATCH 164/436] fs: jbd/jbd2: Make state lock and journal head lock rt safe bit_spin_locks break under RT. diff --git a/kernel/patches-4.14.x-rt/0165-list_bl-Make-list-head-locking-RT-safe.patch b/kernel/patches-4.14.x-rt/0165-list_bl-Make-list-head-locking-RT-safe.patch index 2cf66c1d6..c9b26ab12 100644 --- a/kernel/patches-4.14.x-rt/0165-list_bl-Make-list-head-locking-RT-safe.patch +++ b/kernel/patches-4.14.x-rt/0165-list_bl-Make-list-head-locking-RT-safe.patch @@ -1,7 +1,7 @@ -From acf0c7e5add6daa111882b9f83fadeaf22be984f Mon Sep 17 00:00:00 2001 +From 8b01af8635e6676e99d6fa3305e3b9dd9907ee5f Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Fri, 21 Jun 2013 15:07:25 -0400 -Subject: [PATCH 165/413] list_bl: Make list head locking RT safe +Subject: [PATCH 165/436] list_bl: Make list head locking RT safe As per changes in include/linux/jbd_common.h for avoiding the bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal diff --git a/kernel/patches-4.14.x-rt/0166-list_bl-fixup-bogus-lockdep-warning.patch b/kernel/patches-4.14.x-rt/0166-list_bl-fixup-bogus-lockdep-warning.patch index 3d830f976..7b17dc99b 100644 --- a/kernel/patches-4.14.x-rt/0166-list_bl-fixup-bogus-lockdep-warning.patch +++ b/kernel/patches-4.14.x-rt/0166-list_bl-fixup-bogus-lockdep-warning.patch @@ -1,7 +1,7 @@ -From 2febfa6414d89785e14b4debae3729114450bb81 Mon Sep 17 00:00:00 2001 +From 357db022aeb9a8767fccb65890002f8bc9a5c831 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 31 Mar 2016 00:04:25 -0500 -Subject: [PATCH 166/413] list_bl: fixup bogus lockdep warning +Subject: [PATCH 166/436] list_bl: fixup bogus lockdep warning At first glance, the use of 'static inline' seems appropriate for INIT_HLIST_BL_HEAD(). diff --git a/kernel/patches-4.14.x-rt/0167-genirq-Disable-irqpoll-on-rt.patch b/kernel/patches-4.14.x-rt/0167-genirq-Disable-irqpoll-on-rt.patch index 345e5a3de..f1306fa94 100644 --- a/kernel/patches-4.14.x-rt/0167-genirq-Disable-irqpoll-on-rt.patch +++ b/kernel/patches-4.14.x-rt/0167-genirq-Disable-irqpoll-on-rt.patch @@ -1,7 +1,7 @@ -From fcdecf2d2f78c0041a1b2e7c23120491dd5fd5ea Mon Sep 17 00:00:00 2001 +From ea8fa988d692653f08b0850f3017f154b444ae8e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:57 -0500 -Subject: [PATCH 167/413] genirq: Disable irqpoll on -rt +Subject: [PATCH 167/436] genirq: Disable irqpoll on -rt Creates long latencies for no value diff --git a/kernel/patches-4.14.x-rt/0168-genirq-Force-interrupt-thread-on-RT.patch b/kernel/patches-4.14.x-rt/0168-genirq-Force-interrupt-thread-on-RT.patch index 24fb60b84..c92068376 100644 --- a/kernel/patches-4.14.x-rt/0168-genirq-Force-interrupt-thread-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0168-genirq-Force-interrupt-thread-on-RT.patch @@ -1,7 +1,7 @@ -From e463e262439aef3e494b57754a697cf7b170e98d Mon Sep 17 00:00:00 2001 +From 94e8a57c110d8d4d85abd3c0d1302a30d5ee6e3d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 3 Apr 2011 11:57:29 +0200 -Subject: [PATCH 168/413] genirq: Force interrupt thread on RT +Subject: [PATCH 168/436] genirq: Force interrupt thread on RT Force threaded_irqs and optimize the code (force_irqthreads) in regard to this. diff --git a/kernel/patches-4.14.x-rt/0169-drivers-net-vortex-fix-locking-issues.patch b/kernel/patches-4.14.x-rt/0169-drivers-net-vortex-fix-locking-issues.patch index 83a767470..7156be14f 100644 --- a/kernel/patches-4.14.x-rt/0169-drivers-net-vortex-fix-locking-issues.patch +++ b/kernel/patches-4.14.x-rt/0169-drivers-net-vortex-fix-locking-issues.patch @@ -1,7 +1,7 @@ -From 81e793dc9d28b9968903766466d5f68e88419a6c Mon Sep 17 00:00:00 2001 +From 2270276c8849c081474fed7418d9056ff948f6b9 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 3 Jul 2009 08:30:00 -0500 -Subject: [PATCH 169/413] drivers/net: vortex fix locking issues +Subject: [PATCH 169/436] drivers/net: vortex fix locking issues Argh, cut and paste wasn't enough... diff --git a/kernel/patches-4.14.x-rt/0170-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/kernel/patches-4.14.x-rt/0170-mm-page_alloc-rt-friendly-per-cpu-pages.patch index 7c9bbd613..4a6aa1ca7 100644 --- a/kernel/patches-4.14.x-rt/0170-mm-page_alloc-rt-friendly-per-cpu-pages.patch +++ b/kernel/patches-4.14.x-rt/0170-mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -1,7 +1,7 @@ -From d0c71e65d57140421324065cbbfb34d8eeaae9f4 Mon Sep 17 00:00:00 2001 +From f9eea1ea07cfd4a0c1c898839ca5863823d061d6 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:37 -0500 -Subject: [PATCH 170/413] mm: page_alloc: rt-friendly per-cpu pages +Subject: [PATCH 170/436] 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/kernel/patches-4.14.x-rt/0171-mm-page_alloc-Reduce-lock-sections-further.patch b/kernel/patches-4.14.x-rt/0171-mm-page_alloc-Reduce-lock-sections-further.patch index 7468da59f..945dacb42 100644 --- a/kernel/patches-4.14.x-rt/0171-mm-page_alloc-Reduce-lock-sections-further.patch +++ b/kernel/patches-4.14.x-rt/0171-mm-page_alloc-Reduce-lock-sections-further.patch @@ -1,7 +1,7 @@ -From ff3fa40e097c563abc5166a2c77e95e3cd1076e3 Mon Sep 17 00:00:00 2001 +From 2614b249f9c13d703a2ab0177ac517a6e11c57bf Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 3 Jul 2009 08:44:37 -0500 -Subject: [PATCH 171/413] mm: page_alloc: Reduce lock sections further +Subject: [PATCH 171/436] 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/kernel/patches-4.14.x-rt/0172-mm-swap-Convert-to-percpu-locked.patch b/kernel/patches-4.14.x-rt/0172-mm-swap-Convert-to-percpu-locked.patch index 52b3f6fd8..b4f07aca8 100644 --- a/kernel/patches-4.14.x-rt/0172-mm-swap-Convert-to-percpu-locked.patch +++ b/kernel/patches-4.14.x-rt/0172-mm-swap-Convert-to-percpu-locked.patch @@ -1,7 +1,7 @@ -From 02af8f2883cde6ef4ebeebed21d1b80ab1283c73 Mon Sep 17 00:00:00 2001 +From 412001f6cccbb9adba5f7a2b866b9f1d416f7fa4 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:51 -0500 -Subject: [PATCH 172/413] mm/swap: Convert to percpu locked +Subject: [PATCH 172/436] mm/swap: Convert to percpu locked Replace global locks (get_cpu + local_irq_save) with "local_locks()". Currently there is one of for "rotate" and one for "swap". diff --git a/kernel/patches-4.14.x-rt/0173-mm-perform-lru_add_drain_all-remotely.patch b/kernel/patches-4.14.x-rt/0173-mm-perform-lru_add_drain_all-remotely.patch index 1291fcec0..b21cd9d6f 100644 --- a/kernel/patches-4.14.x-rt/0173-mm-perform-lru_add_drain_all-remotely.patch +++ b/kernel/patches-4.14.x-rt/0173-mm-perform-lru_add_drain_all-remotely.patch @@ -1,7 +1,7 @@ -From 6bb5c8b54644f251e19013fc628cb5d1d76aa229 Mon Sep 17 00:00:00 2001 +From 161c630deb0b70b44789b071ef4f62f181bf8b15 Mon Sep 17 00:00:00 2001 From: Luiz Capitulino Date: Fri, 27 May 2016 15:03:28 +0200 -Subject: [PATCH 173/413] mm: perform lru_add_drain_all() remotely +Subject: [PATCH 173/436] mm: perform lru_add_drain_all() remotely lru_add_drain_all() works by scheduling lru_add_drain_cpu() to run on all CPUs that have non-empty LRU pagevecs and then waiting for diff --git a/kernel/patches-4.14.x-rt/0174-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/kernel/patches-4.14.x-rt/0174-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch index c122328c5..36b218104 100644 --- a/kernel/patches-4.14.x-rt/0174-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch +++ b/kernel/patches-4.14.x-rt/0174-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch @@ -1,7 +1,7 @@ -From 465719a81fbe82ff327a5e2e3009ac9d41915668 Mon Sep 17 00:00:00 2001 +From c4a4446af2186f8e26b682f262093e20968488ba Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:13 -0500 -Subject: [PATCH 174/413] mm/vmstat: Protect per cpu variables with preempt +Subject: [PATCH 174/436] mm/vmstat: Protect per cpu variables with preempt disable on RT Disable preemption on -RT for the vmstat code. On vanila the code runs in diff --git a/kernel/patches-4.14.x-rt/0175-ARM-Initialize-split-page-table-locks-for-vector-pag.patch b/kernel/patches-4.14.x-rt/0175-ARM-Initialize-split-page-table-locks-for-vector-pag.patch index 2e0f28874..32c7547f0 100644 --- a/kernel/patches-4.14.x-rt/0175-ARM-Initialize-split-page-table-locks-for-vector-pag.patch +++ b/kernel/patches-4.14.x-rt/0175-ARM-Initialize-split-page-table-locks-for-vector-pag.patch @@ -1,7 +1,7 @@ -From 1e8d208c019037a06063161ee92658f16b1b99df Mon Sep 17 00:00:00 2001 +From 0b7a469b7ec7ad4115e56a2957b68d12603bad7b Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Sat, 1 Oct 2011 18:58:13 -0700 -Subject: [PATCH 175/413] ARM: Initialize split page table locks for vector +Subject: [PATCH 175/436] ARM: Initialize split page table locks for vector page Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if diff --git a/kernel/patches-4.14.x-rt/0176-mm-bounce-Use-local_irq_save_nort.patch b/kernel/patches-4.14.x-rt/0176-mm-bounce-Use-local_irq_save_nort.patch index e60b338e0..203d1216e 100644 --- a/kernel/patches-4.14.x-rt/0176-mm-bounce-Use-local_irq_save_nort.patch +++ b/kernel/patches-4.14.x-rt/0176-mm-bounce-Use-local_irq_save_nort.patch @@ -1,7 +1,7 @@ -From 647799235eb3c3cbf6cdb6c2613dfef697b5e3f6 Mon Sep 17 00:00:00 2001 +From e5fbc274c4c4bf602b765a639fc8817d6d3101c9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 9 Jan 2013 10:33:09 +0100 -Subject: [PATCH 176/413] mm: bounce: Use local_irq_save_nort +Subject: [PATCH 176/436] mm: bounce: Use local_irq_save_nort kmap_atomic() is preemptible on RT. diff --git a/kernel/patches-4.14.x-rt/0177-mm-Allow-only-slub-on-RT.patch b/kernel/patches-4.14.x-rt/0177-mm-Allow-only-slub-on-RT.patch index 54241a70e..44e0c5333 100644 --- a/kernel/patches-4.14.x-rt/0177-mm-Allow-only-slub-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0177-mm-Allow-only-slub-on-RT.patch @@ -1,7 +1,7 @@ -From ba10973df982e1d222446b9aa0cd599a85091f27 Mon Sep 17 00:00:00 2001 +From ac518627e10baa308b4403badb37665fa3754903 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:03 -0500 -Subject: [PATCH 177/413] mm: Allow only slub on RT +Subject: [PATCH 177/436] mm: Allow only slub on RT Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs. diff --git a/kernel/patches-4.14.x-rt/0178-mm-Enable-SLUB-for-RT.patch b/kernel/patches-4.14.x-rt/0178-mm-Enable-SLUB-for-RT.patch index 0ddcee1db..e15ab8da2 100644 --- a/kernel/patches-4.14.x-rt/0178-mm-Enable-SLUB-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0178-mm-Enable-SLUB-for-RT.patch @@ -1,7 +1,7 @@ -From be4b351f19d5ea8cf72c1fe5e15be45ffd4918bf Mon Sep 17 00:00:00 2001 +From 7410b0f826fed18cb812512b91082f93c21c1f1e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Oct 2012 10:32:35 +0100 -Subject: [PATCH 178/413] mm: Enable SLUB for RT +Subject: [PATCH 178/436] mm: Enable SLUB for RT Make SLUB RT aware by converting locks to raw and using free lists to move the freeing out of the lock held region. diff --git a/kernel/patches-4.14.x-rt/0179-mm-slub-close-possible-memory-leak-in-kmem_cache_all.patch b/kernel/patches-4.14.x-rt/0179-mm-slub-close-possible-memory-leak-in-kmem_cache_all.patch index b276d06a8..072ae94c4 100644 --- a/kernel/patches-4.14.x-rt/0179-mm-slub-close-possible-memory-leak-in-kmem_cache_all.patch +++ b/kernel/patches-4.14.x-rt/0179-mm-slub-close-possible-memory-leak-in-kmem_cache_all.patch @@ -1,7 +1,7 @@ -From 7abd59836eaf908e121f6fa6f36e3f33cd21434c Mon Sep 17 00:00:00 2001 +From 3bf5d2d60f3c0e4adfb279cf4266e68e1cd7cf8d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Dec 2017 12:44:14 +0100 -Subject: [PATCH 179/413] mm/slub: close possible memory-leak in +Subject: [PATCH 179/436] mm/slub: close possible memory-leak in kmem_cache_alloc_bulk() Under certain circumstances we could leak elements which were moved to diff --git a/kernel/patches-4.14.x-rt/0180-slub-Enable-irqs-for-__GFP_WAIT.patch b/kernel/patches-4.14.x-rt/0180-slub-Enable-irqs-for-__GFP_WAIT.patch index 0481cc7b2..046128bcb 100644 --- a/kernel/patches-4.14.x-rt/0180-slub-Enable-irqs-for-__GFP_WAIT.patch +++ b/kernel/patches-4.14.x-rt/0180-slub-Enable-irqs-for-__GFP_WAIT.patch @@ -1,7 +1,7 @@ -From 7837e3115ba501afe0dff50e877d3d6fd3c0946e Mon Sep 17 00:00:00 2001 +From 77c468895a6f9dbe232193104cf281dd93efb5d9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 9 Jan 2013 12:08:15 +0100 -Subject: [PATCH 180/413] slub: Enable irqs for __GFP_WAIT +Subject: [PATCH 180/436] slub: Enable irqs for __GFP_WAIT SYSTEM_RUNNING might be too late for enabling interrupts. Allocations with GFP_WAIT can happen before that. So use this as an indicator. diff --git a/kernel/patches-4.14.x-rt/0181-slub-Disable-SLUB_CPU_PARTIAL.patch b/kernel/patches-4.14.x-rt/0181-slub-Disable-SLUB_CPU_PARTIAL.patch index ed20a9f1a..79c9ac7b2 100644 --- a/kernel/patches-4.14.x-rt/0181-slub-Disable-SLUB_CPU_PARTIAL.patch +++ b/kernel/patches-4.14.x-rt/0181-slub-Disable-SLUB_CPU_PARTIAL.patch @@ -1,7 +1,7 @@ -From bc775043e1620da873497dca9cfb3d74253ae5dd Mon Sep 17 00:00:00 2001 +From e293b7f54335f04a0aade401d90d39246e44bf1f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 15 Apr 2015 19:00:47 +0200 -Subject: [PATCH 181/413] slub: Disable SLUB_CPU_PARTIAL +Subject: [PATCH 181/436] slub: Disable SLUB_CPU_PARTIAL |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7 diff --git a/kernel/patches-4.14.x-rt/0182-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch b/kernel/patches-4.14.x-rt/0182-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch index da09d46d2..239e9a407 100644 --- a/kernel/patches-4.14.x-rt/0182-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch +++ b/kernel/patches-4.14.x-rt/0182-mm-page_alloc-Use-local_lock_on-instead-of-plain-spi.patch @@ -1,7 +1,7 @@ -From ba69c1efae72092f14a1a78ef2f38b4d57e830be Mon Sep 17 00:00:00 2001 +From 5953cfdd00f7c1a72e9b7561bc60bd5f6d47a443 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 27 Sep 2012 11:11:46 +0200 -Subject: [PATCH 182/413] mm: page_alloc: Use local_lock_on() instead of plain +Subject: [PATCH 182/436] mm: page_alloc: Use local_lock_on() instead of plain spinlock The plain spinlock while sufficient does not update the local_lock diff --git a/kernel/patches-4.14.x-rt/0183-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/kernel/patches-4.14.x-rt/0183-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch index 944a8e76d..c142add82 100644 --- a/kernel/patches-4.14.x-rt/0183-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +++ b/kernel/patches-4.14.x-rt/0183-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -1,7 +1,7 @@ -From d5fe72a7ab57c19bf182e14168f7e73836410d36 Mon Sep 17 00:00:00 2001 +From 2d65de78541bdda17c6c7ca942022d212848d151 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Wed, 30 Oct 2013 11:48:33 -0700 -Subject: [PATCH 183/413] mm/memcontrol: Don't call schedule_work_on in +Subject: [PATCH 183/436] mm/memcontrol: Don't call schedule_work_on in preemption disabled context The following trace is triggered when running ltp oom test cases: @@ -48,7 +48,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index db69d938e9ed..2abadb2a78cc 100644 +index 6a9a7e1066ef..92139e87df28 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1831,7 +1831,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) diff --git a/kernel/patches-4.14.x-rt/0184-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/kernel/patches-4.14.x-rt/0184-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch index 3e283d138..5a8032d9f 100644 --- a/kernel/patches-4.14.x-rt/0184-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch +++ b/kernel/patches-4.14.x-rt/0184-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch @@ -1,7 +1,7 @@ -From 7722d2d2fa821eef1b50b899e0bdc1c479b4c3e5 Mon Sep 17 00:00:00 2001 +From 4aeaf21a49ba624d8a2793e2c3c2a14e3a3eb307 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Jan 2015 17:14:16 +0100 -Subject: [PATCH 184/413] mm/memcontrol: Replace local_irq_disable with local +Subject: [PATCH 184/436] mm/memcontrol: Replace local_irq_disable with local locks There are a few local_irq_disable() which then take sleeping locks. This @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 2abadb2a78cc..0e08c9b7d704 100644 +index 92139e87df28..3cc297730103 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -69,6 +69,7 @@ @@ -33,7 +33,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 /* Whether legacy memory+swap accounting is active */ static bool do_memsw_account(void) { -@@ -4624,12 +4627,12 @@ static int mem_cgroup_move_account(struct page *page, +@@ -4631,12 +4634,12 @@ static int mem_cgroup_move_account(struct page *page, ret = 0; @@ -48,7 +48,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 out_unlock: unlock_page(page); out: -@@ -5572,10 +5575,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, +@@ -5579,10 +5582,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, commit_charge(page, memcg, lrucare); @@ -61,7 +61,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 if (do_memsw_account() && PageSwapCache(page)) { swp_entry_t entry = { .val = page_private(page) }; -@@ -5644,7 +5647,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) +@@ -5651,7 +5654,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) memcg_oom_recover(ug->memcg); } @@ -70,7 +70,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 __this_cpu_sub(ug->memcg->stat->count[MEMCG_RSS], ug->nr_anon); __this_cpu_sub(ug->memcg->stat->count[MEMCG_CACHE], ug->nr_file); __this_cpu_sub(ug->memcg->stat->count[MEMCG_RSS_HUGE], ug->nr_huge); -@@ -5652,7 +5655,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) +@@ -5659,7 +5662,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) __this_cpu_add(ug->memcg->stat->events[PGPGOUT], ug->pgpgout); __this_cpu_add(ug->memcg->stat->nr_page_events, nr_pages); memcg_check_events(ug->memcg, ug->dummy_page); @@ -79,7 +79,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 if (!mem_cgroup_is_root(ug->memcg)) css_put_many(&ug->memcg->css, nr_pages); -@@ -5815,10 +5818,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage) +@@ -5822,10 +5825,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage) commit_charge(newpage, memcg, false); @@ -92,7 +92,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 } DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key); -@@ -6010,6 +6013,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) +@@ -6017,6 +6020,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) struct mem_cgroup *memcg, *swap_memcg; unsigned int nr_entries; unsigned short oldid; @@ -100,7 +100,7 @@ index 2abadb2a78cc..0e08c9b7d704 100644 VM_BUG_ON_PAGE(PageLRU(page), page); VM_BUG_ON_PAGE(page_count(page), page); -@@ -6055,13 +6059,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) +@@ -6062,13 +6066,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) * important here to have the interrupts disabled because it is the * only synchronisation we have for udpating the per-CPU variables. */ diff --git a/kernel/patches-4.14.x-rt/0185-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch b/kernel/patches-4.14.x-rt/0185-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch index 298eab384..0375c98c6 100644 --- a/kernel/patches-4.14.x-rt/0185-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch +++ b/kernel/patches-4.14.x-rt/0185-mm-backing-dev-don-t-disable-IRQs-in-wb_congested_pu.patch @@ -1,7 +1,7 @@ -From f2c4a2583966d1c608b3f12db4f5f71f44a0fad2 Mon Sep 17 00:00:00 2001 +From 3e8ca915b4a9c3ef0f0d562024143b1a145a494f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 5 Feb 2016 12:17:14 +0100 -Subject: [PATCH 185/413] mm: backing-dev: don't disable IRQs in +Subject: [PATCH 185/436] mm: backing-dev: don't disable IRQs in wb_congested_put() it triggers: diff --git a/kernel/patches-4.14.x-rt/0186-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/kernel/patches-4.14.x-rt/0186-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch index 1c8985c6c..054708c4f 100644 --- a/kernel/patches-4.14.x-rt/0186-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch +++ b/kernel/patches-4.14.x-rt/0186-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch @@ -1,7 +1,7 @@ -From a552180b64e0b5ed7233ae66ce34c8a906428cc5 Mon Sep 17 00:00:00 2001 +From 293c282f2b23bf0adec014e0420ccaa0d35d50ef Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Tue, 22 Mar 2016 11:16:09 +0100 -Subject: [PATCH 186/413] mm/zsmalloc: copy with get_cpu_var() and locking +Subject: [PATCH 186/436] mm/zsmalloc: copy with get_cpu_var() and locking get_cpu_var() disables preemption and triggers a might_sleep() splat later. This is replaced with get_locked_var(). diff --git a/kernel/patches-4.14.x-rt/0187-radix-tree-use-local-locks.patch b/kernel/patches-4.14.x-rt/0187-radix-tree-use-local-locks.patch index 6a271ab37..e67051d82 100644 --- a/kernel/patches-4.14.x-rt/0187-radix-tree-use-local-locks.patch +++ b/kernel/patches-4.14.x-rt/0187-radix-tree-use-local-locks.patch @@ -1,7 +1,7 @@ -From 3fd8ae763381b567d8acdb7fbea7e0f312357bce Mon Sep 17 00:00:00 2001 +From 9ecb5262ac296f78966a4b433c758ad33fa61c22 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 25 Jan 2017 16:34:27 +0100 -Subject: [PATCH 187/413] radix-tree: use local locks +Subject: [PATCH 187/436] radix-tree: use local locks The preload functionality uses per-CPU variables and preempt-disable to ensure that it does not switch CPUs during its usage. This patch adds diff --git a/kernel/patches-4.14.x-rt/0188-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/kernel/patches-4.14.x-rt/0188-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch index be8385482..0b1b734f1 100644 --- a/kernel/patches-4.14.x-rt/0188-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch +++ b/kernel/patches-4.14.x-rt/0188-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch @@ -1,7 +1,7 @@ -From 0ba8b20a137fbe66be0d8941e6ca96ac797b5f82 Mon Sep 17 00:00:00 2001 +From 48f84cdabb1e90d67c917fdd6eaf025f19304ce1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 188/413] panic: skip get_random_bytes for RT_FULL in +Subject: [PATCH 188/436] panic: skip get_random_bytes for RT_FULL in init_oops_id Disable on -RT. If this is invoked from irq-context we will have problems diff --git a/kernel/patches-4.14.x-rt/0189-timers-Prepare-for-full-preemption.patch b/kernel/patches-4.14.x-rt/0189-timers-Prepare-for-full-preemption.patch index 7608dfdda..beff7a6c6 100644 --- a/kernel/patches-4.14.x-rt/0189-timers-Prepare-for-full-preemption.patch +++ b/kernel/patches-4.14.x-rt/0189-timers-Prepare-for-full-preemption.patch @@ -1,7 +1,7 @@ -From b6b8c036e78e405426694e06f254b0e0ad09fbaf Mon Sep 17 00:00:00 2001 +From b5377859043c987e6045a4375785a280d646ed51 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 189/413] timers: Prepare for full preemption +Subject: [PATCH 189/436] 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 @@ -59,7 +59,7 @@ index cca96e5a8263..8cd98168bd8b 100644 } diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 34415f2b3f04..3866d537f109 100644 +index 3b6c7e287f23..97c28b96aeb1 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -44,6 +44,7 @@ @@ -150,7 +150,7 @@ index 34415f2b3f04..3866d537f109 100644 raw_spin_lock_irq(&base->lock); } } -@@ -1627,8 +1661,8 @@ static inline void __run_timers(struct timer_base *base) +@@ -1643,8 +1677,8 @@ static inline void __run_timers(struct timer_base *base) while (levels--) expire_timers(base, heads + levels); } @@ -160,7 +160,7 @@ index 34415f2b3f04..3866d537f109 100644 } /* -@@ -1874,6 +1908,9 @@ static void __init init_timer_cpu(int cpu) +@@ -1877,6 +1911,9 @@ static void __init init_timer_cpu(int cpu) base->cpu = cpu; raw_spin_lock_init(&base->lock); base->clk = jiffies; diff --git a/kernel/patches-4.14.x-rt/0190-timer-delay-waking-softirqs-from-the-jiffy-tick.patch b/kernel/patches-4.14.x-rt/0190-timer-delay-waking-softirqs-from-the-jiffy-tick.patch index 0bca09bbd..6b10cb396 100644 --- a/kernel/patches-4.14.x-rt/0190-timer-delay-waking-softirqs-from-the-jiffy-tick.patch +++ b/kernel/patches-4.14.x-rt/0190-timer-delay-waking-softirqs-from-the-jiffy-tick.patch @@ -1,7 +1,7 @@ -From 1da2397432efc2b15529da1159f423ac59dedb5e Mon Sep 17 00:00:00 2001 +From 4a0eba7f3003650cd93e35830dffc2b4d62d3171 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 21 Aug 2009 11:56:45 +0200 -Subject: [PATCH 190/413] timer: delay waking softirqs from the jiffy tick +Subject: [PATCH 190/436] timer: delay waking softirqs from the jiffy tick People were complaining about broken balancing with the recent -rt series. @@ -57,7 +57,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 3866d537f109..464aee26ef2b 100644 +index 97c28b96aeb1..807133c1bc20 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -1628,13 +1628,13 @@ void update_process_times(int user_tick) diff --git a/kernel/patches-4.14.x-rt/0191-nohz-Prevent-erroneous-tick-stop-invocations.patch b/kernel/patches-4.14.x-rt/0191-nohz-Prevent-erroneous-tick-stop-invocations.patch index 16557a5db..300743c8c 100644 --- a/kernel/patches-4.14.x-rt/0191-nohz-Prevent-erroneous-tick-stop-invocations.patch +++ b/kernel/patches-4.14.x-rt/0191-nohz-Prevent-erroneous-tick-stop-invocations.patch @@ -1,7 +1,7 @@ -From f0d40dc1bc45b82ee54fb09211005f9bed64e7f4 Mon Sep 17 00:00:00 2001 +From 407aae190237017df5b90419dd8baf9d3fc461b5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 22 Dec 2017 15:51:13 +0100 -Subject: [PATCH 191/413] nohz: Prevent erroneous tick stop invocations +Subject: [PATCH 191/436] nohz: Prevent erroneous tick stop invocations The conditions in irq_exit() to invoke tick_nohz_irq_exit() are: diff --git a/kernel/patches-4.14.x-rt/0192-x86-kvm-Require-const-tsc-for-RT.patch b/kernel/patches-4.14.x-rt/0192-x86-kvm-Require-const-tsc-for-RT.patch index 37c427d37..c3d47a5fd 100644 --- a/kernel/patches-4.14.x-rt/0192-x86-kvm-Require-const-tsc-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0192-x86-kvm-Require-const-tsc-for-RT.patch @@ -1,7 +1,7 @@ -From d05976039ed0eb02f838294b5a514ba6e37af94d Mon Sep 17 00:00:00 2001 +From 4258efef5d80f5038bf65a0ba57b96e7a25f1407 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 6 Nov 2011 12:26:18 +0100 -Subject: [PATCH 192/413] x86: kvm Require const tsc for RT +Subject: [PATCH 192/436] x86: kvm Require const tsc for RT Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds @@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 7 insertions(+) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 5c2c09f6c1c3..13b30aa2f78e 100644 +index 3856828ee1dc..407658146ae1 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -6285,6 +6285,13 @@ int kvm_arch_init(void *opaque) +@@ -6287,6 +6287,13 @@ int kvm_arch_init(void *opaque) goto out; } diff --git a/kernel/patches-4.14.x-rt/0193-wait.h-include-atomic.h.patch b/kernel/patches-4.14.x-rt/0193-wait.h-include-atomic.h.patch index 6aefdc9b0..4766d374d 100644 --- a/kernel/patches-4.14.x-rt/0193-wait.h-include-atomic.h.patch +++ b/kernel/patches-4.14.x-rt/0193-wait.h-include-atomic.h.patch @@ -1,7 +1,7 @@ -From 549bc4f3c9e864b92fbe38e69e5c859750e1db20 Mon Sep 17 00:00:00 2001 +From ae54da267b1d064c077ec80e1d1080f18eb2f8b3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 28 Oct 2013 12:19:57 +0100 -Subject: [PATCH 193/413] wait.h: include atomic.h +Subject: [PATCH 193/436] wait.h: include atomic.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0194-work-simple-Simple-work-queue-implemenation.patch b/kernel/patches-4.14.x-rt/0194-work-simple-Simple-work-queue-implemenation.patch index efcf4b9f1..35ac80003 100644 --- a/kernel/patches-4.14.x-rt/0194-work-simple-Simple-work-queue-implemenation.patch +++ b/kernel/patches-4.14.x-rt/0194-work-simple-Simple-work-queue-implemenation.patch @@ -1,7 +1,7 @@ -From 33ba691d4add2b96d6d919f7481946ff0f87a026 Mon Sep 17 00:00:00 2001 +From af7a9586172e734dca5864f73c9393eadfebfcbd Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Fri, 11 Jul 2014 15:26:11 +0200 -Subject: [PATCH 194/413] work-simple: Simple work queue implemenation +Subject: [PATCH 194/436] work-simple: Simple work queue implemenation Provides a framework for enqueuing callbacks from irq context PREEMPT_RT_FULL safe. The callbacks are executed in kthread context. diff --git a/kernel/patches-4.14.x-rt/0195-completion-Use-simple-wait-queues.patch b/kernel/patches-4.14.x-rt/0195-completion-Use-simple-wait-queues.patch index 978166245..1a985fc50 100644 --- a/kernel/patches-4.14.x-rt/0195-completion-Use-simple-wait-queues.patch +++ b/kernel/patches-4.14.x-rt/0195-completion-Use-simple-wait-queues.patch @@ -1,7 +1,7 @@ -From c222fc06f776c8e80987c13135b6148a3f0d8cfd Mon Sep 17 00:00:00 2001 +From 0a611befc4586d66b71d5f768e130d4bb294507e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 11 Jan 2013 11:23:51 +0100 -Subject: [PATCH 195/413] completion: Use simple wait queues +Subject: [PATCH 195/436] completion: Use simple wait queues Completions have no long lasting callbacks and therefor do not need the complex waitqueue variant. Use simple waitqueues which reduces the @@ -36,10 +36,10 @@ index 56f6e3b71f48..a50350d01a80 100644 } break; diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c -index 52e6897fa35a..d9f2040c10f2 100644 +index 17467545391b..42ec6f2db6a9 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c -@@ -1613,7 +1613,7 @@ static void ffs_data_put(struct ffs_data *ffs) +@@ -1623,7 +1623,7 @@ static void ffs_data_put(struct ffs_data *ffs) pr_info("%s(): freeing\n", __func__); ffs_data_clear(ffs); BUG_ON(waitqueue_active(&ffs->ev.waitq) || diff --git a/kernel/patches-4.14.x-rt/0196-fs-aio-simple-simple-work.patch b/kernel/patches-4.14.x-rt/0196-fs-aio-simple-simple-work.patch index 5a4bd4a7c..d077329c7 100644 --- a/kernel/patches-4.14.x-rt/0196-fs-aio-simple-simple-work.patch +++ b/kernel/patches-4.14.x-rt/0196-fs-aio-simple-simple-work.patch @@ -1,7 +1,7 @@ -From 2d26be6a78cd471280b6c435741d40d0464b0690 Mon Sep 17 00:00:00 2001 +From 521575a6bb5af1455612522cd037a9d0f6bd71d8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 16 Feb 2015 18:49:10 +0100 -Subject: [PATCH 196/413] fs/aio: simple simple work +Subject: [PATCH 196/436] fs/aio: simple simple work |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768 |in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2 diff --git a/kernel/patches-4.14.x-rt/0197-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch b/kernel/patches-4.14.x-rt/0197-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch index f2a939719..a6f6a1502 100644 --- a/kernel/patches-4.14.x-rt/0197-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch +++ b/kernel/patches-4.14.x-rt/0197-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch @@ -1,7 +1,7 @@ -From a4a03f4d4330c61d0a84fdc2318f02da168bb084 Mon Sep 17 00:00:00 2001 +From f2b8116c5dfc2cfc064462dbffc88058c49bbe72 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 21 Aug 2013 17:48:46 +0200 -Subject: [PATCH 197/413] genirq: Do not invoke the affinity callback via a +Subject: [PATCH 197/436] genirq: Do not invoke the affinity callback via a workqueue on RT Joe Korty reported, that __irq_set_affinity_locked() schedules a diff --git a/kernel/patches-4.14.x-rt/0198-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch b/kernel/patches-4.14.x-rt/0198-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch index b7ff1018e..e75bed387 100644 --- a/kernel/patches-4.14.x-rt/0198-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch +++ b/kernel/patches-4.14.x-rt/0198-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch @@ -1,7 +1,7 @@ -From 8a72839336a4d05ac68aca46c621c86df7c0bb06 Mon Sep 17 00:00:00 2001 +From 3745472a088f722979ca560c95f05e4310a3c437 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 15 Nov 2017 17:29:51 +0100 -Subject: [PATCH 198/413] time/hrtimer: avoid schedule_work() with interrupts +Subject: [PATCH 198/436] time/hrtimer: avoid schedule_work() with interrupts disabled The NOHZ code tries to schedule a workqueue with interrupts disabled. @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 464aee26ef2b..ced791c0b47b 100644 +index 807133c1bc20..9b08190ff65a 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -217,8 +217,7 @@ static DEFINE_PER_CPU(struct timer_base, timer_bases[NR_BASES]); diff --git a/kernel/patches-4.14.x-rt/0199-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/kernel/patches-4.14.x-rt/0199-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch index 3d2f483f5..53e17443a 100644 --- a/kernel/patches-4.14.x-rt/0199-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +++ b/kernel/patches-4.14.x-rt/0199-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch @@ -1,7 +1,7 @@ -From 12f9abd8917d3ac5127894f7525f5c7d17d3daf1 Mon Sep 17 00:00:00 2001 +From 9ae4daaf9fd52dadc4ee790d952a19fb87a01ce2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 4 Sep 2017 18:31:50 +0200 -Subject: [PATCH 199/413] hrtimer: consolidate hrtimer_init() + +Subject: [PATCH 199/436] hrtimer: consolidate hrtimer_init() + hrtimer_init_sleeper() calls hrtimer_init_sleeper() calls require a prior initialisation of the diff --git a/kernel/patches-4.14.x-rt/0200-hrtimers-Prepare-full-preemption.patch b/kernel/patches-4.14.x-rt/0200-hrtimers-Prepare-full-preemption.patch index d644770a1..d306157cf 100644 --- a/kernel/patches-4.14.x-rt/0200-hrtimers-Prepare-full-preemption.patch +++ b/kernel/patches-4.14.x-rt/0200-hrtimers-Prepare-full-preemption.patch @@ -1,7 +1,7 @@ -From 9c4d61442dc25cbc6b352f5a123c8d4ed84cd032 Mon Sep 17 00:00:00 2001 +From b290657e952f17668561302ab682a8053569694e Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 200/413] hrtimers: Prepare full preemption +Subject: [PATCH 200/436] hrtimers: Prepare full preemption Make cancellation of a running callback in softirq context safe against preemption. diff --git a/kernel/patches-4.14.x-rt/0201-hrtimer-by-timers-by-default-into-the-softirq-contex.patch b/kernel/patches-4.14.x-rt/0201-hrtimer-by-timers-by-default-into-the-softirq-contex.patch index 63bc63a5b..8d3e28f5d 100644 --- a/kernel/patches-4.14.x-rt/0201-hrtimer-by-timers-by-default-into-the-softirq-contex.patch +++ b/kernel/patches-4.14.x-rt/0201-hrtimer-by-timers-by-default-into-the-softirq-contex.patch @@ -1,7 +1,7 @@ -From 07a232e1adc841dbe995103da667c2eff70118c6 Mon Sep 17 00:00:00 2001 +From f6af00f51eb9bd8437d00759c5ddf03a68a85eb2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 3 Jul 2009 08:44:31 -0500 -Subject: [PATCH 201/413] hrtimer: by timers by default into the softirq +Subject: [PATCH 201/436] hrtimer: by timers by default into the softirq context We can't have hrtimers callbacks running in hardirq context on RT. Therefore @@ -99,7 +99,7 @@ index b427b127857d..22f202ace8b5 100644 } #else /* CONFIG_SCHED_HRTICK */ diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c -index a55cb8ce395d..24e69803cd14 100644 +index 7be1f4421cb8..28a75a9526ac 100644 --- a/kernel/sched/deadline.c +++ b/kernel/sched/deadline.c @@ -1020,7 +1020,7 @@ void init_dl_task_timer(struct sched_dl_entity *dl_se) @@ -112,7 +112,7 @@ index a55cb8ce395d..24e69803cd14 100644 } diff --git a/kernel/sched/rt.c b/kernel/sched/rt.c -index 590c6eea6974..b2478126d109 100644 +index fbe1aa2bb948..6c72332dab3f 100644 --- a/kernel/sched/rt.c +++ b/kernel/sched/rt.c @@ -47,8 +47,8 @@ void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime) @@ -220,7 +220,7 @@ index 542817a88618..3af3d93f49ce 100644 /* Get the next period (per-CPU) */ diff --git a/kernel/watchdog.c b/kernel/watchdog.c -index c8e06703e44c..1c6188a15481 100644 +index 087994b23f8b..ea4c09109ce4 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -462,7 +462,7 @@ static void watchdog_enable(unsigned int cpu) diff --git a/kernel/patches-4.14.x-rt/0202-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch b/kernel/patches-4.14.x-rt/0202-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch index 11e7b0617..1f4267126 100644 --- a/kernel/patches-4.14.x-rt/0202-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch +++ b/kernel/patches-4.14.x-rt/0202-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch @@ -1,7 +1,7 @@ -From 38ef953461926845ffb7659f73223d68ec2e86a6 Mon Sep 17 00:00:00 2001 +From c36a350a339a1e99601f1bfd3b4b1bdb7696a6ff Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 27 Mar 2018 15:58:16 +0200 -Subject: [PATCH 202/413] alarmtimer: Prevent live lock in alarm_cancel() +Subject: [PATCH 202/436] alarmtimer: Prevent live lock in alarm_cancel() If alarm_try_to_cancel() requires a retry, then depending on the priority setting the retry loop might prevent timer callback completion diff --git a/kernel/patches-4.14.x-rt/0203-posix-timers-user-proper-timer-while-waiting-for-ala.patch b/kernel/patches-4.14.x-rt/0203-posix-timers-user-proper-timer-while-waiting-for-ala.patch index 1822fe1ce..d71a3d8d6 100644 --- a/kernel/patches-4.14.x-rt/0203-posix-timers-user-proper-timer-while-waiting-for-ala.patch +++ b/kernel/patches-4.14.x-rt/0203-posix-timers-user-proper-timer-while-waiting-for-ala.patch @@ -1,7 +1,7 @@ -From 504f1c2759f8e201fd6c2930a82f391fc98aaf78 Mon Sep 17 00:00:00 2001 +From 52ce68de5c68c5b1d49e89895ef417708b33bc2a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Mar 2018 10:45:40 +0200 -Subject: [PATCH 203/413] posix-timers: user proper timer while waiting for +Subject: [PATCH 203/436] posix-timers: user proper timer while waiting for alarmtimer On RT the timer can be preempted while running and therefore we wait diff --git a/kernel/patches-4.14.x-rt/0204-posix-timers-move-the-rcu-head-out-of-the-union.patch b/kernel/patches-4.14.x-rt/0204-posix-timers-move-the-rcu-head-out-of-the-union.patch index 192b5d48a..4ebfc1274 100644 --- a/kernel/patches-4.14.x-rt/0204-posix-timers-move-the-rcu-head-out-of-the-union.patch +++ b/kernel/patches-4.14.x-rt/0204-posix-timers-move-the-rcu-head-out-of-the-union.patch @@ -1,7 +1,7 @@ -From 388c30a354f22dfb3439de96819d1d65a76068e3 Mon Sep 17 00:00:00 2001 +From f8c7783bf48cae5fe9d6e44e6f623c4234478631 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Mar 2018 11:15:19 +0200 -Subject: [PATCH 204/413] posix-timers: move the rcu head out of the union +Subject: [PATCH 204/436] posix-timers: move the rcu head out of the union On RT the timer can be preempted while running and therefore we wait with timer_wait_for_callback() for the timer to complete (instead of diff --git a/kernel/patches-4.14.x-rt/0205-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/kernel/patches-4.14.x-rt/0205-hrtimer-Move-schedule_work-call-to-helper-thread.patch index d1c5a84dd..b5cece7b6 100644 --- a/kernel/patches-4.14.x-rt/0205-hrtimer-Move-schedule_work-call-to-helper-thread.patch +++ b/kernel/patches-4.14.x-rt/0205-hrtimer-Move-schedule_work-call-to-helper-thread.patch @@ -1,7 +1,7 @@ -From e6d04a752b408128a692a3eab7b0d2b81c0d18cf Mon Sep 17 00:00:00 2001 +From 30b65f914432b5526e8c722fcfbeca1f33b0c532 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Mon, 16 Sep 2013 14:09:19 -0700 -Subject: [PATCH 205/413] hrtimer: Move schedule_work call to helper thread +Subject: [PATCH 205/436] hrtimer: Move schedule_work call to helper thread When run ltp leapsec_timer test, the following call trace is caught: diff --git a/kernel/patches-4.14.x-rt/0206-timer-fd-Prevent-live-lock.patch b/kernel/patches-4.14.x-rt/0206-timer-fd-Prevent-live-lock.patch index 56fc3f94c..d387e88cc 100644 --- a/kernel/patches-4.14.x-rt/0206-timer-fd-Prevent-live-lock.patch +++ b/kernel/patches-4.14.x-rt/0206-timer-fd-Prevent-live-lock.patch @@ -1,7 +1,7 @@ -From a4acc38c5a68d49499def9b4a307664839d88f00 Mon Sep 17 00:00:00 2001 +From 9b033adbd75f70861a733e53d9cc49d1b5697ebb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 25 Jan 2012 11:08:40 +0100 -Subject: [PATCH 206/413] timer-fd: Prevent live lock +Subject: [PATCH 206/436] 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/kernel/patches-4.14.x-rt/0207-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/kernel/patches-4.14.x-rt/0207-posix-timers-Thread-posix-cpu-timers-on-rt.patch index 13908715b..65ef51e21 100644 --- a/kernel/patches-4.14.x-rt/0207-posix-timers-Thread-posix-cpu-timers-on-rt.patch +++ b/kernel/patches-4.14.x-rt/0207-posix-timers-Thread-posix-cpu-timers-on-rt.patch @@ -1,7 +1,7 @@ -From 1254f883c4fd95386cb8c588d0c95802c26165c5 Mon Sep 17 00:00:00 2001 +From 0455459f4a74351dec41e1b138725a3e39b1f328 Mon Sep 17 00:00:00 2001 From: John Stultz Date: Fri, 3 Jul 2009 08:29:58 -0500 -Subject: [PATCH 207/413] posix-timers: Thread posix-cpu-timers on -rt +Subject: [PATCH 207/436] 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. @@ -57,10 +57,10 @@ index 620d9703a125..d1e0ea1dfe71 100644 /* Process credentials: */ diff --git a/kernel/fork.c b/kernel/fork.c -index 390a401be5d6..ee4894eb31d7 100644 +index c66167f0bba6..d7f20bdbb465 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -1495,6 +1495,9 @@ static void rt_mutex_init_task(struct task_struct *p) +@@ -1497,6 +1497,9 @@ static void rt_mutex_init_task(struct task_struct *p) */ static void posix_cpu_timers_init(struct task_struct *tsk) { diff --git a/kernel/patches-4.14.x-rt/0208-sched-Move-task_struct-cleanup-to-RCU.patch b/kernel/patches-4.14.x-rt/0208-sched-Move-task_struct-cleanup-to-RCU.patch index b7b766b1f..0fab99800 100644 --- a/kernel/patches-4.14.x-rt/0208-sched-Move-task_struct-cleanup-to-RCU.patch +++ b/kernel/patches-4.14.x-rt/0208-sched-Move-task_struct-cleanup-to-RCU.patch @@ -1,7 +1,7 @@ -From 51e9e03debe37728482536f2da9aa29d6bd7738f Mon Sep 17 00:00:00 2001 +From 7c1a47834f988189df37aab399dcff61c71676e4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 May 2011 16:59:16 +0200 -Subject: [PATCH 208/413] sched: Move task_struct cleanup to RCU +Subject: [PATCH 208/436] sched: Move task_struct cleanup to RCU __put_task_struct() does quite some expensive work. We don't want to burden random tasks with that. @@ -57,7 +57,7 @@ index a74ec619ac51..8e7f741370c5 100644 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT diff --git a/kernel/fork.c b/kernel/fork.c -index ee4894eb31d7..0e4f96449066 100644 +index d7f20bdbb465..677d17d7efb5 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -407,7 +407,9 @@ static inline void put_signal_struct(struct signal_struct *sig) diff --git a/kernel/patches-4.14.x-rt/0209-sched-Limit-the-number-of-task-migrations-per-batch.patch b/kernel/patches-4.14.x-rt/0209-sched-Limit-the-number-of-task-migrations-per-batch.patch index 3c68e191a..c171d5704 100644 --- a/kernel/patches-4.14.x-rt/0209-sched-Limit-the-number-of-task-migrations-per-batch.patch +++ b/kernel/patches-4.14.x-rt/0209-sched-Limit-the-number-of-task-migrations-per-batch.patch @@ -1,7 +1,7 @@ -From 818d3157439919b3a7cbfd7ddc3b549ed6841bd6 Mon Sep 17 00:00:00 2001 +From 41cdc63abe8aed9ec4c1f16c923bbffb44476a2b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:12:51 +0200 -Subject: [PATCH 209/413] sched: Limit the number of task migrations per batch +Subject: [PATCH 209/436] sched: Limit the number of task migrations per batch Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. diff --git a/kernel/patches-4.14.x-rt/0210-sched-Move-mmdrop-to-RCU-on-RT.patch b/kernel/patches-4.14.x-rt/0210-sched-Move-mmdrop-to-RCU-on-RT.patch index e427b068a..b5932a579 100644 --- a/kernel/patches-4.14.x-rt/0210-sched-Move-mmdrop-to-RCU-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0210-sched-Move-mmdrop-to-RCU-on-RT.patch @@ -1,7 +1,7 @@ -From 58ee061e0b0a8e590cf21d35609e9bddebe8dac1 Mon Sep 17 00:00:00 2001 +From 1429baf6accab2debdfb0f3a75f050c48596e8fe Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:20:33 +0200 -Subject: [PATCH 210/413] sched: Move mmdrop to RCU on RT +Subject: [PATCH 210/436] sched: Move mmdrop to RCU on RT Takes sleeping locks and calls into the memory allocator, so nothing we want to do in task switch and oder atomic contexts. @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h -index 9f0bb908e2b5..5a716df466a0 100644 +index e41ef532c4ce..63317710311e 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -12,6 +12,7 @@ @@ -59,7 +59,7 @@ index 3d49b91b674d..d8f2fa8f500c 100644 { struct mm_struct *mm = container_of(work, struct mm_struct, async_put_work); diff --git a/kernel/fork.c b/kernel/fork.c -index 0e4f96449066..279bc8ae6543 100644 +index 677d17d7efb5..2c53e56ac3e3 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -929,6 +929,19 @@ void __mmdrop(struct mm_struct *mm) diff --git a/kernel/patches-4.14.x-rt/0211-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/kernel/patches-4.14.x-rt/0211-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch index 13233a420..77eb6ab4c 100644 --- a/kernel/patches-4.14.x-rt/0211-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +++ b/kernel/patches-4.14.x-rt/0211-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch @@ -1,7 +1,7 @@ -From 4db0fe169dafce4184bb90324a6fcef4af8b8c20 Mon Sep 17 00:00:00 2001 +From d7277971eddd793dcf6e17718a449c87d00a4fb4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Nov 2016 19:31:08 +0100 -Subject: [PATCH 211/413] kernel/sched: move stack + kprobe clean up to +Subject: [PATCH 211/436] kernel/sched: move stack + kprobe clean up to __put_task_struct() There is no need to free the stack before the task struct. This also @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c -index 279bc8ae6543..7f1faa476ca5 100644 +index 2c53e56ac3e3..787105e3bf1b 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -40,6 +40,7 @@ diff --git a/kernel/patches-4.14.x-rt/0212-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/kernel/patches-4.14.x-rt/0212-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch index a98be909d..99e6c29f7 100644 --- a/kernel/patches-4.14.x-rt/0212-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch +++ b/kernel/patches-4.14.x-rt/0212-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch @@ -1,7 +1,7 @@ -From 2f7259b2f2789d0dfabb8cf5c39bbb731b2a213e Mon Sep 17 00:00:00 2001 +From 16ed4c67fcc328199dada8d925a540c385d508e3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 25 Jun 2011 09:21:04 +0200 -Subject: [PATCH 212/413] sched: Add saved_state for tasks blocked on sleeping +Subject: [PATCH 212/436] sched: Add saved_state for tasks blocked on sleeping locks Spinlocks are state preserving in !RT. RT changes the state when a diff --git a/kernel/patches-4.14.x-rt/0213-sched-Prevent-task-state-corruption-by-spurious-lock.patch b/kernel/patches-4.14.x-rt/0213-sched-Prevent-task-state-corruption-by-spurious-lock.patch index d3347b705..a1cd72517 100644 --- a/kernel/patches-4.14.x-rt/0213-sched-Prevent-task-state-corruption-by-spurious-lock.patch +++ b/kernel/patches-4.14.x-rt/0213-sched-Prevent-task-state-corruption-by-spurious-lock.patch @@ -1,7 +1,7 @@ -From 2dd51f13b4568093b11fbb49fd4a71f8824c6c6e Mon Sep 17 00:00:00 2001 +From 023f5de0ccbc3a2b6eba17cfec7ab3d5eaab2d1f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 6 Jun 2017 14:20:37 +0200 -Subject: [PATCH 213/413] sched: Prevent task state corruption by spurious lock +Subject: [PATCH 213/436] sched: Prevent task state corruption by spurious lock wakeup Mathias and others reported GDB failures on RT. diff --git a/kernel/patches-4.14.x-rt/0214-sched-Remove-TASK_ALL.patch b/kernel/patches-4.14.x-rt/0214-sched-Remove-TASK_ALL.patch index 12f6904ec..fee97afe7 100644 --- a/kernel/patches-4.14.x-rt/0214-sched-Remove-TASK_ALL.patch +++ b/kernel/patches-4.14.x-rt/0214-sched-Remove-TASK_ALL.patch @@ -1,7 +1,7 @@ -From 522adae53648a1582529a4a33cc1ac8c9702bc9d Mon Sep 17 00:00:00 2001 +From b585c9092f0cbbddecad0a383532fc4b70f691ce Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 7 Jun 2017 10:12:45 +0200 -Subject: [PATCH 214/413] sched: Remove TASK_ALL +Subject: [PATCH 214/436] sched: Remove TASK_ALL It's unused: diff --git a/kernel/patches-4.14.x-rt/0215-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/kernel/patches-4.14.x-rt/0215-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch index 52ff1671c..0b289a279 100644 --- a/kernel/patches-4.14.x-rt/0215-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch +++ b/kernel/patches-4.14.x-rt/0215-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch @@ -1,7 +1,7 @@ -From 09e8e5715c2273b3e9e716277fc1a0b52c8a78e6 Mon Sep 17 00:00:00 2001 +From a1dbd2248e2513256c3e9546efd17d0bd3b1979b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 7 Jun 2011 09:19:06 +0200 -Subject: [PATCH 215/413] sched: Do not account rcu_preempt_depth on RT in +Subject: [PATCH 215/436] sched: Do not account rcu_preempt_depth on RT in might_sleep() RT changes the rcu_preempt_depth semantics, so we cannot check for it diff --git a/kernel/patches-4.14.x-rt/0216-sched-Take-RT-softirq-semantics-into-account-in-cond.patch b/kernel/patches-4.14.x-rt/0216-sched-Take-RT-softirq-semantics-into-account-in-cond.patch index e657cc96c..624480bde 100644 --- a/kernel/patches-4.14.x-rt/0216-sched-Take-RT-softirq-semantics-into-account-in-cond.patch +++ b/kernel/patches-4.14.x-rt/0216-sched-Take-RT-softirq-semantics-into-account-in-cond.patch @@ -1,7 +1,7 @@ -From c948b0350e3d708ce7df1eb11a9b33720d9f4712 Mon Sep 17 00:00:00 2001 +From bc315b471ebcd2770393d893f74b71f4837268a8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Jul 2011 09:56:44 +0200 -Subject: [PATCH 216/413] sched: Take RT softirq semantics into account in +Subject: [PATCH 216/436] sched: Take RT softirq semantics into account in cond_resched() The softirq semantics work different on -RT. There is no SOFTIRQ_MASK in diff --git a/kernel/patches-4.14.x-rt/0217-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch b/kernel/patches-4.14.x-rt/0217-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch index 65c16acdb..458e313c8 100644 --- a/kernel/patches-4.14.x-rt/0217-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch +++ b/kernel/patches-4.14.x-rt/0217-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch @@ -1,7 +1,7 @@ -From 31dd4b6a6d37a739b5ae60e097dcdbc8ae046101 Mon Sep 17 00:00:00 2001 +From bc57a8c8cd305b417c1532425f9c654a3f788860 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 22:51:33 +0200 -Subject: [PATCH 217/413] sched: Use the proper LOCK_OFFSET for cond_resched() +Subject: [PATCH 217/436] sched: Use the proper LOCK_OFFSET for cond_resched() RT does not increment preempt count when a 'sleeping' spinlock is locked. Update PREEMPT_LOCK_OFFSET for that case. diff --git a/kernel/patches-4.14.x-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch b/kernel/patches-4.14.x-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch index d26809e2f..3528344cb 100644 --- a/kernel/patches-4.14.x-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0218-sched-Disable-TTWU_QUEUE-on-RT.patch @@ -1,7 +1,7 @@ -From 7247028e2f22763c709c643bc83cba22b296539c Mon Sep 17 00:00:00 2001 +From ae7a5ce8edf943dfdea835acd7aac3b234ae3ac0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Sep 2011 16:42:35 +0200 -Subject: [PATCH 218/413] sched: Disable TTWU_QUEUE on RT +Subject: [PATCH 218/436] sched: Disable TTWU_QUEUE on RT The queued remote wakeup mechanism can introduce rather large latencies if the number of migrated tasks is high. Disable it for RT. diff --git a/kernel/patches-4.14.x-rt/0219-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/kernel/patches-4.14.x-rt/0219-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch index ae225841f..5e4b7525c 100644 --- a/kernel/patches-4.14.x-rt/0219-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0219-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch @@ -1,7 +1,7 @@ -From 93875e8b1ec4598e190ff47bda227aa24edd352b Mon Sep 17 00:00:00 2001 +From 32b5a7365e6c5824d9ace32121fef637a3232acb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:03:52 +0200 -Subject: [PATCH 219/413] sched: Disable CONFIG_RT_GROUP_SCHED on RT +Subject: [PATCH 219/436] sched: Disable CONFIG_RT_GROUP_SCHED on RT Carsten reported problems when running: diff --git a/kernel/patches-4.14.x-rt/0220-sched-ttwu-Return-success-when-only-changing-the-sav.patch b/kernel/patches-4.14.x-rt/0220-sched-ttwu-Return-success-when-only-changing-the-sav.patch index 8ce292c1a..8cf554cb0 100644 --- a/kernel/patches-4.14.x-rt/0220-sched-ttwu-Return-success-when-only-changing-the-sav.patch +++ b/kernel/patches-4.14.x-rt/0220-sched-ttwu-Return-success-when-only-changing-the-sav.patch @@ -1,7 +1,7 @@ -From cf732fd1f64ff930b9c521be9d88342a5bacaae6 Mon Sep 17 00:00:00 2001 +From 6a583ff9a2304dfdb230487e590156e603fa64fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Dec 2011 21:42:19 +0100 -Subject: [PATCH 220/413] sched: ttwu: Return success when only changing the +Subject: [PATCH 220/436] 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/kernel/patches-4.14.x-rt/0221-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/kernel/patches-4.14.x-rt/0221-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch index 71d3d4e92..d65c15de8 100644 --- a/kernel/patches-4.14.x-rt/0221-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch +++ b/kernel/patches-4.14.x-rt/0221-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch @@ -1,7 +1,7 @@ -From cdf3ef6a3ff58f3b051439a4086874509a7648e3 Mon Sep 17 00:00:00 2001 +From 42091c7f2d2868cb92f7d47e30739116be3b1517 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Mon, 18 Mar 2013 15:12:49 -0400 -Subject: [PATCH 221/413] sched/workqueue: Only wake up idle workers if not +Subject: [PATCH 221/436] sched/workqueue: Only wake up idle workers if not blocked on sleeping spin lock In -rt, most spin_locks() turn into mutexes. One of these spin_lock diff --git a/kernel/patches-4.14.x-rt/0222-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch b/kernel/patches-4.14.x-rt/0222-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch index b7ec281a6..88ed0e0d8 100644 --- a/kernel/patches-4.14.x-rt/0222-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch +++ b/kernel/patches-4.14.x-rt/0222-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch @@ -1,7 +1,7 @@ -From d12e21b0d4163d9232a4bdfb635bef4fb328b9b4 Mon Sep 17 00:00:00 2001 +From 98c25273d8d97de131f91cdf65a1d0ab688e0d72 Mon Sep 17 00:00:00 2001 From: Daniel Bristot de Oliveira Date: Mon, 26 Jun 2017 17:07:15 +0200 -Subject: [PATCH 222/413] rt: Increase/decrease the nr of migratory tasks when +Subject: [PATCH 222/436] rt: Increase/decrease the nr of migratory tasks when enabling/disabling migration There is a problem in the migrate_disable()/enable() implementation diff --git a/kernel/patches-4.14.x-rt/0223-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch b/kernel/patches-4.14.x-rt/0223-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch index 318c64839..24fe27a0e 100644 --- a/kernel/patches-4.14.x-rt/0223-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch +++ b/kernel/patches-4.14.x-rt/0223-stop_machine-convert-stop_machine_run-to-PREEMPT_RT.patch @@ -1,7 +1,7 @@ -From 792c16732659d97ec5f7083c3f5e1ffaaddc2d14 Mon Sep 17 00:00:00 2001 +From 341d00e95164f9dc45f7773b018cd67b239f5653 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:27 -0500 -Subject: [PATCH 223/413] stop_machine: convert stop_machine_run() to +Subject: [PATCH 223/436] stop_machine: convert stop_machine_run() to PREEMPT_RT Instead of playing with non-preemption, introduce explicit @@ -16,10 +16,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 10 insertions(+) diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c -index e190d1ef3a23..74f3997a40fd 100644 +index 067cb83f37ea..f8d1ae9ed7be 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c -@@ -496,6 +496,16 @@ static void cpu_stopper_thread(unsigned int cpu) +@@ -503,6 +503,16 @@ static void cpu_stopper_thread(unsigned int cpu) struct cpu_stop_done *done = work->done; int ret; diff --git a/kernel/patches-4.14.x-rt/0224-stop_machine-Use-raw-spinlocks.patch b/kernel/patches-4.14.x-rt/0224-stop_machine-Use-raw-spinlocks.patch index d0ec3be05..f2e1ab4a9 100644 --- a/kernel/patches-4.14.x-rt/0224-stop_machine-Use-raw-spinlocks.patch +++ b/kernel/patches-4.14.x-rt/0224-stop_machine-Use-raw-spinlocks.patch @@ -1,7 +1,7 @@ -From cbfaf7ea6c41766e01fb8daf885ccfa2f0da5d11 Mon Sep 17 00:00:00 2001 +From 54988812fdbf6c348138bee0f711df0c82ecc8c2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 11:01:51 +0200 -Subject: [PATCH 224/413] stop_machine: Use raw spinlocks +Subject: [PATCH 224/436] stop_machine: Use raw spinlocks Use raw-locks in stomp_machine() to allow locking in irq-off regions. @@ -11,10 +11,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c -index 74f3997a40fd..36059808b0f7 100644 +index f8d1ae9ed7be..56f2f2e01229 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c -@@ -496,15 +496,7 @@ static void cpu_stopper_thread(unsigned int cpu) +@@ -503,15 +503,7 @@ static void cpu_stopper_thread(unsigned int cpu) struct cpu_stop_done *done = work->done; int ret; diff --git a/kernel/patches-4.14.x-rt/0225-hotplug-Lightweight-get-online-cpus.patch b/kernel/patches-4.14.x-rt/0225-hotplug-Lightweight-get-online-cpus.patch index 8a87a2155..c5e55830c 100644 --- a/kernel/patches-4.14.x-rt/0225-hotplug-Lightweight-get-online-cpus.patch +++ b/kernel/patches-4.14.x-rt/0225-hotplug-Lightweight-get-online-cpus.patch @@ -1,7 +1,7 @@ -From d85b7b843d1ff9c193e7eb952f6ef5121cb8bd83 Mon Sep 17 00:00:00 2001 +From 469e8abefe81517bb89be42ac625ef45d2209c87 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 15 Jun 2011 12:36:06 +0200 -Subject: [PATCH 225/413] hotplug: Lightweight get online cpus +Subject: [PATCH 225/436] 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 @@ -42,7 +42,7 @@ index 2a378d261914..b418d3c5159d 100644 /* Wrappers which go away once all code is converted */ diff --git a/kernel/cpu.c b/kernel/cpu.c -index 8f02f9b6e046..083ff510b038 100644 +index f3f389e33343..c4e00efd6a2b 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -287,6 +287,21 @@ static int cpu_hotplug_disabled; diff --git a/kernel/patches-4.14.x-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/kernel/patches-4.14.x-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch index f8642ed22..d1294cf1e 100644 --- a/kernel/patches-4.14.x-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch +++ b/kernel/patches-4.14.x-rt/0226-trace-Add-migrate-disabled-counter-to-tracing-output.patch @@ -1,7 +1,7 @@ -From 16d608c4cae506c59678e93e5d1c9cee799e8fc8 Mon Sep 17 00:00:00 2001 +From 2c4e30a9203bb0c3f281867041ade6a8f794f898 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:56:42 +0200 -Subject: [PATCH 226/413] trace: Add migrate-disabled counter to tracing output +Subject: [PATCH 226/436] trace: Add migrate-disabled counter to tracing output Signed-off-by: Thomas Gleixner --- @@ -25,7 +25,7 @@ index aefc80f2909b..ffd595ab5008 100644 #define TRACE_EVENT_TYPE_MAX \ diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 73b3e330ac0a..03688e4efd82 100644 +index 6c2aae7629a7..e6c7395840b4 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2147,6 +2147,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, @@ -37,7 +37,7 @@ index 73b3e330ac0a..03688e4efd82 100644 } EXPORT_SYMBOL_GPL(tracing_generic_entry_update); -@@ -3350,9 +3352,10 @@ static void print_lat_help_header(struct seq_file *m) +@@ -3355,9 +3357,10 @@ static void print_lat_help_header(struct seq_file *m) "# | / _----=> need-resched \n" "# || / _---=> hardirq/softirq \n" "# ||| / _--=> preempt-depth \n" diff --git a/kernel/patches-4.14.x-rt/0227-lockdep-Make-it-RT-aware.patch b/kernel/patches-4.14.x-rt/0227-lockdep-Make-it-RT-aware.patch index 5a3c5e3e6..c371ab77f 100644 --- a/kernel/patches-4.14.x-rt/0227-lockdep-Make-it-RT-aware.patch +++ b/kernel/patches-4.14.x-rt/0227-lockdep-Make-it-RT-aware.patch @@ -1,7 +1,7 @@ -From 1f32db959485f6165050309b6d901be2bbb359cf Mon Sep 17 00:00:00 2001 +From db4b16f11466ac66f9dbf7544c78c5e74aa651ce Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 18:51:23 +0200 -Subject: [PATCH 227/413] lockdep: Make it RT aware +Subject: [PATCH 227/436] lockdep: Make it RT aware teach lockdep that we don't really do softirqs on -RT. @@ -58,7 +58,7 @@ index 7834117a1ef5..2e023bfe45af 100644 #if defined(CONFIG_IRQSOFF_TRACER) || \ diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c -index 2f0f5720b123..aad05e4b228c 100644 +index d7c155048ea9..def51a27f20f 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -3914,6 +3914,7 @@ static void check_flags(unsigned long flags) diff --git a/kernel/patches-4.14.x-rt/0228-lockdep-disable-self-test.patch b/kernel/patches-4.14.x-rt/0228-lockdep-disable-self-test.patch index efa290110..869e8fdb6 100644 --- a/kernel/patches-4.14.x-rt/0228-lockdep-disable-self-test.patch +++ b/kernel/patches-4.14.x-rt/0228-lockdep-disable-self-test.patch @@ -1,7 +1,7 @@ -From 197f9da20cac19b33d616462b524ede4d31f8919 Mon Sep 17 00:00:00 2001 +From 0c2b63decb4b63c7b7d86ebfede7503cc7331c59 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 17 Oct 2017 16:36:18 +0200 -Subject: [PATCH 228/413] lockdep: disable self-test +Subject: [PATCH 228/436] lockdep: disable self-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0229-locking-Disable-spin-on-owner-for-RT.patch b/kernel/patches-4.14.x-rt/0229-locking-Disable-spin-on-owner-for-RT.patch index 9450e3596..a8c1f0489 100644 --- a/kernel/patches-4.14.x-rt/0229-locking-Disable-spin-on-owner-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0229-locking-Disable-spin-on-owner-for-RT.patch @@ -1,7 +1,7 @@ -From 3eaf0f5bb1de4cc2b482c163f3502d1ca66b59d7 Mon Sep 17 00:00:00 2001 +From 73122c1065aef4abed1dc277128711fa06b88587 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:51:45 +0200 -Subject: [PATCH 229/413] locking: Disable spin on owner for RT +Subject: [PATCH 229/436] locking: Disable spin on owner for RT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0230-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/kernel/patches-4.14.x-rt/0230-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch index 452dd9eca..8da9638a8 100644 --- a/kernel/patches-4.14.x-rt/0230-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +++ b/kernel/patches-4.14.x-rt/0230-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch @@ -1,7 +1,7 @@ -From c072dde319c9597521346f54f1be3a251f656308 Mon Sep 17 00:00:00 2001 +From dd415cb88ca5a74144627b04406b7ca32bb2ad67 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Tue, 29 Nov 2011 20:18:22 -0500 -Subject: [PATCH 230/413] tasklet: Prevent tasklets from going into infinite +Subject: [PATCH 230/436] tasklet: Prevent tasklets from going into infinite spin in RT When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads, diff --git a/kernel/patches-4.14.x-rt/0231-softirq-Check-preemption-after-reenabling-interrupts.patch b/kernel/patches-4.14.x-rt/0231-softirq-Check-preemption-after-reenabling-interrupts.patch index 238264ba5..b4d803716 100644 --- a/kernel/patches-4.14.x-rt/0231-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/kernel/patches-4.14.x-rt/0231-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,7 +1,7 @@ -From b4b4f4a983ac653a88470b8810c49c8180d0dffc Mon Sep 17 00:00:00 2001 +From c22be0944ce63462182a7bd93f6870f18be32aa6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 13 Nov 2011 17:17:09 +0100 -Subject: [PATCH 231/413] softirq: Check preemption after reenabling interrupts +Subject: [PATCH 231/436] softirq: Check preemption after reenabling interrupts raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -116,7 +116,7 @@ index 86a709954f5a..9c069ef83d6d 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 6ca771f2f25b..95d74948164f 100644 +index 85f4a1047707..3c074254ee80 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -2438,6 +2438,7 @@ static void __netif_reschedule(struct Qdisc *q) diff --git a/kernel/patches-4.14.x-rt/0232-softirq-Disable-softirq-stacks-for-RT.patch b/kernel/patches-4.14.x-rt/0232-softirq-Disable-softirq-stacks-for-RT.patch index 49247672d..41387b91a 100644 --- a/kernel/patches-4.14.x-rt/0232-softirq-Disable-softirq-stacks-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0232-softirq-Disable-softirq-stacks-for-RT.patch @@ -1,7 +1,7 @@ -From d77298f0ebacd51b2fe8ceb9ea99b0ce9c341f95 Mon Sep 17 00:00:00 2001 +From daefe5f44b9564aae25b59914facbd58cadc3a82 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 13:59:17 +0200 -Subject: [PATCH 232/413] softirq: Disable softirq stacks for RT +Subject: [PATCH 232/436] softirq: Disable softirq stacks for RT Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. diff --git a/kernel/patches-4.14.x-rt/0233-softirq-Split-softirq-locks.patch b/kernel/patches-4.14.x-rt/0233-softirq-Split-softirq-locks.patch index 2ac9cdd7a..2051a89f2 100644 --- a/kernel/patches-4.14.x-rt/0233-softirq-Split-softirq-locks.patch +++ b/kernel/patches-4.14.x-rt/0233-softirq-Split-softirq-locks.patch @@ -1,7 +1,7 @@ -From 2cf9d4b75214709487d37e7375cbb716b11504c1 Mon Sep 17 00:00:00 2001 +From ffd180daded1dd7e94e1db07b44d8a43ad08d894 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 4 Oct 2012 14:20:47 +0100 -Subject: [PATCH 233/413] softirq: Split softirq locks +Subject: [PATCH 233/436] softirq: Split softirq locks The 3.x RT series removed the split softirq implementation in favour of pushing softirq processing into the context of the thread which @@ -830,7 +830,7 @@ index 3af3d93f49ce..92222682dfce 100644 } diff --git a/net/core/dev.c b/net/core/dev.c -index 95d74948164f..a67f99b8370f 100644 +index 3c074254ee80..d2793442d459 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4088,11 +4088,9 @@ int netif_rx_ni(struct sk_buff *skb) diff --git a/kernel/patches-4.14.x-rt/0234-kernel-softirq-unlock-with-irqs-on.patch b/kernel/patches-4.14.x-rt/0234-kernel-softirq-unlock-with-irqs-on.patch index 261748ac7..5abfe8e35 100644 --- a/kernel/patches-4.14.x-rt/0234-kernel-softirq-unlock-with-irqs-on.patch +++ b/kernel/patches-4.14.x-rt/0234-kernel-softirq-unlock-with-irqs-on.patch @@ -1,7 +1,7 @@ -From 218969a3c898eca41ba701e664049577177a2c8e Mon Sep 17 00:00:00 2001 +From 3af0d43dcefeb771ad04cd6e35af51245bfeb4a3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Feb 2016 18:17:18 +0100 -Subject: [PATCH 234/413] kernel: softirq: unlock with irqs on +Subject: [PATCH 234/436] kernel: softirq: unlock with irqs on We unlock the lock while the interrupts are off. This isn't a problem now but will get because the migrate_disable() + enable are not diff --git a/kernel/patches-4.14.x-rt/0235-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/kernel/patches-4.14.x-rt/0235-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch index 1f5ddc4e6..a31371c29 100644 --- a/kernel/patches-4.14.x-rt/0235-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +++ b/kernel/patches-4.14.x-rt/0235-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch @@ -1,7 +1,7 @@ -From 9fdad89d317d61301bbd45436f2752c91d328bc3 Mon Sep 17 00:00:00 2001 +From a1e93ea1399d901f3188a9c1262a52c61651ab1b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 Jan 2012 13:01:27 +0100 -Subject: [PATCH 235/413] genirq: Allow disabling of softirq processing in irq +Subject: [PATCH 235/436] 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/kernel/patches-4.14.x-rt/0236-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/kernel/patches-4.14.x-rt/0236-softirq-split-timer-softirqs-out-of-ksoftirqd.patch index 67615ece1..5c8d50b05 100644 --- a/kernel/patches-4.14.x-rt/0236-softirq-split-timer-softirqs-out-of-ksoftirqd.patch +++ b/kernel/patches-4.14.x-rt/0236-softirq-split-timer-softirqs-out-of-ksoftirqd.patch @@ -1,7 +1,7 @@ -From da2a66de64016288832a8190948cff1895871794 Mon Sep 17 00:00:00 2001 +From 1b7f83f1c9eb934c8e0f7b96d4a58742cb8c7139 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Jan 2016 16:34:17 +0100 -Subject: [PATCH 236/413] softirq: split timer softirqs out of ksoftirqd +Subject: [PATCH 236/436] softirq: split timer softirqs out of ksoftirqd The softirqd runs in -RT with SCHED_FIFO (prio 1) and deals mostly with timer wakeup which can not happen in hardirq context. The prio has been diff --git a/kernel/patches-4.14.x-rt/0237-softirq-wake-the-timer-softirq-if-needed.patch b/kernel/patches-4.14.x-rt/0237-softirq-wake-the-timer-softirq-if-needed.patch index bd7b96ee2..9280523a5 100644 --- a/kernel/patches-4.14.x-rt/0237-softirq-wake-the-timer-softirq-if-needed.patch +++ b/kernel/patches-4.14.x-rt/0237-softirq-wake-the-timer-softirq-if-needed.patch @@ -1,7 +1,7 @@ -From b98e7e17bfe7f26082ec1ce591b10e2f9d7828a2 Mon Sep 17 00:00:00 2001 +From 31c07845d962fc6e73e1a418686460f591b6d68f Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Fri, 20 Jan 2017 18:10:20 +0100 -Subject: [PATCH 237/413] softirq: wake the timer softirq if needed +Subject: [PATCH 237/436] softirq: wake the timer softirq if needed The irq-exit path only checks the "normal"-softirq thread if it is running and ignores the state of the "timer"-softirq thread. It is possible diff --git a/kernel/patches-4.14.x-rt/0238-rtmutex-trylock-is-okay-on-RT.patch b/kernel/patches-4.14.x-rt/0238-rtmutex-trylock-is-okay-on-RT.patch index 8517ad296..4bda625f5 100644 --- a/kernel/patches-4.14.x-rt/0238-rtmutex-trylock-is-okay-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0238-rtmutex-trylock-is-okay-on-RT.patch @@ -1,7 +1,7 @@ -From b5f265f39acae79455a58d7a066239aca255a4a5 Mon Sep 17 00:00:00 2001 +From f471d9f06458ba1b30e5dfe586e3f02967be1af9 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 2 Dec 2015 11:34:07 +0100 -Subject: [PATCH 238/413] rtmutex: trylock is okay on -RT +Subject: [PATCH 238/436] rtmutex: trylock is okay on -RT non-RT kernel could deadlock on rt_mutex_trylock() in softirq context. On -RT we don't run softirqs in IRQ context but in thread context so it is @@ -13,10 +13,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index fe7f97edc94e..6f3177a6b8e3 100644 +index a8119deef92e..205a0e2ca730 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -1563,7 +1563,11 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock) +@@ -1584,7 +1584,11 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock) { int ret; diff --git a/kernel/patches-4.14.x-rt/0239-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/kernel/patches-4.14.x-rt/0239-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch index 0b945661b..3ae1822e2 100644 --- a/kernel/patches-4.14.x-rt/0239-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +++ b/kernel/patches-4.14.x-rt/0239-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -1,7 +1,7 @@ -From 643d9c50a5f88a66ee7823c9c6c56bc18f205c7c Mon Sep 17 00:00:00 2001 +From 0ca7c967e42cb1ac4ab71de5af1552d6bc6d205f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 15 Sep 2016 10:51:27 +0200 -Subject: [PATCH 239/413] fs/nfs: turn rmdir_sem into a semaphore +Subject: [PATCH 239/436] fs/nfs: turn rmdir_sem into a semaphore The RW semaphore had a reader side which used the _non_owner version because it most likely took the reader lock in one thread and released it diff --git a/kernel/patches-4.14.x-rt/0240-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/kernel/patches-4.14.x-rt/0240-rtmutex-Handle-the-various-new-futex-race-conditions.patch index 9f08c1ff5..54e0e8d96 100644 --- a/kernel/patches-4.14.x-rt/0240-rtmutex-Handle-the-various-new-futex-race-conditions.patch +++ b/kernel/patches-4.14.x-rt/0240-rtmutex-Handle-the-various-new-futex-race-conditions.patch @@ -1,7 +1,7 @@ -From 82fed9027092736a7074e7460e4d90ba88f48996 Mon Sep 17 00:00:00 2001 +From 7cbeacfc2c5eb2f95892e4751864a08e664a7370 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 10 Jun 2011 11:04:15 +0200 -Subject: [PATCH 240/413] rtmutex: Handle the various new futex race conditions +Subject: [PATCH 240/436] rtmutex: Handle the various new futex race conditions RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and @@ -141,7 +141,7 @@ index 1d87da84b2a2..207e10a1791a 100644 ret = 0; diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 6f3177a6b8e3..8d7ab272b109 100644 +index 205a0e2ca730..65c50c893513 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -135,6 +135,11 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) diff --git a/kernel/patches-4.14.x-rt/0241-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/kernel/patches-4.14.x-rt/0241-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch index 1ba927920..d3418329a 100644 --- a/kernel/patches-4.14.x-rt/0241-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +++ b/kernel/patches-4.14.x-rt/0241-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch @@ -1,7 +1,7 @@ -From b38ea20b60ba7a9fa94c24b04eccbd13bd649a45 Mon Sep 17 00:00:00 2001 +From 180eefea754623a6991e9e7a28e3b5854e3dd299 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 241/413] futex: Fix bug on when a requeued RT task times out +Subject: [PATCH 241/436] futex: Fix bug on when a requeued RT task times out Requeue with timeout causes a bug with PREEMPT_RT_FULL. @@ -55,7 +55,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 8d7ab272b109..ee867d9ebf72 100644 +index 65c50c893513..ea8dd82835c9 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -137,7 +137,8 @@ static void fixup_rt_mutex_waiters(struct rt_mutex *lock) @@ -68,7 +68,7 @@ index 8d7ab272b109..ee867d9ebf72 100644 } /* -@@ -1743,6 +1744,35 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, +@@ -1764,6 +1765,35 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, if (try_to_take_rt_mutex(lock, task, NULL)) return 1; diff --git a/kernel/patches-4.14.x-rt/0242-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch b/kernel/patches-4.14.x-rt/0242-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch index 49b937bbc..3d14db872 100644 --- a/kernel/patches-4.14.x-rt/0242-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch +++ b/kernel/patches-4.14.x-rt/0242-locking-rtmutex-don-t-drop-the-wait_lock-twice.patch @@ -1,7 +1,7 @@ -From 113e9562eeaf0c032e588567e26063a137b0ed96 Mon Sep 17 00:00:00 2001 +From 89e87e954ea6d2cded7513daed364e6f797433a3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 7 Sep 2017 12:38:47 +0200 -Subject: [PATCH 242/413] locking/rtmutex: don't drop the wait_lock twice +Subject: [PATCH 242/436] locking/rtmutex: don't drop the wait_lock twice Since the futex rework, __rt_mutex_start_proxy_lock() does no longer acquire the wait_lock so it must not drop it. Otherwise the lock is not @@ -19,10 +19,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 deletion(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index ee867d9ebf72..bbb3508d267f 100644 +index ea8dd82835c9..935adbbe08f1 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -1766,7 +1766,6 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, +@@ -1787,7 +1787,6 @@ int __rt_mutex_start_proxy_lock(struct rt_mutex *lock, raw_spin_lock(&task->pi_lock); if (task->pi_blocked_on) { raw_spin_unlock(&task->pi_lock); diff --git a/kernel/patches-4.14.x-rt/0243-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/kernel/patches-4.14.x-rt/0243-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch index 440153577..99e940c89 100644 --- a/kernel/patches-4.14.x-rt/0243-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch +++ b/kernel/patches-4.14.x-rt/0243-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch @@ -1,7 +1,7 @@ -From ce619636acf35c99e8ef5feb9540d03e1444f25e Mon Sep 17 00:00:00 2001 +From 964262cb11214983e467dc0064799be595dc5ef8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 1 Mar 2013 11:17:42 +0100 -Subject: [PATCH 243/413] futex: Ensure lock/unlock symetry versus pi_lock and +Subject: [PATCH 243/436] futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock In exit_pi_state_list() we have the following locking construct: diff --git a/kernel/patches-4.14.x-rt/0244-pid.h-include-atomic.h.patch b/kernel/patches-4.14.x-rt/0244-pid.h-include-atomic.h.patch index 83a86ff02..53373507e 100644 --- a/kernel/patches-4.14.x-rt/0244-pid.h-include-atomic.h.patch +++ b/kernel/patches-4.14.x-rt/0244-pid.h-include-atomic.h.patch @@ -1,7 +1,7 @@ -From 6932a81f081e688b0670ab33ae1e6117efe042b1 Mon Sep 17 00:00:00 2001 +From e0d3b825437c8379f11b1e218e3a0efb3f80e92a Mon Sep 17 00:00:00 2001 From: Grygorii Strashko Date: Tue, 21 Jul 2015 19:43:56 +0300 -Subject: [PATCH 244/413] pid.h: include atomic.h +Subject: [PATCH 244/436] pid.h: include atomic.h This patch fixes build error: CC kernel/pid_namespace.o diff --git a/kernel/patches-4.14.x-rt/0245-arm-include-definition-for-cpumask_t.patch b/kernel/patches-4.14.x-rt/0245-arm-include-definition-for-cpumask_t.patch index a4ae6ec17..0a73b6f97 100644 --- a/kernel/patches-4.14.x-rt/0245-arm-include-definition-for-cpumask_t.patch +++ b/kernel/patches-4.14.x-rt/0245-arm-include-definition-for-cpumask_t.patch @@ -1,7 +1,7 @@ -From d656388d8790dc7caf2fa4894c43e6b1689ad3cc Mon Sep 17 00:00:00 2001 +From b53a15837cf37ad948eba435e7dc9c8426c98318 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Dec 2016 17:28:33 +0100 -Subject: [PATCH 245/413] arm: include definition for cpumask_t +Subject: [PATCH 245/436] arm: include definition for cpumask_t This definition gets pulled in by other files. With the (later) split of RCU and spinlock.h it won't compile anymore. diff --git a/kernel/patches-4.14.x-rt/0246-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/kernel/patches-4.14.x-rt/0246-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch index 3207656fd..a3d5cc28a 100644 --- a/kernel/patches-4.14.x-rt/0246-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +++ b/kernel/patches-4.14.x-rt/0246-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch @@ -1,7 +1,7 @@ -From 174c575ef20278adc3f07b25856e4a0d65790cc6 Mon Sep 17 00:00:00 2001 +From 89b2849af449b42e47dafe985a84ac4bcbc6384d Mon Sep 17 00:00:00 2001 From: "Wolfgang M. Reimer" Date: Tue, 21 Jul 2015 16:20:07 +0200 -Subject: [PATCH 246/413] locking: locktorture: Do NOT include rwlock.h +Subject: [PATCH 246/436] locking: locktorture: Do NOT include rwlock.h directly Including rwlock.h directly will cause kernel builds to fail diff --git a/kernel/patches-4.14.x-rt/0247-rtmutex-Add-rtmutex_lock_killable.patch b/kernel/patches-4.14.x-rt/0247-rtmutex-Add-rtmutex_lock_killable.patch index 0fd1d4bbb..81a2a1efb 100644 --- a/kernel/patches-4.14.x-rt/0247-rtmutex-Add-rtmutex_lock_killable.patch +++ b/kernel/patches-4.14.x-rt/0247-rtmutex-Add-rtmutex_lock_killable.patch @@ -1,7 +1,7 @@ -From b55df8ef924b45488bd6f45ca3c18923e127831f Mon Sep 17 00:00:00 2001 +From 0c6fb534761ed7fcfea26d3a944f12946209a9bd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 9 Jun 2011 11:43:52 +0200 -Subject: [PATCH 247/413] rtmutex: Add rtmutex_lock_killable() +Subject: [PATCH 247/436] rtmutex: Add rtmutex_lock_killable() Add "killable" type to rtmutex. We need this since rtmutex are used as "normal" mutexes which do use this type. @@ -13,22 +13,22 @@ Signed-off-by: Thomas Gleixner 2 files changed, 20 insertions(+) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 1b92a28dd672..66aa13520b68 100644 +index 6fd615a0eea9..81ece6a8291a 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h -@@ -108,6 +108,7 @@ extern void rt_mutex_destroy(struct rt_mutex *lock); +@@ -115,6 +115,7 @@ extern void rt_mutex_lock(struct rt_mutex *lock); + #endif - extern void rt_mutex_lock(struct rt_mutex *lock); extern int rt_mutex_lock_interruptible(struct rt_mutex *lock); +extern int rt_mutex_lock_killable(struct rt_mutex *lock); extern int rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout); diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index bbb3508d267f..986620b78011 100644 +index 935adbbe08f1..fb6bb56ac33d 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -1542,6 +1542,25 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock) +@@ -1563,6 +1563,25 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock) return __rt_mutex_slowtrylock(lock); } diff --git a/kernel/patches-4.14.x-rt/0248-rtmutex-Make-lock_killable-work.patch b/kernel/patches-4.14.x-rt/0248-rtmutex-Make-lock_killable-work.patch index 98a22aa20..710d8e3bc 100644 --- a/kernel/patches-4.14.x-rt/0248-rtmutex-Make-lock_killable-work.patch +++ b/kernel/patches-4.14.x-rt/0248-rtmutex-Make-lock_killable-work.patch @@ -1,7 +1,7 @@ -From 783955f81c83e59dbbd66126c9044f2067e3c611 Mon Sep 17 00:00:00 2001 +From c0a206c6c67732ce8e951f48bbaebc66e94c09ff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 1 Apr 2017 12:50:59 +0200 -Subject: [PATCH 248/413] rtmutex: Make lock_killable work +Subject: [PATCH 248/436] rtmutex: Make lock_killable work Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. @@ -16,7 +16,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 986620b78011..0ba13b607757 100644 +index fb6bb56ac33d..5f2b7609693f 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1201,18 +1201,13 @@ __rt_mutex_slowlock(struct rt_mutex *lock, int state, diff --git a/kernel/patches-4.14.x-rt/0249-spinlock-Split-the-lock-types-header.patch b/kernel/patches-4.14.x-rt/0249-spinlock-Split-the-lock-types-header.patch index 24830480a..ff43591d5 100644 --- a/kernel/patches-4.14.x-rt/0249-spinlock-Split-the-lock-types-header.patch +++ b/kernel/patches-4.14.x-rt/0249-spinlock-Split-the-lock-types-header.patch @@ -1,7 +1,7 @@ -From 1d91c8b7a300eca9f401f267d8aa313b07dbe4fe Mon Sep 17 00:00:00 2001 +From b50e3a2c132d5cc24c9fcc10ea0ae43892be1b17 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 19:34:01 +0200 -Subject: [PATCH 249/413] spinlock: Split the lock types header +Subject: [PATCH 249/436] spinlock: Split the lock types header Split raw_spinlock into its own file and the remaining spinlock_t into its own non-RT header. The non-RT header will be replaced later by sleeping diff --git a/kernel/patches-4.14.x-rt/0250-rtmutex-Avoid-include-hell.patch b/kernel/patches-4.14.x-rt/0250-rtmutex-Avoid-include-hell.patch index 7a02ed236..57e5c1dc8 100644 --- a/kernel/patches-4.14.x-rt/0250-rtmutex-Avoid-include-hell.patch +++ b/kernel/patches-4.14.x-rt/0250-rtmutex-Avoid-include-hell.patch @@ -1,7 +1,7 @@ -From 6388e939f29c506ebd95f47078222e86fd710577 Mon Sep 17 00:00:00 2001 +From 146096f53e61a61fd2cd27880ce36091358c1310 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 20:06:39 +0200 -Subject: [PATCH 250/413] rtmutex: Avoid include hell +Subject: [PATCH 250/436] rtmutex: Avoid include hell Include only the required raw types. This avoids pulling in the complete spinlock header which in turn requires rtmutex.h at some point. @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 66aa13520b68..0331eb58f95d 100644 +index 81ece6a8291a..a355289b1fa1 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -15,7 +15,7 @@ diff --git a/kernel/patches-4.14.x-rt/0251-rbtree-don-t-include-the-rcu-header.patch b/kernel/patches-4.14.x-rt/0251-rbtree-don-t-include-the-rcu-header.patch index 1b30daaf5..a26e5d0ae 100644 --- a/kernel/patches-4.14.x-rt/0251-rbtree-don-t-include-the-rcu-header.patch +++ b/kernel/patches-4.14.x-rt/0251-rbtree-don-t-include-the-rcu-header.patch @@ -1,7 +1,7 @@ -From 7b956443eea7f72193bc66465b88cf1f871287cb Mon Sep 17 00:00:00 2001 +From e8275dc7b3f5e2dc14aaad6d36d632995f7e07df Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 3 May 2018 17:46:31 +0200 -Subject: [PATCH 251/413] rbtree: don't include the rcu header +Subject: [PATCH 251/436] rbtree: don't include the rcu header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0252-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/kernel/patches-4.14.x-rt/0252-rtmutex-Provide-rt_mutex_slowlock_locked.patch index b7e1f54a9..1413211ec 100644 --- a/kernel/patches-4.14.x-rt/0252-rtmutex-Provide-rt_mutex_slowlock_locked.patch +++ b/kernel/patches-4.14.x-rt/0252-rtmutex-Provide-rt_mutex_slowlock_locked.patch @@ -1,7 +1,7 @@ -From 4e6c12d9702e106edc2f5f496ae6746ec908137e Mon Sep 17 00:00:00 2001 +From c9d71088b043f8be89de17134b5f70b593c0b6bf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:14:22 +0200 -Subject: [PATCH 252/413] rtmutex: Provide rt_mutex_slowlock_locked() +Subject: [PATCH 252/436] rtmutex: Provide rt_mutex_slowlock_locked() This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 46 insertions(+), 30 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 0ba13b607757..922bf9c122b0 100644 +index 5f2b7609693f..1ae8d883c439 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1244,35 +1244,16 @@ static void rt_mutex_handle_deadlock(int res, int detect_deadlock, diff --git a/kernel/patches-4.14.x-rt/0253-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch b/kernel/patches-4.14.x-rt/0253-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch index 1d89d1932..17e3e3f0f 100644 --- a/kernel/patches-4.14.x-rt/0253-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch +++ b/kernel/patches-4.14.x-rt/0253-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch @@ -1,7 +1,7 @@ -From af78b8a16e4360e5a51df6a433cc43b3e8d0d6d7 Mon Sep 17 00:00:00 2001 +From dedfcc4e7dc5f3b63286f4ba2445b93b8052c11a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:36:39 +0200 -Subject: [PATCH 253/413] rtmutex: export lockdep-less version of rt_mutex's +Subject: [PATCH 253/436] rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock Required for lock implementation ontop of rtmutex. @@ -9,21 +9,22 @@ Required for lock implementation ontop of rtmutex. Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior --- - kernel/locking/rtmutex.c | 70 +++++++++++++++++++++------------ + kernel/locking/rtmutex.c | 65 ++++++++++++++++++++------------- kernel/locking/rtmutex_common.h | 3 ++ - 2 files changed, 47 insertions(+), 26 deletions(-) + 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 922bf9c122b0..035bf01f3b73 100644 +index 1ae8d883c439..2367afc60405 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -1496,6 +1496,29 @@ rt_mutex_fastunlock(struct rt_mutex *lock, +@@ -1496,12 +1496,27 @@ rt_mutex_fastunlock(struct rt_mutex *lock, rt_mutex_postunlock(&wake_q); } +-static inline void __rt_mutex_lock(struct rt_mutex *lock, unsigned int subclass) +int __sched __rt_mutex_lock_state(struct rt_mutex *lock, int state) -+{ -+ might_sleep(); + { + might_sleep(); + return rt_mutex_fastlock(lock, state, NULL, rt_mutex_slowlock); +} + @@ -33,33 +34,38 @@ index 922bf9c122b0..035bf01f3b73 100644 + * @lock: The rt_mutex to be locked + * @state: The state to set when blocking on the rt_mutex + */ -+static int __sched rt_mutex_lock_state(struct rt_mutex *lock, int state) ++static int __sched rt_mutex_lock_state(struct rt_mutex *lock, int state, unsigned int subclass) +{ + int ret; -+ -+ mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_); + + mutex_acquire(&lock->dep_map, subclass, 0, _RET_IP_); +- rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, rt_mutex_slowlock); + ret = __rt_mutex_lock_state(lock, state); + if (ret) + mutex_release(&lock->dep_map, 1, _RET_IP_); + return ret; -+} -+ - /** - * rt_mutex_lock - lock a rt_mutex - * -@@ -1503,10 +1526,7 @@ rt_mutex_fastunlock(struct rt_mutex *lock, + } + + #ifdef CONFIG_DEBUG_LOCK_ALLOC +@@ -1513,7 +1528,7 @@ static inline void __rt_mutex_lock(struct rt_mutex *lock, unsigned int subclass) + */ + void __sched rt_mutex_lock_nested(struct rt_mutex *lock, unsigned int subclass) + { +- __rt_mutex_lock(lock, subclass); ++ rt_mutex_lock_state(lock, TASK_UNINTERRUPTIBLE, subclass); + } + EXPORT_SYMBOL_GPL(rt_mutex_lock_nested); + #endif +@@ -1526,7 +1541,7 @@ EXPORT_SYMBOL_GPL(rt_mutex_lock_nested); */ void __sched rt_mutex_lock(struct rt_mutex *lock) { -- might_sleep(); -- -- mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_); -- rt_mutex_fastlock(lock, TASK_UNINTERRUPTIBLE, rt_mutex_slowlock); -+ rt_mutex_lock_state(lock, TASK_UNINTERRUPTIBLE); +- __rt_mutex_lock(lock, 0); ++ rt_mutex_lock_state(lock, TASK_UNINTERRUPTIBLE, 0); } EXPORT_SYMBOL_GPL(rt_mutex_lock); - -@@ -1521,16 +1541,7 @@ EXPORT_SYMBOL_GPL(rt_mutex_lock); + #endif +@@ -1542,16 +1557,7 @@ EXPORT_SYMBOL_GPL(rt_mutex_lock); */ int __sched rt_mutex_lock_interruptible(struct rt_mutex *lock) { @@ -73,11 +79,11 @@ index 922bf9c122b0..035bf01f3b73 100644 - mutex_release(&lock->dep_map, 1, _RET_IP_); - - return ret; -+ return rt_mutex_lock_state(lock, TASK_INTERRUPTIBLE); ++ return rt_mutex_lock_state(lock, TASK_INTERRUPTIBLE, 0); } EXPORT_SYMBOL_GPL(rt_mutex_lock_interruptible); -@@ -1556,13 +1567,10 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock) +@@ -1577,13 +1583,10 @@ int __sched __rt_mutex_futex_trylock(struct rt_mutex *lock) * Returns: * 0 on success * -EINTR when interrupted by a signal @@ -88,11 +94,11 @@ index 922bf9c122b0..035bf01f3b73 100644 - might_sleep(); - - return rt_mutex_fastlock(lock, TASK_KILLABLE, rt_mutex_slowlock); -+ return rt_mutex_lock_state(lock, TASK_KILLABLE); ++ return rt_mutex_lock_state(lock, TASK_KILLABLE, 0); } EXPORT_SYMBOL_GPL(rt_mutex_lock_killable); -@@ -1597,6 +1605,18 @@ rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout) +@@ -1618,6 +1621,18 @@ rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout) } EXPORT_SYMBOL_GPL(rt_mutex_timed_lock); @@ -111,7 +117,7 @@ index 922bf9c122b0..035bf01f3b73 100644 /** * rt_mutex_trylock - try to lock a rt_mutex * -@@ -1612,14 +1632,7 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock) +@@ -1633,14 +1648,7 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock) { int ret; @@ -127,7 +133,7 @@ index 922bf9c122b0..035bf01f3b73 100644 if (ret) mutex_acquire(&lock->dep_map, 0, 1, _RET_IP_); -@@ -1627,6 +1640,11 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock) +@@ -1648,6 +1656,11 @@ int __sched rt_mutex_trylock(struct rt_mutex *lock) } EXPORT_SYMBOL_GPL(rt_mutex_trylock); diff --git a/kernel/patches-4.14.x-rt/0254-rtmutex-add-sleeping-lock-implementation.patch b/kernel/patches-4.14.x-rt/0254-rtmutex-add-sleeping-lock-implementation.patch index 9a8da7da1..8fe86ee81 100644 --- a/kernel/patches-4.14.x-rt/0254-rtmutex-add-sleeping-lock-implementation.patch +++ b/kernel/patches-4.14.x-rt/0254-rtmutex-add-sleeping-lock-implementation.patch @@ -1,7 +1,7 @@ -From 82d1316475d5e80d5d4e7247f408c3e7d55b01f0 Mon Sep 17 00:00:00 2001 +From afa1c470bea57c7dff63591b65a420de40befc84 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:11:19 +0200 -Subject: [PATCH 254/413] rtmutex: add sleeping lock implementation +Subject: [PATCH 254/436] rtmutex: add sleeping lock implementation Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior @@ -44,7 +44,7 @@ index f696993c052c..74feebf9d82c 100644 #endif diff --git a/include/linux/rtmutex.h b/include/linux/rtmutex.h -index 0331eb58f95d..82ac0e5db005 100644 +index a355289b1fa1..138bd1e183e0 100644 --- a/include/linux/rtmutex.h +++ b/include/linux/rtmutex.h @@ -14,11 +14,15 @@ @@ -392,7 +392,7 @@ index 000000000000..3e3d8c5f7a9a + +#endif diff --git a/kernel/fork.c b/kernel/fork.c -index 7f1faa476ca5..72700b643f9e 100644 +index 787105e3bf1b..bc849ac60aa6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -599,6 +599,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig, int node) @@ -451,7 +451,7 @@ index 7540d5c425ac..2ba7fb04a107 100644 ret = get_futex_key(uaddr2, flags & FLAGS_SHARED, &key2, VERIFY_WRITE); if (unlikely(ret != 0)) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 035bf01f3b73..3d6374f5f776 100644 +index 2367afc60405..827546ba5a47 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -7,6 +7,11 @@ @@ -1003,7 +1003,7 @@ index 035bf01f3b73..3d6374f5f776 100644 } int __sched __rt_mutex_lock_state(struct rt_mutex *lock, int state) -@@ -1653,16 +2002,13 @@ void __sched __rt_mutex_unlock(struct rt_mutex *lock) +@@ -1669,16 +2018,13 @@ void __sched __rt_mutex_unlock(struct rt_mutex *lock) void __sched rt_mutex_unlock(struct rt_mutex *lock) { mutex_release(&lock->dep_map, 1, _RET_IP_); @@ -1024,7 +1024,7 @@ index 035bf01f3b73..3d6374f5f776 100644 { lockdep_assert_held(&lock->wait_lock); -@@ -1679,23 +2025,35 @@ bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock, +@@ -1695,23 +2041,35 @@ bool __sched __rt_mutex_futex_unlock(struct rt_mutex *lock, * avoid inversion prior to the wakeup. preempt_disable() * therein pairs with rt_mutex_postunlock(). */ @@ -1063,7 +1063,7 @@ index 035bf01f3b73..3d6374f5f776 100644 } /** -@@ -1734,7 +2092,7 @@ void __rt_mutex_init(struct rt_mutex *lock, const char *name, +@@ -1750,7 +2108,7 @@ void __rt_mutex_init(struct rt_mutex *lock, const char *name, if (name && key) debug_rt_mutex_init(lock, name, key); } @@ -1072,7 +1072,7 @@ index 035bf01f3b73..3d6374f5f776 100644 /** * rt_mutex_init_proxy_locked - initialize and lock a rt_mutex on behalf of a -@@ -1903,6 +2261,7 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock, +@@ -1919,6 +2277,7 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock, struct hrtimer_sleeper *to, struct rt_mutex_waiter *waiter) { @@ -1080,7 +1080,7 @@ index 035bf01f3b73..3d6374f5f776 100644 int ret; raw_spin_lock_irq(&lock->wait_lock); -@@ -1914,6 +2273,24 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock, +@@ -1930,6 +2289,24 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock, * have to fix that up. */ fixup_rt_mutex_waiters(lock); diff --git a/kernel/patches-4.14.x-rt/0255-rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/kernel/patches-4.14.x-rt/0255-rtmutex-add-mutex-implementation-based-on-rtmutex.patch index 4b4700da1..affa70d76 100644 --- a/kernel/patches-4.14.x-rt/0255-rtmutex-add-mutex-implementation-based-on-rtmutex.patch +++ b/kernel/patches-4.14.x-rt/0255-rtmutex-add-mutex-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ -From 59a84f4042a9b7661a81aeb4d33d0d1b81f12528 Mon Sep 17 00:00:00 2001 +From 89833f309efbdc140af06b7f343b115ab89a73b7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:17:03 +0200 -Subject: [PATCH 255/413] rtmutex: add mutex implementation based on rtmutex +Subject: [PATCH 255/436] rtmutex: add mutex implementation based on rtmutex Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior diff --git a/kernel/patches-4.14.x-rt/0256-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/kernel/patches-4.14.x-rt/0256-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch index 3c71fdedb..22a8fb37d 100644 --- a/kernel/patches-4.14.x-rt/0256-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +++ b/kernel/patches-4.14.x-rt/0256-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ -From ea2a0f31e90305695a623b57e1fba3d6476cd728 Mon Sep 17 00:00:00 2001 +From 130569f05eeda34cef7dfbbab76aa126e96d58f4 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:28:34 +0200 -Subject: [PATCH 256/413] rtmutex: add rwsem implementation based on rtmutex +Subject: [PATCH 256/436] rtmutex: add rwsem implementation based on rtmutex The RT specific R/W semaphore implementation restricts the number of readers to one because a writer cannot block on multiple readers and inherit its diff --git a/kernel/patches-4.14.x-rt/0257-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/kernel/patches-4.14.x-rt/0257-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch index 5c1f2dc02..9b5c3b43b 100644 --- a/kernel/patches-4.14.x-rt/0257-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +++ b/kernel/patches-4.14.x-rt/0257-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ -From 187a4d97e6fbe457e02224c7d7521db6f7bd4b9a Mon Sep 17 00:00:00 2001 +From a51ee1801a2ebef49c3d2d46839e0d287ed3d4c1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:18:06 +0200 -Subject: [PATCH 257/413] rtmutex: add rwlock implementation based on rtmutex +Subject: [PATCH 257/436] rtmutex: add rwlock implementation based on rtmutex The implementation is bias-based, similar to the rwsem implementation. diff --git a/kernel/patches-4.14.x-rt/0258-rtmutex-wire-up-RT-s-locking.patch b/kernel/patches-4.14.x-rt/0258-rtmutex-wire-up-RT-s-locking.patch index 9573df477..a80d54aba 100644 --- a/kernel/patches-4.14.x-rt/0258-rtmutex-wire-up-RT-s-locking.patch +++ b/kernel/patches-4.14.x-rt/0258-rtmutex-wire-up-RT-s-locking.patch @@ -1,7 +1,7 @@ -From b9e91379b1caa42f3bab18b2222dd4525239d2a0 Mon Sep 17 00:00:00 2001 +From a094a0fe281a6b0e5eaa98a697e445cfaac15cf1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:31:14 +0200 -Subject: [PATCH 258/413] rtmutex: wire up RT's locking +Subject: [PATCH 258/436] rtmutex: wire up RT's locking Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior diff --git a/kernel/patches-4.14.x-rt/0259-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/kernel/patches-4.14.x-rt/0259-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch index da643390e..0b6ba6e3b 100644 --- a/kernel/patches-4.14.x-rt/0259-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +++ b/kernel/patches-4.14.x-rt/0259-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch @@ -1,7 +1,7 @@ -From 574b455571f59bb83cf90d56e9da47d407acd7fc Mon Sep 17 00:00:00 2001 +From 72b28b7932c1c6c0ea65a0d850cf98f8efaa1134 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 17:34:38 +0200 -Subject: [PATCH 259/413] rtmutex: add ww_mutex addon for mutex-rt +Subject: [PATCH 259/436] rtmutex: add ww_mutex addon for mutex-rt Signed-off-by: Sebastian Andrzej Siewior --- @@ -11,7 +11,7 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 257 insertions(+), 11 deletions(-) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 3d6374f5f776..3e130ea6f85c 100644 +index 827546ba5a47..5772283ebd17 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -23,6 +23,7 @@ @@ -277,7 +277,7 @@ index 3d6374f5f776..3e130ea6f85c 100644 } static inline int -@@ -1946,6 +2093,7 @@ rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout) +@@ -1962,6 +2109,7 @@ rt_mutex_timed_lock(struct rt_mutex *lock, struct hrtimer_sleeper *timeout) mutex_acquire(&lock->dep_map, 0, 0, _RET_IP_); ret = rt_mutex_timed_fastlock(lock, TASK_INTERRUPTIBLE, timeout, RT_MUTEX_MIN_CHAINWALK, @@ -285,7 +285,7 @@ index 3d6374f5f776..3e130ea6f85c 100644 rt_mutex_slowlock); if (ret) mutex_release(&lock->dep_map, 1, _RET_IP_); -@@ -2267,7 +2415,7 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock, +@@ -2283,7 +2431,7 @@ int rt_mutex_wait_proxy_lock(struct rt_mutex *lock, raw_spin_lock_irq(&lock->wait_lock); /* sleep on the mutex */ set_current_state(TASK_INTERRUPTIBLE); @@ -294,7 +294,7 @@ index 3d6374f5f776..3e130ea6f85c 100644 /* * try_to_take_rt_mutex() sets the waiter bit unconditionally. We might * have to fix that up. -@@ -2351,3 +2499,99 @@ bool rt_mutex_cleanup_proxy_lock(struct rt_mutex *lock, +@@ -2367,3 +2515,99 @@ bool rt_mutex_cleanup_proxy_lock(struct rt_mutex *lock, return cleanup; } diff --git a/kernel/patches-4.14.x-rt/0260-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/kernel/patches-4.14.x-rt/0260-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch index 8ae81760c..94a4d31de 100644 --- a/kernel/patches-4.14.x-rt/0260-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch +++ b/kernel/patches-4.14.x-rt/0260-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch @@ -1,7 +1,7 @@ -From 19e7696147b2d4c813596d0f4798488fb2d07c11 Mon Sep 17 00:00:00 2001 +From ffd38f2a04688792e0770e6a6ef28caa52da48d6 Mon Sep 17 00:00:00 2001 From: Mikulas Patocka Date: Mon, 13 Nov 2017 12:56:53 -0500 -Subject: [PATCH 260/413] locking/rt-mutex: fix deadlock in device mapper / +Subject: [PATCH 260/436] locking/rt-mutex: fix deadlock in device mapper / block-IO When some block device driver creates a bio and submits it to another @@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 13 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 3e130ea6f85c..53f344caf5c8 100644 +index 5772283ebd17..070cd952a3e8 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -24,6 +24,7 @@ diff --git a/kernel/patches-4.14.x-rt/0261-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch b/kernel/patches-4.14.x-rt/0261-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch index 3d3be5a44..9bd98e748 100644 --- a/kernel/patches-4.14.x-rt/0261-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch +++ b/kernel/patches-4.14.x-rt/0261-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch @@ -1,7 +1,7 @@ -From 464e9576e0fada6487bcc6fabba8a302c268e271 Mon Sep 17 00:00:00 2001 +From 6ce03196e83f3d3087dc29ecce8cde5bc73ab6a4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 16 Nov 2017 16:48:48 +0100 -Subject: [PATCH 261/413] locking/rtmutex: re-init the wait_lock in +Subject: [PATCH 261/436] locking/rtmutex: re-init the wait_lock in rt_mutex_init_proxy_locked() We could provide a key-class for the lockdep (and fixup all callers) or @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 8 insertions(+) diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 53f344caf5c8..0cb716ba3be0 100644 +index 070cd952a3e8..53b510d29a3a 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c -@@ -2273,6 +2273,14 @@ void rt_mutex_init_proxy_locked(struct rt_mutex *lock, +@@ -2289,6 +2289,14 @@ void rt_mutex_init_proxy_locked(struct rt_mutex *lock, struct task_struct *proxy_owner) { __rt_mutex_init(lock, NULL, NULL); diff --git a/kernel/patches-4.14.x-rt/0262-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/kernel/patches-4.14.x-rt/0262-ptrace-fix-ptrace-vs-tasklist_lock-race.patch index c018d8332..b245c54c3 100644 --- a/kernel/patches-4.14.x-rt/0262-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +++ b/kernel/patches-4.14.x-rt/0262-ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -1,7 +1,7 @@ -From 5648ff3390c4e70eae6838b7c2bb928382eed970 Mon Sep 17 00:00:00 2001 +From a0aa2b86fabe118ce36663f2ecbe92b614b9547f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Aug 2013 18:21:04 +0200 -Subject: [PATCH 262/413] ptrace: fix ptrace vs tasklist_lock race +Subject: [PATCH 262/436] ptrace: fix ptrace vs tasklist_lock race As explained by Alexander Fyodorov : diff --git a/kernel/patches-4.14.x-rt/0263-RCU-we-need-to-skip-that-warning-but-only-on-sleepin.patch b/kernel/patches-4.14.x-rt/0263-RCU-we-need-to-skip-that-warning-but-only-on-sleepin.patch index 0841c65e1..3c2e6840a 100644 --- a/kernel/patches-4.14.x-rt/0263-RCU-we-need-to-skip-that-warning-but-only-on-sleepin.patch +++ b/kernel/patches-4.14.x-rt/0263-RCU-we-need-to-skip-that-warning-but-only-on-sleepin.patch @@ -1,7 +1,7 @@ -From 7e0413870dd49885cceca1b92ef3f02aa34e977b Mon Sep 17 00:00:00 2001 +From 3c94dc50b4db191b240905f8c9c9ec4ab38feb9b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2017 14:25:13 +0200 -Subject: [PATCH 263/413] RCU: we need to skip that warning but only on +Subject: [PATCH 263/436] RCU: we need to skip that warning but only on sleeping locks This check is okay for upstream. On RT we trigger this while blocking on diff --git a/kernel/patches-4.14.x-rt/0264-RCU-skip-the-schedule-in-RCU-section-warning-on-UP-t.patch b/kernel/patches-4.14.x-rt/0264-RCU-skip-the-schedule-in-RCU-section-warning-on-UP-t.patch index 133ee6b3b..7938166dc 100644 --- a/kernel/patches-4.14.x-rt/0264-RCU-skip-the-schedule-in-RCU-section-warning-on-UP-t.patch +++ b/kernel/patches-4.14.x-rt/0264-RCU-skip-the-schedule-in-RCU-section-warning-on-UP-t.patch @@ -1,7 +1,7 @@ -From d99a8f8fd7a3e3fbb2b7c9fec008317eb2122676 Mon Sep 17 00:00:00 2001 +From b62cbd6acc3c520b4097ebcf612f1c63b064c85e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 16 Feb 2018 11:45:13 +0100 -Subject: [PATCH 264/413] RCU: skip the "schedule() in RCU section" warning on +Subject: [PATCH 264/436] RCU: skip the "schedule() in RCU section" warning on UP, too In "RCU: we need to skip that warning but only on sleeping locks" we diff --git a/kernel/patches-4.14.x-rt/0265-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/kernel/patches-4.14.x-rt/0265-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch index 26aa2b752..dd882e7f3 100644 --- a/kernel/patches-4.14.x-rt/0265-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +++ b/kernel/patches-4.14.x-rt/0265-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch @@ -1,7 +1,7 @@ -From c008e41365e41c9a4d6bfb853b4c59e8d8846daf Mon Sep 17 00:00:00 2001 +From ac16b26465a51a13b412b229825b4cd230ff5d14 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 17:40:42 +0200 -Subject: [PATCH 265/413] locking: don't check for __LINUX_SPINLOCK_TYPES_H on +Subject: [PATCH 265/436] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs Upstream uses arch_spinlock_t within spinlock_t and requests that diff --git a/kernel/patches-4.14.x-rt/0266-rcu-Frob-softirq-test.patch b/kernel/patches-4.14.x-rt/0266-rcu-Frob-softirq-test.patch index 72ef27fa8..afd858528 100644 --- a/kernel/patches-4.14.x-rt/0266-rcu-Frob-softirq-test.patch +++ b/kernel/patches-4.14.x-rt/0266-rcu-Frob-softirq-test.patch @@ -1,7 +1,7 @@ -From edc28ec7fe0fb938a477c59e11c8ed3581890a11 Mon Sep 17 00:00:00 2001 +From a4ce05274b3df37d8646cf1c10548017e1df8740 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Sat, 13 Aug 2011 00:23:17 +0200 -Subject: [PATCH 266/413] rcu: Frob softirq test +Subject: [PATCH 266/436] rcu: Frob softirq test With RT_FULL we get the below wreckage: diff --git a/kernel/patches-4.14.x-rt/0267-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/kernel/patches-4.14.x-rt/0267-rcu-Merge-RCU-bh-into-RCU-preempt.patch index e49d12bf0..1e8fd52f2 100644 --- a/kernel/patches-4.14.x-rt/0267-rcu-Merge-RCU-bh-into-RCU-preempt.patch +++ b/kernel/patches-4.14.x-rt/0267-rcu-Merge-RCU-bh-into-RCU-preempt.patch @@ -1,7 +1,7 @@ -From f2fa0abab67742e43365554fb7dc0003685bffc4 Mon Sep 17 00:00:00 2001 +From 80561794fb1d05eeba45557f3ba54f2ef41c8959 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 5 Oct 2011 11:59:38 -0700 -Subject: [PATCH 267/413] rcu: Merge RCU-bh into RCU-preempt +Subject: [PATCH 267/436] 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/kernel/patches-4.14.x-rt/0268-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/kernel/patches-4.14.x-rt/0268-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch index 41afa7467..e401af617 100644 --- a/kernel/patches-4.14.x-rt/0268-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +++ b/kernel/patches-4.14.x-rt/0268-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch @@ -1,7 +1,7 @@ -From b6cb84bfbdcb373ad3aa64df05d677a2519c83be Mon Sep 17 00:00:00 2001 +From 2ae81aae66fb02e7887eaba622d76061a49774ca Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Wed, 5 Oct 2011 11:45:18 -0700 -Subject: [PATCH 268/413] rcu: Make ksoftirqd do RCU quiescent states +Subject: [PATCH 268/436] 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/kernel/patches-4.14.x-rt/0269-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch b/kernel/patches-4.14.x-rt/0269-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch index 1318c528a..c23765a04 100644 --- a/kernel/patches-4.14.x-rt/0269-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch +++ b/kernel/patches-4.14.x-rt/0269-rcutree-rcu_bh_qs-Disable-irq-while-calling-rcu_pree.patch @@ -1,7 +1,7 @@ -From d70b43921b037705e87de78b77ac66e2e0587c97 Mon Sep 17 00:00:00 2001 +From fdcb9649c5818f5e031720d57ba96cbeb879c567 Mon Sep 17 00:00:00 2001 From: Tiejun Chen Date: Wed, 18 Dec 2013 17:51:49 +0800 -Subject: [PATCH 269/413] rcutree/rcu_bh_qs: Disable irq while calling +Subject: [PATCH 269/436] rcutree/rcu_bh_qs: Disable irq while calling rcu_preempt_qs() Any callers to the function rcu_preempt_qs() must disable irqs in diff --git a/kernel/patches-4.14.x-rt/0270-tty-serial-omap-Make-the-locking-RT-aware.patch b/kernel/patches-4.14.x-rt/0270-tty-serial-omap-Make-the-locking-RT-aware.patch index a139dc509..7d2db9b6a 100644 --- a/kernel/patches-4.14.x-rt/0270-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/kernel/patches-4.14.x-rt/0270-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,7 +1,7 @@ -From 51cc59a41b4cbf35d12e90170073eb6c77cc6a3a Mon Sep 17 00:00:00 2001 +From 4ccfc3e577374659a22f82feb43cd11b453b2e98 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 -Subject: [PATCH 270/413] tty/serial/omap: Make the locking RT aware +Subject: [PATCH 270/436] tty/serial/omap: Make the locking RT aware The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and diff --git a/kernel/patches-4.14.x-rt/0271-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/kernel/patches-4.14.x-rt/0271-tty-serial-pl011-Make-the-locking-work-on-RT.patch index 33dd670e4..094a9bb73 100644 --- a/kernel/patches-4.14.x-rt/0271-tty-serial-pl011-Make-the-locking-work-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0271-tty-serial-pl011-Make-the-locking-work-on-RT.patch @@ -1,7 +1,7 @@ -From b5be22374c629b8548d9aba70dedc473a1d00686 Mon Sep 17 00:00:00 2001 +From 23a8a19672160b47b82e3a835fef8d8fff80d784 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Jan 2013 21:36:51 +0100 -Subject: [PATCH 271/413] tty/serial/pl011: Make the locking work on RT +Subject: [PATCH 271/436] tty/serial/pl011: Make the locking work on RT The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and non-RT. diff --git a/kernel/patches-4.14.x-rt/0272-rt-Improve-the-serial-console-PASS_LIMIT.patch b/kernel/patches-4.14.x-rt/0272-rt-Improve-the-serial-console-PASS_LIMIT.patch index fe6e039a4..cbdf9efb6 100644 --- a/kernel/patches-4.14.x-rt/0272-rt-Improve-the-serial-console-PASS_LIMIT.patch +++ b/kernel/patches-4.14.x-rt/0272-rt-Improve-the-serial-console-PASS_LIMIT.patch @@ -1,7 +1,7 @@ -From 811d88a3abc9554d7afff9812afd21b3be1c0880 Mon Sep 17 00:00:00 2001 +From a403ec2b30026950dd4a23d5c60d5f4cd0bbfbda Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 14 Dec 2011 13:05:54 +0100 -Subject: [PATCH 272/413] rt: Improve the serial console PASS_LIMIT +Subject: [PATCH 272/436] 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/kernel/patches-4.14.x-rt/0273-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/kernel/patches-4.14.x-rt/0273-tty-serial-8250-don-t-take-the-trylock-during-oops.patch index 7fe789c1f..1f7bd62fe 100644 --- a/kernel/patches-4.14.x-rt/0273-tty-serial-8250-don-t-take-the-trylock-during-oops.patch +++ b/kernel/patches-4.14.x-rt/0273-tty-serial-8250-don-t-take-the-trylock-during-oops.patch @@ -1,7 +1,7 @@ -From f4dca4f6b75b5db48ca0e1b35911a7899ce088be Mon Sep 17 00:00:00 2001 +From d2e6ecdb858742c580bd81e426057548cbd1548e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Apr 2016 16:55:02 +0200 -Subject: [PATCH 273/413] tty: serial: 8250: don't take the trylock during oops +Subject: [PATCH 273/436] tty: serial: 8250: don't take the trylock during oops An oops with irqs off (panic() from irqsafe hrtimer like the watchdog timer) will lead to a lockdep warning on each invocation and as such @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index be456ea27ab2..832d0fd9d371 100644 +index ecf3d631bc09..c331434ce443 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -3225,10 +3225,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3224,10 +3224,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, serial8250_rpm_get(up); diff --git a/kernel/patches-4.14.x-rt/0274-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/kernel/patches-4.14.x-rt/0274-locking-percpu-rwsem-Remove-preempt_disable-variants.patch index 85a70fbad..fe5d95273 100644 --- a/kernel/patches-4.14.x-rt/0274-locking-percpu-rwsem-Remove-preempt_disable-variants.patch +++ b/kernel/patches-4.14.x-rt/0274-locking-percpu-rwsem-Remove-preempt_disable-variants.patch @@ -1,7 +1,7 @@ -From cfbd909766358b845c3384a8600d3f3a648536ef Mon Sep 17 00:00:00 2001 +From f8a910a65218906e8d37a4349abca4c4f56bd66a Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 23 Nov 2016 16:29:32 +0100 -Subject: [PATCH 274/413] locking/percpu-rwsem: Remove preempt_disable variants +Subject: [PATCH 274/436] locking/percpu-rwsem: Remove preempt_disable variants Effective revert commit: diff --git a/kernel/patches-4.14.x-rt/0275-fs-namespace-preemption-fix.patch b/kernel/patches-4.14.x-rt/0275-fs-namespace-preemption-fix.patch index f7576e346..68ccf9879 100644 --- a/kernel/patches-4.14.x-rt/0275-fs-namespace-preemption-fix.patch +++ b/kernel/patches-4.14.x-rt/0275-fs-namespace-preemption-fix.patch @@ -1,7 +1,7 @@ -From 5b4ccb61ef8ad79aba8b6e566aa9c7a9c89752c4 Mon Sep 17 00:00:00 2001 +From e57fef5a04148ef1c1baca64b5de4f7baae3c86f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 19 Jul 2009 08:44:27 -0500 -Subject: [PATCH 275/413] fs: namespace preemption fix +Subject: [PATCH 275/436] 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/kernel/patches-4.14.x-rt/0276-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch b/kernel/patches-4.14.x-rt/0276-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch index 57b561144..7e7d3ada6 100644 --- a/kernel/patches-4.14.x-rt/0276-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch +++ b/kernel/patches-4.14.x-rt/0276-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch @@ -1,7 +1,7 @@ -From 3bf4b59a29ede4b46f2590995ccc3a989989f0ed Mon Sep 17 00:00:00 2001 +From e629e184392f9c5007dd0ed18f1d28975d9cd91e Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Tue, 15 May 2012 13:53:56 +0800 -Subject: [PATCH 276/413] mm: Protect activate_mm() by +Subject: [PATCH 276/436] mm: Protect activate_mm() by preempt_[disable&enable]_rt() User preempt_*_rt instead of local_irq_*_rt or otherwise there will be diff --git a/kernel/patches-4.14.x-rt/0277-block-Turn-off-warning-which-is-bogus-on-RT.patch b/kernel/patches-4.14.x-rt/0277-block-Turn-off-warning-which-is-bogus-on-RT.patch index 6261ef6d4..5f7846ad8 100644 --- a/kernel/patches-4.14.x-rt/0277-block-Turn-off-warning-which-is-bogus-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0277-block-Turn-off-warning-which-is-bogus-on-RT.patch @@ -1,7 +1,7 @@ -From bc74fd4d1de638ebf56e0a35ed2b070cff625b30 Mon Sep 17 00:00:00 2001 +From ab23ebd1ca9a9f28bf29f320816546f39caa1406 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jun 2011 17:05:09 +0200 -Subject: [PATCH 277/413] block: Turn off warning which is bogus on RT +Subject: [PATCH 277/436] block: Turn off warning which is bogus on RT On -RT the context is always with IRQs enabled. Ignore this warning on -RT. @@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/blk-core.c b/block/blk-core.c -index 2b026f66ecf1..7d9b502cc969 100644 +index f71540b98c24..cdae8b09b90b 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -280,7 +280,7 @@ EXPORT_SYMBOL(blk_start_queue_async); diff --git a/kernel/patches-4.14.x-rt/0278-fs-ntfs-disable-interrupt-only-on-RT.patch b/kernel/patches-4.14.x-rt/0278-fs-ntfs-disable-interrupt-only-on-RT.patch index e941f94b7..e91520bc6 100644 --- a/kernel/patches-4.14.x-rt/0278-fs-ntfs-disable-interrupt-only-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0278-fs-ntfs-disable-interrupt-only-on-RT.patch @@ -1,7 +1,7 @@ -From 88415e391f567b20ccd8ac8bcbfd42ab7ae08728 Mon Sep 17 00:00:00 2001 +From 8b9fb0c68d9e5d22fe8f0d302cd1ca58d3a60591 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Fri, 3 Jul 2009 08:44:12 -0500 -Subject: [PATCH 278/413] fs: ntfs: disable interrupt only on !RT +Subject: [PATCH 278/436] fs: ntfs: disable interrupt only on !RT On Sat, 2007-10-27 at 11:44 +0200, Ingo Molnar wrote: > * Nick Piggin wrote: diff --git a/kernel/patches-4.14.x-rt/0279-fs-jbd2-pull-your-plug-when-waiting-for-space.patch b/kernel/patches-4.14.x-rt/0279-fs-jbd2-pull-your-plug-when-waiting-for-space.patch index ef9e4346a..621d51493 100644 --- a/kernel/patches-4.14.x-rt/0279-fs-jbd2-pull-your-plug-when-waiting-for-space.patch +++ b/kernel/patches-4.14.x-rt/0279-fs-jbd2-pull-your-plug-when-waiting-for-space.patch @@ -1,7 +1,7 @@ -From f0e0b387b8303283071379b1d474522a2a568e22 Mon Sep 17 00:00:00 2001 +From b7f860c83ab02e9f2d2c3e334ae639c4732aa1cc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 17 Feb 2014 17:30:03 +0100 -Subject: [PATCH 279/413] fs: jbd2: pull your plug when waiting for space +Subject: [PATCH 279/436] fs: jbd2: pull your plug when waiting for space Two cps in parallel managed to stall the the ext4 fs. It seems that journal code is either waiting for locks or sleeping waiting for diff --git a/kernel/patches-4.14.x-rt/0280-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch b/kernel/patches-4.14.x-rt/0280-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch index 89fd0a3d4..c0622068e 100644 --- a/kernel/patches-4.14.x-rt/0280-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch +++ b/kernel/patches-4.14.x-rt/0280-Revert-fs-jbd2-pull-your-plug-when-waiting-for-space.patch @@ -1,7 +1,7 @@ -From 9a8eaca59d2f92e5a047fec107c451d5870bdd9c Mon Sep 17 00:00:00 2001 +From 968abee003e46a9419ffd8c7847b8dbfe8c2babf Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 23 Nov 2017 17:51:51 +0100 -Subject: [PATCH 280/413] Revert "fs: jbd2: pull your plug when waiting for +Subject: [PATCH 280/436] Revert "fs: jbd2: pull your plug when waiting for space" This reverts commit "fs: jbd2: pull your plug when waiting for space". diff --git a/kernel/patches-4.14.x-rt/0281-fs-dcache-bringt-back-explicit-INIT_HLIST_BL_HEAD-in.patch b/kernel/patches-4.14.x-rt/0281-fs-dcache-bringt-back-explicit-INIT_HLIST_BL_HEAD-in.patch index 8791acbb8..afe80b701 100644 --- a/kernel/patches-4.14.x-rt/0281-fs-dcache-bringt-back-explicit-INIT_HLIST_BL_HEAD-in.patch +++ b/kernel/patches-4.14.x-rt/0281-fs-dcache-bringt-back-explicit-INIT_HLIST_BL_HEAD-in.patch @@ -1,7 +1,7 @@ -From 279d197f35ddd9c4350d57c9d40c214c46487528 Mon Sep 17 00:00:00 2001 +From 9b61567c80ddaf2f4edac777ba5aebb8c0db344c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Sep 2017 12:32:34 +0200 -Subject: [PATCH 281/413] fs/dcache: bringt back explicit INIT_HLIST_BL_HEAD +Subject: [PATCH 281/436] fs/dcache: bringt back explicit INIT_HLIST_BL_HEAD init Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 10 insertions(+) diff --git a/fs/dcache.c b/fs/dcache.c -index 8d4935978fec..5399f314db0a 100644 +index c1a7c174a905..f83742e47b4b 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -3617,6 +3617,8 @@ __setup("dhash_entries=", set_dhash_entries); +@@ -3618,6 +3618,8 @@ __setup("dhash_entries=", set_dhash_entries); static void __init dcache_init_early(void) { @@ -27,7 +27,7 @@ index 8d4935978fec..5399f314db0a 100644 /* If hashes are distributed across NUMA nodes, defer * hash allocation until vmalloc space is available. */ -@@ -3633,10 +3635,14 @@ static void __init dcache_init_early(void) +@@ -3634,10 +3636,14 @@ static void __init dcache_init_early(void) &d_hash_mask, 0, 0); @@ -42,7 +42,7 @@ index 8d4935978fec..5399f314db0a 100644 /* * A constructor could be added for stable state like the lists, * but it is probably not worth it because of the cache nature -@@ -3659,6 +3665,10 @@ static void __init dcache_init(void) +@@ -3660,6 +3666,10 @@ static void __init dcache_init(void) &d_hash_mask, 0, 0); diff --git a/kernel/patches-4.14.x-rt/0282-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/kernel/patches-4.14.x-rt/0282-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch index e8e28f33a..e975ce0c1 100644 --- a/kernel/patches-4.14.x-rt/0282-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +++ b/kernel/patches-4.14.x-rt/0282-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch @@ -1,7 +1,7 @@ -From 57306a44b6eb91f9febfe108869cab6c19713a90 Mon Sep 17 00:00:00 2001 +From 4ac89a969f11a736b7292753b9a2183fedf5cf18 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 20 Oct 2017 11:29:53 +0200 -Subject: [PATCH 282/413] fs/dcache: disable preemption on i_dir_seq's write +Subject: [PATCH 282/436] fs/dcache: disable preemption on i_dir_seq's write side i_dir_seq is an opencoded seqcounter. Based on the code it looks like we @@ -24,10 +24,10 @@ Signed-off-by: Sebastian Andrzej Siewior 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/fs/dcache.c b/fs/dcache.c -index 5399f314db0a..8c828c37cd30 100644 +index f83742e47b4b..d368bd0bd48c 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -2438,9 +2438,10 @@ EXPORT_SYMBOL(d_rehash); +@@ -2439,9 +2439,10 @@ EXPORT_SYMBOL(d_rehash); static inline unsigned start_dir_add(struct inode *dir) { @@ -40,7 +40,7 @@ index 5399f314db0a..8c828c37cd30 100644 return n; cpu_relax(); } -@@ -2448,7 +2449,8 @@ static inline unsigned start_dir_add(struct inode *dir) +@@ -2449,7 +2450,8 @@ static inline unsigned start_dir_add(struct inode *dir) static inline void end_dir_add(struct inode *dir, unsigned n) { @@ -50,7 +50,7 @@ index 5399f314db0a..8c828c37cd30 100644 } static void d_wait_lookup(struct dentry *dentry) -@@ -2481,7 +2483,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, +@@ -2482,7 +2484,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, retry: rcu_read_lock(); @@ -59,7 +59,7 @@ index 5399f314db0a..8c828c37cd30 100644 r_seq = read_seqbegin(&rename_lock); dentry = __d_lookup_rcu(parent, name, &d_seq); if (unlikely(dentry)) { -@@ -2509,7 +2511,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, +@@ -2510,7 +2512,7 @@ struct dentry *d_alloc_parallel(struct dentry *parent, } hlist_bl_lock(b); diff --git a/kernel/patches-4.14.x-rt/0283-x86-Convert-mce-timer-to-hrtimer.patch b/kernel/patches-4.14.x-rt/0283-x86-Convert-mce-timer-to-hrtimer.patch index 3b749988b..b5f7709a1 100644 --- a/kernel/patches-4.14.x-rt/0283-x86-Convert-mce-timer-to-hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0283-x86-Convert-mce-timer-to-hrtimer.patch @@ -1,7 +1,7 @@ -From 0bcb66ffb0a767a0b7e138856fb5e2787ab70754 Mon Sep 17 00:00:00 2001 +From 855154f5a7ee72cc9447bd0f1026d7b74c720d6e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 13 Dec 2010 16:33:39 +0100 -Subject: [PATCH 283/413] x86: Convert mce timer to hrtimer +Subject: [PATCH 283/436] 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/kernel/patches-4.14.x-rt/0284-x86-mce-use-swait-queue-for-mce-wakeups.patch b/kernel/patches-4.14.x-rt/0284-x86-mce-use-swait-queue-for-mce-wakeups.patch index b55987986..744f780f7 100644 --- a/kernel/patches-4.14.x-rt/0284-x86-mce-use-swait-queue-for-mce-wakeups.patch +++ b/kernel/patches-4.14.x-rt/0284-x86-mce-use-swait-queue-for-mce-wakeups.patch @@ -1,7 +1,7 @@ -From 5102b87383b6bec476a32fbb46c52a9b25fb535e Mon Sep 17 00:00:00 2001 +From e99fb8bc6dd9232962e6d7c92c7d392464be00d8 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Fri, 27 Feb 2015 15:20:37 +0100 -Subject: [PATCH 284/413] x86/mce: use swait queue for mce wakeups +Subject: [PATCH 284/436] x86/mce: use swait queue for mce wakeups We had a customer report a lockup on a 3.0-rt kernel that had the following backtrace: diff --git a/kernel/patches-4.14.x-rt/0285-x86-stackprotector-Avoid-random-pool-on-rt.patch b/kernel/patches-4.14.x-rt/0285-x86-stackprotector-Avoid-random-pool-on-rt.patch index c12e44e5d..01645e7d7 100644 --- a/kernel/patches-4.14.x-rt/0285-x86-stackprotector-Avoid-random-pool-on-rt.patch +++ b/kernel/patches-4.14.x-rt/0285-x86-stackprotector-Avoid-random-pool-on-rt.patch @@ -1,7 +1,7 @@ -From 3d6704e3b8ea4e4f9a9f499471fc4e6a6d24829f Mon Sep 17 00:00:00 2001 +From 1c01b5d19cc1ea5ee6d61f75bcf71ac2e6d94799 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Dec 2010 14:25:18 +0100 -Subject: [PATCH 285/413] x86: stackprotector: Avoid random pool on rt +Subject: [PATCH 285/436] 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/kernel/patches-4.14.x-rt/0286-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/kernel/patches-4.14.x-rt/0286-x86-Use-generic-rwsem_spinlocks-on-rt.patch index 63beb8928..9a65ead70 100644 --- a/kernel/patches-4.14.x-rt/0286-x86-Use-generic-rwsem_spinlocks-on-rt.patch +++ b/kernel/patches-4.14.x-rt/0286-x86-Use-generic-rwsem_spinlocks-on-rt.patch @@ -1,7 +1,7 @@ -From ba75617486bdcfa0d3059fa2ba0b993083dbacda Mon Sep 17 00:00:00 2001 +From 9558c60336915bd285175c0b12e4dd2cc83b71d2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 26 Jul 2009 02:21:32 +0200 -Subject: [PATCH 286/413] x86: Use generic rwsem_spinlocks on -rt +Subject: [PATCH 286/436] x86: Use generic rwsem_spinlocks on -rt Simplifies the separation of anon_rw_semaphores and rw_semaphores for -rt. @@ -12,10 +12,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 1c63a4b5320d..35c46e06955e 100644 +index 2af0af33362a..5c7203cc0e6f 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig -@@ -256,8 +256,11 @@ config ARCH_MAY_HAVE_PC_FDC +@@ -257,8 +257,11 @@ config ARCH_MAY_HAVE_PC_FDC def_bool y depends on ISA_DMA_API diff --git a/kernel/patches-4.14.x-rt/0287-x86-UV-raw_spinlock-conversion.patch b/kernel/patches-4.14.x-rt/0287-x86-UV-raw_spinlock-conversion.patch index 0e6c145c6..3d17a576e 100644 --- a/kernel/patches-4.14.x-rt/0287-x86-UV-raw_spinlock-conversion.patch +++ b/kernel/patches-4.14.x-rt/0287-x86-UV-raw_spinlock-conversion.patch @@ -1,7 +1,7 @@ -From 91719b6bb1533c25b1f84753d94a45febd36dfff Mon Sep 17 00:00:00 2001 +From 8a23a7473d517f8142cb774c9a5df45a396b53ac Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 2 Nov 2014 08:31:37 +0100 -Subject: [PATCH 287/413] x86: UV: raw_spinlock conversion +Subject: [PATCH 287/436] x86: UV: raw_spinlock conversion Shrug. Lots of hobbyists have a beast in their basement, right? diff --git a/kernel/patches-4.14.x-rt/0288-thermal-Defer-thermal-wakups-to-threads.patch b/kernel/patches-4.14.x-rt/0288-thermal-Defer-thermal-wakups-to-threads.patch index d7db28e9c..3abef87c6 100644 --- a/kernel/patches-4.14.x-rt/0288-thermal-Defer-thermal-wakups-to-threads.patch +++ b/kernel/patches-4.14.x-rt/0288-thermal-Defer-thermal-wakups-to-threads.patch @@ -1,7 +1,7 @@ -From b4e150c98a1a430d8426d679ce64da79575e1d27 Mon Sep 17 00:00:00 2001 +From da06a259bc8773a0ab92eacfac813e5617690eb8 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 17 Feb 2015 09:37:44 +0100 -Subject: [PATCH 288/413] thermal: Defer thermal wakups to threads +Subject: [PATCH 288/436] thermal: Defer thermal wakups to threads On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will call schedule while we run in irq context. diff --git a/kernel/patches-4.14.x-rt/0289-fs-epoll-Do-not-disable-preemption-on-RT.patch b/kernel/patches-4.14.x-rt/0289-fs-epoll-Do-not-disable-preemption-on-RT.patch index 830f6ce1e..f2bf854c3 100644 --- a/kernel/patches-4.14.x-rt/0289-fs-epoll-Do-not-disable-preemption-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0289-fs-epoll-Do-not-disable-preemption-on-RT.patch @@ -1,7 +1,7 @@ -From 113815729f2ed27d9cf93e1436140ed801b8d119 Mon Sep 17 00:00:00 2001 +From 174b2cc15338b44c1c37d5449600604d1f3cc4e0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 16:35:35 +0200 -Subject: [PATCH 289/413] fs/epoll: Do not disable preemption on RT +Subject: [PATCH 289/436] fs/epoll: Do not disable preemption on RT ep_call_nested() takes a sleeping lock so we can't disable preemption. The light version is enough since ep_call_nested() doesn't mind beeing diff --git a/kernel/patches-4.14.x-rt/0290-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/kernel/patches-4.14.x-rt/0290-mm-vmalloc-Another-preempt-disable-region-which-suck.patch index 2fb4e0032..82410d5ec 100644 --- a/kernel/patches-4.14.x-rt/0290-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +++ b/kernel/patches-4.14.x-rt/0290-mm-vmalloc-Another-preempt-disable-region-which-suck.patch @@ -1,7 +1,7 @@ -From 42ea21c373fc644ab97c570cf5cabf34fad5d346 Mon Sep 17 00:00:00 2001 +From 3f56589950fd3e0bbf4632e322559de1fe74d47b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 11:39:36 +0200 -Subject: [PATCH 290/413] mm/vmalloc: Another preempt disable region which +Subject: [PATCH 290/436] mm/vmalloc: Another preempt disable region which sucks Avoid the preempt disable version of get_cpu_var(). The inner-lock should diff --git a/kernel/patches-4.14.x-rt/0291-block-mq-use-cpu_light.patch b/kernel/patches-4.14.x-rt/0291-block-mq-use-cpu_light.patch index f26781c4b..49be23b38 100644 --- a/kernel/patches-4.14.x-rt/0291-block-mq-use-cpu_light.patch +++ b/kernel/patches-4.14.x-rt/0291-block-mq-use-cpu_light.patch @@ -1,7 +1,7 @@ -From cecb376283ad4641c58ee663df21404a133894d1 Mon Sep 17 00:00:00 2001 +From 6271bcee069c2ccabe80906e3b5292ba42fb8e31 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 9 Apr 2014 10:37:23 +0200 -Subject: [PATCH 291/413] block: mq: use cpu_light() +Subject: [PATCH 291/436] block: mq: use cpu_light() there is a might sleep splat because get_cpu() disables preemption and later we grab a lock. As a workaround for this we use get_cpu_light(). diff --git a/kernel/patches-4.14.x-rt/0292-block-mq-do-not-invoke-preempt_disable.patch b/kernel/patches-4.14.x-rt/0292-block-mq-do-not-invoke-preempt_disable.patch index f85347935..3ab25ce68 100644 --- a/kernel/patches-4.14.x-rt/0292-block-mq-do-not-invoke-preempt_disable.patch +++ b/kernel/patches-4.14.x-rt/0292-block-mq-do-not-invoke-preempt_disable.patch @@ -1,7 +1,7 @@ -From 2949662c8a5ab1e88b0ad403e992078e2549bb2a Mon Sep 17 00:00:00 2001 +From d8b4f3320507113c74f8e38ffd2eb5a9af44957d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 292/413] block/mq: do not invoke preempt_disable() +Subject: [PATCH 292/436] block/mq: do not invoke preempt_disable() preempt_disable() and get_cpu() don't play well together with the sleeping locks it tries to allocate later. diff --git a/kernel/patches-4.14.x-rt/0293-block-mq-don-t-complete-requests-via-IPI.patch b/kernel/patches-4.14.x-rt/0293-block-mq-don-t-complete-requests-via-IPI.patch index 05f11aa02..96ab189fb 100644 --- a/kernel/patches-4.14.x-rt/0293-block-mq-don-t-complete-requests-via-IPI.patch +++ b/kernel/patches-4.14.x-rt/0293-block-mq-don-t-complete-requests-via-IPI.patch @@ -1,7 +1,7 @@ -From 516215b2adf3d825650aa1f1968d305063bf1880 Mon Sep 17 00:00:00 2001 +From 7abd3a144a92dd305b6745bfbe792d5634d45fce Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Jan 2015 15:10:08 +0100 -Subject: [PATCH 293/413] block/mq: don't complete requests via IPI +Subject: [PATCH 293/436] block/mq: don't complete requests via IPI The IPI runs in hardirq context and there are sleeping locks. This patch moves the completion into a workqueue. @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior 4 files changed, 30 insertions(+), 1 deletion(-) diff --git a/block/blk-core.c b/block/blk-core.c -index 7d9b502cc969..fb8ad5b175e2 100644 +index cdae8b09b90b..b565e24335a3 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -116,6 +116,9 @@ void blk_rq_init(struct request_queue *q, struct request *rq) diff --git a/kernel/patches-4.14.x-rt/0294-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/kernel/patches-4.14.x-rt/0294-md-raid5-Make-raid5_percpu-handling-RT-aware.patch index 332fb7e66..20d66e69a 100644 --- a/kernel/patches-4.14.x-rt/0294-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +++ b/kernel/patches-4.14.x-rt/0294-md-raid5-Make-raid5_percpu-handling-RT-aware.patch @@ -1,7 +1,7 @@ -From b9af0502dd2ff576c7fae75f57c1e49217a9d0ad Mon Sep 17 00:00:00 2001 +From 85fb99aa8be17469fcec1beab0a189ac3038beae Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 6 Apr 2010 16:51:31 +0200 -Subject: [PATCH 294/413] md: raid5: Make raid5_percpu handling RT aware +Subject: [PATCH 294/436] 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 @@ -19,7 +19,7 @@ Tested-by: Udo van den Heuvel 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index 07ca2fd10189..d4fa7b78fb68 100644 +index 5018fb2352c2..e41586b1a02e 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -2067,8 +2067,9 @@ static void raid_run_ops(struct stripe_head *sh, unsigned long ops_request) @@ -43,7 +43,7 @@ index 07ca2fd10189..d4fa7b78fb68 100644 } static void free_stripe(struct kmem_cache *sc, struct stripe_head *sh) -@@ -6775,6 +6777,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node) +@@ -6781,6 +6783,7 @@ static int raid456_cpu_up_prepare(unsigned int cpu, struct hlist_node *node) __func__, cpu); return -ENOMEM; } @@ -51,7 +51,7 @@ index 07ca2fd10189..d4fa7b78fb68 100644 return 0; } -@@ -6785,7 +6788,6 @@ static int raid5_alloc_percpu(struct r5conf *conf) +@@ -6791,7 +6794,6 @@ static int raid5_alloc_percpu(struct r5conf *conf) conf->percpu = alloc_percpu(struct raid5_percpu); if (!conf->percpu) return -ENOMEM; diff --git a/kernel/patches-4.14.x-rt/0295-md-raid5-do-not-disable-interrupts.patch b/kernel/patches-4.14.x-rt/0295-md-raid5-do-not-disable-interrupts.patch index ae107d931..f6ee88529 100644 --- a/kernel/patches-4.14.x-rt/0295-md-raid5-do-not-disable-interrupts.patch +++ b/kernel/patches-4.14.x-rt/0295-md-raid5-do-not-disable-interrupts.patch @@ -1,7 +1,7 @@ -From d70088aed43a3c4f3858a3173e791bb397f8d5b5 Mon Sep 17 00:00:00 2001 +From 94cac017d7429f34f9df2824e1df48d1eb977e24 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 17 Nov 2017 16:21:00 +0100 -Subject: [PATCH 295/413] md/raid5: do not disable interrupts +Subject: [PATCH 295/436] md/raid5: do not disable interrupts |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974 |in_atomic(): 0, irqs_disabled(): 1, pid: 2992, name: lvm @@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c -index d4fa7b78fb68..6d8112678ff9 100644 +index e41586b1a02e..84fadd93f3a0 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -410,7 +410,7 @@ void raid5_release_stripe(struct stripe_head *sh) diff --git a/kernel/patches-4.14.x-rt/0296-rt-Introduce-cpu_chill.patch b/kernel/patches-4.14.x-rt/0296-rt-Introduce-cpu_chill.patch index e21caf199..1f83cf40c 100644 --- a/kernel/patches-4.14.x-rt/0296-rt-Introduce-cpu_chill.patch +++ b/kernel/patches-4.14.x-rt/0296-rt-Introduce-cpu_chill.patch @@ -1,7 +1,7 @@ -From 4b11c7a3acd35de1c17583904b3a478df5a372a8 Mon Sep 17 00:00:00 2001 +From 51560684c59c413d53a4741f9413bf2a04018d53 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 20:51:03 +0100 -Subject: [PATCH 296/413] rt: Introduce cpu_chill() +Subject: [PATCH 296/436] 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/kernel/patches-4.14.x-rt/0297-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch b/kernel/patches-4.14.x-rt/0297-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch index 5af0d6c35..3ca0b085c 100644 --- a/kernel/patches-4.14.x-rt/0297-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch +++ b/kernel/patches-4.14.x-rt/0297-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch @@ -1,7 +1,7 @@ -From 47ff74cada4cb40509bba5dc3eef555b313a58af Mon Sep 17 00:00:00 2001 +From d068e85f8a0fb7f37c001550de21de0685c898fe Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 4 Mar 2014 12:28:32 -0500 -Subject: [PATCH 297/413] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep +Subject: [PATCH 297/436] cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep We hit another bug that was caused by switching cpu_chill() from msleep() to hrtimer_nanosleep(). diff --git a/kernel/patches-4.14.x-rt/0298-kernel-cpu_chill-use-schedule_hrtimeout.patch b/kernel/patches-4.14.x-rt/0298-kernel-cpu_chill-use-schedule_hrtimeout.patch index 759f86f15..033bab487 100644 --- a/kernel/patches-4.14.x-rt/0298-kernel-cpu_chill-use-schedule_hrtimeout.patch +++ b/kernel/patches-4.14.x-rt/0298-kernel-cpu_chill-use-schedule_hrtimeout.patch @@ -1,7 +1,7 @@ -From e17bdaf53cfd19c096e2288e0efe53a3a8ddd8d5 Mon Sep 17 00:00:00 2001 +From 4f37296a56c0803abc522de377277c3d02ad1f68 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 16 Mar 2018 13:07:59 +0100 -Subject: [PATCH 298/413] kernel/cpu_chill: use schedule_hrtimeout() +Subject: [PATCH 298/436] kernel/cpu_chill: use schedule_hrtimeout() If a task calls cpu_chill() and gets woken up by a regular or spurious wakeup and has a signal pending, then it exits the sleep loop in diff --git a/kernel/patches-4.14.x-rt/0299-Revert-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanos.patch b/kernel/patches-4.14.x-rt/0299-Revert-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanos.patch index 85ea1dc49..b0ab0d47b 100644 --- a/kernel/patches-4.14.x-rt/0299-Revert-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanos.patch +++ b/kernel/patches-4.14.x-rt/0299-Revert-cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanos.patch @@ -1,7 +1,7 @@ -From 96d21caefdb975f09b7aed330c3595bd59a4414f Mon Sep 17 00:00:00 2001 +From 5bf816344129ba05afd6a87fc2fd127c11cec3c6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 16 Mar 2018 15:04:49 +0100 -Subject: [PATCH 299/413] Revert "cpu_chill: Add a UNINTERRUPTIBLE +Subject: [PATCH 299/436] Revert "cpu_chill: Add a UNINTERRUPTIBLE hrtimer_nanosleep" This reverts commit "cpu_chill: Add a UNINTERRUPTIBLE diff --git a/kernel/patches-4.14.x-rt/0300-rtmutex-annotate-sleeping-lock-context.patch b/kernel/patches-4.14.x-rt/0300-rtmutex-annotate-sleeping-lock-context.patch index 2c866d0c3..69bc3394f 100644 --- a/kernel/patches-4.14.x-rt/0300-rtmutex-annotate-sleeping-lock-context.patch +++ b/kernel/patches-4.14.x-rt/0300-rtmutex-annotate-sleeping-lock-context.patch @@ -1,7 +1,7 @@ -From 20e06c7920e66f47b09b057cd48e6dd3eda1a6bb Mon Sep 17 00:00:00 2001 +From a153bfdb847b85d73e863cc34a0c70f403f6975b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 3 May 2018 17:16:26 +0200 -Subject: [PATCH 300/413] rtmutex: annotate sleeping lock context +Subject: [PATCH 300/436] rtmutex: annotate sleeping lock context The RCU code complains on schedule() within a rcu_readlock() section. The valid scenario on -RT is if a sleeping is held. In order to suppress @@ -70,7 +70,7 @@ index 52cf8d74b534..dc3c98d9f924 100644 * Wrappers for p->thread_info->cpu access. No-op on UP. */ diff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c -index 0cb716ba3be0..bac3fb580af6 100644 +index 53b510d29a3a..08e233b7dc21 100644 --- a/kernel/locking/rtmutex.c +++ b/kernel/locking/rtmutex.c @@ -1141,6 +1141,7 @@ void __sched rt_spin_lock_slowunlock(struct rt_mutex *lock) diff --git a/kernel/patches-4.14.x-rt/0301-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/kernel/patches-4.14.x-rt/0301-block-blk-mq-move-blk_queue_usage_counter_release-in.patch index fa4600c8f..7b030c7dc 100644 --- a/kernel/patches-4.14.x-rt/0301-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +++ b/kernel/patches-4.14.x-rt/0301-block-blk-mq-move-blk_queue_usage_counter_release-in.patch @@ -1,7 +1,7 @@ -From 1b4e8293c93537e5d2a6073faa8ea8ba280faf69 Mon Sep 17 00:00:00 2001 +From 249ddfa2859cad0434721fa9b8c2f1432bb014c9 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 13 Mar 2018 13:49:16 +0100 -Subject: [PATCH 301/413] block: blk-mq: move blk_queue_usage_counter_release() +Subject: [PATCH 301/436] block: blk-mq: move blk_queue_usage_counter_release() into process context | BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 @@ -52,7 +52,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/block/blk-core.c b/block/blk-core.c -index fb8ad5b175e2..81ab56cf7efa 100644 +index b565e24335a3..a29ca4dfad77 100644 --- a/block/blk-core.c +++ b/block/blk-core.c @@ -811,12 +811,21 @@ void blk_queue_exit(struct request_queue *q) @@ -86,7 +86,7 @@ index fb8ad5b175e2..81ab56cf7efa 100644 /* * Init percpu_ref in atomic mode so that it's faster to shutdown. -@@ -3626,6 +3636,8 @@ int __init blk_dev_init(void) +@@ -3629,6 +3639,8 @@ int __init blk_dev_init(void) if (!kblockd_workqueue) panic("Failed to create kblockd\n"); diff --git a/kernel/patches-4.14.x-rt/0302-block-Use-cpu_chill-for-retry-loops.patch b/kernel/patches-4.14.x-rt/0302-block-Use-cpu_chill-for-retry-loops.patch index 60fe161a9..5d544c32a 100644 --- a/kernel/patches-4.14.x-rt/0302-block-Use-cpu_chill-for-retry-loops.patch +++ b/kernel/patches-4.14.x-rt/0302-block-Use-cpu_chill-for-retry-loops.patch @@ -1,7 +1,7 @@ -From e5cf9034a753133338bda1d0dc580f86dab8197c Mon Sep 17 00:00:00 2001 +From 91d012a564e3d1c7be85c7e7512b59308e4a1b1f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 20 Dec 2012 18:28:26 +0100 -Subject: [PATCH 302/413] block: Use cpu_chill() for retry loops +Subject: [PATCH 302/436] block: Use cpu_chill() for retry loops Retry loops on RT might loop forever when the modifying side was preempted. Steven also observed a live lock when there was a diff --git a/kernel/patches-4.14.x-rt/0303-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/kernel/patches-4.14.x-rt/0303-fs-dcache-Use-cpu_chill-in-trylock-loops.patch index 76ed5c868..7769d8231 100644 --- a/kernel/patches-4.14.x-rt/0303-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +++ b/kernel/patches-4.14.x-rt/0303-fs-dcache-Use-cpu_chill-in-trylock-loops.patch @@ -1,7 +1,7 @@ -From 1eb06655d02b3009eed1f6a93b2684d718e55190 Mon Sep 17 00:00:00 2001 +From 90c9e2622f36cf8d09621c4c4a171a9888a5e278 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:00:34 +0100 -Subject: [PATCH 303/413] fs: dcache: Use cpu_chill() in trylock loops +Subject: [PATCH 303/436] 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 @@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h -index 4737615f0eaa..bf71f1aaecbe 100644 +index ce696d6c4641..b120fbd41483 100644 --- a/fs/autofs4/autofs_i.h +++ b/fs/autofs4/autofs_i.h @@ -20,6 +20,7 @@ @@ -41,7 +41,7 @@ index 57725d4a8c59..62220508bace 100644 } spin_unlock(&p->d_lock); diff --git a/fs/dcache.c b/fs/dcache.c -index 8c828c37cd30..19176cbc831a 100644 +index d368bd0bd48c..a3381e7f2062 100644 --- a/fs/dcache.c +++ b/fs/dcache.c @@ -19,6 +19,7 @@ @@ -52,7 +52,7 @@ index 8c828c37cd30..19176cbc831a 100644 #include #include #include -@@ -793,6 +794,8 @@ static inline bool fast_dput(struct dentry *dentry) +@@ -794,6 +795,8 @@ static inline bool fast_dput(struct dentry *dentry) */ void dput(struct dentry *dentry) { @@ -61,7 +61,7 @@ index 8c828c37cd30..19176cbc831a 100644 if (unlikely(!dentry)) return; -@@ -829,9 +832,18 @@ void dput(struct dentry *dentry) +@@ -830,9 +833,18 @@ void dput(struct dentry *dentry) return; kill_it: @@ -83,7 +83,7 @@ index 8c828c37cd30..19176cbc831a 100644 goto repeat; } } -@@ -2393,7 +2405,7 @@ void d_delete(struct dentry * dentry) +@@ -2394,7 +2406,7 @@ void d_delete(struct dentry * dentry) if (dentry->d_lockref.count == 1) { if (!spin_trylock(&inode->i_lock)) { spin_unlock(&dentry->d_lock); diff --git a/kernel/patches-4.14.x-rt/0304-net-Use-cpu_chill-instead-of-cpu_relax.patch b/kernel/patches-4.14.x-rt/0304-net-Use-cpu_chill-instead-of-cpu_relax.patch index 6d303f971..9d96c95cf 100644 --- a/kernel/patches-4.14.x-rt/0304-net-Use-cpu_chill-instead-of-cpu_relax.patch +++ b/kernel/patches-4.14.x-rt/0304-net-Use-cpu_chill-instead-of-cpu_relax.patch @@ -1,7 +1,7 @@ -From 57fd155dfce18561531616cebae06a6fd593e2c6 Mon Sep 17 00:00:00 2001 +From a83f5cdb9360164078c0eb22b91bacc587e7cb6b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:10:04 +0100 -Subject: [PATCH 304/413] net: Use cpu_chill() instead of cpu_relax() +Subject: [PATCH 304/436] 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 @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c -index 27dafe36f29c..c8f59c5447c3 100644 +index 8833a58ca3ee..1137bf87f944 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -63,6 +63,7 @@ diff --git a/kernel/patches-4.14.x-rt/0305-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/kernel/patches-4.14.x-rt/0305-fs-dcache-use-swait_queue-instead-of-waitqueue.patch index 051dc9454..4dc8e7a47 100644 --- a/kernel/patches-4.14.x-rt/0305-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/kernel/patches-4.14.x-rt/0305-fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -1,7 +1,7 @@ -From cf2089d29748891caa3ca506439b59a9b2b2ebf1 Mon Sep 17 00:00:00 2001 +From 528101f4c84e7ad55160976f28cfce3be5cdb27c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 14:35:49 +0200 -Subject: [PATCH 305/413] fs/dcache: use swait_queue instead of waitqueue +Subject: [PATCH 305/436] fs/dcache: use swait_queue instead of waitqueue __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. @@ -35,10 +35,10 @@ index a27fc8791551..791aecb7c1ac 100644 cifs_dbg(FYI, "%s: for %s\n", __func__, name->name); diff --git a/fs/dcache.c b/fs/dcache.c -index 19176cbc831a..999334aa656a 100644 +index a3381e7f2062..26c798d79add 100644 --- a/fs/dcache.c +++ b/fs/dcache.c -@@ -2467,21 +2467,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n) +@@ -2468,21 +2468,24 @@ static inline void end_dir_add(struct inode *dir, unsigned n) static void d_wait_lookup(struct dentry *dentry) { @@ -74,7 +74,7 @@ index 19176cbc831a..999334aa656a 100644 { unsigned int hash = name->hash; struct hlist_bl_head *b = in_lookup_hash(parent, hash); -@@ -2596,7 +2599,7 @@ void __d_lookup_done(struct dentry *dentry) +@@ -2597,7 +2600,7 @@ void __d_lookup_done(struct dentry *dentry) hlist_bl_lock(b); dentry->d_flags &= ~DCACHE_PAR_LOOKUP; __hlist_bl_del(&dentry->d_u.d_in_lookup_hash); @@ -84,10 +84,10 @@ index 19176cbc831a..999334aa656a 100644 hlist_bl_unlock(b); INIT_HLIST_NODE(&dentry->d_u.d_alias); diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c -index 7a980b4462d9..6dfe526c832f 100644 +index 29868c35c19a..76d354eee035 100644 --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c -@@ -1187,7 +1187,7 @@ static int fuse_direntplus_link(struct file *file, +@@ -1188,7 +1188,7 @@ static int fuse_direntplus_link(struct file *file, struct inode *dir = d_inode(parent); struct fuse_conn *fc; struct inode *inode; diff --git a/kernel/patches-4.14.x-rt/0306-workqueue-Use-normal-rcu.patch b/kernel/patches-4.14.x-rt/0306-workqueue-Use-normal-rcu.patch index c57cafed1..9eeb62ba2 100644 --- a/kernel/patches-4.14.x-rt/0306-workqueue-Use-normal-rcu.patch +++ b/kernel/patches-4.14.x-rt/0306-workqueue-Use-normal-rcu.patch @@ -1,7 +1,7 @@ -From 23ee6b9c2d76b0dc9aba3edf348d3bbb0496c123 Mon Sep 17 00:00:00 2001 +From 6b892e2044aaf5435db029038b2f3c57655cdf26 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 24 Jul 2013 15:26:54 +0200 -Subject: [PATCH 306/413] workqueue: Use normal rcu +Subject: [PATCH 306/436] workqueue: Use normal rcu There is no need for sched_rcu. The undocumented reason why sched_rcu is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 52 insertions(+), 43 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index d8a7f8939c81..309024baa39f 100644 +index 08bc551976b2..7ed3b49267a8 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -127,7 +127,7 @@ enum { diff --git a/kernel/patches-4.14.x-rt/0307-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch b/kernel/patches-4.14.x-rt/0307-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch index f13a6810f..0660b69b6 100644 --- a/kernel/patches-4.14.x-rt/0307-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch +++ b/kernel/patches-4.14.x-rt/0307-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch @@ -1,7 +1,7 @@ -From bc356d2bd254f0723a5308a96ccbcb8e17647c7a Mon Sep 17 00:00:00 2001 +From 7558c042c815f732af85bf1429eb84f12af40978 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:42:26 +0200 -Subject: [PATCH 307/413] workqueue: Use local irq lock instead of irq disable +Subject: [PATCH 307/436] workqueue: Use local irq lock instead of irq disable regions Use a local_irq_lock as a replacement for irq off regions. We keep the @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 309024baa39f..165166d88c05 100644 +index 7ed3b49267a8..b798d32af3fd 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -49,6 +49,7 @@ diff --git a/kernel/patches-4.14.x-rt/0308-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/kernel/patches-4.14.x-rt/0308-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch index b5ffe3aea..e80aee651 100644 --- a/kernel/patches-4.14.x-rt/0308-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch +++ b/kernel/patches-4.14.x-rt/0308-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch @@ -1,7 +1,7 @@ -From c13f2bfc6539bd72243ec0df9883db3b7d04c7a9 Mon Sep 17 00:00:00 2001 +From e75811360705bd25c67dcc1b2d52bf6c9e8df642 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 1 Jul 2013 11:02:42 +0200 -Subject: [PATCH 308/413] workqueue: Prevent workqueue versus ata-piix livelock +Subject: [PATCH 308/436] workqueue: Prevent workqueue versus ata-piix livelock An Intel i7 system regularly detected rcu_preempt stalls after the kernel was upgraded from 3.6-rt to 3.8-rt. When the stall happened, disk I/O was no @@ -113,7 +113,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 165166d88c05..55d1dee16bc0 100644 +index b798d32af3fd..a222bed39623 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -50,6 +50,7 @@ diff --git a/kernel/patches-4.14.x-rt/0309-sched-Distangle-worker-accounting-from-rqlock.patch b/kernel/patches-4.14.x-rt/0309-sched-Distangle-worker-accounting-from-rqlock.patch index 234f2322b..69327dfe9 100644 --- a/kernel/patches-4.14.x-rt/0309-sched-Distangle-worker-accounting-from-rqlock.patch +++ b/kernel/patches-4.14.x-rt/0309-sched-Distangle-worker-accounting-from-rqlock.patch @@ -1,7 +1,7 @@ -From aed771ca456eb741f387114a9dea3feb7dce3e4e Mon Sep 17 00:00:00 2001 +From 1a0272fe561e9940effaccfef495257e9dfa0789 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 19:47:03 +0200 -Subject: [PATCH 309/413] sched: Distangle worker accounting from rqlock +Subject: [PATCH 309/436] sched: Distangle worker accounting from rqlock 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 @@ -160,7 +160,7 @@ index ab6ec5fb6796..d3369a9bd607 100644 EXPORT_SYMBOL(schedule); diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index 55d1dee16bc0..fffe7dd994b9 100644 +index a222bed39623..c0b2a2e65d75 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -845,43 +845,32 @@ static void wake_up_worker(struct worker_pool *pool) diff --git a/kernel/patches-4.14.x-rt/0310-percpu_ida-Use-local-locks.patch b/kernel/patches-4.14.x-rt/0310-percpu_ida-Use-local-locks.patch index d490c0257..8e33da569 100644 --- a/kernel/patches-4.14.x-rt/0310-percpu_ida-Use-local-locks.patch +++ b/kernel/patches-4.14.x-rt/0310-percpu_ida-Use-local-locks.patch @@ -1,7 +1,7 @@ -From ba831a96a5cb2dc74978022ec604498a2b48f49b Mon Sep 17 00:00:00 2001 +From 250866e72719c280f79865f95b0823a716af2003 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 9 Apr 2014 11:58:17 +0200 -Subject: [PATCH 310/413] percpu_ida: Use local locks +Subject: [PATCH 310/436] percpu_ida: Use local locks the local_irq_save() + spin_lock() does not work that well on -RT diff --git a/kernel/patches-4.14.x-rt/0311-debugobjects-Make-RT-aware.patch b/kernel/patches-4.14.x-rt/0311-debugobjects-Make-RT-aware.patch index 35e506217..13d858308 100644 --- a/kernel/patches-4.14.x-rt/0311-debugobjects-Make-RT-aware.patch +++ b/kernel/patches-4.14.x-rt/0311-debugobjects-Make-RT-aware.patch @@ -1,7 +1,7 @@ -From 495dade38aa721a735631a86e4905f60068491ac Mon Sep 17 00:00:00 2001 +From 1d88437d2c0335cf0656c58df796c18e6c366cf2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:41:35 +0200 -Subject: [PATCH 311/413] debugobjects: Make RT aware +Subject: [PATCH 311/436] debugobjects: Make RT aware Avoid filling the pool / allocating memory with irqs off(). @@ -11,10 +11,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/debugobjects.c b/lib/debugobjects.c -index 2f5349c6e81a..d789930edcc2 100644 +index 99308479b1c8..161da6c6e173 100644 --- a/lib/debugobjects.c +++ b/lib/debugobjects.c -@@ -336,7 +336,10 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack) +@@ -339,7 +339,10 @@ __debug_object_init(void *addr, struct debug_obj_descr *descr, int onstack) struct debug_obj *obj; unsigned long flags; diff --git a/kernel/patches-4.14.x-rt/0312-jump-label-disable-if-stop_machine-is-used.patch b/kernel/patches-4.14.x-rt/0312-jump-label-disable-if-stop_machine-is-used.patch index 0460bc9f7..64ab4f5db 100644 --- a/kernel/patches-4.14.x-rt/0312-jump-label-disable-if-stop_machine-is-used.patch +++ b/kernel/patches-4.14.x-rt/0312-jump-label-disable-if-stop_machine-is-used.patch @@ -1,7 +1,7 @@ -From 6abba19519f60ac0339c0c0ca57b7082a285d62a Mon Sep 17 00:00:00 2001 +From 3b19c1af30d2433e36d3b0102e733fb40dc8693a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Jul 2015 17:14:48 +0200 -Subject: [PATCH 312/413] jump-label: disable if stop_machine() is used +Subject: [PATCH 312/436] jump-label: disable if stop_machine() is used Some architectures are using stop_machine() while switching the opcode which leads to latency spikes. diff --git a/kernel/patches-4.14.x-rt/0313-seqlock-Prevent-rt-starvation.patch b/kernel/patches-4.14.x-rt/0313-seqlock-Prevent-rt-starvation.patch index 4c26dbcf8..e684fd85e 100644 --- a/kernel/patches-4.14.x-rt/0313-seqlock-Prevent-rt-starvation.patch +++ b/kernel/patches-4.14.x-rt/0313-seqlock-Prevent-rt-starvation.patch @@ -1,7 +1,7 @@ -From 2a47ae1e20e920968f4f40f41d6ffcf9307c7ff5 Mon Sep 17 00:00:00 2001 +From 2f79376a7074c96d6dc031a12abc096ddd4df267 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Feb 2012 12:03:30 +0100 -Subject: [PATCH 313/413] seqlock: Prevent rt starvation +Subject: [PATCH 313/436] 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/kernel/patches-4.14.x-rt/0314-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/kernel/patches-4.14.x-rt/0314-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch index 2be7762f9..ef85ccede 100644 --- a/kernel/patches-4.14.x-rt/0314-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch +++ b/kernel/patches-4.14.x-rt/0314-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -1,7 +1,7 @@ -From 6144f9a4ba123ae9562858bd83b805b6a17189b4 Mon Sep 17 00:00:00 2001 +From c86c3e4b354ef9035dcfdf99f8568bc0acba6b43 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 18 Feb 2015 16:05:28 +0100 -Subject: [PATCH 314/413] sunrpc: Make svc_xprt_do_enqueue() use +Subject: [PATCH 314/436] sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 diff --git a/kernel/patches-4.14.x-rt/0315-net-Use-skbufhead-with-raw-lock.patch b/kernel/patches-4.14.x-rt/0315-net-Use-skbufhead-with-raw-lock.patch index 8d06cfb73..e8edf0572 100644 --- a/kernel/patches-4.14.x-rt/0315-net-Use-skbufhead-with-raw-lock.patch +++ b/kernel/patches-4.14.x-rt/0315-net-Use-skbufhead-with-raw-lock.patch @@ -1,7 +1,7 @@ -From 8b348f39f3a8f3b772abffa20f86bf655be0ffd5 Mon Sep 17 00:00:00 2001 +From 8d8cf8f661efafc31c1e144f12004eb02e9b4f0c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 15:38:34 +0200 -Subject: [PATCH 315/413] net: Use skbufhead with raw lock +Subject: [PATCH 315/436] net: Use skbufhead with raw lock Use the rps lock as rawlock so we can keep irq-off regions. It looks low latency. However we can't kfree() from this context therefore we defer this @@ -27,7 +27,7 @@ index 2ea7ee1fb495..4b32d4495f5d 100644 }; diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h -index 6dd77767fd5b..795b2d513874 100644 +index f64e88444082..07576a062ac0 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -287,6 +287,7 @@ struct sk_buff_head { @@ -38,7 +38,7 @@ index 6dd77767fd5b..795b2d513874 100644 }; struct sk_buff; -@@ -1667,6 +1668,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list) +@@ -1672,6 +1673,12 @@ static inline void skb_queue_head_init(struct sk_buff_head *list) __skb_queue_head_init(list); } @@ -52,7 +52,7 @@ index 6dd77767fd5b..795b2d513874 100644 struct lock_class_key *class) { diff --git a/net/core/dev.c b/net/core/dev.c -index a67f99b8370f..4950ef3cc1b4 100644 +index d2793442d459..cf8a2bb8eddf 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -217,14 +217,14 @@ static inline struct hlist_head *dev_index_hash(struct net *net, int ifindex) diff --git a/kernel/patches-4.14.x-rt/0316-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch b/kernel/patches-4.14.x-rt/0316-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch index 2a36b3a87..44c86963c 100644 --- a/kernel/patches-4.14.x-rt/0316-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch +++ b/kernel/patches-4.14.x-rt/0316-net-core-cpuhotplug-Drain-input_pkt_queue-lockless.patch @@ -1,7 +1,7 @@ -From 4d6b9b4a552726c9a2311c9c3b277a94f2c29380 Mon Sep 17 00:00:00 2001 +From 338b236827ebf6479e9d7aa215be3128a2cf3858 Mon Sep 17 00:00:00 2001 From: Grygorii Strashko Date: Fri, 9 Oct 2015 09:25:49 -0500 -Subject: [PATCH 316/413] net/core/cpuhotplug: Drain input_pkt_queue lockless +Subject: [PATCH 316/436] net/core/cpuhotplug: Drain input_pkt_queue lockless I can constantly see below error report with 4.1 RT-kernel on TI ARM dra7-evm if I'm trying to unplug cpu1: @@ -35,7 +35,7 @@ Cc: stable-rt@vger.kernel.org 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 4950ef3cc1b4..8e7d77da7881 100644 +index cf8a2bb8eddf..97c3adc241c2 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -8449,7 +8449,7 @@ static int dev_cpu_dead(unsigned int oldcpu) diff --git a/kernel/patches-4.14.x-rt/0317-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/kernel/patches-4.14.x-rt/0317-net-move-xmit_recursion-to-per-task-variable-on-RT.patch index 97b768f89..5a6d2c50f 100644 --- a/kernel/patches-4.14.x-rt/0317-net-move-xmit_recursion-to-per-task-variable-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0317-net-move-xmit_recursion-to-per-task-variable-on-RT.patch @@ -1,7 +1,7 @@ -From bf4aef957eef68dedaadfc7c4d56d3a622a712d6 Mon Sep 17 00:00:00 2001 +From 0039af6de795159afdca9259e8fe4a392423cd82 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Jan 2016 15:55:02 +0100 -Subject: [PATCH 317/413] net: move xmit_recursion to per-task variable on -RT +Subject: [PATCH 317/436] net: move xmit_recursion to per-task variable on -RT A softirq on -RT can be preempted. That means one task is in __dev_queue_xmit(), gets preempted and another task may enter @@ -96,7 +96,7 @@ index dc3c98d9f924..33d7cb59c00b 100644 int pagefault_disabled; #ifdef CONFIG_MMU diff --git a/net/core/dev.c b/net/core/dev.c -index 8e7d77da7881..ecf45f23d3ef 100644 +index 97c3adc241c2..08b456db8fb9 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3248,8 +3248,10 @@ static void skb_update_prio(struct sk_buff *skb) diff --git a/kernel/patches-4.14.x-rt/0318-net-use-task_struct-instead-of-CPU-number-as-the-que.patch b/kernel/patches-4.14.x-rt/0318-net-use-task_struct-instead-of-CPU-number-as-the-que.patch index a0cbc4c18..c247a8b67 100644 --- a/kernel/patches-4.14.x-rt/0318-net-use-task_struct-instead-of-CPU-number-as-the-que.patch +++ b/kernel/patches-4.14.x-rt/0318-net-use-task_struct-instead-of-CPU-number-as-the-que.patch @@ -1,7 +1,7 @@ -From 2ee48aa51dc4d77a21850e7b1c413d614cc60460 Mon Sep 17 00:00:00 2001 +From 60338787a09aa95d196c0a4b49f0d8488b8d6407 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 21 Feb 2018 10:39:54 +0100 -Subject: [PATCH 318/413] net: use task_struct instead of CPU number as the +Subject: [PATCH 318/436] net: use task_struct instead of CPU number as the queue owner on -RT In commit ("net: move xmit_recursion to per-task variable on -RT") the @@ -124,7 +124,7 @@ index 7c2dce09019d..8b5151f9e31c 100644 } diff --git a/net/core/dev.c b/net/core/dev.c -index ecf45f23d3ef..afd50ebb7197 100644 +index 08b456db8fb9..b7a1f737faa3 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3491,7 +3491,11 @@ static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv) diff --git a/kernel/patches-4.14.x-rt/0319-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/kernel/patches-4.14.x-rt/0319-net-provide-a-way-to-delegate-processing-a-softirq-t.patch index 3eb8b3947..0306e60d0 100644 --- a/kernel/patches-4.14.x-rt/0319-net-provide-a-way-to-delegate-processing-a-softirq-t.patch +++ b/kernel/patches-4.14.x-rt/0319-net-provide-a-way-to-delegate-processing-a-softirq-t.patch @@ -1,7 +1,7 @@ -From 64fc707b2dd4a8177c74b9e6a975f86962e66c1d Mon Sep 17 00:00:00 2001 +From 79971ec5271cea8bb4fcb7644cdf25c823008332 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Jan 2016 15:39:05 +0100 -Subject: [PATCH 319/413] net: provide a way to delegate processing a softirq +Subject: [PATCH 319/436] net: provide a way to delegate processing a softirq to ksoftirqd If the NET_RX uses up all of his budget it moves the following NAPI @@ -71,7 +71,7 @@ index 0f4ddfa14360..996b03fb8c53 100644 * This function must run with irqs disabled! */ diff --git a/net/core/dev.c b/net/core/dev.c -index afd50ebb7197..8f9fa90d72bc 100644 +index b7a1f737faa3..c324ec2fba5e 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5673,7 +5673,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) diff --git a/kernel/patches-4.14.x-rt/0320-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/kernel/patches-4.14.x-rt/0320-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch index dd80cb27d..7cca08635 100644 --- a/kernel/patches-4.14.x-rt/0320-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +++ b/kernel/patches-4.14.x-rt/0320-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch @@ -1,7 +1,7 @@ -From de9662b5b8aa7542ed7b73b602f081b427a02fa4 Mon Sep 17 00:00:00 2001 +From 27fbf2a8e12590eb7c4876f32f531e6880a0769a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 30 Mar 2016 13:36:29 +0200 -Subject: [PATCH 320/413] net: dev: always take qdisc's busylock in +Subject: [PATCH 320/436] net: dev: always take qdisc's busylock in __dev_xmit_skb() The root-lock is dropped before dev_hard_start_xmit() is invoked and after @@ -21,7 +21,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c -index 8f9fa90d72bc..17ec4679e3f3 100644 +index c324ec2fba5e..b8433ae8b36a 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -3177,7 +3177,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, diff --git a/kernel/patches-4.14.x-rt/0321-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/kernel/patches-4.14.x-rt/0321-net-Qdisc-use-a-seqlock-instead-seqcount.patch index 13aaa1fa0..c7b6bc116 100644 --- a/kernel/patches-4.14.x-rt/0321-net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/kernel/patches-4.14.x-rt/0321-net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -1,7 +1,7 @@ -From 0bcbde1d86b80ff104cbc8330cde56f23f5c1d1a Mon Sep 17 00:00:00 2001 +From 9deb8c7e0af46b05bc1e90675f3feb08b8fd144e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 17:36:35 +0200 -Subject: [PATCH 321/413] net/Qdisc: use a seqlock instead seqcount +Subject: [PATCH 321/436] net/Qdisc: use a seqlock instead seqcount The seqcount disables preemption on -RT while it is held which can't remove. Also we don't want the reader to spin for ages if the writer is diff --git a/kernel/patches-4.14.x-rt/0322-net-add-back-the-missing-serialization-in-ip_send_un.patch b/kernel/patches-4.14.x-rt/0322-net-add-back-the-missing-serialization-in-ip_send_un.patch index 1297dfd1f..96659b763 100644 --- a/kernel/patches-4.14.x-rt/0322-net-add-back-the-missing-serialization-in-ip_send_un.patch +++ b/kernel/patches-4.14.x-rt/0322-net-add-back-the-missing-serialization-in-ip_send_un.patch @@ -1,7 +1,7 @@ -From d1e7025d7ec87c83c6ad6230f49a4d0da980f1b8 Mon Sep 17 00:00:00 2001 +From 08e64aeae6c9f60c649ade9780315c2ae3d4c395 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 31 Aug 2016 17:21:56 +0200 -Subject: [PATCH 322/413] net: add back the missing serialization in +Subject: [PATCH 322/436] net: add back the missing serialization in ip_send_unicast_reply() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 @@ -42,7 +42,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+) diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c -index a95ccdceb797..8f157f3aaafd 100644 +index 0e1a670dabd9..89f983c0384c 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -62,6 +62,7 @@ diff --git a/kernel/patches-4.14.x-rt/0323-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch b/kernel/patches-4.14.x-rt/0323-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch index 5b51e8107..d0d232577 100644 --- a/kernel/patches-4.14.x-rt/0323-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch +++ b/kernel/patches-4.14.x-rt/0323-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch @@ -1,7 +1,7 @@ -From 9b3ac577078e80130f02aa1aa600d67ddad1a6ea Mon Sep 17 00:00:00 2001 +From 9d80325c00774a7217a426e40b2fe9fad800affa Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Aug 2017 15:09:13 +0200 -Subject: [PATCH 323/413] net: take the tcp_sk_lock lock with BH disabled +Subject: [PATCH 323/436] net: take the tcp_sk_lock lock with BH disabled Lockdep may complain about an unsafe locking scenario: | CPU0 CPU1 @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c -index 8f157f3aaafd..41e18629441b 100644 +index 89f983c0384c..ca4507290102 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -711,8 +711,8 @@ static void tcp_v4_send_reset(const struct sock *sk, struct sk_buff *skb) diff --git a/kernel/patches-4.14.x-rt/0324-net-add-a-lock-around-icmp_sk.patch b/kernel/patches-4.14.x-rt/0324-net-add-a-lock-around-icmp_sk.patch index 911a0c42d..4ed4b7732 100644 --- a/kernel/patches-4.14.x-rt/0324-net-add-a-lock-around-icmp_sk.patch +++ b/kernel/patches-4.14.x-rt/0324-net-add-a-lock-around-icmp_sk.patch @@ -1,7 +1,7 @@ -From 21d30a5f5420a743cf621fb9a51534d1268b17e3 Mon Sep 17 00:00:00 2001 +From 1ba8d7cc0dae5f1b40c880c63c23a07771652bc4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 31 Aug 2016 17:54:09 +0200 -Subject: [PATCH 324/413] net: add a lock around icmp_sk() +Subject: [PATCH 324/436] net: add a lock around icmp_sk() It looks like the this_cpu_ptr() access in icmp_sk() is protected with local_bh_disable(). To avoid missing serialization in -RT I am adding diff --git a/kernel/patches-4.14.x-rt/0325-net-use-trylock-in-icmp_sk.patch b/kernel/patches-4.14.x-rt/0325-net-use-trylock-in-icmp_sk.patch index be8fe81fb..369d1ee0b 100644 --- a/kernel/patches-4.14.x-rt/0325-net-use-trylock-in-icmp_sk.patch +++ b/kernel/patches-4.14.x-rt/0325-net-use-trylock-in-icmp_sk.patch @@ -1,7 +1,7 @@ -From ab4641021b68c92a47071def2a42162ba94f527d Mon Sep 17 00:00:00 2001 +From ce4686150e12453bc0153af074e1c115bf435df1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2017 14:42:04 +0200 -Subject: [PATCH 325/413] net: use trylock in icmp_sk +Subject: [PATCH 325/436] net: use trylock in icmp_sk The locking path can be recursive (same as for sk->sk_lock.slock) and therefore we need a trylock version for the locallock, too. diff --git a/kernel/patches-4.14.x-rt/0326-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/kernel/patches-4.14.x-rt/0326-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch index 41acfe87f..6dc9bf0b8 100644 --- a/kernel/patches-4.14.x-rt/0326-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch +++ b/kernel/patches-4.14.x-rt/0326-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch @@ -1,7 +1,7 @@ -From 4a91f9a1ec0e45b50c5504a9c0de4e704c8539ec Mon Sep 17 00:00:00 2001 +From 237064ef4377b8b9a4f333dd72c333fee50104b1 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 6 Dec 2016 17:50:30 -0500 -Subject: [PATCH 326/413] net: Have __napi_schedule_irqoff() disable interrupts +Subject: [PATCH 326/436] net: Have __napi_schedule_irqoff() disable interrupts on RT A customer hit a crash where the napi sd->poll_list became corrupted. @@ -52,7 +52,7 @@ index 8b5151f9e31c..8b7282a13652 100644 static inline bool napi_disable_pending(struct napi_struct *n) { diff --git a/net/core/dev.c b/net/core/dev.c -index 17ec4679e3f3..9c936553c46e 100644 +index b8433ae8b36a..556edade3628 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -5268,6 +5268,7 @@ bool napi_schedule_prep(struct napi_struct *n) diff --git a/kernel/patches-4.14.x-rt/0327-irqwork-push-most-work-into-softirq-context.patch b/kernel/patches-4.14.x-rt/0327-irqwork-push-most-work-into-softirq-context.patch index e704a8b42..d7cd2294f 100644 --- a/kernel/patches-4.14.x-rt/0327-irqwork-push-most-work-into-softirq-context.patch +++ b/kernel/patches-4.14.x-rt/0327-irqwork-push-most-work-into-softirq-context.patch @@ -1,7 +1,7 @@ -From 1ecac280d8b4d476bf08ba0228bf9070608317bb Mon Sep 17 00:00:00 2001 +From 8f59e62f5a6e3d597913c61792db9ff9d1ee3452 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 23 Jun 2015 15:32:51 +0200 -Subject: [PATCH 327/413] irqwork: push most work into softirq context +Subject: [PATCH 327/436] irqwork: push most work into softirq context Initially we defered all irqwork into softirq because we didn't want the latency spikes if perf or another user was busy and delayed the RT task. @@ -171,7 +171,7 @@ index 92222682dfce..643b36a0b8e1 100644 /* diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index ced791c0b47b..feab4b90d896 100644 +index 9b08190ff65a..2362b03051aa 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -1638,7 +1638,7 @@ void update_process_times(int user_tick) @@ -183,16 +183,16 @@ index ced791c0b47b..feab4b90d896 100644 if (in_irq()) irq_work_tick(); #endif -@@ -1679,6 +1679,9 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) +@@ -1695,6 +1695,9 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) { struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); +#if defined(CONFIG_IRQ_WORK) && defined(CONFIG_PREEMPT_RT_FULL) + irq_work_tick(); +#endif - /* - * must_forward_clk must be cleared before running timers so that any - * timer functions that call mod_timer will not try to forward the + __run_timers(base); + if (IS_ENABLED(CONFIG_NO_HZ_COMMON)) + __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); -- 2.18.0 diff --git a/kernel/patches-4.14.x-rt/0328-irqwork-Move-irq-safe-work-to-irq-context.patch b/kernel/patches-4.14.x-rt/0328-irqwork-Move-irq-safe-work-to-irq-context.patch index fb50e59ec..de057249d 100644 --- a/kernel/patches-4.14.x-rt/0328-irqwork-Move-irq-safe-work-to-irq-context.patch +++ b/kernel/patches-4.14.x-rt/0328-irqwork-Move-irq-safe-work-to-irq-context.patch @@ -1,7 +1,7 @@ -From 20247db48c783641911dece83e789cdac738f3a8 Mon Sep 17 00:00:00 2001 +From f32be76d851fe341853ba04626414fbe4dab2d13 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 15 Nov 2015 18:40:17 +0100 -Subject: [PATCH 328/413] irqwork: Move irq safe work to irq context +Subject: [PATCH 328/436] irqwork: Move irq safe work to irq context On architectures where arch_irq_work_has_interrupt() returns false, we end up running the irq safe work from the softirq context. That @@ -59,7 +59,7 @@ index 0ddaf1e66d8c..2899ba0d23d1 100644 /* * Synchronize against the irq_work @entry, ensures the entry is not diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index feab4b90d896..ff1d60d4c0cc 100644 +index 2362b03051aa..ea742b49bdb5 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c @@ -1638,7 +1638,7 @@ void update_process_times(int user_tick) @@ -71,7 +71,7 @@ index feab4b90d896..ff1d60d4c0cc 100644 if (in_irq()) irq_work_tick(); #endif -@@ -1679,9 +1679,7 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) +@@ -1695,9 +1695,7 @@ static __latent_entropy void run_timer_softirq(struct softirq_action *h) { struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); @@ -79,9 +79,9 @@ index feab4b90d896..ff1d60d4c0cc 100644 - irq_work_tick(); -#endif + irq_work_tick_soft(); - /* - * must_forward_clk must be cleared before running timers so that any - * timer functions that call mod_timer will not try to forward the + __run_timers(base); + if (IS_ENABLED(CONFIG_NO_HZ_COMMON)) + __run_timers(this_cpu_ptr(&timer_bases[BASE_DEF])); -- 2.18.0 diff --git a/kernel/patches-4.14.x-rt/0329-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch b/kernel/patches-4.14.x-rt/0329-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch index 185171c6d..dfcaeb1c3 100644 --- a/kernel/patches-4.14.x-rt/0329-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch +++ b/kernel/patches-4.14.x-rt/0329-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch @@ -1,7 +1,7 @@ -From 0df85743721a6d990de6da05fbd02ac1d5f64351 Mon Sep 17 00:00:00 2001 +From 5057c1c49a69151393a1687209c14f71daba3254 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 18 Feb 2015 15:09:23 +0100 -Subject: [PATCH 329/413] snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled() +Subject: [PATCH 329/436] snd/pcm: fix snd_pcm_stream_lock*() irqs_disabled() splats Locking functions previously using read_lock_irq()/read_lock_irqsave() were diff --git a/kernel/patches-4.14.x-rt/0330-printk-Make-rt-aware.patch b/kernel/patches-4.14.x-rt/0330-printk-Make-rt-aware.patch index 361a5534d..0779bfa57 100644 --- a/kernel/patches-4.14.x-rt/0330-printk-Make-rt-aware.patch +++ b/kernel/patches-4.14.x-rt/0330-printk-Make-rt-aware.patch @@ -1,7 +1,7 @@ -From 608ad956a6bc170b386a56c5254042614c3fc81d Mon Sep 17 00:00:00 2001 +From 99522c094d5e5ce9aafc867aed361773b4223229 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Sep 2012 14:50:37 +0200 -Subject: [PATCH 330/413] printk: Make rt aware +Subject: [PATCH 330/436] printk: Make rt aware Drop the lock before calling the console driver and do not disable interrupts while printing to a serial console. @@ -12,10 +12,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 1da739f39a3d..bce72853f9a2 100644 +index fec67b9d0fad..60786d701bfe 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -1617,6 +1617,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1558,6 +1558,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, if (!console_drivers) return; @@ -23,7 +23,7 @@ index 1da739f39a3d..bce72853f9a2 100644 for_each_console(con) { if (exclusive_console && con != exclusive_console) continue; -@@ -1632,6 +1633,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1573,6 +1574,7 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, else con->write(con, text, len); } @@ -31,7 +31,7 @@ index 1da739f39a3d..bce72853f9a2 100644 } int printk_delay_msec __read_mostly; -@@ -1814,12 +1816,22 @@ asmlinkage int vprintk_emit(int facility, int level, +@@ -1757,12 +1759,22 @@ asmlinkage int vprintk_emit(int facility, int level, /* If called from the scheduler, we can not call up(). */ if (!in_sched) { @@ -55,7 +55,7 @@ index 1da739f39a3d..bce72853f9a2 100644 console_unlock(); } -@@ -2275,10 +2287,15 @@ void console_unlock(void) +@@ -2218,10 +2230,15 @@ void console_unlock(void) console_seq++; raw_spin_unlock(&logbuf_lock); diff --git a/kernel/patches-4.14.x-rt/0331-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/kernel/patches-4.14.x-rt/0331-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch index 673059c2f..6ee83d43e 100644 --- a/kernel/patches-4.14.x-rt/0331-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch +++ b/kernel/patches-4.14.x-rt/0331-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch @@ -1,7 +1,7 @@ -From 23c74a539b8a1f03839fc69e6392fa26a881c268 Mon Sep 17 00:00:00 2001 +From 840320070f0bb8ba20cf65613e65636b7ffd6b5e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 19 May 2016 17:45:27 +0200 -Subject: [PATCH 331/413] kernel/printk: Don't try to print from IRQ/NMI region +Subject: [PATCH 331/436] kernel/printk: Don't try to print from IRQ/NMI region On -RT we try to acquire sleeping locks which might lead to warnings from lockdep or a warn_on() from spin_try_lock() (which is a rtmutex on @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 10 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index bce72853f9a2..304abddbab01 100644 +index 60786d701bfe..741bf27bb73c 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -1617,6 +1617,11 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, +@@ -1558,6 +1558,11 @@ static void call_console_drivers(const char *ext_text, size_t ext_len, if (!console_drivers) return; @@ -30,7 +30,7 @@ index bce72853f9a2..304abddbab01 100644 migrate_disable(); for_each_console(con) { if (exclusive_console && con != exclusive_console) -@@ -2349,6 +2354,11 @@ void console_unblank(void) +@@ -2292,6 +2297,11 @@ void console_unblank(void) { struct console *c; diff --git a/kernel/patches-4.14.x-rt/0332-printk-Drop-the-logbuf_lock-more-often.patch b/kernel/patches-4.14.x-rt/0332-printk-Drop-the-logbuf_lock-more-often.patch index 211664ac1..18bd863c9 100644 --- a/kernel/patches-4.14.x-rt/0332-printk-Drop-the-logbuf_lock-more-often.patch +++ b/kernel/patches-4.14.x-rt/0332-printk-Drop-the-logbuf_lock-more-often.patch @@ -1,7 +1,7 @@ -From 92f04b288c64005f2f59e0f5a1575656e7f663b2 Mon Sep 17 00:00:00 2001 +From 1a316447e87b51111ff88b59d6b4bbb8a339ff0c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Mar 2013 19:01:05 +0100 -Subject: [PATCH 332/413] printk: Drop the logbuf_lock more often +Subject: [PATCH 332/436] printk: Drop the logbuf_lock more often The lock is hold with irgs off. The latency drops 500us+ on my arm bugs with a "full" buffer after executing "dmesg" on the shell. @@ -12,10 +12,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 27 insertions(+) diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c -index 304abddbab01..7393fcb271fb 100644 +index 741bf27bb73c..13fd0bcf2367 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -1407,6 +1407,8 @@ static int syslog_print_all(char __user *buf, int size, bool clear) +@@ -1348,6 +1348,8 @@ static int syslog_print_all(char __user *buf, int size, bool clear) { char *text; int len = 0; @@ -24,7 +24,7 @@ index 304abddbab01..7393fcb271fb 100644 text = kmalloc(LOG_LINE_MAX + PREFIX_MAX, GFP_KERNEL); if (!text) -@@ -1418,6 +1420,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear) +@@ -1359,6 +1361,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear) u64 seq; u32 idx; @@ -39,7 +39,7 @@ index 304abddbab01..7393fcb271fb 100644 /* * Find first record that fits, including all following records, * into the user-provided buffer for this dump. -@@ -1430,6 +1440,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear) +@@ -1371,6 +1381,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear) len += msg_print_text(msg, true, NULL, 0); idx = log_next(idx); seq++; @@ -54,7 +54,7 @@ index 304abddbab01..7393fcb271fb 100644 } /* move first record forward until length fits into the buffer */ -@@ -1441,6 +1459,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear) +@@ -1382,6 +1400,14 @@ static int syslog_print_all(char __user *buf, int size, bool clear) len -= msg_print_text(msg, true, NULL, 0); idx = log_next(idx); seq++; @@ -69,7 +69,7 @@ index 304abddbab01..7393fcb271fb 100644 } /* last message fitting into this dump */ -@@ -1479,6 +1505,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) +@@ -1420,6 +1446,7 @@ static int syslog_print_all(char __user *buf, int size, bool clear) clear_seq = log_next_seq; clear_idx = log_next_idx; } diff --git a/kernel/patches-4.14.x-rt/0333-powerpc-Use-generic-rwsem-on-RT.patch b/kernel/patches-4.14.x-rt/0333-powerpc-Use-generic-rwsem-on-RT.patch index 3f01409da..10ee1caf1 100644 --- a/kernel/patches-4.14.x-rt/0333-powerpc-Use-generic-rwsem-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0333-powerpc-Use-generic-rwsem-on-RT.patch @@ -1,7 +1,7 @@ -From 2398a7eb66285ea0a6c5cba272bd252632a6b60c Mon Sep 17 00:00:00 2001 +From 4a165cfbfb6e0a5d0fc9d6a032bb0e867bab2e70 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 333/413] powerpc: Use generic rwsem on RT +Subject: [PATCH 333/436] powerpc: Use generic rwsem on RT Use generic code which uses rtmutex diff --git a/kernel/patches-4.14.x-rt/0334-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/kernel/patches-4.14.x-rt/0334-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index 75b71ce07..8a23acc74 100644 --- a/kernel/patches-4.14.x-rt/0334-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/kernel/patches-4.14.x-rt/0334-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -1,7 +1,7 @@ -From 297c74b4103902bde50431705e04653b7fcc188c Mon Sep 17 00:00:00 2001 +From 4688b96e542994bb3e897438590c391fc0e4359d Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Fri, 24 Apr 2015 15:53:13 +0000 -Subject: [PATCH 334/413] powerpc/kvm: Disable in-kernel MPIC emulation for +Subject: [PATCH 334/436] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT_FULL While converting the openpic emulation code to use a raw_spinlock_t enables diff --git a/kernel/patches-4.14.x-rt/0335-powerpc-ps3-device-init.c-adapt-to-completions-using.patch b/kernel/patches-4.14.x-rt/0335-powerpc-ps3-device-init.c-adapt-to-completions-using.patch index 4f30289ca..49fdf5eb6 100644 --- a/kernel/patches-4.14.x-rt/0335-powerpc-ps3-device-init.c-adapt-to-completions-using.patch +++ b/kernel/patches-4.14.x-rt/0335-powerpc-ps3-device-init.c-adapt-to-completions-using.patch @@ -1,7 +1,7 @@ -From 2d37ca2d886a1307138bd1069eb0196b2ba5424c Mon Sep 17 00:00:00 2001 +From 415b3578bfbb558ed801ccb0adb723ea41bb1583 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sun, 31 May 2015 14:44:42 -0400 -Subject: [PATCH 335/413] powerpc: ps3/device-init.c - adapt to completions +Subject: [PATCH 335/436] powerpc: ps3/device-init.c - adapt to completions using swait vs wait To fix: diff --git a/kernel/patches-4.14.x-rt/0336-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch b/kernel/patches-4.14.x-rt/0336-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch index aa6dca45a..c7031242d 100644 --- a/kernel/patches-4.14.x-rt/0336-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0336-ARM-at91-tclib-Default-to-tclib-timer-for-RT.patch @@ -1,7 +1,7 @@ -From 097550dd789debc8a3323bc545b5d231782ae3f3 Mon Sep 17 00:00:00 2001 +From 787d333215e80ba009ab2c8ba95ee04da51995d7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 1 May 2010 18:29:35 +0200 -Subject: [PATCH 336/413] ARM: at91: tclib: Default to tclib timer for RT +Subject: [PATCH 336/436] 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/kernel/patches-4.14.x-rt/0337-arm-unwind-use-a-raw_spin_lock.patch b/kernel/patches-4.14.x-rt/0337-arm-unwind-use-a-raw_spin_lock.patch index a62d01153..a1eed29d5 100644 --- a/kernel/patches-4.14.x-rt/0337-arm-unwind-use-a-raw_spin_lock.patch +++ b/kernel/patches-4.14.x-rt/0337-arm-unwind-use-a-raw_spin_lock.patch @@ -1,7 +1,7 @@ -From 54db8d0097dae35b2a7fab9b4d309f4e0ef47e30 Mon Sep 17 00:00:00 2001 +From 9eaef3c979dc808ec8ad336e2e813973ed2b6670 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 20 Sep 2013 14:31:54 +0200 -Subject: [PATCH 337/413] arm/unwind: use a raw_spin_lock +Subject: [PATCH 337/436] arm/unwind: use a raw_spin_lock Mostly unwind is done with irqs enabled however SLUB may call it with irqs disabled while creating a new SLUB cache. diff --git a/kernel/patches-4.14.x-rt/0338-ARM-enable-irq-in-translation-section-permission-fau.patch b/kernel/patches-4.14.x-rt/0338-ARM-enable-irq-in-translation-section-permission-fau.patch index 019d372d4..2aad33df7 100644 --- a/kernel/patches-4.14.x-rt/0338-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/kernel/patches-4.14.x-rt/0338-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,7 +1,7 @@ -From 4781928a7fa9781e6e27e5e72ce5da15b9c2d2c8 Mon Sep 17 00:00:00 2001 +From eb0e06ce0078fe5845256b9f6350372eee1e3155 Mon Sep 17 00:00:00 2001 From: "Yadi.hu" Date: Wed, 10 Dec 2014 10:32:09 +0800 -Subject: [PATCH 338/413] ARM: enable irq in translation/section permission +Subject: [PATCH 338/436] ARM: enable irq in translation/section permission fault handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 diff --git a/kernel/patches-4.14.x-rt/0339-genirq-update-irq_set_irqchip_state-documentation.patch b/kernel/patches-4.14.x-rt/0339-genirq-update-irq_set_irqchip_state-documentation.patch index a4f0562f3..07114466b 100644 --- a/kernel/patches-4.14.x-rt/0339-genirq-update-irq_set_irqchip_state-documentation.patch +++ b/kernel/patches-4.14.x-rt/0339-genirq-update-irq_set_irqchip_state-documentation.patch @@ -1,7 +1,7 @@ -From d5db143543ab84529338bbcbe7452c042860e720 Mon Sep 17 00:00:00 2001 +From 29fa2b2af4959e789d0296040794c9fa987c5a58 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:00 -0600 -Subject: [PATCH 339/413] genirq: update irq_set_irqchip_state documentation +Subject: [PATCH 339/436] genirq: update irq_set_irqchip_state documentation On -rt kernels, the use of migrate_disable()/migrate_enable() is sufficient to guarantee a task isn't moved to another CPU. Update the diff --git a/kernel/patches-4.14.x-rt/0340-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/kernel/patches-4.14.x-rt/0340-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index 089b02f64..115982499 100644 --- a/kernel/patches-4.14.x-rt/0340-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/kernel/patches-4.14.x-rt/0340-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -1,7 +1,7 @@ -From 16f6cee7b374cc6ef65e710e148dca40558da980 Mon Sep 17 00:00:00 2001 +From fbec738a0ec882a6f7bc43eb150627cdd8e7839f Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:01 -0600 -Subject: [PATCH 340/413] KVM: arm/arm64: downgrade preempt_disable()d region +Subject: [PATCH 340/436] KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating diff --git a/kernel/patches-4.14.x-rt/0341-arm64-xen-Make-XEN-depend-on-RT.patch b/kernel/patches-4.14.x-rt/0341-arm64-xen-Make-XEN-depend-on-RT.patch index 30c86eddf..7cd10bb4c 100644 --- a/kernel/patches-4.14.x-rt/0341-arm64-xen-Make-XEN-depend-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0341-arm64-xen-Make-XEN-depend-on-RT.patch @@ -1,7 +1,7 @@ -From 16c41a0eaf10d71d38df45944c9d2ba02b2c6e4e Mon Sep 17 00:00:00 2001 +From ae744501fb1b0d5c74ae6050508ae29c1bcce004 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 12 Oct 2015 11:18:40 +0200 -Subject: [PATCH 341/413] arm64/xen: Make XEN depend on !RT +Subject: [PATCH 341/436] arm64/xen: Make XEN depend on !RT It's not ready and probably never will be, unless xen folks have a look at it. @@ -12,10 +12,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 1bbb89d37f57..4494eab8cc31 100644 +index c30cd78b6918..724afce517fd 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -791,7 +791,7 @@ config XEN_DOM0 +@@ -790,7 +790,7 @@ config XEN_DOM0 config XEN bool "Xen guest support on ARM64" diff --git a/kernel/patches-4.14.x-rt/0342-kgdb-serial-Short-term-workaround.patch b/kernel/patches-4.14.x-rt/0342-kgdb-serial-Short-term-workaround.patch index aedef3470..e77667f52 100644 --- a/kernel/patches-4.14.x-rt/0342-kgdb-serial-Short-term-workaround.patch +++ b/kernel/patches-4.14.x-rt/0342-kgdb-serial-Short-term-workaround.patch @@ -1,7 +1,7 @@ -From fbea92f249e1dd9a834cc09a21fe34adcdea4186 Mon Sep 17 00:00:00 2001 +From a3c07195887632b8d7e0507fb47d55f958d511e8 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Thu, 28 Jul 2011 12:42:23 -0500 -Subject: [PATCH 342/413] kgdb/serial: Short term workaround +Subject: [PATCH 342/436] 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 @@ -24,7 +24,7 @@ Jason. 3 files changed, 7 insertions(+) diff --git a/drivers/tty/serial/8250/8250_port.c b/drivers/tty/serial/8250/8250_port.c -index 832d0fd9d371..05d4a17236cb 100644 +index c331434ce443..6e029f34f37f 100644 --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c @@ -35,6 +35,7 @@ @@ -35,7 +35,7 @@ index 832d0fd9d371..05d4a17236cb 100644 #include #include #include -@@ -3227,6 +3228,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, +@@ -3226,6 +3227,8 @@ void serial8250_console_write(struct uart_8250_port *up, const char *s, if (port->sysrq || oops_in_progress) locked = 0; diff --git a/kernel/patches-4.14.x-rt/0343-sysfs-Add-sys-kernel-realtime-entry.patch b/kernel/patches-4.14.x-rt/0343-sysfs-Add-sys-kernel-realtime-entry.patch index 83c134bf7..d6bd281af 100644 --- a/kernel/patches-4.14.x-rt/0343-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/kernel/patches-4.14.x-rt/0343-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,7 +1,7 @@ -From 771729d3e9caa42a7067ad1faea971d343fbd183 Mon Sep 17 00:00:00 2001 +From 4cc4307d4c9fa713e22408c13e3844efd697282c Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 -Subject: [PATCH 343/413] sysfs: Add /sys/kernel/realtime entry +Subject: [PATCH 343/436] sysfs: Add /sys/kernel/realtime entry Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. diff --git a/kernel/patches-4.14.x-rt/0344-powerpc-Disable-highmem-on-RT.patch b/kernel/patches-4.14.x-rt/0344-powerpc-Disable-highmem-on-RT.patch index 859ee8535..5dc913121 100644 --- a/kernel/patches-4.14.x-rt/0344-powerpc-Disable-highmem-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0344-powerpc-Disable-highmem-on-RT.patch @@ -1,7 +1,7 @@ -From 7ff34f36011d8cd39af6fab6549a5276a04c656d Mon Sep 17 00:00:00 2001 +From abe0177eb3a728015a35f96779dd64f84e5c50ca Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:08:34 +0200 -Subject: [PATCH 344/413] powerpc: Disable highmem on RT +Subject: [PATCH 344/436] powerpc: Disable highmem on RT The current highmem handling on -RT is not compatible and needs fixups. diff --git a/kernel/patches-4.14.x-rt/0345-mips-Disable-highmem-on-RT.patch b/kernel/patches-4.14.x-rt/0345-mips-Disable-highmem-on-RT.patch index a65f592e9..614e769d4 100644 --- a/kernel/patches-4.14.x-rt/0345-mips-Disable-highmem-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0345-mips-Disable-highmem-on-RT.patch @@ -1,7 +1,7 @@ -From d2f35726ce3de6894bc0b4c079868e23aa6c9ec3 Mon Sep 17 00:00:00 2001 +From 9d2aa84d6e86b5eed5d1ca03bda2f354bb9830be Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:10:12 +0200 -Subject: [PATCH 345/413] mips: Disable highmem on RT +Subject: [PATCH 345/436] mips: Disable highmem on RT The current highmem handling on -RT is not compatible and needs fixups. diff --git a/kernel/patches-4.14.x-rt/0346-mm-rt-kmap_atomic-scheduling.patch b/kernel/patches-4.14.x-rt/0346-mm-rt-kmap_atomic-scheduling.patch index ba3169a8e..b631c999a 100644 --- a/kernel/patches-4.14.x-rt/0346-mm-rt-kmap_atomic-scheduling.patch +++ b/kernel/patches-4.14.x-rt/0346-mm-rt-kmap_atomic-scheduling.patch @@ -1,7 +1,7 @@ -From cee392e4ceb80d84d4f31c522ddc8b6c73492757 Mon Sep 17 00:00:00 2001 +From cfe3c872b42a68289773baff8e09f1d4ecd776de Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 28 Jul 2011 10:43:51 +0200 -Subject: [PATCH 346/413] mm, rt: kmap_atomic scheduling +Subject: [PATCH 346/436] 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/kernel/patches-4.14.x-rt/0347-mm-rt-Fix-generic-kmap_atomic-for-RT.patch b/kernel/patches-4.14.x-rt/0347-mm-rt-Fix-generic-kmap_atomic-for-RT.patch index b7c23a6d6..74eda09e2 100644 --- a/kernel/patches-4.14.x-rt/0347-mm-rt-Fix-generic-kmap_atomic-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0347-mm-rt-Fix-generic-kmap_atomic-for-RT.patch @@ -1,7 +1,7 @@ -From d80276945008c1deb6202ec937bfc8a24beb3794 Mon Sep 17 00:00:00 2001 +From 119e2498441312dcacf37d6c90a7ea91e57d32ba Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 19 Sep 2015 10:15:00 +0200 -Subject: [PATCH 347/413] mm: rt: Fix generic kmap_atomic for RT +Subject: [PATCH 347/436] mm: rt: Fix generic kmap_atomic for RT The update to 4.1 brought in the mainline variant of the pagefault disable distangling from preempt count. That introduced a diff --git a/kernel/patches-4.14.x-rt/0348-x86-highmem-Add-a-already-used-pte-check.patch b/kernel/patches-4.14.x-rt/0348-x86-highmem-Add-a-already-used-pte-check.patch index cf2b9491a..dee5bf9f0 100644 --- a/kernel/patches-4.14.x-rt/0348-x86-highmem-Add-a-already-used-pte-check.patch +++ b/kernel/patches-4.14.x-rt/0348-x86-highmem-Add-a-already-used-pte-check.patch @@ -1,7 +1,7 @@ -From d980a233b75ababca4537449ab99fe556291b2d2 Mon Sep 17 00:00:00 2001 +From a8fe60e5cb2f1dd2ae918622c1d6211d523dd9d7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Mar 2013 17:09:55 +0100 -Subject: [PATCH 348/413] x86/highmem: Add a "already used pte" check +Subject: [PATCH 348/436] x86/highmem: Add a "already used pte" check This is a copy from kmap_atomic_prot(). diff --git a/kernel/patches-4.14.x-rt/0349-arm-highmem-Flush-tlb-on-unmap.patch b/kernel/patches-4.14.x-rt/0349-arm-highmem-Flush-tlb-on-unmap.patch index 51499030f..c7a6c1f98 100644 --- a/kernel/patches-4.14.x-rt/0349-arm-highmem-Flush-tlb-on-unmap.patch +++ b/kernel/patches-4.14.x-rt/0349-arm-highmem-Flush-tlb-on-unmap.patch @@ -1,7 +1,7 @@ -From ae1d3c824ab74d6a6376a7d20f7c2fe35db14381 Mon Sep 17 00:00:00 2001 +From e69706fcb97f7634079636e68a0620a2772c3931 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Mar 2013 21:37:27 +0100 -Subject: [PATCH 349/413] arm/highmem: Flush tlb on unmap +Subject: [PATCH 349/436] arm/highmem: Flush tlb on unmap The tlb should be flushed on unmap and thus make the mapping entry invalid. This is only done in the non-debug case which does not look diff --git a/kernel/patches-4.14.x-rt/0350-arm-Enable-highmem-for-rt.patch b/kernel/patches-4.14.x-rt/0350-arm-Enable-highmem-for-rt.patch index 81f7ad1f9..0896696e4 100644 --- a/kernel/patches-4.14.x-rt/0350-arm-Enable-highmem-for-rt.patch +++ b/kernel/patches-4.14.x-rt/0350-arm-Enable-highmem-for-rt.patch @@ -1,7 +1,7 @@ -From 0619274e5207db111d9159bae6b9b440b8f3e079 Mon Sep 17 00:00:00 2001 +From 106c27835afe6360c635fc739d0ce5821430d5f6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 13 Feb 2013 11:03:11 +0100 -Subject: [PATCH 350/413] arm: Enable highmem for rt +Subject: [PATCH 350/436] arm: Enable highmem for rt fixup highmem for ARM. diff --git a/kernel/patches-4.14.x-rt/0351-scsi-fcoe-Make-RT-aware.patch b/kernel/patches-4.14.x-rt/0351-scsi-fcoe-Make-RT-aware.patch index bcd4c551f..39f3eac84 100644 --- a/kernel/patches-4.14.x-rt/0351-scsi-fcoe-Make-RT-aware.patch +++ b/kernel/patches-4.14.x-rt/0351-scsi-fcoe-Make-RT-aware.patch @@ -1,7 +1,7 @@ -From 9e3403cfcb1a4a7cc9e921b6d1995a4437144066 Mon Sep 17 00:00:00 2001 +From 3745d0dccefe63ac1a72ea964d170fc4a06b47df Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 12 Nov 2011 14:00:48 +0100 -Subject: [PATCH 351/413] scsi/fcoe: Make RT aware. +Subject: [PATCH 351/436] scsi/fcoe: Make RT aware. Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. @@ -72,7 +72,7 @@ index 85f9a3eba387..08ea05ddcd82 100644 } diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c -index fff6f1851dc1..0ac24fd699a1 100644 +index 03019e07abb9..9ec11316bfe6 100644 --- a/drivers/scsi/fcoe/fcoe_ctlr.c +++ b/drivers/scsi/fcoe/fcoe_ctlr.c @@ -835,7 +835,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) diff --git a/kernel/patches-4.14.x-rt/0352-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch b/kernel/patches-4.14.x-rt/0352-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch index 4b245ff71..b84fd73e9 100644 --- a/kernel/patches-4.14.x-rt/0352-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch +++ b/kernel/patches-4.14.x-rt/0352-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch @@ -1,7 +1,7 @@ -From 8cd450021f32f6b8de9c72cc1c923a7e5ac1ccd1 Mon Sep 17 00:00:00 2001 +From 23f0bf88567761401bd6f3c1c577639e3bca0def Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Sat, 14 Feb 2015 11:01:16 -0500 -Subject: [PATCH 352/413] sas-ata/isci: dont't disable interrupts in qc_issue +Subject: [PATCH 352/436] sas-ata/isci: dont't disable interrupts in qc_issue handler On 3.14-rt we see the following trace on Canoe Pass for diff --git a/kernel/patches-4.14.x-rt/0353-x86-crypto-Reduce-preempt-disabled-regions.patch b/kernel/patches-4.14.x-rt/0353-x86-crypto-Reduce-preempt-disabled-regions.patch index ba24c76e6..ccd2e5c59 100644 --- a/kernel/patches-4.14.x-rt/0353-x86-crypto-Reduce-preempt-disabled-regions.patch +++ b/kernel/patches-4.14.x-rt/0353-x86-crypto-Reduce-preempt-disabled-regions.patch @@ -1,7 +1,7 @@ -From 2d0c0b4502c41fd4aff606e42a874cdaee431310 Mon Sep 17 00:00:00 2001 +From 263b4a5ea055c68385d7e77e138e384c5999658b Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 14 Nov 2011 18:19:27 +0100 -Subject: [PATCH 353/413] x86: crypto: Reduce preempt disabled regions +Subject: [PATCH 353/436] 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/kernel/patches-4.14.x-rt/0354-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/kernel/patches-4.14.x-rt/0354-crypto-Reduce-preempt-disabled-regions-more-algos.patch index 89a1fb50f..3146d3ef1 100644 --- a/kernel/patches-4.14.x-rt/0354-crypto-Reduce-preempt-disabled-regions-more-algos.patch +++ b/kernel/patches-4.14.x-rt/0354-crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -1,7 +1,7 @@ -From d4d1c4e5c50608b33b48e96d403056f5f605d7d6 Mon Sep 17 00:00:00 2001 +From ef5e0d1205860bfba41f22c35c4eb209d8a06731 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Feb 2014 17:24:04 +0100 -Subject: [PATCH 354/413] crypto: Reduce preempt disabled regions, more algos +Subject: [PATCH 354/436] crypto: Reduce preempt disabled regions, more algos Don Estabrook reported | kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() diff --git a/kernel/patches-4.14.x-rt/0355-crypto-limit-more-FPU-enabled-sections.patch b/kernel/patches-4.14.x-rt/0355-crypto-limit-more-FPU-enabled-sections.patch index 858fdc1bd..96279baa2 100644 --- a/kernel/patches-4.14.x-rt/0355-crypto-limit-more-FPU-enabled-sections.patch +++ b/kernel/patches-4.14.x-rt/0355-crypto-limit-more-FPU-enabled-sections.patch @@ -1,7 +1,7 @@ -From 4b03cd4ff5ebbd754df42aa5a9123eff44885056 Mon Sep 17 00:00:00 2001 +From 731309b0278d3744b90458ed7e97fe9008d72065 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 30 Nov 2017 13:40:10 +0100 -Subject: [PATCH 355/413] crypto: limit more FPU-enabled sections +Subject: [PATCH 355/436] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0356-arm-disable-NEON-in-kernel-mode.patch b/kernel/patches-4.14.x-rt/0356-arm-disable-NEON-in-kernel-mode.patch index d2aa14f37..96678f59c 100644 --- a/kernel/patches-4.14.x-rt/0356-arm-disable-NEON-in-kernel-mode.patch +++ b/kernel/patches-4.14.x-rt/0356-arm-disable-NEON-in-kernel-mode.patch @@ -1,7 +1,7 @@ -From 49e4a47159d65bdd9338a77cb4da5051284a2226 Mon Sep 17 00:00:00 2001 +From 9c13bb88b9ad90d129054dfd429a01240434378b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 1 Dec 2017 10:42:03 +0100 -Subject: [PATCH 356/413] arm*: disable NEON in kernel mode +Subject: [PATCH 356/436] arm*: disable NEON in kernel mode NEON in kernel mode is used by the crypto algorithms and raid6 code. While the raid6 code looks okay, the crypto algorithms do not: NEON diff --git a/kernel/patches-4.14.x-rt/0357-dm-Make-rt-aware.patch b/kernel/patches-4.14.x-rt/0357-dm-Make-rt-aware.patch index a19c7bb88..0dd311ced 100644 --- a/kernel/patches-4.14.x-rt/0357-dm-Make-rt-aware.patch +++ b/kernel/patches-4.14.x-rt/0357-dm-Make-rt-aware.patch @@ -1,7 +1,7 @@ -From e99ee9ce529f69002cfe683a250e785612d503de Mon Sep 17 00:00:00 2001 +From bf6114af92ae024c4745343b7e2321d28852b8fd Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 14 Nov 2011 23:06:09 +0100 -Subject: [PATCH 357/413] dm: Make rt aware +Subject: [PATCH 357/436] 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/kernel/patches-4.14.x-rt/0358-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch b/kernel/patches-4.14.x-rt/0358-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch index ff0fccac0..392ae0b7c 100644 --- a/kernel/patches-4.14.x-rt/0358-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch +++ b/kernel/patches-4.14.x-rt/0358-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch @@ -1,7 +1,7 @@ -From 4985eb61d8cca6b14a947df18ab4b7d5c769a340 Mon Sep 17 00:00:00 2001 +From 15d8f941f626aadae7298776dcc43d764888024f Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 13 Feb 2013 09:26:05 -0500 -Subject: [PATCH 358/413] acpi/rt: Convert acpi_gbl_hardware lock back to a +Subject: [PATCH 358/436] acpi/rt: Convert acpi_gbl_hardware lock back to a raw_spinlock_t We hit the following bug with 3.6-rt: diff --git a/kernel/patches-4.14.x-rt/0359-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/kernel/patches-4.14.x-rt/0359-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch index ac7c6470c..409140d12 100644 --- a/kernel/patches-4.14.x-rt/0359-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0359-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch @@ -1,7 +1,7 @@ -From 6ceae2c8cc97567f3442684b3201a90743e40672 Mon Sep 17 00:00:00 2001 +From 94547e249ed17ae2e2531ab185d3172d94bf4ab1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 14 Dec 2011 01:03:49 +0100 -Subject: [PATCH 359/413] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT +Subject: [PATCH 359/436] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT There are "valid" GFP_ATOMIC allocations such as @@ -46,10 +46,10 @@ Signed-off-by: Thomas Gleixner 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 35c46e06955e..3da3782e605c 100644 +index 5c7203cc0e6f..3351fe1af2a8 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig -@@ -935,7 +935,7 @@ config IOMMU_HELPER +@@ -936,7 +936,7 @@ config IOMMU_HELPER config MAXSMP bool "Enable Maximum number of SMP Processors and NUMA Nodes" depends on X86_64 && SMP && DEBUG_KERNEL diff --git a/kernel/patches-4.14.x-rt/0360-random-Make-it-work-on-rt.patch b/kernel/patches-4.14.x-rt/0360-random-Make-it-work-on-rt.patch index 03cd181fa..dbe44f325 100644 --- a/kernel/patches-4.14.x-rt/0360-random-Make-it-work-on-rt.patch +++ b/kernel/patches-4.14.x-rt/0360-random-Make-it-work-on-rt.patch @@ -1,7 +1,7 @@ -From 14fee00503758afa0d09091c2df8d854df9bf0bf Mon Sep 17 00:00:00 2001 +From 6ee12fb60ffadfae81d281f211f51b3c29fba4e2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Aug 2012 20:38:50 +0200 -Subject: [PATCH 360/413] random: Make it work on rt +Subject: [PATCH 360/436] random: Make it work on rt Delegate the random insertion to the forced threaded interrupt handler. Store the return IP of the hard interrupt handler in the irq diff --git a/kernel/patches-4.14.x-rt/0361-random-avoid-preempt_disable-ed-section.patch b/kernel/patches-4.14.x-rt/0361-random-avoid-preempt_disable-ed-section.patch index ccd489cc2..03336f574 100644 --- a/kernel/patches-4.14.x-rt/0361-random-avoid-preempt_disable-ed-section.patch +++ b/kernel/patches-4.14.x-rt/0361-random-avoid-preempt_disable-ed-section.patch @@ -1,7 +1,7 @@ -From e42f3d4e18a1d96530588d5210e579eab1182515 Mon Sep 17 00:00:00 2001 +From edc7cac4606bf9cc94a015696e1012368995434e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 12 May 2017 15:46:17 +0200 -Subject: [PATCH 361/413] random: avoid preempt_disable()ed section +Subject: [PATCH 361/436] random: avoid preempt_disable()ed section extract_crng() will use sleeping locks while in a preempt_disable() section due to get_cpu_var(). diff --git a/kernel/patches-4.14.x-rt/0362-char-random-don-t-print-that-the-init-is-done.patch b/kernel/patches-4.14.x-rt/0362-char-random-don-t-print-that-the-init-is-done.patch index 61c167d40..802dae2f7 100644 --- a/kernel/patches-4.14.x-rt/0362-char-random-don-t-print-that-the-init-is-done.patch +++ b/kernel/patches-4.14.x-rt/0362-char-random-don-t-print-that-the-init-is-done.patch @@ -1,7 +1,7 @@ -From 9fa74a48b510ef7097a564b460d87c440e2d8016 Mon Sep 17 00:00:00 2001 +From 14b16fdfdab97a7a2dea23f77b9fc76e3f503e3a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 30 May 2017 16:39:01 +0200 -Subject: [PATCH 362/413] char/random: don't print that the init is done +Subject: [PATCH 362/436] char/random: don't print that the init is done On RT we run into circular locking with pendingb_lock (workqueue), port_lock_key (uart) and the primary_crng (random): diff --git a/kernel/patches-4.14.x-rt/0363-cpu-hotplug-Implement-CPU-pinning.patch b/kernel/patches-4.14.x-rt/0363-cpu-hotplug-Implement-CPU-pinning.patch index f678d4fe6..947b004f3 100644 --- a/kernel/patches-4.14.x-rt/0363-cpu-hotplug-Implement-CPU-pinning.patch +++ b/kernel/patches-4.14.x-rt/0363-cpu-hotplug-Implement-CPU-pinning.patch @@ -1,7 +1,7 @@ -From cebd24029a31d33da71afdb284e600527408ddc4 Mon Sep 17 00:00:00 2001 +From 6ab085ec41287142cea3d261b7fc3fe1c51e3df5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Jul 2017 17:31:20 +0200 -Subject: [PATCH 363/413] cpu/hotplug: Implement CPU pinning +Subject: [PATCH 363/436] cpu/hotplug: Implement CPU pinning Signed-off-by: Thomas Gleixner --- @@ -22,7 +22,7 @@ index cb26ba8286fb..4e48d5fe8bd6 100644 int migrate_disable_atomic; # endif diff --git a/kernel/cpu.c b/kernel/cpu.c -index 083ff510b038..6d4fda219fd8 100644 +index c4e00efd6a2b..e337c60f2d00 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -74,6 +74,11 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = { diff --git a/kernel/patches-4.14.x-rt/0364-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/kernel/patches-4.14.x-rt/0364-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch index 967b79edd..fd705567c 100644 --- a/kernel/patches-4.14.x-rt/0364-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch +++ b/kernel/patches-4.14.x-rt/0364-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch @@ -1,7 +1,7 @@ -From 84bb66ff842d27d0c61225aadb1b94935fea992b Mon Sep 17 00:00:00 2001 +From 87b20e5af2ac16bc8f681c8aa5e9d75a8d1092c3 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 18:31:00 +0200 -Subject: [PATCH 364/413] hotplug: duct-tape RT-rwlock usage for non-RT +Subject: [PATCH 364/436] hotplug: duct-tape RT-rwlock usage for non-RT This type is only available on -RT. We need to craft something for non-RT. Since the only migrate_disable() user is -RT only, there is no @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/kernel/cpu.c b/kernel/cpu.c -index 6d4fda219fd8..7278b33a503d 100644 +index e337c60f2d00..7d777b62e4eb 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -74,7 +74,7 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = { diff --git a/kernel/patches-4.14.x-rt/0365-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch b/kernel/patches-4.14.x-rt/0365-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch index b18802763..a971ff67d 100644 --- a/kernel/patches-4.14.x-rt/0365-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch +++ b/kernel/patches-4.14.x-rt/0365-scsi-qla2xxx-Use-local_irq_save_nort-in-qla2x00_poll.patch @@ -1,7 +1,7 @@ -From bc584883220a2f9a78fd7f2fced73aecff8e3cc8 Mon Sep 17 00:00:00 2001 +From 55d7dbf6e4c76145dbb74ded1f6d043be0a10447 Mon Sep 17 00:00:00 2001 From: John Kacur Date: Fri, 27 Apr 2012 12:48:46 +0200 -Subject: [PATCH 365/413] scsi: qla2xxx: Use local_irq_save_nort() in +Subject: [PATCH 365/436] scsi: qla2xxx: Use local_irq_save_nort() in qla2x00_poll RT triggers the following: diff --git a/kernel/patches-4.14.x-rt/0366-net-Remove-preemption-disabling-in-netif_rx.patch b/kernel/patches-4.14.x-rt/0366-net-Remove-preemption-disabling-in-netif_rx.patch index c386690d1..c514cbd74 100644 --- a/kernel/patches-4.14.x-rt/0366-net-Remove-preemption-disabling-in-netif_rx.patch +++ b/kernel/patches-4.14.x-rt/0366-net-Remove-preemption-disabling-in-netif_rx.patch @@ -1,7 +1,7 @@ -From aa9ddce331cd39f0448c7c3c60ae8fb3008889f7 Mon Sep 17 00:00:00 2001 +From 96d7fd96fe4c6b7055690e9b2478c5b7215bc0cd Mon Sep 17 00:00:00 2001 From: Priyanka Jain Date: Thu, 17 May 2012 09:35:11 +0530 -Subject: [PATCH 366/413] net: Remove preemption disabling in netif_rx() +Subject: [PATCH 366/436] net: 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 @@ -35,7 +35,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 9c936553c46e..11bb8981602d 100644 +index 556edade3628..8e0a6e28eac0 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -4046,7 +4046,7 @@ static int netif_rx_internal(struct sk_buff *skb) diff --git a/kernel/patches-4.14.x-rt/0367-net-Another-local_irq_disable-kmalloc-headache.patch b/kernel/patches-4.14.x-rt/0367-net-Another-local_irq_disable-kmalloc-headache.patch index a60db930f..a7ab2ea9b 100644 --- a/kernel/patches-4.14.x-rt/0367-net-Another-local_irq_disable-kmalloc-headache.patch +++ b/kernel/patches-4.14.x-rt/0367-net-Another-local_irq_disable-kmalloc-headache.patch @@ -1,7 +1,7 @@ -From e48fb541db0551ed254c49881ea2d720946c561c Mon Sep 17 00:00:00 2001 +From d0b32e0c3d37578ba8efc9e68ee55709acf389cb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 26 Sep 2012 16:21:08 +0200 -Subject: [PATCH 367/413] net: Another local_irq_disable/kmalloc headache +Subject: [PATCH 367/436] net: Another local_irq_disable/kmalloc headache Replace it by a local lock. Though that's pretty inefficient :( @@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c -index 2e5eeba97de9..bdaf2650b8af 100644 +index 168a3e8883d4..0eb74317620f 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -63,6 +63,7 @@ diff --git a/kernel/patches-4.14.x-rt/0368-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/kernel/patches-4.14.x-rt/0368-net-core-protect-users-of-napi_alloc_cache-against-r.patch index ec57a7138..4f1f9fdb7 100644 --- a/kernel/patches-4.14.x-rt/0368-net-core-protect-users-of-napi_alloc_cache-against-r.patch +++ b/kernel/patches-4.14.x-rt/0368-net-core-protect-users-of-napi_alloc_cache-against-r.patch @@ -1,7 +1,7 @@ -From 9bde25a549be060f3145430b2373a8b5c6324e62 Mon Sep 17 00:00:00 2001 +From d087df0f7130534156f1a07c355a06ea6d4469c8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 15 Jan 2016 16:33:34 +0100 -Subject: [PATCH 368/413] net/core: protect users of napi_alloc_cache against +Subject: [PATCH 368/436] net/core: protect users of napi_alloc_cache against reentrance On -RT the code running in BH can not be moved to another CPU so CPU @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/net/core/skbuff.c b/net/core/skbuff.c -index bdaf2650b8af..73ba966326b0 100644 +index 0eb74317620f..0f512abfe4f2 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -332,6 +332,7 @@ struct napi_alloc_cache { diff --git a/kernel/patches-4.14.x-rt/0369-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/kernel/patches-4.14.x-rt/0369-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch index a6a61aac0..dd09999b1 100644 --- a/kernel/patches-4.14.x-rt/0369-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch +++ b/kernel/patches-4.14.x-rt/0369-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch @@ -1,7 +1,7 @@ -From b4fab41fda01fef46ef40a5e13769901c33bdabc Mon Sep 17 00:00:00 2001 +From 63fcd501e945c0e7290399769b114b594fb6d807 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 28 Oct 2012 11:18:08 +0100 -Subject: [PATCH 369/413] net: netfilter: Serialize xt_write_recseq sections on +Subject: [PATCH 369/436] net: netfilter: Serialize xt_write_recseq sections on RT The netfilter code relies only on the implicit semantics of diff --git a/kernel/patches-4.14.x-rt/0370-net-Add-a-mutex-around-devnet_rename_seq.patch b/kernel/patches-4.14.x-rt/0370-net-Add-a-mutex-around-devnet_rename_seq.patch index 6c5e483f2..319ccd3ee 100644 --- a/kernel/patches-4.14.x-rt/0370-net-Add-a-mutex-around-devnet_rename_seq.patch +++ b/kernel/patches-4.14.x-rt/0370-net-Add-a-mutex-around-devnet_rename_seq.patch @@ -1,7 +1,7 @@ -From db96d86c845484ff74d2f751dc786d6549e250e4 Mon Sep 17 00:00:00 2001 +From 3bda32063dc46371a0ce28835bbeedb6a7f81348 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Mar 2013 18:06:20 +0100 -Subject: [PATCH 370/413] net: Add a mutex around devnet_rename_seq +Subject: [PATCH 370/436] net: Add a mutex around devnet_rename_seq On RT write_seqcount_begin() disables preemption and device_rename() allocates memory with GFP_KERNEL and grabs later the sysfs_mutex @@ -21,7 +21,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 11bb8981602d..e0e8738abac9 100644 +index 8e0a6e28eac0..a8ab119258a9 100644 --- a/net/core/dev.c +++ b/net/core/dev.c @@ -195,6 +195,7 @@ static unsigned int napi_gen_id = NR_CPUS; diff --git a/kernel/patches-4.14.x-rt/0371-crypto-Convert-crypto-notifier-chain-to-SRCU.patch b/kernel/patches-4.14.x-rt/0371-crypto-Convert-crypto-notifier-chain-to-SRCU.patch index f7fc27362..96e47f86c 100644 --- a/kernel/patches-4.14.x-rt/0371-crypto-Convert-crypto-notifier-chain-to-SRCU.patch +++ b/kernel/patches-4.14.x-rt/0371-crypto-Convert-crypto-notifier-chain-to-SRCU.patch @@ -1,7 +1,7 @@ -From 217d99d95ce9e110892ffc48aeb94c3063f7933f Mon Sep 17 00:00:00 2001 +From fd15a6681264d899023ccc41330ca1d24d75f184 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 5 Oct 2012 09:03:24 +0100 -Subject: [PATCH 371/413] crypto: Convert crypto notifier chain to SRCU +Subject: [PATCH 371/436] crypto: Convert crypto notifier chain to SRCU The crypto notifier deadlocks on RT. Though this can be a real deadlock on mainline as well due to fifo fair rwsems. diff --git a/kernel/patches-4.14.x-rt/0372-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/kernel/patches-4.14.x-rt/0372-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch index f70b28314..16024bf7c 100644 --- a/kernel/patches-4.14.x-rt/0372-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +++ b/kernel/patches-4.14.x-rt/0372-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch @@ -1,7 +1,7 @@ -From 8f4a29f10c1516467006e359fce7b601846e915a Mon Sep 17 00:00:00 2001 +From b28e37052c101f11cbb5baa9034674b5cc3b5594 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Mon, 16 Apr 2012 15:01:56 +0800 -Subject: [PATCH 372/413] lockdep: selftest: Only do hardirq context test for +Subject: [PATCH 372/436] 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/kernel/patches-4.14.x-rt/0373-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/kernel/patches-4.14.x-rt/0373-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch index 67eaf7b56..3f468edcc 100644 --- a/kernel/patches-4.14.x-rt/0373-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +++ b/kernel/patches-4.14.x-rt/0373-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -1,7 +1,7 @@ -From b51c5c92c79a1ee52ca3d6b861a91574006fa4ee Mon Sep 17 00:00:00 2001 +From 2c50a7289857b43d72a507c46c17d5f6ed6fc59d Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Wed, 28 Jan 2015 13:08:45 -0600 -Subject: [PATCH 373/413] lockdep: selftest: fix warnings due to missing +Subject: [PATCH 373/436] lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals "lockdep: Selftest: Only do hardirq context test for raw spinlock" diff --git a/kernel/patches-4.14.x-rt/0374-srcu-use-cpu_online-instead-custom-check.patch b/kernel/patches-4.14.x-rt/0374-srcu-use-cpu_online-instead-custom-check.patch index f07617921..fcb0af979 100644 --- a/kernel/patches-4.14.x-rt/0374-srcu-use-cpu_online-instead-custom-check.patch +++ b/kernel/patches-4.14.x-rt/0374-srcu-use-cpu_online-instead-custom-check.patch @@ -1,7 +1,7 @@ -From 41ec34e1c4a173229b2436aac9152be5cd5b09c7 Mon Sep 17 00:00:00 2001 +From 5031af0b1e3acdbd5664f0b84bdea052b38f8036 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Sep 2017 14:43:41 +0200 -Subject: [PATCH 374/413] srcu: use cpu_online() instead custom check +Subject: [PATCH 374/436] srcu: use cpu_online() instead custom check The current check via srcu_online is slightly racy because after looking at srcu_online there could be an interrupt that interrupted us long diff --git a/kernel/patches-4.14.x-rt/0375-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch b/kernel/patches-4.14.x-rt/0375-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch index 3508d1ba2..1364dba4b 100644 --- a/kernel/patches-4.14.x-rt/0375-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch +++ b/kernel/patches-4.14.x-rt/0375-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch @@ -1,7 +1,7 @@ -From 829a48553c17eb9ef3ba0d24695e40b756757641 Mon Sep 17 00:00:00 2001 +From 4b701133fcb4eb8833a14793fc54661ef065441b Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Tue, 10 Oct 2017 13:52:30 -0700 -Subject: [PATCH 375/413] srcu: Prohibit call_srcu() use under raw spinlocks +Subject: [PATCH 375/436] srcu: Prohibit call_srcu() use under raw spinlocks Upstream commit 08265b8f1a139c1cff052b35ab7cf929528f88bb diff --git a/kernel/patches-4.14.x-rt/0376-srcu-replace-local_irqsave-with-a-locallock.patch b/kernel/patches-4.14.x-rt/0376-srcu-replace-local_irqsave-with-a-locallock.patch index 45785f23b..a795907dc 100644 --- a/kernel/patches-4.14.x-rt/0376-srcu-replace-local_irqsave-with-a-locallock.patch +++ b/kernel/patches-4.14.x-rt/0376-srcu-replace-local_irqsave-with-a-locallock.patch @@ -1,7 +1,7 @@ -From 581bdb216b904018f1e961051d93a846734715ed Mon Sep 17 00:00:00 2001 +From 71544f2ecf6eddfa6565bc03995c87eea76227c1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 18:37:12 +0200 -Subject: [PATCH 376/413] srcu: replace local_irqsave() with a locallock +Subject: [PATCH 376/436] srcu: replace local_irqsave() with a locallock There are two instances which disable interrupts in order to become a stable this_cpu_ptr() pointer. The restore part is coupled with diff --git a/kernel/patches-4.14.x-rt/0377-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch b/kernel/patches-4.14.x-rt/0377-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch index 6315b83d1..5b13f5158 100644 --- a/kernel/patches-4.14.x-rt/0377-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0377-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch @@ -1,7 +1,7 @@ -From 430d1e82c2c88a95d947669f9398c05e0af6b77e Mon Sep 17 00:00:00 2001 +From f1a644a6ca074dae531de4a63457c6ea550c88d6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 28 Oct 2012 13:26:09 +0000 -Subject: [PATCH 377/413] rcu: Disable RCU_FAST_NO_HZ on RT +Subject: [PATCH 377/436] rcu: Disable RCU_FAST_NO_HZ on RT This uses a timer_list timer from the irq disabled guts of the idle code. Disable it for now to prevent wreckage. diff --git a/kernel/patches-4.14.x-rt/0378-rcu-Eliminate-softirq-processing-from-rcutree.patch b/kernel/patches-4.14.x-rt/0378-rcu-Eliminate-softirq-processing-from-rcutree.patch index 297f888ca..3105583a4 100644 --- a/kernel/patches-4.14.x-rt/0378-rcu-Eliminate-softirq-processing-from-rcutree.patch +++ b/kernel/patches-4.14.x-rt/0378-rcu-Eliminate-softirq-processing-from-rcutree.patch @@ -1,7 +1,7 @@ -From 928b4182d8c5dba712a26f911cae7244d3dd3744 Mon Sep 17 00:00:00 2001 +From 6c49c7932372ba95fdb156cae10a3d759765bb45 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Mon, 4 Nov 2013 13:21:10 -0800 -Subject: [PATCH 378/413] rcu: Eliminate softirq processing from rcutree +Subject: [PATCH 378/436] rcu: Eliminate softirq processing from rcutree Running RCU out of softirq is a problem for some workloads that would like to manage RCU core processing independently of other softirq work, diff --git a/kernel/patches-4.14.x-rt/0379-rcu-make-RCU_BOOST-default-on-RT.patch b/kernel/patches-4.14.x-rt/0379-rcu-make-RCU_BOOST-default-on-RT.patch index f4acb6350..64c5a1c95 100644 --- a/kernel/patches-4.14.x-rt/0379-rcu-make-RCU_BOOST-default-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0379-rcu-make-RCU_BOOST-default-on-RT.patch @@ -1,7 +1,7 @@ -From e0284e4b634a87842025b5250f32ca52508cfa92 Mon Sep 17 00:00:00 2001 +From e25ebfdba7f69d1753ea5052d0dbdaaa68b7fc2a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Mar 2014 20:19:05 +0100 -Subject: [PATCH 379/413] rcu: make RCU_BOOST default on RT +Subject: [PATCH 379/436] rcu: make RCU_BOOST default on RT Since it is no longer invoked from the softirq people run into OOM more often if the priority of the RCU thread is too low. Making boosting diff --git a/kernel/patches-4.14.x-rt/0380-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/kernel/patches-4.14.x-rt/0380-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch index 7c0a7044b..d0b214983 100644 --- a/kernel/patches-4.14.x-rt/0380-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch +++ b/kernel/patches-4.14.x-rt/0380-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch @@ -1,7 +1,7 @@ -From c46341d01e53bbb6957837bcb63ed1eacefa0897 Mon Sep 17 00:00:00 2001 +From dfec3dd8fd0d7a8fe415d6548c13a8efc47a7d7a Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Wed, 12 Oct 2016 11:21:14 -0500 -Subject: [PATCH 380/413] rcu: enable rcu_normal_after_boot by default for RT +Subject: [PATCH 380/436] rcu: enable rcu_normal_after_boot by default for RT The forcing of an expedited grace period is an expensive and very RT-application unfriendly operation, as it forcibly preempts all running diff --git a/kernel/patches-4.14.x-rt/0381-sched-Add-support-for-lazy-preemption.patch b/kernel/patches-4.14.x-rt/0381-sched-Add-support-for-lazy-preemption.patch index dfd1b1be0..2798ba734 100644 --- a/kernel/patches-4.14.x-rt/0381-sched-Add-support-for-lazy-preemption.patch +++ b/kernel/patches-4.14.x-rt/0381-sched-Add-support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ -From ed645cbce83e8173b8e86a2460155d8ea74df3ae Mon Sep 17 00:00:00 2001 +From e046c1bbfa59dda624291a952688b2a6e85fd52d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 26 Oct 2012 18:50:54 +0100 -Subject: [PATCH 381/413] sched: Add support for lazy preemption +Subject: [PATCH 381/436] sched: Add support for lazy preemption It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -510,7 +510,7 @@ index ace39806bff8..96481980c8c7 100644 extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 03688e4efd82..cc85fd567e33 100644 +index e6c7395840b4..18c88eb19b5e 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2135,6 +2135,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, @@ -531,7 +531,7 @@ index 03688e4efd82..cc85fd567e33 100644 (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0); entry->migrate_disable = (tsk) ? __migrate_disabled(tsk) & 0xFF : 0; -@@ -3347,15 +3349,17 @@ get_total_entries(struct trace_buffer *buf, +@@ -3352,15 +3354,17 @@ get_total_entries(struct trace_buffer *buf, static void print_lat_help_header(struct seq_file *m) { @@ -558,7 +558,7 @@ index 03688e4efd82..cc85fd567e33 100644 } static void print_event_info(struct trace_buffer *buf, struct seq_file *m) -@@ -3391,15 +3395,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file +@@ -3396,15 +3400,17 @@ static void print_func_help_header_irq(struct trace_buffer *buf, struct seq_file tgid ? tgid_space : space); seq_printf(m, "# %s / _----=> need-resched\n", tgid ? tgid_space : space); diff --git a/kernel/patches-4.14.x-rt/0382-ftrace-Fix-trace-header-alignment.patch b/kernel/patches-4.14.x-rt/0382-ftrace-Fix-trace-header-alignment.patch index a5d68f190..15b118a53 100644 --- a/kernel/patches-4.14.x-rt/0382-ftrace-Fix-trace-header-alignment.patch +++ b/kernel/patches-4.14.x-rt/0382-ftrace-Fix-trace-header-alignment.patch @@ -1,7 +1,7 @@ -From f7d96b2dac0d0ab1f9aa7af475788be4dadd77c0 Mon Sep 17 00:00:00 2001 +From 2aae217dbd09d7e578d45226ce03e781130b0dad Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 16 Oct 2016 05:08:30 +0200 -Subject: [PATCH 382/413] ftrace: Fix trace header alignment +Subject: [PATCH 382/436] ftrace: Fix trace header alignment Line up helper arrows to the right column. @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index cc85fd567e33..21c3b8170343 100644 +index 18c88eb19b5e..4fc60e5ec4b9 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -3349,17 +3349,17 @@ get_total_entries(struct trace_buffer *buf, +@@ -3354,17 +3354,17 @@ get_total_entries(struct trace_buffer *buf, static void print_lat_help_header(struct seq_file *m) { diff --git a/kernel/patches-4.14.x-rt/0383-x86-Support-for-lazy-preemption.patch b/kernel/patches-4.14.x-rt/0383-x86-Support-for-lazy-preemption.patch index 4a8db1b90..3710909c9 100644 --- a/kernel/patches-4.14.x-rt/0383-x86-Support-for-lazy-preemption.patch +++ b/kernel/patches-4.14.x-rt/0383-x86-Support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ -From b332b251bdc53562b0784ebcd32b5cf96c18b841 Mon Sep 17 00:00:00 2001 +From 5b361c02fec862b6eaa19d01e2b13f19299b5f9c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 11:03:47 +0100 -Subject: [PATCH 383/413] x86: Support for lazy preemption +Subject: [PATCH 383/436] x86: Support for lazy preemption Implement the x86 pieces for lazy preempt. @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner 7 files changed, 79 insertions(+), 3 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 3da3782e605c..74ed661c73df 100644 +index 3351fe1af2a8..7764f936d6ab 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -169,6 +169,7 @@ config X86 @@ -26,8 +26,8 @@ index 3da3782e605c..74ed661c73df 100644 select HAVE_PERF_USER_STACK_DUMP + select HAVE_PREEMPT_LAZY select HAVE_RCU_TABLE_FREE + select HAVE_RCU_TABLE_INVALIDATE if HAVE_RCU_TABLE_FREE select HAVE_REGS_AND_STACK_ACCESS_API - select HAVE_RELIABLE_STACKTRACE if X86_64 && UNWINDER_FRAME_POINTER && STACK_VALIDATION diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c index 121f804a9dcb..0e27f35febe7 100644 --- a/arch/x86/entry/common.c diff --git a/kernel/patches-4.14.x-rt/0384-arm-Add-support-for-lazy-preemption.patch b/kernel/patches-4.14.x-rt/0384-arm-Add-support-for-lazy-preemption.patch index 6e06d9765..16e87173e 100644 --- a/kernel/patches-4.14.x-rt/0384-arm-Add-support-for-lazy-preemption.patch +++ b/kernel/patches-4.14.x-rt/0384-arm-Add-support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ -From 5ac41b269954b67319b8fae415490b9bc7306d0c Mon Sep 17 00:00:00 2001 +From ebb30b35c4e3bbbde4b3a238d46ca16ca37e9c4c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 31 Oct 2012 12:04:11 +0100 -Subject: [PATCH 384/413] arm: Add support for lazy preemption +Subject: [PATCH 384/436] arm: Add support for lazy preemption Implement the arm pieces for lazy preempt. diff --git a/kernel/patches-4.14.x-rt/0385-powerpc-Add-support-for-lazy-preemption.patch b/kernel/patches-4.14.x-rt/0385-powerpc-Add-support-for-lazy-preemption.patch index 5e6e3d077..724119273 100644 --- a/kernel/patches-4.14.x-rt/0385-powerpc-Add-support-for-lazy-preemption.patch +++ b/kernel/patches-4.14.x-rt/0385-powerpc-Add-support-for-lazy-preemption.patch @@ -1,7 +1,7 @@ -From 50978dbc514394a0ff20b0c10dbc2c293cef382a Mon Sep 17 00:00:00 2001 +From 52607f530f602499db34cbef36fbbd95067f0b5d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 10:14:11 +0100 -Subject: [PATCH 385/413] powerpc: Add support for lazy preemption +Subject: [PATCH 385/436] powerpc: Add support for lazy preemption Implement the powerpc pieces for lazy preempt. diff --git a/kernel/patches-4.14.x-rt/0386-arch-arm64-Add-lazy-preempt-support.patch b/kernel/patches-4.14.x-rt/0386-arch-arm64-Add-lazy-preempt-support.patch index ff5a4047a..bd1e8a17e 100644 --- a/kernel/patches-4.14.x-rt/0386-arch-arm64-Add-lazy-preempt-support.patch +++ b/kernel/patches-4.14.x-rt/0386-arch-arm64-Add-lazy-preempt-support.patch @@ -1,7 +1,7 @@ -From 444b31d7ee93baaa9c0d29f0fe58629c60830f06 Mon Sep 17 00:00:00 2001 +From adda96f50746328e259033573b8efc0240754afd Mon Sep 17 00:00:00 2001 From: Anders Roxell Date: Thu, 14 May 2015 17:52:17 +0200 -Subject: [PATCH 386/413] arch/arm64: Add lazy preempt support +Subject: [PATCH 386/436] arch/arm64: Add lazy preempt support arm64 is missing support for PREEMPT_RT. The main feature which is lacking is support for lazy preemption. The arch-specific entry code, @@ -20,7 +20,7 @@ Signed-off-by: Anders Roxell 5 files changed, 17 insertions(+), 5 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 4494eab8cc31..6ccd878c32c2 100644 +index 724afce517fd..f3c5213ea0ec 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -103,6 +103,7 @@ config ARM64 diff --git a/kernel/patches-4.14.x-rt/0387-leds-trigger-disable-CPU-trigger-on-RT.patch b/kernel/patches-4.14.x-rt/0387-leds-trigger-disable-CPU-trigger-on-RT.patch index 8bcbab37b..d425f4f98 100644 --- a/kernel/patches-4.14.x-rt/0387-leds-trigger-disable-CPU-trigger-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0387-leds-trigger-disable-CPU-trigger-on-RT.patch @@ -1,7 +1,7 @@ -From 558eda5ce45d20f5ac8f7d76cb80c3bc91fd55ca Mon Sep 17 00:00:00 2001 +From fbaa65a633c8d18211a65994c6c8eb2ab26c68cb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 23 Jan 2014 14:45:59 +0100 -Subject: [PATCH 387/413] leds: trigger: disable CPU trigger on -RT +Subject: [PATCH 387/436] leds: trigger: disable CPU trigger on -RT as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 diff --git a/kernel/patches-4.14.x-rt/0388-mmci-Remove-bogus-local_irq_save.patch b/kernel/patches-4.14.x-rt/0388-mmci-Remove-bogus-local_irq_save.patch index ca749a8e9..0615e23ca 100644 --- a/kernel/patches-4.14.x-rt/0388-mmci-Remove-bogus-local_irq_save.patch +++ b/kernel/patches-4.14.x-rt/0388-mmci-Remove-bogus-local_irq_save.patch @@ -1,7 +1,7 @@ -From 445f060e4f890e7328721390f6dcc82c2dec6bc7 Mon Sep 17 00:00:00 2001 +From e8ef9df2c3e75972761d39c04287908aa28a315b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 9 Jan 2013 12:11:12 +0100 -Subject: [PATCH 388/413] mmci: Remove bogus local_irq_save() +Subject: [PATCH 388/436] mmci: Remove bogus local_irq_save() On !RT interrupt runs with interrupts disabled. On RT it's in a thread, so no need to disable interrupts at all. diff --git a/kernel/patches-4.14.x-rt/0389-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/kernel/patches-4.14.x-rt/0389-cpufreq-drop-K8-s-driver-from-beeing-selected.patch index 47cff4c7a..785af3a8c 100644 --- a/kernel/patches-4.14.x-rt/0389-cpufreq-drop-K8-s-driver-from-beeing-selected.patch +++ b/kernel/patches-4.14.x-rt/0389-cpufreq-drop-K8-s-driver-from-beeing-selected.patch @@ -1,7 +1,7 @@ -From 81a553e0ee5b1e7dde8fac0e4510ae3efe70d8f0 Mon Sep 17 00:00:00 2001 +From 066874e0036b43c025556ee280ab190134559f0c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 9 Apr 2015 15:23:01 +0200 -Subject: [PATCH 389/413] cpufreq: drop K8's driver from beeing selected +Subject: [PATCH 389/436] cpufreq: drop K8's driver from beeing selected Ralf posted a picture of a backtrace from diff --git a/kernel/patches-4.14.x-rt/0390-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/kernel/patches-4.14.x-rt/0390-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch index 3a33726e9..fb8f99ad9 100644 --- a/kernel/patches-4.14.x-rt/0390-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +++ b/kernel/patches-4.14.x-rt/0390-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch @@ -1,7 +1,7 @@ -From 6a1f3d13a012dd7c7ae8cc2d8b727f15ff7f2696 Mon Sep 17 00:00:00 2001 +From f43bb26244af8081029ce02fa10f8710d3c46b26 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 16 Oct 2016 05:11:54 +0200 -Subject: [PATCH 390/413] connector/cn_proc: Protect send_msg() with a local +Subject: [PATCH 390/436] connector/cn_proc: Protect send_msg() with a local lock on RT |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 diff --git a/kernel/patches-4.14.x-rt/0391-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/kernel/patches-4.14.x-rt/0391-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch index d3173fbb3..518f1d075 100644 --- a/kernel/patches-4.14.x-rt/0391-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +++ b/kernel/patches-4.14.x-rt/0391-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -1,7 +1,7 @@ -From aa5d9a932251815a7acba494bb7e54d79784f94e Mon Sep 17 00:00:00 2001 +From d36f43161cf9e7ac16b6bbd46f2b1f7dea2ab4d9 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 31 Mar 2016 04:08:28 +0200 -Subject: [PATCH 391/413] drivers/block/zram: Replace bit spinlocks with +Subject: [PATCH 391/436] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt They're nondeterministic, and lead to ___might_sleep() splats in -rt. @@ -15,10 +15,10 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 29 insertions(+) diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c -index f149d3e61234..0fc72950be2d 100644 +index 1e2648e4c286..23be0e1b31e7 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c -@@ -756,6 +756,30 @@ static DEVICE_ATTR_RO(io_stat); +@@ -761,6 +761,30 @@ static DEVICE_ATTR_RO(io_stat); static DEVICE_ATTR_RO(mm_stat); static DEVICE_ATTR_RO(debug_stat); @@ -49,7 +49,7 @@ index f149d3e61234..0fc72950be2d 100644 static void zram_slot_lock(struct zram *zram, u32 index) { bit_spin_lock(ZRAM_ACCESS, &zram->table[index].value); -@@ -765,6 +789,7 @@ static void zram_slot_unlock(struct zram *zram, u32 index) +@@ -770,6 +794,7 @@ static void zram_slot_unlock(struct zram *zram, u32 index) { bit_spin_unlock(ZRAM_ACCESS, &zram->table[index].value); } @@ -57,7 +57,7 @@ index f149d3e61234..0fc72950be2d 100644 static void zram_meta_free(struct zram *zram, u64 disksize) { -@@ -794,6 +819,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize) +@@ -799,6 +824,7 @@ static bool zram_meta_alloc(struct zram *zram, u64 disksize) return false; } diff --git a/kernel/patches-4.14.x-rt/0392-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/kernel/patches-4.14.x-rt/0392-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch index c0f42716d..3876cf7aa 100644 --- a/kernel/patches-4.14.x-rt/0392-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +++ b/kernel/patches-4.14.x-rt/0392-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch @@ -1,7 +1,7 @@ -From 787fb8c244c78b881197632dca7d86e1656619f3 Mon Sep 17 00:00:00 2001 +From f1164b1b843b85908f3995ef7f521600e01d6d3d Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 20 Oct 2016 11:15:22 +0200 -Subject: [PATCH 392/413] drivers/zram: Don't disable preemption in +Subject: [PATCH 392/436] drivers/zram: Don't disable preemption in zcomp_stream_get/put() In v4.7, the driver switched to percpu compression streams, disabling @@ -66,10 +66,10 @@ index 41c1002a7d7d..d424eafcbf8e 100644 /* dynamic per-device compression frontend */ diff --git a/drivers/block/zram/zram_drv.c b/drivers/block/zram/zram_drv.c -index 0fc72950be2d..9839656465ea 100644 +index 23be0e1b31e7..c5d61209eb05 100644 --- a/drivers/block/zram/zram_drv.c +++ b/drivers/block/zram/zram_drv.c -@@ -871,6 +871,7 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, +@@ -876,6 +876,7 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, unsigned long handle; unsigned int size; void *src, *dst; @@ -77,7 +77,7 @@ index 0fc72950be2d..9839656465ea 100644 if (zram_wb_enabled(zram)) { zram_slot_lock(zram, index); -@@ -905,6 +906,7 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, +@@ -910,6 +911,7 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, size = zram_get_obj_size(zram, index); @@ -85,7 +85,7 @@ index 0fc72950be2d..9839656465ea 100644 src = zs_map_object(zram->mem_pool, handle, ZS_MM_RO); if (size == PAGE_SIZE) { dst = kmap_atomic(page); -@@ -912,14 +914,13 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, +@@ -917,14 +919,13 @@ static int __zram_bvec_read(struct zram *zram, struct page *page, u32 index, kunmap_atomic(dst); ret = 0; } else { diff --git a/kernel/patches-4.14.x-rt/0393-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/kernel/patches-4.14.x-rt/0393-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch index 725a513c0..d8ab97da8 100644 --- a/kernel/patches-4.14.x-rt/0393-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch +++ b/kernel/patches-4.14.x-rt/0393-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch @@ -1,7 +1,7 @@ -From fa5051f0d75c23467e968ebf3afdd3da68a82a4e Mon Sep 17 00:00:00 2001 +From 6383a2de306e48c9075a61f3e9e318177e9bdac6 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 23 Aug 2017 11:57:29 +0200 -Subject: [PATCH 393/413] drivers/zram: fix zcomp_stream_get() +Subject: [PATCH 393/436] drivers/zram: fix zcomp_stream_get() smp_processor_id() use in preemptible code Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding diff --git a/kernel/patches-4.14.x-rt/0394-tpm_tis-fix-stall-after-iowrite-s.patch b/kernel/patches-4.14.x-rt/0394-tpm_tis-fix-stall-after-iowrite-s.patch index 39d989546..db5f19c98 100644 --- a/kernel/patches-4.14.x-rt/0394-tpm_tis-fix-stall-after-iowrite-s.patch +++ b/kernel/patches-4.14.x-rt/0394-tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,7 +1,7 @@ -From 409b2a996920bc218b9e1a88a2a04771d6944640 Mon Sep 17 00:00:00 2001 +From dec57b6400a29524c94156644a1c1ef8c765c515 Mon Sep 17 00:00:00 2001 From: Haris Okanovic Date: Tue, 15 Aug 2017 15:13:08 -0500 -Subject: [PATCH 394/413] tpm_tis: fix stall after iowrite*()s +Subject: [PATCH 394/436] tpm_tis: fix stall after iowrite*()s ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. diff --git a/kernel/patches-4.14.x-rt/0395-pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/kernel/patches-4.14.x-rt/0395-pci-switchtec-Don-t-use-completion-s-wait-queue.patch index 7c9befc00..8b418acff 100644 --- a/kernel/patches-4.14.x-rt/0395-pci-switchtec-Don-t-use-completion-s-wait-queue.patch +++ b/kernel/patches-4.14.x-rt/0395-pci-switchtec-Don-t-use-completion-s-wait-queue.patch @@ -1,7 +1,7 @@ -From 570471d6bacb7f6f5e8930d22aa15a935d438533 Mon Sep 17 00:00:00 2001 +From 5c7a3ff30a6d7a141c2194e7137e6d5b510e3340 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 4 Oct 2017 10:24:23 +0200 -Subject: [PATCH 395/413] pci/switchtec: Don't use completion's wait queue +Subject: [PATCH 395/436] pci/switchtec: Don't use completion's wait queue The poll callback is using completion's wait_queue_head_t member and puts it in poll_wait() so the poll() caller gets a wakeup after command @@ -23,10 +23,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c -index af81b2dec42e..1910c6c72fcd 100644 +index 620f5b995a12..7fd1548a2905 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c -@@ -306,10 +306,11 @@ struct switchtec_user { +@@ -308,10 +308,11 @@ struct switchtec_user { enum mrpc_state state; @@ -39,7 +39,7 @@ index af81b2dec42e..1910c6c72fcd 100644 u32 cmd; u32 status; u32 return_code; -@@ -331,7 +332,7 @@ static struct switchtec_user *stuser_create(struct switchtec_dev *stdev) +@@ -333,7 +334,7 @@ static struct switchtec_user *stuser_create(struct switchtec_dev *stdev) stuser->stdev = stdev; kref_init(&stuser->kref); INIT_LIST_HEAD(&stuser->list); @@ -48,7 +48,7 @@ index af81b2dec42e..1910c6c72fcd 100644 stuser->event_cnt = atomic_read(&stdev->event_cnt); dev_dbg(&stdev->dev, "%s: %p\n", __func__, stuser); -@@ -414,7 +415,7 @@ static int mrpc_queue_cmd(struct switchtec_user *stuser) +@@ -416,7 +417,7 @@ static int mrpc_queue_cmd(struct switchtec_user *stuser) kref_get(&stuser->kref); stuser->read_len = sizeof(stuser->data); stuser_set_state(stuser, MRPC_QUEUED); @@ -57,7 +57,7 @@ index af81b2dec42e..1910c6c72fcd 100644 list_add_tail(&stuser->list, &stdev->mrpc_queue); mrpc_cmd_submit(stdev); -@@ -451,7 +452,8 @@ static void mrpc_complete_cmd(struct switchtec_dev *stdev) +@@ -453,7 +454,8 @@ static void mrpc_complete_cmd(struct switchtec_dev *stdev) stuser->read_len); out: @@ -67,7 +67,7 @@ index af81b2dec42e..1910c6c72fcd 100644 list_del_init(&stuser->list); stuser_put(stuser); stdev->mrpc_busy = 0; -@@ -721,10 +723,11 @@ static ssize_t switchtec_dev_read(struct file *filp, char __user *data, +@@ -723,10 +725,11 @@ static ssize_t switchtec_dev_read(struct file *filp, char __user *data, mutex_unlock(&stdev->mrpc_mutex); if (filp->f_flags & O_NONBLOCK) { @@ -81,7 +81,7 @@ index af81b2dec42e..1910c6c72fcd 100644 if (rc < 0) return rc; } -@@ -772,7 +775,7 @@ static unsigned int switchtec_dev_poll(struct file *filp, poll_table *wait) +@@ -774,7 +777,7 @@ static unsigned int switchtec_dev_poll(struct file *filp, poll_table *wait) struct switchtec_dev *stdev = stuser->stdev; int ret = 0; @@ -90,7 +90,7 @@ index af81b2dec42e..1910c6c72fcd 100644 poll_wait(filp, &stdev->event_wq, wait); if (lock_mutex_and_test_alive(stdev)) -@@ -780,7 +783,7 @@ static unsigned int switchtec_dev_poll(struct file *filp, poll_table *wait) +@@ -782,7 +785,7 @@ static unsigned int switchtec_dev_poll(struct file *filp, poll_table *wait) mutex_unlock(&stdev->mrpc_mutex); @@ -99,7 +99,7 @@ index af81b2dec42e..1910c6c72fcd 100644 ret |= POLLIN | POLLRDNORM; if (stuser->event_cnt != atomic_read(&stdev->event_cnt)) -@@ -1255,7 +1258,8 @@ static void stdev_kill(struct switchtec_dev *stdev) +@@ -1259,7 +1262,8 @@ static void stdev_kill(struct switchtec_dev *stdev) /* Wake up and kill any users waiting on an MRPC request */ list_for_each_entry_safe(stuser, tmpuser, &stdev->mrpc_queue, list) { diff --git a/kernel/patches-4.14.x-rt/0396-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/kernel/patches-4.14.x-rt/0396-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch index 4fe34472f..78dcd9cca 100644 --- a/kernel/patches-4.14.x-rt/0396-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +++ b/kernel/patches-4.14.x-rt/0396-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch @@ -1,7 +1,7 @@ -From 9dfbd5449bb0626b7ba46f6b008430b6ef568d9a Mon Sep 17 00:00:00 2001 +From f8f1e6ec552f9310a52405f597719d157270e7b9 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 08:09:11 +0100 -Subject: [PATCH 396/413] drm,radeon,i915: Use preempt_disable/enable_rt() +Subject: [PATCH 396/436] drm,radeon,i915: Use preempt_disable/enable_rt() where recommended DRM folks identified the spots, so use them. diff --git a/kernel/patches-4.14.x-rt/0397-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/kernel/patches-4.14.x-rt/0397-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch index 2d11652b0..36861bc3c 100644 --- a/kernel/patches-4.14.x-rt/0397-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch +++ b/kernel/patches-4.14.x-rt/0397-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch @@ -1,7 +1,7 @@ -From 871301145f9dc9a561cd19a30c5ca2073052c81b Mon Sep 17 00:00:00 2001 +From f235296ffad890ab65237e4bc487713a110a2c85 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 09:01:42 +0100 -Subject: [PATCH 397/413] drm,i915: Use local_lock/unlock_irq() in +Subject: [PATCH 397/436] drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() [ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918 diff --git a/kernel/patches-4.14.x-rt/0398-cgroups-use-simple-wait-in-css_release.patch b/kernel/patches-4.14.x-rt/0398-cgroups-use-simple-wait-in-css_release.patch index b3b1b1529..f1d93a262 100644 --- a/kernel/patches-4.14.x-rt/0398-cgroups-use-simple-wait-in-css_release.patch +++ b/kernel/patches-4.14.x-rt/0398-cgroups-use-simple-wait-in-css_release.patch @@ -1,7 +1,7 @@ -From d8f40b84c87bb81075c0cf264d9149f9423f42e1 Mon Sep 17 00:00:00 2001 +From 14bb847988c3d7320603b5a71c72ebe7f2552491 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 13 Feb 2015 15:52:24 +0100 -Subject: [PATCH 398/413] cgroups: use simple wait in css_release() +Subject: [PATCH 398/436] cgroups: use simple wait in css_release() To avoid: |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 diff --git a/kernel/patches-4.14.x-rt/0399-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch b/kernel/patches-4.14.x-rt/0399-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch index bb24e599f..388c91dfd 100644 --- a/kernel/patches-4.14.x-rt/0399-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch +++ b/kernel/patches-4.14.x-rt/0399-memcontrol-Prevent-scheduling-while-atomic-in-cgroup.patch @@ -1,7 +1,7 @@ -From 749a7ed477122df283c2add9788a8e2d4476d077 Mon Sep 17 00:00:00 2001 +From 505b2c9bb1929a13e7e340fc51b40356bc630e2e Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 21 Jun 2014 10:09:48 +0200 -Subject: [PATCH 399/413] memcontrol: Prevent scheduling while atomic in cgroup +Subject: [PATCH 399/436] memcontrol: Prevent scheduling while atomic in cgroup code mm, memcg: make refill_stock() use get_cpu_light() @@ -43,7 +43,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 0e08c9b7d704..af0ed470349f 100644 +index 3cc297730103..8d08b70b1ccb 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1723,6 +1723,7 @@ struct memcg_stock_pcp { diff --git a/kernel/patches-4.14.x-rt/0400-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch b/kernel/patches-4.14.x-rt/0400-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch index 7ffdbfb10..aa230255f 100644 --- a/kernel/patches-4.14.x-rt/0400-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch +++ b/kernel/patches-4.14.x-rt/0400-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch @@ -1,7 +1,7 @@ -From 9d371ed77bfd734055e3b63eb141202104d4be77 Mon Sep 17 00:00:00 2001 +From c57133932dd36dae4e896b930cab7e2f414b2925 Mon Sep 17 00:00:00 2001 From: "Steven Rostedt (VMware)" Date: Wed, 22 Nov 2017 07:31:19 -0500 -Subject: [PATCH 400/413] Revert "memcontrol: Prevent scheduling while atomic +Subject: [PATCH 400/436] Revert "memcontrol: Prevent scheduling while atomic in cgroup code" The commit "memcontrol: Prevent scheduling while atomic in cgroup code" @@ -38,7 +38,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index af0ed470349f..0e08c9b7d704 100644 +index 8d08b70b1ccb..3cc297730103 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -1723,7 +1723,6 @@ struct memcg_stock_pcp { diff --git a/kernel/patches-4.14.x-rt/0401-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/kernel/patches-4.14.x-rt/0401-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch index 5452d1b2c..0537fc9be 100644 --- a/kernel/patches-4.14.x-rt/0401-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +++ b/kernel/patches-4.14.x-rt/0401-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch @@ -1,7 +1,7 @@ -From 22ded75dc25a2ee6b0cd8be2faf4d7b0fbcfbf00 Mon Sep 17 00:00:00 2001 +From dd842f0280c1ba3bd475e9a7e99db3541e64f083 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 8 Jan 2017 09:32:25 +0100 -Subject: [PATCH 401/413] cpuset: Convert callback_lock to raw_spinlock_t +Subject: [PATCH 401/436] cpuset: Convert callback_lock to raw_spinlock_t The two commits below add up to a cpuset might_sleep() splat for RT: diff --git a/kernel/patches-4.14.x-rt/0402-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch b/kernel/patches-4.14.x-rt/0402-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch index d9f8f506d..94f4c97c0 100644 --- a/kernel/patches-4.14.x-rt/0402-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch +++ b/kernel/patches-4.14.x-rt/0402-rt-ntp-Move-call-to-schedule_delayed_work-to-helper-.patch @@ -1,7 +1,7 @@ -From 205e08a30d687e4abf14c3b73e303ee830f895ca Mon Sep 17 00:00:00 2001 +From 84bca3c0b5b6f93845c67a99042c8b544da5a66f Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 26 Jun 2013 15:28:11 -0400 -Subject: [PATCH 402/413] rt,ntp: Move call to schedule_delayed_work() to +Subject: [PATCH 402/436] rt,ntp: Move call to schedule_delayed_work() to helper thread The ntp code for notify_cmos_timer() is called from a hard interrupt diff --git a/kernel/patches-4.14.x-rt/0403-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch b/kernel/patches-4.14.x-rt/0403-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch index ccb102d3b..3f93cc9f9 100644 --- a/kernel/patches-4.14.x-rt/0403-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch +++ b/kernel/patches-4.14.x-rt/0403-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch @@ -1,7 +1,7 @@ -From f9540860de2f5f9a9d07e9358529e3458d3c07ad Mon Sep 17 00:00:00 2001 +From 8179c5bdf83b0cac2dd63fdfe2a69f4beccb7d1e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 2 Mar 2018 11:37:57 +0100 -Subject: [PATCH 403/413] Revert "rt,ntp: Move call to schedule_delayed_work() +Subject: [PATCH 403/436] Revert "rt,ntp: Move call to schedule_delayed_work() to helper thread" I've been looking at this in v3.10-RT where it got in. The patch diff --git a/kernel/patches-4.14.x-rt/0404-md-disable-bcache.patch b/kernel/patches-4.14.x-rt/0404-md-disable-bcache.patch index e96c5f8c0..08a332cf7 100644 --- a/kernel/patches-4.14.x-rt/0404-md-disable-bcache.patch +++ b/kernel/patches-4.14.x-rt/0404-md-disable-bcache.patch @@ -1,7 +1,7 @@ -From fcd98aa87e8e28b042f92ba0ca580706e07dcc46 Mon Sep 17 00:00:00 2001 +From 9730d1b3b15e6406b2863c2ede1c8d36a28d8a99 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Aug 2013 11:48:57 +0200 -Subject: [PATCH 404/413] md: disable bcache +Subject: [PATCH 404/436] md: disable bcache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit diff --git a/kernel/patches-4.14.x-rt/0405-apparmor-use-a-locallock-instead-preempt_disable.patch b/kernel/patches-4.14.x-rt/0405-apparmor-use-a-locallock-instead-preempt_disable.patch index c449ac9ca..7c93e49f2 100644 --- a/kernel/patches-4.14.x-rt/0405-apparmor-use-a-locallock-instead-preempt_disable.patch +++ b/kernel/patches-4.14.x-rt/0405-apparmor-use-a-locallock-instead-preempt_disable.patch @@ -1,7 +1,7 @@ -From a8eb9d3ad2db64f8fa95c16b8b606ca235dd1e40 Mon Sep 17 00:00:00 2001 +From 3f59563ac8145d1ad153fffbc2aa21bd1679e71b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 11 Oct 2017 17:43:49 +0200 -Subject: [PATCH 405/413] apparmor: use a locallock instead preempt_disable() +Subject: [PATCH 405/436] apparmor: use a locallock instead preempt_disable() get_buffers() disables preemption which acts as a lock for the per-CPU variable. Since we can't disable preemption here on RT, a local_lock is diff --git a/kernel/patches-4.14.x-rt/0406-workqueue-Prevent-deadlock-stall-on-RT.patch b/kernel/patches-4.14.x-rt/0406-workqueue-Prevent-deadlock-stall-on-RT.patch index ae1056600..4b4905ed7 100644 --- a/kernel/patches-4.14.x-rt/0406-workqueue-Prevent-deadlock-stall-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0406-workqueue-Prevent-deadlock-stall-on-RT.patch @@ -1,7 +1,7 @@ -From 092ead3bd4a1611f032ced93ea788f2cf25fd456 Mon Sep 17 00:00:00 2001 +From cbfb5261b14793a5bd6b5397f1fe322c8c9d58a2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 27 Jun 2014 16:24:52 +0200 -Subject: [PATCH 406/413] workqueue: Prevent deadlock/stall on RT +Subject: [PATCH 406/436] workqueue: Prevent deadlock/stall on RT Austin reported a XFS deadlock/stall on RT where scheduled work gets never exececuted and tasks are waiting for each other for ever. @@ -68,7 +68,7 @@ index 6952b7765bde..e7817c6c44d2 100644 * If we are going to sleep and we have plugged IO queued, * make sure to submit it to avoid deadlocks. diff --git a/kernel/workqueue.c b/kernel/workqueue.c -index fffe7dd994b9..f3f7afecb686 100644 +index c0b2a2e65d75..76297cce5602 100644 --- a/kernel/workqueue.c +++ b/kernel/workqueue.c @@ -125,6 +125,11 @@ enum { diff --git a/kernel/patches-4.14.x-rt/0407-Add-localversion-for-RT-release.patch b/kernel/patches-4.14.x-rt/0407-Add-localversion-for-RT-release.patch index 2db4196bc..616bb03fc 100644 --- a/kernel/patches-4.14.x-rt/0407-Add-localversion-for-RT-release.patch +++ b/kernel/patches-4.14.x-rt/0407-Add-localversion-for-RT-release.patch @@ -1,7 +1,7 @@ -From 09264d6a7b079c667e7ab9355ad4e17684189c00 Mon Sep 17 00:00:00 2001 +From 40a0099abe7556d58f4ae00a68be17e245355b41 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 -Subject: [PATCH 407/413] Add localversion for -RT release +Subject: [PATCH 407/436] Add localversion for -RT release Signed-off-by: Thomas Gleixner --- diff --git a/kernel/patches-4.14.x-rt/0408-tracing-Add-field-modifier-parsing-hist-error-for-hi.patch b/kernel/patches-4.14.x-rt/0408-tracing-Add-field-modifier-parsing-hist-error-for-hi.patch index 968c2efe3..f8fba2676 100644 --- a/kernel/patches-4.14.x-rt/0408-tracing-Add-field-modifier-parsing-hist-error-for-hi.patch +++ b/kernel/patches-4.14.x-rt/0408-tracing-Add-field-modifier-parsing-hist-error-for-hi.patch @@ -1,7 +1,7 @@ -From c5f9e0ae2a10b26d19425637603c34bc3045b125 Mon Sep 17 00:00:00 2001 +From f8deff9630d9ee06227f67bfe1b89819c21d836f Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Thu, 26 Apr 2018 20:04:49 -0500 -Subject: [PATCH 408/413] tracing: Add field modifier parsing hist error for +Subject: [PATCH 408/436] tracing: Add field modifier parsing hist error for hist triggers [ commit dcf234577cd31fa16874e828b90659166ad6b80d ] diff --git a/kernel/patches-4.14.x-rt/0409-tracing-Add-field-parsing-hist-error-for-hist-trigge.patch b/kernel/patches-4.14.x-rt/0409-tracing-Add-field-parsing-hist-error-for-hist-trigge.patch index 7486c3aa1..e4df84c74 100644 --- a/kernel/patches-4.14.x-rt/0409-tracing-Add-field-parsing-hist-error-for-hist-trigge.patch +++ b/kernel/patches-4.14.x-rt/0409-tracing-Add-field-parsing-hist-error-for-hist-trigge.patch @@ -1,7 +1,7 @@ -From 3158aae80923bc6e31f906955bb69de0bcee346d Mon Sep 17 00:00:00 2001 +From d648f2f70bab7ea86e9ac5cbad0645707d2f0e00 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Thu, 26 Apr 2018 20:04:48 -0500 -Subject: [PATCH 409/413] tracing: Add field parsing hist error for hist +Subject: [PATCH 409/436] tracing: Add field parsing hist error for hist triggers [ commit 5ec432d7bf9dd3b4a2b84f8974e3adb71f45fb1d ] diff --git a/kernel/patches-4.14.x-rt/0410-tracing-Restore-proper-field-flag-printing-when-disp.patch b/kernel/patches-4.14.x-rt/0410-tracing-Restore-proper-field-flag-printing-when-disp.patch index b96525b68..60bd5edd6 100644 --- a/kernel/patches-4.14.x-rt/0410-tracing-Restore-proper-field-flag-printing-when-disp.patch +++ b/kernel/patches-4.14.x-rt/0410-tracing-Restore-proper-field-flag-printing-when-disp.patch @@ -1,7 +1,7 @@ -From d3aed5eb9fbd9edc838e22734266e2e6c24e97ae Mon Sep 17 00:00:00 2001 +From 7cdb9bdccfd76d3ffb48ab297ff707affdac25c3 Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Thu, 26 Apr 2018 20:04:47 -0500 -Subject: [PATCH 410/413] tracing: Restore proper field flag printing when +Subject: [PATCH 410/436] tracing: Restore proper field flag printing when displaying triggers [ commit 608940dabe1bd2ce4c97524004ec86637cf80f2c ] diff --git a/kernel/patches-4.14.x-rt/0411-tracing-Uninitialized-variable-in-create_tracing_map.patch b/kernel/patches-4.14.x-rt/0411-tracing-Uninitialized-variable-in-create_tracing_map.patch index faa6954d9..a6dab4871 100644 --- a/kernel/patches-4.14.x-rt/0411-tracing-Uninitialized-variable-in-create_tracing_map.patch +++ b/kernel/patches-4.14.x-rt/0411-tracing-Uninitialized-variable-in-create_tracing_map.patch @@ -1,7 +1,7 @@ -From a978172e76545349ee0117d9ad9b051fa80e8660 Mon Sep 17 00:00:00 2001 +From 4809503f26c186ff7ed9e59e30e8d58ab5cc71bd Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 28 Mar 2018 14:48:15 +0300 -Subject: [PATCH 411/413] tracing: Uninitialized variable in +Subject: [PATCH 411/436] tracing: Uninitialized variable in create_tracing_map_fields() [ commit b28d7b2dc27f0eef1ae608b49d6860f2463910f1 ] diff --git a/kernel/patches-4.14.x-rt/0412-tracing-Fix-a-potential-NULL-dereference.patch b/kernel/patches-4.14.x-rt/0412-tracing-Fix-a-potential-NULL-dereference.patch index 76e3da6e9..bf5ed612a 100644 --- a/kernel/patches-4.14.x-rt/0412-tracing-Fix-a-potential-NULL-dereference.patch +++ b/kernel/patches-4.14.x-rt/0412-tracing-Fix-a-potential-NULL-dereference.patch @@ -1,7 +1,7 @@ -From 68fb71aae158f2cfbc50698040a2781780af7843 Mon Sep 17 00:00:00 2001 +From 0ba43f59448f1b44b0c4d26f352c1c7b1c03bf48 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Fri, 23 Mar 2018 14:37:36 +0300 -Subject: [PATCH 412/413] tracing: Fix a potential NULL dereference +Subject: [PATCH 412/436] tracing: Fix a potential NULL dereference [ commit 5e4cf2bf6d1c198a90ccc0df5ffd8e0d4ea36b48 ] diff --git a/kernel/patches-4.14.x-rt/0413-Linux-4.14.63-rt40-REBASE.patch b/kernel/patches-4.14.x-rt/0413-Linux-4.14.63-rt40-REBASE.patch deleted file mode 100644 index a1f83dae3..000000000 --- a/kernel/patches-4.14.x-rt/0413-Linux-4.14.63-rt40-REBASE.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 7f11a591bbdb111792298144c3476506aa7f1ca8 Mon Sep 17 00:00:00 2001 -From: "Steven Rostedt (VMware)" -Date: Wed, 16 May 2018 09:33:00 -0400 -Subject: [PATCH 413/413] Linux 4.14.63-rt40 REBASE - -[It should be rt40] -Integrated-by: Tiejun Chen ---- - localversion-rt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/localversion-rt b/localversion-rt -index 90290c642ed5..a3b2408c1da6 100644 ---- a/localversion-rt -+++ b/localversion-rt -@@ -1 +1 @@ ---rt29 -+-rt40 --- -2.18.0 - diff --git a/kernel/patches-4.14.x-rt/0413-sched-fair-Fix-CFS-bandwidth-control-lockdep-DEADLOC.patch b/kernel/patches-4.14.x-rt/0413-sched-fair-Fix-CFS-bandwidth-control-lockdep-DEADLOC.patch new file mode 100644 index 000000000..5683185ae --- /dev/null +++ b/kernel/patches-4.14.x-rt/0413-sched-fair-Fix-CFS-bandwidth-control-lockdep-DEADLOC.patch @@ -0,0 +1,58 @@ +From 8d9409969db3006e68af2c132471c83823405e20 Mon Sep 17 00:00:00 2001 +From: Mike Galbraith +Date: Fri, 4 May 2018 08:14:38 +0200 +Subject: [PATCH 413/436] sched/fair: Fix CFS bandwidth control lockdep + DEADLOCK report + +[ Upstream commit df7e8acc0c9a84979a448d215b8ef889efe4ac5a ] + +CFS bandwidth control yields the inversion gripe below, moving +handling quells it. + +|======================================================== +|WARNING: possible irq lock inversion dependency detected +|4.16.7-rt1-rt #2 Tainted: G E +|-------------------------------------------------------- +|sirq-hrtimer/0/15 just changed the state of lock: +| (&cfs_b->lock){+...}, at: [<000000009adb5cf7>] sched_cfs_period_timer+0x28/0x140 +|but this lock was taken by another, HARDIRQ-safe lock in the past: (&rq->lock){-...} +|and interrupts could create inverse lock ordering between them. +|other info that might help us debug this: +| Possible interrupt unsafe locking scenario: +| CPU0 CPU1 +| ---- ---- +| lock(&cfs_b->lock); +| local_irq_disable(); +| lock(&rq->lock); +| lock(&cfs_b->lock); +| +| lock(&rq->lock); + +Cc: stable-rt@vger.kernel.org +Acked-by: Steven Rostedt (VMware) +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + kernel/sched/fair.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c +index 36ef77839be4..51ecea4f5d16 100644 +--- a/kernel/sched/fair.c ++++ b/kernel/sched/fair.c +@@ -4684,9 +4684,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) + cfs_b->period = ns_to_ktime(default_cfs_period()); + + INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq); +- hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED); ++ hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD); + cfs_b->period_timer.function = sched_cfs_period_timer; +- hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); ++ hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD); + cfs_b->slack_timer.function = sched_cfs_slack_timer; + } + +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0414-Miss-the-irq_regs.h-file.patch b/kernel/patches-4.14.x-rt/0414-Miss-the-irq_regs.h-file.patch deleted file mode 100644 index 7b79ec81c..000000000 --- a/kernel/patches-4.14.x-rt/0414-Miss-the-irq_regs.h-file.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 422b603925cb4488f30f11104413d82e924698ff Mon Sep 17 00:00:00 2001 -From: Tiejun Chen -Date: Sun, 26 Aug 2018 17:03:10 -0700 -Subject: [PATCH 1/1] Miss the irq_regs.h file - -Signed-off-by: Tiejun Chen ---- - drivers/hv/vmbus_drv.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c -index 4970f10b..ba41140a 100644 ---- a/drivers/hv/vmbus_drv.c -+++ b/drivers/hv/vmbus_drv.c -@@ -47,6 +47,8 @@ - #include - #include "hyperv_vmbus.h" - -+#include -+ - struct vmbus_dynid { - struct list_head node; - struct hv_vmbus_device_id id; --- -2.17.1 - diff --git a/kernel/patches-4.14.x-rt/0414-locallock-provide-get-put-_locked_ptr-variants.patch b/kernel/patches-4.14.x-rt/0414-locallock-provide-get-put-_locked_ptr-variants.patch new file mode 100644 index 000000000..0e8c13775 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0414-locallock-provide-get-put-_locked_ptr-variants.patch @@ -0,0 +1,51 @@ +From 158d32a18214eec81583f270ee8f43c7c5493a1a Mon Sep 17 00:00:00 2001 +From: Julia Cartwright +Date: Mon, 7 May 2018 08:58:56 -0500 +Subject: [PATCH 414/436] locallock: provide {get,put}_locked_ptr() variants + +[ Upstream commit 3d45cf23db4f76cd356ebb0aa4cdaa7d92d1a64e ] + +Provide a set of locallocked accessors for pointers to per-CPU data; +this is useful for dynamically-allocated per-CPU regions, for example. + +These are symmetric with the {get,put}_cpu_ptr() per-CPU accessor +variants. + +Signed-off-by: Julia Cartwright +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + include/linux/locallock.h | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/include/linux/locallock.h b/include/linux/locallock.h +index d658c2552601..921eab83cd34 100644 +--- a/include/linux/locallock.h ++++ b/include/linux/locallock.h +@@ -222,6 +222,14 @@ static inline int __local_unlock_irqrestore(struct local_irq_lock *lv, + + #define put_locked_var(lvar, var) local_unlock(lvar); + ++#define get_locked_ptr(lvar, var) \ ++ ({ \ ++ local_lock(lvar); \ ++ this_cpu_ptr(var); \ ++ }) ++ ++#define put_locked_ptr(lvar, var) local_unlock(lvar); ++ + #define local_lock_cpu(lvar) \ + ({ \ + local_lock(lvar); \ +@@ -262,6 +270,8 @@ static inline void local_irq_lock_init(int lvar) { } + + #define get_locked_var(lvar, var) get_cpu_var(var) + #define put_locked_var(lvar, var) put_cpu_var(var) ++#define get_locked_ptr(lvar, var) get_cpu_ptr(var) ++#define put_locked_ptr(lvar, var) put_cpu_ptr(var) + + #define local_lock_cpu(lvar) get_cpu() + #define local_unlock_cpu(lvar) put_cpu() +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0415-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch b/kernel/patches-4.14.x-rt/0415-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch new file mode 100644 index 000000000..09ef0bf57 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0415-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch @@ -0,0 +1,74 @@ +From e6afb14ae381c8de6e36b0fb9187a1e06429d723 Mon Sep 17 00:00:00 2001 +From: Julia Cartwright +Date: Mon, 7 May 2018 08:58:57 -0500 +Subject: [PATCH 415/436] squashfs: make use of local lock in multi_cpu + decompressor + +[ Upstream commit c160736542d7b3d67da32848d2f028b8e35730e5 ] + +Currently, the squashfs multi_cpu decompressor makes use of +get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption +during decompression. + +Because the workload is distributed across CPUs, all CPUs can observe a +very high wakeup latency, which has been seen to be as much as 8000us. + +Convert this decompressor to make use of a local lock, which will allow +execution of the decompressor with preemption-enabled, but also ensure +concurrent accesses to the percpu compressor data on the local CPU will +be serialized. + +Cc: stable-rt@vger.kernel.org +Reported-by: Alexander Stein +Tested-by: Alexander Stein +Signed-off-by: Julia Cartwright +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + fs/squashfs/decompressor_multi_percpu.c | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/fs/squashfs/decompressor_multi_percpu.c b/fs/squashfs/decompressor_multi_percpu.c +index 23a9c28ad8ea..6a73c4fa88e7 100644 +--- a/fs/squashfs/decompressor_multi_percpu.c ++++ b/fs/squashfs/decompressor_multi_percpu.c +@@ -10,6 +10,7 @@ + #include + #include + #include ++#include + + #include "squashfs_fs.h" + #include "squashfs_fs_sb.h" +@@ -25,6 +26,8 @@ struct squashfs_stream { + void *stream; + }; + ++static DEFINE_LOCAL_IRQ_LOCK(stream_lock); ++ + void *squashfs_decompressor_create(struct squashfs_sb_info *msblk, + void *comp_opts) + { +@@ -79,10 +82,15 @@ int squashfs_decompress(struct squashfs_sb_info *msblk, struct buffer_head **bh, + { + struct squashfs_stream __percpu *percpu = + (struct squashfs_stream __percpu *) msblk->stream; +- struct squashfs_stream *stream = get_cpu_ptr(percpu); +- int res = msblk->decompressor->decompress(msblk, stream->stream, bh, b, +- offset, length, output); +- put_cpu_ptr(stream); ++ struct squashfs_stream *stream; ++ int res; ++ ++ stream = get_locked_ptr(stream_lock, percpu); ++ ++ res = msblk->decompressor->decompress(msblk, stream->stream, bh, b, ++ offset, length, output); ++ ++ put_locked_ptr(stream_lock, stream); + + if (res < 0) + ERROR("%s decompression failed, data probably corrupt\n", +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0416-PM-suspend-Prevent-might-sleep-splats-updated.patch b/kernel/patches-4.14.x-rt/0416-PM-suspend-Prevent-might-sleep-splats-updated.patch new file mode 100644 index 000000000..7541776cb --- /dev/null +++ b/kernel/patches-4.14.x-rt/0416-PM-suspend-Prevent-might-sleep-splats-updated.patch @@ -0,0 +1,39 @@ +From cdbe42762ffe8177387d0a4dc20191cf43688eb1 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Tue, 29 May 2018 17:44:24 +0200 +Subject: [PATCH 416/436] PM / suspend: Prevent might sleep splats (updated) + +[ Upstream commit ec7ff06b919647a2fd7d2761a26f5a1d465e819c ] + +This is an updated version of this patch which was merged upstream as +commit c1a957d17086d20d52d7f9c8dffaeac2ee09d6f9 + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + kernel/time/tick-common.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c +index 7f5a26c3a8ee..7a87a4488a5e 100644 +--- a/kernel/time/tick-common.c ++++ b/kernel/time/tick-common.c +@@ -492,6 +492,7 @@ void tick_freeze(void) + if (tick_freeze_depth == num_online_cpus()) { + trace_suspend_resume(TPS("timekeeping_freeze"), + smp_processor_id(), true); ++ system_state = SYSTEM_SUSPEND; + timekeeping_suspend(); + } else { + tick_suspend_local(); +@@ -515,6 +516,7 @@ void tick_unfreeze(void) + + if (tick_freeze_depth == num_online_cpus()) { + timekeeping_resume(); ++ system_state = SYSTEM_RUNNING; + trace_suspend_resume(TPS("timekeeping_freeze"), + smp_processor_id(), false); + } else { +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0417-PM-wakeup-Make-events_lock-a-RAW_SPINLOCK.patch b/kernel/patches-4.14.x-rt/0417-PM-wakeup-Make-events_lock-a-RAW_SPINLOCK.patch new file mode 100644 index 000000000..68a7a7fdd --- /dev/null +++ b/kernel/patches-4.14.x-rt/0417-PM-wakeup-Make-events_lock-a-RAW_SPINLOCK.patch @@ -0,0 +1,91 @@ +From 3a35fd77d704f128008cb984e9253dfcef2ccc70 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 25 May 2018 09:57:42 +0200 +Subject: [PATCH 417/436] PM / wakeup: Make events_lock a RAW_SPINLOCK + +[ Upstream commit 1debb85a1d7d5c7655b4574f5b0ddf5f7c84873e ] + +The `events_lock' is acquired during suspend while interrupts are +disabled even on RT. The lock is taken only for a very brief moment. +Make it a RAW lock which avoids "sleeping while atomic" warnings on RT. + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + drivers/base/power/wakeup.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c +index cdd6f256da59..2269d379c92f 100644 +--- a/drivers/base/power/wakeup.c ++++ b/drivers/base/power/wakeup.c +@@ -52,7 +52,7 @@ static void split_counters(unsigned int *cnt, unsigned int *inpr) + /* A preserved old value of the events counter. */ + static unsigned int saved_count; + +-static DEFINE_SPINLOCK(events_lock); ++static DEFINE_RAW_SPINLOCK(events_lock); + + static void pm_wakeup_timer_fn(unsigned long data); + +@@ -180,9 +180,9 @@ void wakeup_source_add(struct wakeup_source *ws) + ws->active = false; + ws->last_time = ktime_get(); + +- spin_lock_irqsave(&events_lock, flags); ++ raw_spin_lock_irqsave(&events_lock, flags); + list_add_rcu(&ws->entry, &wakeup_sources); +- spin_unlock_irqrestore(&events_lock, flags); ++ raw_spin_unlock_irqrestore(&events_lock, flags); + } + EXPORT_SYMBOL_GPL(wakeup_source_add); + +@@ -197,9 +197,9 @@ void wakeup_source_remove(struct wakeup_source *ws) + if (WARN_ON(!ws)) + return; + +- spin_lock_irqsave(&events_lock, flags); ++ raw_spin_lock_irqsave(&events_lock, flags); + list_del_rcu(&ws->entry); +- spin_unlock_irqrestore(&events_lock, flags); ++ raw_spin_unlock_irqrestore(&events_lock, flags); + synchronize_srcu(&wakeup_srcu); + } + EXPORT_SYMBOL_GPL(wakeup_source_remove); +@@ -844,7 +844,7 @@ bool pm_wakeup_pending(void) + unsigned long flags; + bool ret = false; + +- spin_lock_irqsave(&events_lock, flags); ++ raw_spin_lock_irqsave(&events_lock, flags); + if (events_check_enabled) { + unsigned int cnt, inpr; + +@@ -852,7 +852,7 @@ bool pm_wakeup_pending(void) + ret = (cnt != saved_count || inpr > 0); + events_check_enabled = !ret; + } +- spin_unlock_irqrestore(&events_lock, flags); ++ raw_spin_unlock_irqrestore(&events_lock, flags); + + if (ret) { + pr_info("PM: Wakeup pending, aborting suspend\n"); +@@ -941,13 +941,13 @@ bool pm_save_wakeup_count(unsigned int count) + unsigned long flags; + + events_check_enabled = false; +- spin_lock_irqsave(&events_lock, flags); ++ raw_spin_lock_irqsave(&events_lock, flags); + split_counters(&cnt, &inpr); + if (cnt == count && inpr == 0) { + saved_count = count; + events_check_enabled = true; + } +- spin_unlock_irqrestore(&events_lock, flags); ++ raw_spin_unlock_irqrestore(&events_lock, flags); + return events_check_enabled; + } + +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0418-PM-s2idle-Make-s2idle_wait_head-swait-based.patch b/kernel/patches-4.14.x-rt/0418-PM-s2idle-Make-s2idle_wait_head-swait-based.patch new file mode 100644 index 000000000..1a7146a7f --- /dev/null +++ b/kernel/patches-4.14.x-rt/0418-PM-s2idle-Make-s2idle_wait_head-swait-based.patch @@ -0,0 +1,62 @@ +From 640a23c7d9657e9f7882f8ab999b6d9ecd710cce Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 25 May 2018 10:05:13 +0200 +Subject: [PATCH 418/436] PM / s2idle: Make s2idle_wait_head swait based + +[ Upstream commit 93f141324d4860a1294e6899923c01ec5411d70b ] + +s2idle_wait_head is used during s2idle with interrupts disabled even on +RT. There is no "custom" wake up function so swait could be used instead +which is also lower weight compared to the wait_queue. +Make s2idle_wait_head a swait_queue_head. + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + kernel/power/suspend.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c +index 999236413460..b89605fe0e88 100644 +--- a/kernel/power/suspend.c ++++ b/kernel/power/suspend.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -57,7 +58,7 @@ EXPORT_SYMBOL_GPL(pm_suspend_global_flags); + + static const struct platform_suspend_ops *suspend_ops; + static const struct platform_s2idle_ops *s2idle_ops; +-static DECLARE_WAIT_QUEUE_HEAD(s2idle_wait_head); ++static DECLARE_SWAIT_QUEUE_HEAD(s2idle_wait_head); + + enum s2idle_states __read_mostly s2idle_state; + static DEFINE_RAW_SPINLOCK(s2idle_lock); +@@ -91,8 +92,8 @@ static void s2idle_enter(void) + /* Push all the CPUs into the idle loop. */ + wake_up_all_idle_cpus(); + /* Make the current CPU wait so it can enter the idle loop too. */ +- wait_event(s2idle_wait_head, +- s2idle_state == S2IDLE_STATE_WAKE); ++ swait_event(s2idle_wait_head, ++ s2idle_state == S2IDLE_STATE_WAKE); + + cpuidle_pause(); + put_online_cpus(); +@@ -159,7 +160,7 @@ void s2idle_wake(void) + raw_spin_lock_irqsave(&s2idle_lock, flags); + if (s2idle_state > S2IDLE_STATE_NONE) { + s2idle_state = S2IDLE_STATE_WAKE; +- wake_up(&s2idle_wait_head); ++ swake_up(&s2idle_wait_head); + } + raw_spin_unlock_irqrestore(&s2idle_lock, flags); + } +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0419-seqlock-provide-the-same-ordering-semantics-as-mainl.patch b/kernel/patches-4.14.x-rt/0419-seqlock-provide-the-same-ordering-semantics-as-mainl.patch new file mode 100644 index 000000000..640e9aae0 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0419-seqlock-provide-the-same-ordering-semantics-as-mainl.patch @@ -0,0 +1,39 @@ +From b0fa2f4002765bb68d699c4ccaaa97673e56bc76 Mon Sep 17 00:00:00 2001 +From: Julia Cartwright +Date: Thu, 26 Apr 2018 15:02:03 -0500 +Subject: [PATCH 419/436] seqlock: provide the same ordering semantics as + mainline + +[ Upstream commit afa4c06b89a3c0fb7784ff900ccd707bef519cb7 ] + +The mainline implementation of read_seqbegin() orders prior loads w.r.t. +the read-side critical section. Fixup the RT writer-boosting +implementation to provide the same guarantee. + +Also, while we're here, update the usage of ACCESS_ONCE() to use +READ_ONCE(). + +Fixes: e69f15cf77c23 ("seqlock: Prevent rt starvation") +Cc: stable-rt@vger.kernel.org +Signed-off-by: Julia Cartwright +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + include/linux/seqlock.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h +index a59751276b94..107079a2d7ed 100644 +--- a/include/linux/seqlock.h ++++ b/include/linux/seqlock.h +@@ -462,6 +462,7 @@ static inline unsigned read_seqbegin(seqlock_t *sl) + spin_unlock_wait(&sl->lock); + goto repeat; + } ++ smp_rmb(); + return ret; + } + #endif +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0420-Revert-x86-UV-raw_spinlock-conversion.patch b/kernel/patches-4.14.x-rt/0420-Revert-x86-UV-raw_spinlock-conversion.patch new file mode 100644 index 000000000..53c92c477 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0420-Revert-x86-UV-raw_spinlock-conversion.patch @@ -0,0 +1,256 @@ +From bc96d730eef865ced4e04e278d31d891a3efd8b9 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Mon, 18 Jun 2018 10:34:34 +0200 +Subject: [PATCH 420/436] Revert "x86: UV: raw_spinlock conversion" + +[ Upstream commit 2a9c45d8f89112458364285cbe2b0729561953f1 ] + +Drop the Ultraviolet patch. UV looks broken upstream for PREEMPT, too. +Mike is the only person I know that has such a thing and he isn't going +to fix this upstream (from 1526977462.6491.1.camel@gmx.de): + +|From: Mike Galbraith +|On Tue, 2018-05-22 at 08:50 +0200, Sebastian Andrzej Siewior wrote: +|> +|> Regarding the preempt_disable() in the original patch in uv_read_rtc(): +|> This looks essential for PREEMPT configs. Is it possible to get this +|> tested by someone or else get rid of the UV code? It looks broken for +|> "uv_get_min_hub_revision_id() != 1". +| +|I suspect SGI cares not one whit about PREEMPT. +| +|> Why does PREEMPT_RT require migrate_disable() but PREEMPT only is fine +|> as-is? This does not look right. +| +|UV is not ok with a PREEMPT config, it's just that for RT it's dirt +|simple to shut it up, whereas for PREEMPT, preempt_disable() across +|uv_bau_init() doesn't cut it due to allocations, and whatever else I +|would have met before ending the whack-a-mole game. +| +|If I were in your shoes, I think I'd just stop caring about UV until a +|real user appears. AFAIK, I'm the only guy who ever ran RT on UV, and +|I only did so because SUSE asked me to look into it.. years ago now. +| +| -Mike + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + arch/x86/include/asm/uv/uv_bau.h | 14 +++++++------- + arch/x86/platform/uv/tlb_uv.c | 26 +++++++++++++------------- + arch/x86/platform/uv/uv_time.c | 20 ++++++++------------ + 3 files changed, 28 insertions(+), 32 deletions(-) + +diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h +index 2ac6e347bdc5..7cac79802ad2 100644 +--- a/arch/x86/include/asm/uv/uv_bau.h ++++ b/arch/x86/include/asm/uv/uv_bau.h +@@ -643,9 +643,9 @@ struct bau_control { + cycles_t send_message; + cycles_t period_end; + cycles_t period_time; +- raw_spinlock_t uvhub_lock; +- raw_spinlock_t queue_lock; +- raw_spinlock_t disable_lock; ++ spinlock_t uvhub_lock; ++ spinlock_t queue_lock; ++ spinlock_t disable_lock; + /* tunables */ + int max_concurr; + int max_concurr_const; +@@ -847,15 +847,15 @@ static inline int atom_asr(short i, struct atomic_short *v) + * to be lowered below the current 'v'. atomic_add_unless can only stop + * on equal. + */ +-static inline int atomic_inc_unless_ge(raw_spinlock_t *lock, atomic_t *v, int u) ++static inline int atomic_inc_unless_ge(spinlock_t *lock, atomic_t *v, int u) + { +- raw_spin_lock(lock); ++ spin_lock(lock); + if (atomic_read(v) >= u) { +- raw_spin_unlock(lock); ++ spin_unlock(lock); + return 0; + } + atomic_inc(v); +- raw_spin_unlock(lock); ++ spin_unlock(lock); + return 1; + } + +diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c +index 5607611df740..34f9a9ce6236 100644 +--- a/arch/x86/platform/uv/tlb_uv.c ++++ b/arch/x86/platform/uv/tlb_uv.c +@@ -740,9 +740,9 @@ static void destination_plugged(struct bau_desc *bau_desc, + + quiesce_local_uvhub(hmaster); + +- raw_spin_lock(&hmaster->queue_lock); ++ spin_lock(&hmaster->queue_lock); + reset_with_ipi(&bau_desc->distribution, bcp); +- raw_spin_unlock(&hmaster->queue_lock); ++ spin_unlock(&hmaster->queue_lock); + + end_uvhub_quiesce(hmaster); + +@@ -762,9 +762,9 @@ static void destination_timeout(struct bau_desc *bau_desc, + + quiesce_local_uvhub(hmaster); + +- raw_spin_lock(&hmaster->queue_lock); ++ spin_lock(&hmaster->queue_lock); + reset_with_ipi(&bau_desc->distribution, bcp); +- raw_spin_unlock(&hmaster->queue_lock); ++ spin_unlock(&hmaster->queue_lock); + + end_uvhub_quiesce(hmaster); + +@@ -785,7 +785,7 @@ static void disable_for_period(struct bau_control *bcp, struct ptc_stats *stat) + cycles_t tm1; + + hmaster = bcp->uvhub_master; +- raw_spin_lock(&hmaster->disable_lock); ++ spin_lock(&hmaster->disable_lock); + if (!bcp->baudisabled) { + stat->s_bau_disabled++; + tm1 = get_cycles(); +@@ -798,7 +798,7 @@ static void disable_for_period(struct bau_control *bcp, struct ptc_stats *stat) + } + } + } +- raw_spin_unlock(&hmaster->disable_lock); ++ spin_unlock(&hmaster->disable_lock); + } + + static void count_max_concurr(int stat, struct bau_control *bcp, +@@ -861,7 +861,7 @@ static void record_send_stats(cycles_t time1, cycles_t time2, + */ + static void uv1_throttle(struct bau_control *hmaster, struct ptc_stats *stat) + { +- raw_spinlock_t *lock = &hmaster->uvhub_lock; ++ spinlock_t *lock = &hmaster->uvhub_lock; + atomic_t *v; + + v = &hmaster->active_descriptor_count; +@@ -995,7 +995,7 @@ static int check_enable(struct bau_control *bcp, struct ptc_stats *stat) + struct bau_control *hmaster; + + hmaster = bcp->uvhub_master; +- raw_spin_lock(&hmaster->disable_lock); ++ spin_lock(&hmaster->disable_lock); + if (bcp->baudisabled && (get_cycles() >= bcp->set_bau_on_time)) { + stat->s_bau_reenabled++; + for_each_present_cpu(tcpu) { +@@ -1007,10 +1007,10 @@ static int check_enable(struct bau_control *bcp, struct ptc_stats *stat) + tbcp->period_giveups = 0; + } + } +- raw_spin_unlock(&hmaster->disable_lock); ++ spin_unlock(&hmaster->disable_lock); + return 0; + } +- raw_spin_unlock(&hmaster->disable_lock); ++ spin_unlock(&hmaster->disable_lock); + return -1; + } + +@@ -1942,9 +1942,9 @@ static void __init init_per_cpu_tunables(void) + bcp->cong_reps = congested_reps; + bcp->disabled_period = sec_2_cycles(disabled_period); + bcp->giveup_limit = giveup_limit; +- raw_spin_lock_init(&bcp->queue_lock); +- raw_spin_lock_init(&bcp->uvhub_lock); +- raw_spin_lock_init(&bcp->disable_lock); ++ spin_lock_init(&bcp->queue_lock); ++ spin_lock_init(&bcp->uvhub_lock); ++ spin_lock_init(&bcp->disable_lock); + } + } + +diff --git a/arch/x86/platform/uv/uv_time.c b/arch/x86/platform/uv/uv_time.c +index badf377efc21..b082d71b08ee 100644 +--- a/arch/x86/platform/uv/uv_time.c ++++ b/arch/x86/platform/uv/uv_time.c +@@ -57,7 +57,7 @@ static DEFINE_PER_CPU(struct clock_event_device, cpu_ced); + + /* There is one of these allocated per node */ + struct uv_rtc_timer_head { +- raw_spinlock_t lock; ++ spinlock_t lock; + /* next cpu waiting for timer, local node relative: */ + int next_cpu; + /* number of cpus on this node: */ +@@ -177,7 +177,7 @@ static __init int uv_rtc_allocate_timers(void) + uv_rtc_deallocate_timers(); + return -ENOMEM; + } +- raw_spin_lock_init(&head->lock); ++ spin_lock_init(&head->lock); + head->ncpus = uv_blade_nr_possible_cpus(bid); + head->next_cpu = -1; + blade_info[bid] = head; +@@ -231,7 +231,7 @@ static int uv_rtc_set_timer(int cpu, u64 expires) + unsigned long flags; + int next_cpu; + +- raw_spin_lock_irqsave(&head->lock, flags); ++ spin_lock_irqsave(&head->lock, flags); + + next_cpu = head->next_cpu; + *t = expires; +@@ -243,12 +243,12 @@ static int uv_rtc_set_timer(int cpu, u64 expires) + if (uv_setup_intr(cpu, expires)) { + *t = ULLONG_MAX; + uv_rtc_find_next_timer(head, pnode); +- raw_spin_unlock_irqrestore(&head->lock, flags); ++ spin_unlock_irqrestore(&head->lock, flags); + return -ETIME; + } + } + +- raw_spin_unlock_irqrestore(&head->lock, flags); ++ spin_unlock_irqrestore(&head->lock, flags); + return 0; + } + +@@ -267,7 +267,7 @@ static int uv_rtc_unset_timer(int cpu, int force) + unsigned long flags; + int rc = 0; + +- raw_spin_lock_irqsave(&head->lock, flags); ++ spin_lock_irqsave(&head->lock, flags); + + if ((head->next_cpu == bcpu && uv_read_rtc(NULL) >= *t) || force) + rc = 1; +@@ -279,7 +279,7 @@ static int uv_rtc_unset_timer(int cpu, int force) + uv_rtc_find_next_timer(head, pnode); + } + +- raw_spin_unlock_irqrestore(&head->lock, flags); ++ spin_unlock_irqrestore(&head->lock, flags); + + return rc; + } +@@ -299,17 +299,13 @@ static int uv_rtc_unset_timer(int cpu, int force) + static u64 uv_read_rtc(struct clocksource *cs) + { + unsigned long offset; +- u64 cycles; + +- preempt_disable(); + if (uv_get_min_hub_revision_id() == 1) + offset = 0; + else + offset = (uv_blade_processor_id() * L1_CACHE_BYTES) % PAGE_SIZE; + +- cycles = (u64)uv_read_local_mmr(UVH_RTC | offset); +- preempt_enable(); +- return cycles; ++ return (u64)uv_read_local_mmr(UVH_RTC | offset); + } + + /* +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0421-Revert-timer-delay-waking-softirqs-from-the-jiffy-ti.patch b/kernel/patches-4.14.x-rt/0421-Revert-timer-delay-waking-softirqs-from-the-jiffy-ti.patch new file mode 100644 index 000000000..864883937 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0421-Revert-timer-delay-waking-softirqs-from-the-jiffy-ti.patch @@ -0,0 +1,44 @@ +From 7ef045f8804f584fee1bf69ba1687a81e83f0af8 Mon Sep 17 00:00:00 2001 +From: Anna-Maria Gleixner +Date: Thu, 5 Jul 2018 12:43:18 +0200 +Subject: [PATCH 421/436] Revert "timer: delay waking softirqs from the jiffy + tick" + +[ Upstream commit b5b16907c58280e015d5673dca4c6bd3fde0c348 ] + +This patch was required as long as RT tasks where accounted to CFS +load but this was only a work around. Upstream Commit 17bdcf949d03 +("sched: Drop all load weight manipulation for RT tasks") fixed the +accounting of RT tasks into CFS load. + +Remove the patch and fix dependencies. + +Signed-off-by: Anna-Maria Gleixner +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + kernel/time/timer.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kernel/time/timer.c b/kernel/time/timer.c +index ea742b49bdb5..5fadd754ce20 100644 +--- a/kernel/time/timer.c ++++ b/kernel/time/timer.c +@@ -1635,13 +1635,13 @@ void update_process_times(int user_tick) + + /* Note: this timer irq context must be accounted for as well. */ + account_process_tick(p, user_tick); +- scheduler_tick(); + run_local_timers(); + rcu_check_callbacks(user_tick); + #if defined(CONFIG_IRQ_WORK) + if (in_irq()) + irq_work_tick(); + #endif ++ scheduler_tick(); + if (IS_ENABLED(CONFIG_POSIX_TIMERS)) + run_posix_cpu_timers(p); + } +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0422-irqchip-gic-v3-its-Make-its_lock-a-raw_spin_lock_t.patch b/kernel/patches-4.14.x-rt/0422-irqchip-gic-v3-its-Make-its_lock-a-raw_spin_lock_t.patch new file mode 100644 index 000000000..27ac390f9 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0422-irqchip-gic-v3-its-Make-its_lock-a-raw_spin_lock_t.patch @@ -0,0 +1,65 @@ +From 4aba38b007110d6597d8ce5a74c1fd13a4b4560e Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 13 Jul 2018 15:30:52 +0200 +Subject: [PATCH 422/436] irqchip/gic-v3-its: Make its_lock a raw_spin_lock_t + +[ Upstream commit c7a3334c762a9b1dd2e39cb2ded00ce66e8a06d1 ] + +The its_lock lock is held while a new device is added to the list and +during setup while the CPU is booted. Even on -RT the CPU-bootup is +performed with disabled interrupts. + +Make its_lock a raw_spin_lock_t. + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + drivers/irqchip/irq-gic-v3-its.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c +index 2ea39a83737f..e8217ebe8c1e 100644 +--- a/drivers/irqchip/irq-gic-v3-its.c ++++ b/drivers/irqchip/irq-gic-v3-its.c +@@ -148,7 +148,7 @@ static struct { + } vpe_proxy; + + static LIST_HEAD(its_nodes); +-static DEFINE_SPINLOCK(its_lock); ++static DEFINE_RAW_SPINLOCK(its_lock); + static struct rdists *gic_rdists; + static struct irq_domain *its_parent; + +@@ -1850,7 +1850,7 @@ static void its_cpu_init_collection(void) + struct its_node *its; + int cpu; + +- spin_lock(&its_lock); ++ raw_spin_lock(&its_lock); + cpu = smp_processor_id(); + + list_for_each_entry(its, &its_nodes, entry) { +@@ -1892,7 +1892,7 @@ static void its_cpu_init_collection(void) + its_send_invall(its, &its->collections[cpu]); + } + +- spin_unlock(&its_lock); ++ raw_spin_unlock(&its_lock); + } + + static struct its_device *its_find_device(struct its_node *its, u32 dev_id) +@@ -3041,9 +3041,9 @@ static int __init its_probe_one(struct resource *res, + if (err) + goto out_free_tables; + +- spin_lock(&its_lock); ++ raw_spin_lock(&its_lock); + list_add(&its->entry, &its_nodes); +- spin_unlock(&its_lock); ++ raw_spin_unlock(&its_lock); + + return 0; + +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0423-sched-migrate_disable-fallback-to-preempt_disable-in.patch b/kernel/patches-4.14.x-rt/0423-sched-migrate_disable-fallback-to-preempt_disable-in.patch new file mode 100644 index 000000000..fc42dc6b1 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0423-sched-migrate_disable-fallback-to-preempt_disable-in.patch @@ -0,0 +1,206 @@ +From 2f8a4bc223b79c611945296d08dadf7a3fefa58d Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Thu, 5 Jul 2018 14:44:51 +0200 +Subject: [PATCH 423/436] sched/migrate_disable: fallback to preempt_disable() + instead barrier() + +[ Upstream commit 10e90c155bbc7cab420f47694404f8f9fe33c2b2 ] + +On SMP + !RT migrate_disable() is still around. It is not part of spin_lock() +anymore so it has almost no users. However the futex code has a workaround for +the !in_atomic() part of migrate disable which fails because the matching +migrade_disable() is no longer part of spin_lock(). + +On !SMP + !RT migrate_disable() is reduced to barrier(). This is not optimal +because we few spots where a "preempt_disable()" statement was replaced with +"migrate_disable()". + +We also used the migration_disable counter to figure out if a sleeping lock is +acquired so RCU does not complain about schedule() during rcu_read_lock() while +a sleeping lock is held. This changed, we no longer use it, we have now a +sleeping_lock counter for the RCU purpose. + +This means we can now: +- for SMP + RT_BASE + full migration program, nothing changes here + +- for !SMP + RT_BASE + the migration counting is no longer required. It used to ensure that the task + is not migrated to another CPU and that this CPU remains online. !SMP ensures + that already. + Move it to CONFIG_SCHED_DEBUG so the counting is done for debugging purpose + only. + +- for all other cases including !RT + fallback to preempt_disable(). The only remaining users of migrate_disable() + are those which were converted from preempt_disable() and the futex + workaround which is already in the preempt_disable() section due to the + spin_lock that is held. + +Cc: stable-rt@vger.kernel.org +Reported-by: joe.korty@concurrent-rt.com +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + include/linux/preempt.h | 6 +++--- + include/linux/sched.h | 4 ++-- + kernel/sched/core.c | 23 +++++++++++------------ + kernel/sched/debug.c | 2 +- + 4 files changed, 17 insertions(+), 18 deletions(-) + +diff --git a/include/linux/preempt.h b/include/linux/preempt.h +index 0591df500e9d..6728662a81e8 100644 +--- a/include/linux/preempt.h ++++ b/include/linux/preempt.h +@@ -224,7 +224,7 @@ do { \ + + #define preemptible() (preempt_count() == 0 && !irqs_disabled()) + +-#ifdef CONFIG_SMP ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + + extern void migrate_disable(void); + extern void migrate_enable(void); +@@ -241,8 +241,8 @@ static inline int __migrate_disabled(struct task_struct *p) + } + + #else +-#define migrate_disable() barrier() +-#define migrate_enable() barrier() ++#define migrate_disable() preempt_disable() ++#define migrate_enable() preempt_enable() + static inline int __migrate_disabled(struct task_struct *p) + { + return 0; +diff --git a/include/linux/sched.h b/include/linux/sched.h +index c26b5ff005ab..a6ffb552be01 100644 +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -626,7 +626,7 @@ struct task_struct { + int nr_cpus_allowed; + const cpumask_t *cpus_ptr; + cpumask_t cpus_mask; +-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + int migrate_disable; + int migrate_disable_update; + int pinned_on_cpu; +@@ -635,8 +635,8 @@ struct task_struct { + # endif + + #elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) +- int migrate_disable; + # ifdef CONFIG_SCHED_DEBUG ++ int migrate_disable; + int migrate_disable_atomic; + # endif + #endif +diff --git a/kernel/sched/core.c b/kernel/sched/core.c +index e7817c6c44d2..fa5b76255f8c 100644 +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -1107,7 +1107,7 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma + p->nr_cpus_allowed = cpumask_weight(new_mask); + } + +-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + int __migrate_disabled(struct task_struct *p) + { + return p->migrate_disable; +@@ -1146,7 +1146,7 @@ static void __do_set_cpus_allowed_tail(struct task_struct *p, + + void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) + { +-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + if (__migrate_disabled(p)) { + lockdep_assert_held(&p->pi_lock); + +@@ -1219,7 +1219,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, + if (cpumask_test_cpu(task_cpu(p), new_mask) || __migrate_disabled(p)) + goto out; + +-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + if (__migrate_disabled(p)) { + p->migrate_disable_update = 1; + goto out; +@@ -6897,7 +6897,7 @@ const u32 sched_prio_to_wmult[40] = { + /* 15 */ 119304647, 148102320, 186737708, 238609294, 286331153, + }; + +-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + + static inline void + update_nr_migratory(struct task_struct *p, long delta) +@@ -7048,45 +7048,44 @@ EXPORT_SYMBOL(migrate_enable); + #elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + void migrate_disable(void) + { ++#ifdef CONFIG_SCHED_DEBUG + struct task_struct *p = current; + + if (in_atomic() || irqs_disabled()) { +-#ifdef CONFIG_SCHED_DEBUG + p->migrate_disable_atomic++; +-#endif + return; + } +-#ifdef CONFIG_SCHED_DEBUG ++ + if (unlikely(p->migrate_disable_atomic)) { + tracing_off(); + WARN_ON_ONCE(1); + } +-#endif + + p->migrate_disable++; ++#endif ++ barrier(); + } + EXPORT_SYMBOL(migrate_disable); + + void migrate_enable(void) + { ++#ifdef CONFIG_SCHED_DEBUG + struct task_struct *p = current; + + if (in_atomic() || irqs_disabled()) { +-#ifdef CONFIG_SCHED_DEBUG + p->migrate_disable_atomic--; +-#endif + return; + } + +-#ifdef CONFIG_SCHED_DEBUG + if (unlikely(p->migrate_disable_atomic)) { + tracing_off(); + WARN_ON_ONCE(1); + } +-#endif + + WARN_ON_ONCE(p->migrate_disable <= 0); + p->migrate_disable--; ++#endif ++ barrier(); + } + EXPORT_SYMBOL(migrate_enable); + #endif +diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c +index 3108da1ee253..b5b43861c2b6 100644 +--- a/kernel/sched/debug.c ++++ b/kernel/sched/debug.c +@@ -1017,7 +1017,7 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns, + P(dl.runtime); + P(dl.deadline); + } +-#if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) ++#if defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) + P(migrate_disable); + #endif + P(nr_cpus_allowed); +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0424-irqchip-gic-v3-its-Move-ITS-pend_page-allocation-int.patch b/kernel/patches-4.14.x-rt/0424-irqchip-gic-v3-its-Move-ITS-pend_page-allocation-int.patch new file mode 100644 index 000000000..d2343bdf6 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0424-irqchip-gic-v3-its-Move-ITS-pend_page-allocation-int.patch @@ -0,0 +1,137 @@ +From 4b7964d44db047c3f61769e6f6adadde9e3882b1 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Fri, 13 Jul 2018 15:45:36 +0200 +Subject: [PATCH 424/436] irqchip/gic-v3-its: Move ITS' ->pend_page allocation + into an early CPU up hook + +[ Upstream commit e083f14dc2e98ced872bf077b4d1cccf95b7e4f8 ] + +The AP-GIC-starting hook allocates memory for the ->pend_page while the +CPU is started during boot-up. This callback is invoked on the target +CPU with disabled interrupts. +This does not work on -RT beacuse memory allocations are not possible +with disabled interrupts. +Move the memory allocation to an earlier hotplug step which invoked with +enabled interrupts on the boot CPU. + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + drivers/irqchip/irq-gic-v3-its.c | 60 ++++++++++++++++++++++---------- + 1 file changed, 41 insertions(+), 19 deletions(-) + +diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c +index e8217ebe8c1e..60533a795124 100644 +--- a/drivers/irqchip/irq-gic-v3-its.c ++++ b/drivers/irqchip/irq-gic-v3-its.c +@@ -165,6 +165,7 @@ static DEFINE_RAW_SPINLOCK(vmovp_lock); + static DEFINE_IDA(its_vpeid_ida); + + #define gic_data_rdist() (raw_cpu_ptr(gic_rdists->rdist)) ++#define gic_data_rdist_cpu(cpu) (per_cpu_ptr(gic_rdists->rdist, cpu)) + #define gic_data_rdist_rd_base() (gic_data_rdist()->rd_base) + #define gic_data_rdist_vlpi_base() (gic_data_rdist_rd_base() + SZ_128K) + +@@ -1734,15 +1735,17 @@ static int its_alloc_collections(struct its_node *its) + return 0; + } + +-static struct page *its_allocate_pending_table(gfp_t gfp_flags) ++static struct page *its_allocate_pending_table(unsigned int cpu) + { + struct page *pend_page; ++ unsigned int order; + /* + * The pending pages have to be at least 64kB aligned, + * hence the 'max(LPI_PENDBASE_SZ, SZ_64K)' below. + */ +- pend_page = alloc_pages(gfp_flags | __GFP_ZERO, +- get_order(max_t(u32, LPI_PENDBASE_SZ, SZ_64K))); ++ order = get_order(max_t(u32, LPI_PENDBASE_SZ, SZ_64K)); ++ pend_page = alloc_pages_node(cpu_to_node(cpu), GFP_KERNEL | __GFP_ZERO, ++ order); + if (!pend_page) + return NULL; + +@@ -1758,6 +1761,28 @@ static void its_free_pending_table(struct page *pt) + get_order(max_t(u32, LPI_PENDBASE_SZ, SZ_64K))); + } + ++static int its_alloc_pend_page(unsigned int cpu) ++{ ++ struct page *pend_page; ++ phys_addr_t paddr; ++ ++ pend_page = gic_data_rdist_cpu(cpu)->pend_page; ++ if (pend_page) ++ return 0; ++ ++ pend_page = its_allocate_pending_table(cpu); ++ if (!pend_page) { ++ pr_err("Failed to allocate PENDBASE for CPU%d\n", ++ smp_processor_id()); ++ return -ENOMEM; ++ } ++ ++ paddr = page_to_phys(pend_page); ++ pr_info("CPU%d: using LPI pending table @%pa\n", cpu, &paddr); ++ gic_data_rdist_cpu(cpu)->pend_page = pend_page; ++ return 0; ++} ++ + static void its_cpu_init_lpis(void) + { + void __iomem *rbase = gic_data_rdist_rd_base(); +@@ -1766,21 +1791,8 @@ static void its_cpu_init_lpis(void) + + /* If we didn't allocate the pending table yet, do it now */ + pend_page = gic_data_rdist()->pend_page; +- if (!pend_page) { +- phys_addr_t paddr; +- +- pend_page = its_allocate_pending_table(GFP_NOWAIT); +- if (!pend_page) { +- pr_err("Failed to allocate PENDBASE for CPU%d\n", +- smp_processor_id()); +- return; +- } +- +- paddr = page_to_phys(pend_page); +- pr_info("CPU%d: using LPI pending table @%pa\n", +- smp_processor_id(), &paddr); +- gic_data_rdist()->pend_page = pend_page; +- } ++ if (!pend_page) ++ return; + + /* Disable LPIs */ + val = readl_relaxed(rbase + GICR_CTLR); +@@ -2599,7 +2611,7 @@ static int its_vpe_init(struct its_vpe *vpe) + return vpe_id; + + /* Allocate VPT */ +- vpt_page = its_allocate_pending_table(GFP_KERNEL); ++ vpt_page = its_allocate_pending_table(raw_smp_processor_id()); + if (!vpt_page) { + its_vpe_id_free(vpe_id); + return -ENOMEM; +@@ -3282,6 +3294,16 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists, + if (err) + return err; + ++ err = cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "irqchip/arm/gicv3:prepare", ++ its_alloc_pend_page, NULL); ++ if (err < 0) { ++ pr_warn("ITS: Can't register CPU-hoplug callback.\n"); ++ return err; ++ } ++ err = its_alloc_pend_page(smp_processor_id()); ++ if (err < 0) ++ return err; ++ + list_for_each_entry(its, &its_nodes, entry) + has_v4 |= its->is_v4; + +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0425-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch b/kernel/patches-4.14.x-rt/0425-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch new file mode 100644 index 000000000..d43281c8d --- /dev/null +++ b/kernel/patches-4.14.x-rt/0425-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch @@ -0,0 +1,173 @@ +From edb2be9eb844cf874d51707077bea3dfab3a1169 Mon Sep 17 00:00:00 2001 +From: Marc Zyngier +Date: Fri, 27 Jul 2018 13:38:54 +0100 +Subject: [PATCH 425/436] irqchip/gic-v3-its: Move pending table allocation to + init time + +[ Upstream commit 4a0819bb25d12d39c0390636122eefba232596c1 ] + +Signed-off-by: Marc Zyngier +[bigeasy: backport commit effe377d415 ("irqchip/gic-v3-its: Move pending + table allocation to init time")] +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + drivers/irqchip/irq-gic-v3-its.c | 71 +++++++++++++++--------------- + include/linux/irqchip/arm-gic-v3.h | 1 + + 2 files changed, 37 insertions(+), 35 deletions(-) + +diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c +index 60533a795124..a3e23d0fc4af 100644 +--- a/drivers/irqchip/irq-gic-v3-its.c ++++ b/drivers/irqchip/irq-gic-v3-its.c +@@ -1433,7 +1433,7 @@ static void its_free_prop_table(struct page *prop_page) + get_order(LPI_PROPBASE_SZ)); + } + +-static int __init its_alloc_lpi_tables(void) ++static int __init its_alloc_lpi_prop_table(void) + { + phys_addr_t paddr; + +@@ -1735,17 +1735,15 @@ static int its_alloc_collections(struct its_node *its) + return 0; + } + +-static struct page *its_allocate_pending_table(unsigned int cpu) ++static struct page *its_allocate_pending_table(gfp_t gfp_flags) + { + struct page *pend_page; +- unsigned int order; + /* + * The pending pages have to be at least 64kB aligned, + * hence the 'max(LPI_PENDBASE_SZ, SZ_64K)' below. + */ +- order = get_order(max_t(u32, LPI_PENDBASE_SZ, SZ_64K)); +- pend_page = alloc_pages_node(cpu_to_node(cpu), GFP_KERNEL | __GFP_ZERO, +- order); ++ pend_page = alloc_pages(gfp_flags | __GFP_ZERO, ++ get_order(max_t(u32, LPI_PENDBASE_SZ, SZ_64K))); + if (!pend_page) + return NULL; + +@@ -1761,25 +1759,31 @@ static void its_free_pending_table(struct page *pt) + get_order(max_t(u32, LPI_PENDBASE_SZ, SZ_64K))); + } + +-static int its_alloc_pend_page(unsigned int cpu) ++static int __init allocate_lpi_tables(void) + { +- struct page *pend_page; +- phys_addr_t paddr; ++ int err, cpu; + +- pend_page = gic_data_rdist_cpu(cpu)->pend_page; +- if (pend_page) +- return 0; ++ err = its_alloc_lpi_prop_table(); ++ if (err) ++ return err; + +- pend_page = its_allocate_pending_table(cpu); +- if (!pend_page) { +- pr_err("Failed to allocate PENDBASE for CPU%d\n", +- smp_processor_id()); +- return -ENOMEM; ++ /* ++ * We allocate all the pending tables anyway, as we may have a ++ * mix of RDs that have had LPIs enabled, and some that ++ * don't. We'll free the unused ones as each CPU comes online. ++ */ ++ for_each_possible_cpu(cpu) { ++ struct page *pend_page; ++ ++ pend_page = its_allocate_pending_table(GFP_NOWAIT); ++ if (!pend_page) { ++ pr_err("Failed to allocate PENDBASE for CPU%d\n", cpu); ++ return -ENOMEM; ++ } ++ ++ gic_data_rdist_cpu(cpu)->pend_page = pend_page; + } + +- paddr = page_to_phys(pend_page); +- pr_info("CPU%d: using LPI pending table @%pa\n", cpu, &paddr); +- gic_data_rdist_cpu(cpu)->pend_page = pend_page; + return 0; + } + +@@ -1787,13 +1791,15 @@ static void its_cpu_init_lpis(void) + { + void __iomem *rbase = gic_data_rdist_rd_base(); + struct page *pend_page; ++ phys_addr_t paddr; + u64 val, tmp; + +- /* If we didn't allocate the pending table yet, do it now */ +- pend_page = gic_data_rdist()->pend_page; +- if (!pend_page) ++ if (gic_data_rdist()->lpi_enabled) + return; + ++ pend_page = gic_data_rdist()->pend_page; ++ paddr = page_to_phys(pend_page); ++ + /* Disable LPIs */ + val = readl_relaxed(rbase + GICR_CTLR); + val &= ~GICR_CTLR_ENABLE_LPIS; +@@ -1855,6 +1861,10 @@ static void its_cpu_init_lpis(void) + + /* Make sure the GIC has seen the above */ + dsb(sy); ++ gic_data_rdist()->lpi_enabled = true; ++ pr_info("GICv3: CPU%d: using LPI pending table @%pa\n", ++ smp_processor_id(), ++ &paddr); + } + + static void its_cpu_init_collection(void) +@@ -2611,7 +2621,7 @@ static int its_vpe_init(struct its_vpe *vpe) + return vpe_id; + + /* Allocate VPT */ +- vpt_page = its_allocate_pending_table(raw_smp_processor_id()); ++ vpt_page = its_allocate_pending_table(GFP_KERNEL); + if (!vpt_page) { + its_vpe_id_free(vpe_id); + return -ENOMEM; +@@ -3290,18 +3300,9 @@ int __init its_init(struct fwnode_handle *handle, struct rdists *rdists, + } + + gic_rdists = rdists; +- err = its_alloc_lpi_tables(); +- if (err) +- return err; + +- err = cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "irqchip/arm/gicv3:prepare", +- its_alloc_pend_page, NULL); +- if (err < 0) { +- pr_warn("ITS: Can't register CPU-hoplug callback.\n"); +- return err; +- } +- err = its_alloc_pend_page(smp_processor_id()); +- if (err < 0) ++ err = allocate_lpi_tables(); ++ if (err) + return err; + + list_for_each_entry(its, &its_nodes, entry) +diff --git a/include/linux/irqchip/arm-gic-v3.h b/include/linux/irqchip/arm-gic-v3.h +index bacb499c512c..688f2565294c 100644 +--- a/include/linux/irqchip/arm-gic-v3.h ++++ b/include/linux/irqchip/arm-gic-v3.h +@@ -568,6 +568,7 @@ struct rdists { + void __iomem *rd_base; + struct page *pend_page; + phys_addr_t phys_base; ++ bool lpi_enabled; + } __percpu *rdist; + struct page *prop_page; + int id_bits; +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0426-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch b/kernel/patches-4.14.x-rt/0426-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch new file mode 100644 index 000000000..041588628 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0426-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch @@ -0,0 +1,116 @@ +From c8f112e5ce1bd8876420ea8f2edea2e0c518034b Mon Sep 17 00:00:00 2001 +From: Thomas Gleixner +Date: Thu, 19 Jul 2018 21:50:23 +0200 +Subject: [PATCH 426/436] x86/ioapic: Don't let setaffinity unmask threaded EOI + interrupt too early + +[ Upstream commit ac14002317721910204b82b9d8611dadb1cec2bb ] + +There is an issue with threaded interrupts which are marked ONESHOT +and using the fasteoi handler. + + if (IS_ONESHOT()) + mask_irq(); + + .... + .... + + cond_unmask_eoi_irq() + chip->irq_eoi(); + +So if setaffinity is pending then the interrupt will be moved and then +unmasked, which is wrong as it should be kept masked up to the point where +the threaded handler finished. It's not a real problem, the interrupt will +just be able to fire before the threaded handler has finished, though the irq +masked state will be wrong for a bit. + +The patch below should cure the issue. It also renames the horribly +misnomed functions so it becomes clear what they are supposed to do. + +Signed-off-by: Thomas Gleixner +Signed-off-by: Steven Rostedt (VMware) +[bigeasy: add the body of the patch, use the same functions in both + ifdef paths (spotted by Andy Shevchenko)] +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/x86/kernel/apic/io_apic.c | 26 ++++++++++++++------------ + 1 file changed, 14 insertions(+), 12 deletions(-) + +diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c +index 5832a9d657f2..c9af5afebc4a 100644 +--- a/arch/x86/kernel/apic/io_apic.c ++++ b/arch/x86/kernel/apic/io_apic.c +@@ -1688,20 +1688,20 @@ static bool io_apic_level_ack_pending(struct mp_chip_data *data) + return false; + } + +-static inline bool ioapic_irqd_mask(struct irq_data *data) ++static inline bool ioapic_prepare_move(struct irq_data *data) + { + /* If we are moving the irq we need to mask it */ +- if (unlikely(irqd_is_setaffinity_pending(data) && +- !irqd_irq_inprogress(data))) { +- mask_ioapic_irq(data); ++ if (unlikely(irqd_is_setaffinity_pending(data))) { ++ if (!irqd_irq_masked(data)) ++ mask_ioapic_irq(data); + return true; + } + return false; + } + +-static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked) ++static inline void ioapic_finish_move(struct irq_data *data, bool moveit) + { +- if (unlikely(masked)) { ++ if (unlikely(moveit)) { + /* Only migrate the irq if the ack has been received. + * + * On rare occasions the broadcast level triggered ack gets +@@ -1730,15 +1730,17 @@ static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked) + */ + if (!io_apic_level_ack_pending(data->chip_data)) + irq_move_masked_irq(data); +- unmask_ioapic_irq(data); ++ /* If the irq is masked in the core, leave it */ ++ if (!irqd_irq_masked(data)) ++ unmask_ioapic_irq(data); + } + } + #else +-static inline bool ioapic_irqd_mask(struct irq_data *data) ++static inline bool ioapic_prepare_move(struct irq_data *data) + { + return false; + } +-static inline void ioapic_irqd_unmask(struct irq_data *data, bool masked) ++static inline void ioapic_finish_move(struct irq_data *data, bool moveit) + { + } + #endif +@@ -1747,11 +1749,11 @@ static void ioapic_ack_level(struct irq_data *irq_data) + { + struct irq_cfg *cfg = irqd_cfg(irq_data); + unsigned long v; +- bool masked; ++ bool moveit; + int i; + + irq_complete_move(cfg); +- masked = ioapic_irqd_mask(irq_data); ++ moveit = ioapic_prepare_move(irq_data); + + /* + * It appears there is an erratum which affects at least version 0x11 +@@ -1806,7 +1808,7 @@ static void ioapic_ack_level(struct irq_data *irq_data) + eoi_ioapic_pin(cfg->vector, irq_data->chip_data); + } + +- ioapic_irqd_unmask(irq_data, masked); ++ ioapic_finish_move(irq_data, moveit); + } + + static void ioapic_ir_ack_level(struct irq_data *irq_data) +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0427-efi-Allow-efi-runtime.patch b/kernel/patches-4.14.x-rt/0427-efi-Allow-efi-runtime.patch new file mode 100644 index 000000000..605ef6725 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0427-efi-Allow-efi-runtime.patch @@ -0,0 +1,33 @@ +From 904086d9edef10e6ae118ba3e2898cd9e95d5ea3 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Thu, 26 Jul 2018 15:06:10 +0200 +Subject: [PATCH 427/436] efi: Allow efi=runtime + +[ Upstream commit 71bef7da4112ed2677d4f10a58202a5a4638fb90 ] + +In case the option "efi=noruntime" is default at built-time, the user +could overwrite its sate by `efi=runtime' and allow it again. + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + drivers/firmware/efi/efi.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index c3eefa126e3b..9bd749389f31 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -100,6 +100,9 @@ static int __init parse_efi_cmdline(char *str) + if (parse_option_str(str, "noruntime")) + disable_runtime = true; + ++ if (parse_option_str(str, "runtime")) ++ disable_runtime = false; ++ + return 0; + } + early_param("efi", parse_efi_cmdline); +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0428-efi-Disable-runtime-services-on-RT.patch b/kernel/patches-4.14.x-rt/0428-efi-Disable-runtime-services-on-RT.patch new file mode 100644 index 000000000..0dd056890 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0428-efi-Disable-runtime-services-on-RT.patch @@ -0,0 +1,47 @@ +From cef186a73b86a430b55cb8f3d2ddf4ec2de46a60 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Thu, 26 Jul 2018 15:03:16 +0200 +Subject: [PATCH 428/436] efi: Disable runtime services on RT + +[ Upstream commit 55544e1d5eb0d7608e2b41452729649c8ea1607a ] + +Based on meassurements the EFI functions get_variable / +get_next_variable take up to 2us which looks okay. +The functions get_time, set_time take around 10ms. Those 10ms are too +much. Even one ms would be too much. +Ard mentioned that SetVariable might even trigger larger latencies if +the firware will erase flash blocks on NOR. + +The time-functions are used by efi-rtc and can be triggered during +runtimed (either via explicit read/write or ntp sync). + +The variable write could be used by pstore. +These functions can be disabled without much of a loss. The poweroff / +reboot hooks may be provided by PSCI. + +Disable EFI's runtime wrappers. + +This was observed on "EFI v2.60 by SoftIron Overdrive 1000". + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + drivers/firmware/efi/efi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c +index 9bd749389f31..47093745a53c 100644 +--- a/drivers/firmware/efi/efi.c ++++ b/drivers/firmware/efi/efi.c +@@ -74,7 +74,7 @@ static unsigned long *efi_tables[] = { + &efi.mem_attr_table, + }; + +-static bool disable_runtime; ++static bool disable_runtime = IS_ENABLED(CONFIG_PREEMPT_RT_BASE); + static int __init setup_noefi(char *arg) + { + disable_runtime = true; +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0429-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch b/kernel/patches-4.14.x-rt/0429-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch new file mode 100644 index 000000000..bfce1edda --- /dev/null +++ b/kernel/patches-4.14.x-rt/0429-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch @@ -0,0 +1,87 @@ +From a6a96c538434513c332f89ea3a654e5d536fa29d Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Thu, 26 Jul 2018 18:52:00 +0200 +Subject: [PATCH 429/436] crypto: cryptd - add a lock instead + preempt_disable/local_bh_disable + +[ Upstream commit 21aedb30d85979697f79a72a084e5d781e323663 ] + +cryptd has a per-CPU lock which protected with local_bh_disable() and +preempt_disable(). +Add an explicit spin_lock to make the locking context more obvious and +visible to lockdep. Since it is a per-CPU lock, there should be no lock +contention on the actual spinlock. +There is a small race-window where we could be migrated to another CPU +after the cpu_queue has been obtain. This is not a problem because the +actual ressource is protected by the spinlock. + +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + crypto/cryptd.c | 19 +++++++++---------- + 1 file changed, 9 insertions(+), 10 deletions(-) + +diff --git a/crypto/cryptd.c b/crypto/cryptd.c +index 248f6ba41688..54b7985c8caa 100644 +--- a/crypto/cryptd.c ++++ b/crypto/cryptd.c +@@ -37,6 +37,7 @@ + struct cryptd_cpu_queue { + struct crypto_queue queue; + struct work_struct work; ++ spinlock_t qlock; + }; + + struct cryptd_queue { +@@ -115,6 +116,7 @@ static int cryptd_init_queue(struct cryptd_queue *queue, + cpu_queue = per_cpu_ptr(queue->cpu_queue, cpu); + crypto_init_queue(&cpu_queue->queue, max_cpu_qlen); + INIT_WORK(&cpu_queue->work, cryptd_queue_worker); ++ spin_lock_init(&cpu_queue->qlock); + } + return 0; + } +@@ -139,8 +141,10 @@ static int cryptd_enqueue_request(struct cryptd_queue *queue, + atomic_t *refcnt; + bool may_backlog; + +- cpu = get_cpu(); +- cpu_queue = this_cpu_ptr(queue->cpu_queue); ++ cpu_queue = raw_cpu_ptr(queue->cpu_queue); ++ spin_lock_bh(&cpu_queue->qlock); ++ cpu = smp_processor_id(); ++ + err = crypto_enqueue_request(&cpu_queue->queue, request); + + refcnt = crypto_tfm_ctx(request->tfm); +@@ -157,7 +161,7 @@ static int cryptd_enqueue_request(struct cryptd_queue *queue, + atomic_inc(refcnt); + + out_put_cpu: +- put_cpu(); ++ spin_unlock_bh(&cpu_queue->qlock); + + return err; + } +@@ -173,16 +177,11 @@ static void cryptd_queue_worker(struct work_struct *work) + cpu_queue = container_of(work, struct cryptd_cpu_queue, work); + /* + * Only handle one request at a time to avoid hogging crypto workqueue. +- * preempt_disable/enable is used to prevent being preempted by +- * cryptd_enqueue_request(). local_bh_disable/enable is used to prevent +- * cryptd_enqueue_request() being accessed from software interrupts. + */ +- local_bh_disable(); +- preempt_disable(); ++ spin_lock_bh(&cpu_queue->qlock); + backlog = crypto_get_backlog(&cpu_queue->queue); + req = crypto_dequeue_request(&cpu_queue->queue); +- preempt_enable(); +- local_bh_enable(); ++ spin_unlock_bh(&cpu_queue->qlock); + + if (!req) + return; +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0430-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch b/kernel/patches-4.14.x-rt/0430-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch new file mode 100644 index 000000000..f46598612 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0430-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch @@ -0,0 +1,85 @@ +From e992ad0ed46854501a59cf8092d03837b58333e5 Mon Sep 17 00:00:00 2001 +From: Mike Galbraith +Date: Wed, 11 Jul 2018 17:14:47 +0200 +Subject: [PATCH 430/436] crypto: scompress - serialize RT percpu scratch + buffer access with a local lock + +[ Upstream commit 1a4eff3f8e743d149be26a414822710aef07fe14 ] + +| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974 +| in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test +| Preemption disabled at: +| [] scomp_acomp_comp_decomp+0x34/0x1a0 +| CPU: 21 PID: 1401 Comm: cryptomgr_test Tainted: G W 4.16.18-rt9-rt #1 +| Hardware name: www.cavium.com crb-1s/crb-1s, BIOS 0.3 Apr 25 2017 +| Call trace: +| dump_backtrace+0x0/0x1c8 +| show_stack+0x24/0x30 +| dump_stack+0xac/0xe8 +| ___might_sleep+0x124/0x188 +| rt_spin_lock+0x40/0x88 +| zip_load_instr+0x44/0x170 [thunderx_zip] +| zip_deflate+0x184/0x378 [thunderx_zip] +| zip_compress+0xb0/0x130 [thunderx_zip] +| zip_scomp_compress+0x48/0x60 [thunderx_zip] +| scomp_acomp_comp_decomp+0xd8/0x1a0 +| scomp_acomp_compress+0x24/0x30 +| test_acomp+0x15c/0x558 +| alg_test_comp+0xc0/0x128 +| alg_test.part.6+0x120/0x2c0 +| alg_test+0x6c/0xa0 +| cryptomgr_test+0x50/0x58 +| kthread+0x134/0x138 +| ret_from_fork+0x10/0x18 + +Mainline disables preemption to serialize percpu scratch buffer access, +causing the splat above. Serialize with a local lock for RT instead. + +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + crypto/scompress.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/crypto/scompress.c b/crypto/scompress.c +index 2075e2c4e7df..c6b4e265c6bf 100644 +--- a/crypto/scompress.c ++++ b/crypto/scompress.c +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -34,6 +35,7 @@ static void * __percpu *scomp_src_scratches; + static void * __percpu *scomp_dst_scratches; + static int scomp_scratch_users; + static DEFINE_MUTEX(scomp_lock); ++static DEFINE_LOCAL_IRQ_LOCK(scomp_scratches_lock); + + #ifdef CONFIG_NET + static int crypto_scomp_report(struct sk_buff *skb, struct crypto_alg *alg) +@@ -193,7 +195,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir) + void **tfm_ctx = acomp_tfm_ctx(tfm); + struct crypto_scomp *scomp = *tfm_ctx; + void **ctx = acomp_request_ctx(req); +- const int cpu = get_cpu(); ++ const int cpu = local_lock_cpu(scomp_scratches_lock); + u8 *scratch_src = *per_cpu_ptr(scomp_src_scratches, cpu); + u8 *scratch_dst = *per_cpu_ptr(scomp_dst_scratches, cpu); + int ret; +@@ -228,7 +230,7 @@ static int scomp_acomp_comp_decomp(struct acomp_req *req, int dir) + 1); + } + out: +- put_cpu(); ++ local_unlock_cpu(scomp_scratches_lock); + return ret; + } + +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0431-sched-core-Avoid-__schedule-being-called-twice-in-a-.patch b/kernel/patches-4.14.x-rt/0431-sched-core-Avoid-__schedule-being-called-twice-in-a-.patch new file mode 100644 index 000000000..a8ca90bfa --- /dev/null +++ b/kernel/patches-4.14.x-rt/0431-sched-core-Avoid-__schedule-being-called-twice-in-a-.patch @@ -0,0 +1,63 @@ +From 2826b7ec103f6850d8d8ee1c6b34a0a7d9b564eb Mon Sep 17 00:00:00 2001 +From: Daniel Bristot de Oliveira +Date: Mon, 30 Jul 2018 15:00:00 +0200 +Subject: [PATCH 431/436] sched/core: Avoid __schedule() being called twice in + a row + +[ Upstream commit 2bb94c48b2ffaabf8c15a51e5cc1b4c541988cab ] + +If a worker invokes schedule() then we may have the call chain: + schedule() + -> sched_submit_work() + -> wq_worker_sleeping() + -> wake_up_worker() + -> wake_up_process(). + +The last wakeup may cause a schedule which is unnecessary because we are +already in schedule() and do it anyway. + +Add a preempt_disable() + preempt_enable_no_resched() around +wq_worker_sleeping() so the context switch could be delayed until +__schedule(). + +Signed-off-by: Daniel Bristot de Oliveira +Cc: Clark Williams +Cc: Tommaso Cucinotta +Cc: Romulo da Silva de Oliveira +Cc: Sebastian Andrzej Siewior +Cc: Steven Rostedt +Cc: Thomas Gleixner +Cc: Ingo Molnar +Cc: Peter Zijlstra +Signed-off-by: Steven Rostedt (VMware) +[bigeasy: rewrite changelog] +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/sched/core.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/kernel/sched/core.c b/kernel/sched/core.c +index fa5b76255f8c..a5ce37b90fca 100644 +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -3482,10 +3482,15 @@ static inline void sched_submit_work(struct task_struct *tsk) + /* + * If a worker went to sleep, notify and ask workqueue whether + * it wants to wake up a task to maintain concurrency. ++ * As this function is called inside the schedule() context, ++ * we disable preemption to avoid it calling schedule() again ++ * in the possible wakeup of a kworker. + */ +- if (tsk->flags & PF_WQ_WORKER) ++ if (tsk->flags & PF_WQ_WORKER) { ++ preempt_disable(); + wq_worker_sleeping(tsk); +- ++ preempt_enable_no_resched(); ++ } + + if (tsk_is_pi_blocked(tsk)) + return; +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0432-Revert-arm64-xen-Make-XEN-depend-on-RT.patch b/kernel/patches-4.14.x-rt/0432-Revert-arm64-xen-Make-XEN-depend-on-RT.patch new file mode 100644 index 000000000..97fedffeb --- /dev/null +++ b/kernel/patches-4.14.x-rt/0432-Revert-arm64-xen-Make-XEN-depend-on-RT.patch @@ -0,0 +1,33 @@ +From 5f9fa9cb4a6516b0727b8ebab7f55e6725f91017 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Thu, 2 Aug 2018 17:11:01 +0200 +Subject: [PATCH 432/436] Revert "arm64/xen: Make XEN depend on !RT" + +[ Upstream commit c0a308b58829bd4066bce841fe49e8277a0cb32b ] + +Iain Hunter reported that there are no problems with it so there is no +reason to keep it disabled. + +Reported-by: Iain Hunter +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +--- + arch/arm64/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig +index f3c5213ea0ec..458d2033ffde 100644 +--- a/arch/arm64/Kconfig ++++ b/arch/arm64/Kconfig +@@ -791,7 +791,7 @@ config XEN_DOM0 + + config XEN + bool "Xen guest support on ARM64" +- depends on ARM64 && OF && !PREEMPT_RT_FULL ++ depends on ARM64 && OF + select SWIOTLB_XEN + select PARAVIRT + help +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0433-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch b/kernel/patches-4.14.x-rt/0433-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch new file mode 100644 index 000000000..3533890b7 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0433-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch @@ -0,0 +1,40 @@ +From 9ea017f18144160c0200c067e43eecf8e16cb3ed Mon Sep 17 00:00:00 2001 +From: Mike Galbraith +Date: Sun, 19 Aug 2018 08:28:35 +0200 +Subject: [PATCH 433/436] sched: Allow pinned user tasks to be awakened to the + CPU they pinned + +[ Upstream commit cd4d35ef89948221f7cd1751cee453943967364c ] + +Since commit 7af443ee16976 ("sched/core: Require cpu_active() in +select_task_rq(), for user tasks") select_fallback_rq() will BUG() if +the CPU to which a task has pinned itself and pinned becomes +!cpu_active() while it slept. +The task will continue running on the to-be-removed CPU and will remove +itself from the CPU during takedown_cpu() (while cpuhp_pin_lock will be +acquired) and move to another CPU based on its mask after the +migrate_disable() section has been left. + +Cc: stable-rt@vger.kernel.org +Signed-off-by: Mike Galbraith +Signed-off-by: Sebastian Andrzej Siewior +--- + kernel/sched/core.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/kernel/sched/core.c b/kernel/sched/core.c +index a5ce37b90fca..6e6bd5262f23 100644 +--- a/kernel/sched/core.c ++++ b/kernel/sched/core.c +@@ -980,7 +980,7 @@ static inline bool is_cpu_allowed(struct task_struct *p, int cpu) + if (!cpumask_test_cpu(cpu, p->cpus_ptr)) + return false; + +- if (is_per_cpu_kthread(p)) ++ if (is_per_cpu_kthread(p) || __migrate_disabled(p)) + return cpu_online(cpu); + + return cpu_active(cpu); +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0434-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch b/kernel/patches-4.14.x-rt/0434-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch new file mode 100644 index 000000000..558b68f7f --- /dev/null +++ b/kernel/patches-4.14.x-rt/0434-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch @@ -0,0 +1,44 @@ +From df699d88c450d44032815911ae16dbace8487cfb Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Wed, 29 Aug 2018 21:59:04 +0200 +Subject: [PATCH 1/1] Drivers: hv: vmbus: include header for get_irq_regs() +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +[ Upstream commit b9fcc1867cc7921bb8441be327ed58461ed12255 ] + +On !RT the header file get_irq_regs() gets pulled in via other header files. On +RT it does not and the build fails: + + drivers/hv/vmbus_drv.c:975 implicit declaration of function ‘get_irq_regs’ [-Werror=implicit-function-declaration] + drivers/hv/hv.c:115 implicit declaration of function ‘get_irq_regs’ [-Werror=implicit-function-declaration] + +Add the header file for get_irq_regs() in a common header so it used by +vmbus_drv.c by hv.c for their get_irq_regs() usage. + +Reported-by: Bernhard Landauer +Reported-by: Ralf Ramsauer +Signed-off-by: Sebastian Andrzej Siewior +Signed-off-by: Steven Rostedt (VMware) +[just rebase for linuxkit patches.] +Integrated-by: Tiejun Chen +--- + drivers/hv/hyperv_vmbus.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h +index 49569f8f..188724e4 100644 +--- a/drivers/hv/hyperv_vmbus.h ++++ b/drivers/hv/hyperv_vmbus.h +@@ -26,6 +26,7 @@ + #define _HYPERV_VMBUS_H + + #include ++#include + #include + #include + #include +-- +2.17.1 + diff --git a/kernel/patches-4.14.x-rt/0435-Revert-softirq-keep-the-softirq-pending-check-RT-onl.patch b/kernel/patches-4.14.x-rt/0435-Revert-softirq-keep-the-softirq-pending-check-RT-onl.patch new file mode 100644 index 000000000..224b380a9 --- /dev/null +++ b/kernel/patches-4.14.x-rt/0435-Revert-softirq-keep-the-softirq-pending-check-RT-onl.patch @@ -0,0 +1,44 @@ +From 073b2694545045b990b22e750951f2486e8aee41 Mon Sep 17 00:00:00 2001 +From: "Steven Rostedt (VMware)" +Date: Fri, 7 Sep 2018 15:49:16 -0400 +Subject: [PATCH 435/436] Revert "softirq: keep the 'softirq pending' check + RT-only" + +This reverts commit 5536f5491a2e098ba34995662dfc0e82d66d65c9. + +Sebastian says that the stable commits: + + 0a0e0829f9901 ("nohz: Fix missing tick reprogram when interrupting an inline softirq") + 80d20d35af1ed ("nohz: Fix local_timer_softirq_pending()") + +Make this commit obsolete, thus it should be reverted. + +Link: http://lkml.kernel.org/r/20180906193028.jvyp2dj3rto4ax7s@linutronix.de + +Signed-off-by: Steven Rostedt (VMware) +--- + kernel/softirq.c | 7 +------ + 1 file changed, 1 insertion(+), 6 deletions(-) + +diff --git a/kernel/softirq.c b/kernel/softirq.c +index 996b03fb8c53..ec801952785a 100644 +--- a/kernel/softirq.c ++++ b/kernel/softirq.c +@@ -842,13 +842,8 @@ static inline void tick_irq_exit(void) + int cpu = smp_processor_id(); + + /* Make sure that timer wheel updates are propagated */ +-#ifdef CONFIG_PREEMPT_RT_BASE + if ((idle_cpu(cpu) || tick_nohz_full_cpu(cpu)) && +- !need_resched() && !local_softirq_pending()) +-#else +- if ((idle_cpu(cpu) && !need_resched()) || tick_nohz_full_cpu(cpu)) +-#endif +- { ++ !need_resched() && !local_softirq_pending()) { + if (!in_irq()) + tick_nohz_irq_exit(); + } +-- +2.18.0 + diff --git a/kernel/patches-4.14.x-rt/0436-Linux-4.14.71-rt44-REBASE.patch b/kernel/patches-4.14.x-rt/0436-Linux-4.14.71-rt44-REBASE.patch new file mode 100644 index 000000000..9a04ad7cd --- /dev/null +++ b/kernel/patches-4.14.x-rt/0436-Linux-4.14.71-rt44-REBASE.patch @@ -0,0 +1,19 @@ +From ed1df7e13145f40ab73b17af613136a9c1accb2f Mon Sep 17 00:00:00 2001 +From: "Steven Rostedt (VMware)" +Date: Wed, 5 Sep 2018 08:08:53 -0400 +Subject: [PATCH 436/436] Linux 4.14.71-rt44 REBASE + +--- + localversion-rt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/localversion-rt b/localversion-rt +index 90290c642ed5..ac4d836a809d 100644 +--- a/localversion-rt ++++ b/localversion-rt +@@ -1 +1 @@ +--rt29 ++-rt44 +-- +2.18.0 +