From fd064d4e63d43bdeac35636e70b80a44525c75d8 Mon Sep 17 00:00:00 2001 From: Romain Perier Date: Tue, 30 Apr 2019 14:45:19 +0200 Subject: [PATCH] [rt] Update to 4.19.37-rt19 --- debian/changelog | 3 + ...M-at91-add-TCB-registers-definitions.patch | 6 +- ...ers-Add-a-new-driver-for-the-Atmel-A.patch | 6 +- ...ers-timer-atmel-tcb-add-clockevent-d.patch | 6 +- ...drivers-atmel-pit-make-option-silent.patch | 6 +- ...at91-Implement-clocksource-selection.patch | 6 +- ...onfigs-at91-use-new-TCB-timer-driver.patch | 6 +- .../0007-ARM-configs-at91-unselect-PIT.patch | 6 +- ...ts-Move-pending-table-allocation-to-.patch | 8 +- ...-convert-worker-lock-to-raw-spinlock.patch | 6 +- ...m-qi-simplify-CGR-allocation-freeing.patch | 6 +- ...obustify-CFS-bandwidth-timer-locking.patch | 29 +- ...012-arm-Convert-arm-boot_lock-to-raw.patch | 6 +- ...-let-setaffinity-unmask-threaded-EOI.patch | 6 +- ...rqsave-in-cgroup_rstat_flush_locked.patch} | 12 +- ...ize-cookie-hash-table-raw-spinlocks.patch} | 6 +- ...bus-include-header-for-get_irq_regs.patch} | 6 +- ...e-irqflags.h-for-raw_local_irq_save.patch} | 6 +- ...patch => 0018-efi-Allow-efi-runtime.patch} | 6 +- ...i-drop-task_lock-from-efi_switch_mm.patch} | 6 +- ..._layout-before-altenates-are-applie.patch} | 6 +- ...phandle-cache-outside-of-the-devtre.patch} | 6 +- ...ke-quarantine_lock-a-raw_spinlock_t.patch} | 6 +- ...pedited-GP-parallelization-cleverne.patch} | 6 +- ...kmemleak_lock-to-raw-spinlock-on-RT.patch} | 6 +- ...replace-seqcount_t-with-a-seqlock_t.patch} | 8 +- ...ide-a-pointer-to-the-valid-CPU-mask.patch} | 70 +-- ...rnel-sched-core-add-migrate_disable.patch} | 22 +- ...able-Add-export_symbol_gpl-for-__mi.patch} | 10 +- ...-not-disable-enable-clocks-in-a-row.patch} | 6 +- ...-Allow-higher-clock-rates-for-clock.patch} | 6 +- ...1-timekeeping-Split-jiffies-seqlock.patch} | 12 +- ...-signal-Revert-ptrace-preempt-magic.patch} | 6 +- ...t-sched-Use-msleep-instead-of-yield.patch} | 6 +- ...q-remove-BUG_ON-irqs_disabled-check.patch} | 6 +- ...o-no-disable-interrupts-in-giveback.patch} | 6 +- ...ovide-PREEMPT_RT_BASE-config-switch.patch} | 6 +- ...able-CONFIG_CPUMASK_OFFSTACK-for-RT.patch} | 8 +- ...bel-disable-if-stop_machine-is-used.patch} | 6 +- ...onfig-options-which-are-not-RT-comp.patch} | 6 +- ...h => 0040-lockdep-disable-self-test.patch} | 6 +- ...ch => 0041-mm-Allow-only-slub-on-RT.patch} | 6 +- ...ocking-Disable-spin-on-owner-for-RT.patch} | 6 +- ...43-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch} | 6 +- ...44-rcu-make-RCU_BOOST-default-on-RT.patch} | 6 +- ...Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch} | 6 +- ...6-net-core-disable-NET_RX_BUSY_POLL.patch} | 6 +- ...047-arm-disable-NEON-in-kernel-mode.patch} | 6 +- ...048-powerpc-Use-generic-rwsem-on-RT.patch} | 6 +- ...le-in-kernel-MPIC-emulation-for-PRE.patch} | 6 +- ... 0050-powerpc-Disable-highmem-on-RT.patch} | 6 +- ... => 0051-mips-Disable-highmem-on-RT.patch} | 6 +- ...6-Use-generic-rwsem_spinlocks-on-rt.patch} | 8 +- ...s-trigger-disable-CPU-trigger-on-RT.patch} | 6 +- ...op-K8-s-driver-from-beeing-selected.patch} | 6 +- ...che.patch => 0055-md-disable-bcache.patch} | 6 +- ...-efi-Disable-runtime-services-on-RT.patch} | 6 +- ...057-printk-Add-a-printk-kill-switch.patch} | 6 +- ...early_printk-boot-param-to-help-wit.patch} | 6 +- ...t-Provide-preempt_-_-no-rt-variants.patch} | 6 +- ...migrate_disable-enable-in-different.patch} | 8 +- ...atch => 0061-rt-Add-local-irq-locks.patch} | 6 +- ...rovide-get-put-_locked_ptr-variants.patch} | 6 +- ...atterlist-Do-not-disable-irqs-on-RT.patch} | 6 +- ...x86-Delay-calling-signals-in-atomic.patch} | 8 +- ...gnal-delay-calling-signals-on-32bit.patch} | 6 +- ...ead-Replace-bh_uptodate_lock-for-rt.patch} | 10 +- ...state-lock-and-journal-head-lock-rt.patch} | 6 +- ...t_bl-Make-list-head-locking-RT-safe.patch} | 6 +- ...list_bl-fixup-bogus-lockdep-warning.patch} | 6 +- ...> 0070-genirq-Disable-irqpoll-on-rt.patch} | 6 +- ...genirq-Force-interrupt-thread-on-RT.patch} | 6 +- ...-zone-lock-while-freeing-pages-from.patch} | 8 +- ...-zone-lock-while-freeing-pages-from.patch} | 8 +- ...-change-list_lock-to-raw_spinlock_t.patch} | 94 ++-- ...ing-back-empty-slubs-to-IRQ-enabled.patch} | 10 +- ...age_alloc-rt-friendly-per-cpu-pages.patch} | 8 +- ...77-mm-swap-Convert-to-percpu-locked.patch} | 10 +- ...-perform-lru_add_drain_all-remotely.patch} | 6 +- ...-per-cpu-variables-with-preempt-dis.patch} | 8 +- ...lit-page-table-locks-for-vector-pag.patch} | 6 +- ...patch => 0081-mm-Enable-SLUB-for-RT.patch} | 12 +- ...082-slub-Enable-irqs-for-__GFP_WAIT.patch} | 8 +- ... 0083-slub-Disable-SLUB_CPU_PARTIAL.patch} | 6 +- ...-t-call-schedule_work_on-in-preempt.patch} | 12 +- ...lace-local_irq_disable-with-local-l.patch} | 22 +- ...c-copy-with-get_cpu_var-and-locking.patch} | 6 +- ...e-preemption-__split_large_page-aft.patch} | 6 +- ... => 0088-radix-tree-use-local-locks.patch} | 6 +- ...-timers-Prepare-for-full-preemption.patch} | 12 +- ...90-x86-kvm-Require-const-tsc-for-RT.patch} | 10 +- ...c-Don-t-use-completion-s-wait-queue.patch} | 6 +- ...tch => 0092-wait.h-include-atomic.h.patch} | 6 +- ...ple-Simple-work-queue-implemenation.patch} | 6 +- ...a-shit-statement-in-SWORK_EVENT_PEN.patch} | 6 +- ...5-completion-Use-simple-wait-queues.patch} | 16 +- ...h => 0096-fs-aio-simple-simple-work.patch} | 6 +- ...oke-the-affinity-callback-via-a-wor.patch} | 6 +- ...d-schedule_work-with-interrupts-dis.patch} | 6 +- ...te-hrtimer_init-hrtimer_init_sleepe.patch} | 8 +- ...00-hrtimers-Prepare-full-preemption.patch} | 8 +- ...-by-default-into-the-softirq-contex.patch} | 20 +- ...ir-Make-the-hrtimers-non-hard-again.patch} | 10 +- ...schedule_work-call-to-helper-thread.patch} | 6 +- ...e-change-before-hrtimer_cancel-in-d.patch} | 6 +- ...imers-Thread-posix-cpu-timers-on-rt.patch} | 8 +- ...hed-Move-task_struct-cleanup-to-RCU.patch} | 8 +- ...number-of-task-migrations-per-batch.patch} | 8 +- ...0108-sched-Move-mmdrop-to-RCU-on-RT.patch} | 33 +- ...-stack-kprobe-clean-up-to-__put_tas.patch} | 10 +- ...tate-for-tasks-blocked-on-sleeping-.patch} | 16 +- ...unt-rcu_preempt_depth-on-RT-in-migh.patch} | 10 +- ...proper-LOCK_OFFSET-for-cond_resched.patch} | 6 +- ...0113-sched-Disable-TTWU_QUEUE-on-RT.patch} | 6 +- ...nly-wake-up-idle-workers-if-not-blo.patch} | 10 +- ...ase-the-nr-of-migratory-tasks-when-.patch} | 14 +- ...hotplug-Lightweight-get-online-cpus.patch} | 14 +- ...-disabled-counter-to-tracing-output.patch} | 8 +- ...ch => 0118-lockdep-Make-it-RT-aware.patch} | 6 +- ...asklets-from-going-into-infinite-sp.patch} | 6 +- ...emption-after-reenabling-interrupts.patch} | 20 +- ...ftirq-Disable-softirq-stacks-for-RT.patch} | 12 +- ...=> 0122-softirq-Split-softirq-locks.patch} | 8 +- ...use-local_bh_disable-in-netif_rx_ni.patch} | 10 +- ...bling-of-softirq-processing-in-irq-.patch} | 6 +- ...lit-timer-softirqs-out-of-ksoftirqd.patch} | 6 +- ...al_softirq_pending-messages-if-ksof.patch} | 6 +- ...al_softirq_pending-messages-if-task.patch} | 6 +- ... 0128-rtmutex-trylock-is-okay-on-RT.patch} | 6 +- ...nfs-turn-rmdir_sem-into-a-semaphore.patch} | 6 +- ...e-various-new-futex-race-conditions.patch} | 8 +- ...n-when-a-requeued-RT-task-times-out.patch} | 6 +- ...-unlock-symetry-versus-pi_lock-and-.patch} | 8 +- ...atch => 0133-pid.h-include-atomic.h.patch} | 6 +- ...rm-include-definition-for-cpumask_t.patch} | 6 +- ...re-Do-NOT-include-rwlock.h-directly.patch} | 6 +- ...6-rtmutex-Add-rtmutex_lock_killable.patch} | 6 +- ...137-rtmutex-Make-lock_killable-work.patch} | 6 +- ...pinlock-Split-the-lock-types-header.patch} | 6 +- ... => 0139-rtmutex-Avoid-include-hell.patch} | 6 +- ...rbtree-don-t-include-the-rcu-header.patch} | 6 +- ...ex-Provide-rt_mutex_slowlock_locked.patch} | 6 +- ...ckdep-less-version-of-rt_mutex-s-lo.patch} | 6 +- ...ex-add-sleeping-lock-implementation.patch} | 16 +- ...tex-implementation-based-on-rtmutex.patch} | 6 +- ...sem-implementation-based-on-rtmutex.patch} | 6 +- ...ock-implementation-based-on-rtmutex.patch} | 6 +- ...preserve-state-like-a-sleeping-lock.patch} | 6 +- ...> 0148-rtmutex-wire-up-RT-s-locking.patch} | 6 +- ...tex-add-ww_mutex-addon-for-mutex-rt.patch} | 6 +- ...=> 0150-kconfig-Add-PREEMPT_RT_FULL.patch} | 6 +- ...fix-deadlock-in-device-mapper-block.patch} | 6 +- ...tex-Flush-block-plug-on-__down_read.patch} | 6 +- ...e-init-the-wait_lock-in-rt_mutex_in.patch} | 6 +- ...ce-fix-ptrace-vs-tasklist_lock-race.patch} | 16 +- ...utex-annotate-sleeping-lock-context.patch} | 12 +- ...able-fallback-to-preempt_disable-in.patch} | 24 +- ...ck-for-__LINUX_SPINLOCK_TYPES_H-on-.patch} | 6 +- ...patch => 0158-rcu-Frob-softirq-test.patch} | 6 +- ...9-rcu-Merge-RCU-bh-into-RCU-preempt.patch} | 12 +- ...e-ksoftirqd-do-RCU-quiescent-states.patch} | 6 +- ...ate-softirq-processing-from-rcutree.patch} | 6 +- ...use-cpu_online-instead-custom-check.patch} | 6 +- ...lace-local_irqsave-with-a-locallock.patch} | 6 +- ...normal_after_boot-by-default-for-RT.patch} | 10 +- ...rial-omap-Make-the-locking-RT-aware.patch} | 6 +- ...l-pl011-Make-the-locking-work-on-RT.patch} | 6 +- ...explicitly-initialize-the-flags-var.patch} | 6 +- ...prove-the-serial-console-PASS_LIMIT.patch} | 6 +- ...-don-t-take-the-trylock-during-oops.patch} | 6 +- ...sem-Remove-preempt_disable-variants.patch} | 6 +- ...te_mm-by-preempt_-disable-enable-_r.patch} | 6 +- ...ack-explicit-INIT_HLIST_BL_HEAD-ini.patch} | 6 +- ...-preemption-on-i_dir_seq-s-write-si.patch} | 6 +- ...-of-local-lock-in-multi_cpu-decompr.patch} | 6 +- ...mal-Defer-thermal-wakups-to-threads.patch} | 6 +- ...-preemption-around-local_bh_disable.patch} | 6 +- ...oll-Do-not-disable-preemption-on-RT.patch} | 6 +- ...r-preempt-disable-region-which-suck.patch} | 18 +- ...atch => 0179-block-mq-use-cpu_light.patch} | 6 +- ...ck-mq-do-not-invoke-preempt_disable.patch} | 6 +- ...-mq-don-t-complete-requests-via-IPI.patch} | 6 +- ...Make-raid5_percpu-handling-RT-aware.patch} | 6 +- ...atch => 0183-rt-Introduce-cpu_chill.patch} | 6 +- ...timer-Don-t-lose-state-in-cpu_chill.patch} | 6 +- ...hill-save-task-state-in-saved_state.patch} | 6 +- ...-blk_queue_usage_counter_release-in.patch} | 6 +- ...block-Use-cpu_chill-for-retry-loops.patch} | 6 +- ...ache-Use-cpu_chill-in-trylock-loops.patch} | 6 +- ...-Use-cpu_chill-instead-of-cpu_relax.patch} | 8 +- ...se-swait_queue-instead-of-waitqueue.patch} | 8 +- ...ch => 0191-workqueue-Use-normal-rcu.patch} | 6 +- ...al-irq-lock-instead-of-irq-disable-.patch} | 6 +- ...-workqueue-versus-ata-piix-livelock.patch} | 6 +- ...angle-worker-accounting-from-rqlock.patch} | 20 +- ... => 0195-debugobjects-Make-RT-aware.patch} | 6 +- ... 0196-seqlock-Prevent-rt-starvation.patch} | 6 +- ...c_xprt_do_enqueue-use-get_cpu_light.patch} | 6 +- ...198-net-Use-skbufhead-with-raw-lock.patch} | 26 +- ...ecursion-to-per-task-variable-on-RT.patch} | 26 +- ...-to-delegate-processing-a-softirq-t.patch} | 10 +- ...ke-qdisc-s-busylock-in-__dev_xmit_s.patch} | 10 +- ...disc-use-a-seqlock-instead-seqcount.patch} | 6 +- ...missing-serialization-in-ip_send_un.patch} | 8 +- ... 0204-net-add-a-lock-around-icmp_sk.patch} | 6 +- ...chedule_irqoff-disable-interrupts-o.patch} | 14 +- ...push-most-work-into-softirq-context.patch} | 8 +- ....patch => 0207-printk-Make-rt-aware.patch} | 6 +- ...-t-try-to-print-from-IRQ-NMI-region.patch} | 6 +- ...ntk-Drop-the-logbuf_lock-more-often.patch} | 6 +- ...-translation-section-permission-fau.patch} | 6 +- ...irq_set_irqchip_state-documentation.patch} | 6 +- ...ngrade-preempt_disable-d-region-to-.patch} | 6 +- ...preemp_disable-in-addition-to-local.patch} | 6 +- ...4-kgdb-serial-Short-term-workaround.patch} | 6 +- ...sysfs-Add-sys-kernel-realtime-entry.patch} | 6 +- ...> 0216-mm-rt-kmap_atomic-scheduling.patch} | 8 +- ...ighmem-Add-a-already-used-pte-check.patch} | 6 +- ...0218-arm-highmem-Flush-tlb-on-unmap.patch} | 6 +- ...h => 0219-arm-Enable-highmem-for-rt.patch} | 6 +- ...tch => 0220-scsi-fcoe-Make-RT-aware.patch} | 14 +- ...pto-Reduce-preempt-disabled-regions.patch} | 6 +- ...preempt-disabled-regions-more-algos.patch} | 6 +- ...pto-limit-more-FPU-enabled-sections.patch} | 6 +- ...serialize-RT-percpu-scratch-buffer-.patch} | 6 +- ...-a-lock-instead-preempt_disable-loc.patch} | 6 +- ...ndom_bytes-for-RT_FULL-in-init_oops.patch} | 6 +- ...ckprotector-Avoid-random-pool-on-rt.patch} | 6 +- ...h => 0228-random-Make-it-work-on-rt.patch} | 10 +- ...om-avoid-preempt_disable-ed-section.patch} | 6 +- ...0-cpu-hotplug-Implement-CPU-pinning.patch} | 16 +- ...d-user-tasks-to-be-awakened-to-the-.patch} | 10 +- ...uct-tape-RT-rwlock-usage-for-non-RT.patch} | 14 +- ...ve-preemption-disabling-in-netif_rx.patch} | 12 +- ...-local_irq_disable-kmalloc-headache.patch} | 8 +- ...users-of-napi_alloc_cache-against-r.patch} | 8 +- ...ialize-xt_write_recseq-sections-on-.patch} | 6 +- ...dd-a-mutex-around-devnet_rename_seq.patch} | 23 +- ...Only-do-hardirq-context-test-for-ra.patch} | 6 +- ...fix-warnings-due-to-missing-PREEMPT.patch} | 6 +- ...hed-Add-support-for-lazy-preemption.patch} | 46 +- ...1-ftrace-Fix-trace-header-alignment.patch} | 8 +- ...242-x86-Support-for-lazy-preemption.patch} | 12 +- ...properly-check-against-preempt-mask.patch} | 6 +- ...use-proper-return-label-on-32bit-x8.patch} | 6 +- ...arm-Add-support-for-lazy-preemption.patch} | 6 +- ...rpc-Add-support-for-lazy-preemption.patch} | 16 +- ...arch-arm64-Add-lazy-preempt-support.patch} | 6 +- ...-Protect-send_msg-with-a-local-lock.patch} | 6 +- ...m-Replace-bit-spinlocks-with-rtmute.patch} | 6 +- ...t-disable-preemption-in-zcomp_strea.patch} | 6 +- ...zcomp_stream_get-smp_processor_id-u.patch} | 6 +- ...2-tpm_tis-fix-stall-after-iowrite-s.patch} | 6 +- ...-deferral-of-watchdogd-wakeup-on-RT.patch} | 6 +- ...se-preempt_disable-enable_rt-where-.patch} | 6 +- ...l_lock-unlock_irq-in-intel_pipe_upd.patch} | 6 +- ...0256-drm-i915-disable-tracing-on-RT.patch} | 6 +- ..._I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch} | 6 +- ...oups-use-simple-wait-in-css_release.patch} | 10 +- ...ert-callback_lock-to-raw_spinlock_t.patch} | 6 +- ...a-locallock-instead-preempt_disable.patch} | 6 +- ...kqueue-Prevent-deadlock-stall-on-RT.patch} | 12 +- ...-tasks-to-cache-one-sigqueue-struct.patch} | 10 +- ...263-Add-localversion-for-RT-release.patch} | 6 +- ...h => 0264-Linux-4.19.37-rt19-REBASE.patch} | 10 +- debian/patches-rt/series | 502 +++++++++--------- 266 files changed, 1403 insertions(+), 1383 deletions(-) rename debian/patches-rt/{0016-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch => 0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch} (83%) rename debian/patches-rt/{0017-fscache-initialize-cookie-hash-table-raw-spinlocks.patch => 0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch} (92%) rename debian/patches-rt/{0018-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch => 0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch} (89%) rename debian/patches-rt/{0019-percpu-include-irqflags.h-for-raw_local_irq_save.patch => 0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch} (85%) rename debian/patches-rt/{0020-efi-Allow-efi-runtime.patch => 0018-efi-Allow-efi-runtime.patch} (86%) rename debian/patches-rt/{0021-x86-efi-drop-task_lock-from-efi_switch_mm.patch => 0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch} (92%) rename debian/patches-rt/{0022-arm64-KVM-compute_layout-before-altenates-are-applie.patch => 0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch} (94%) rename debian/patches-rt/{0023-of-allocate-free-phandle-cache-outside-of-the-devtre.patch => 0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch} (94%) rename debian/patches-rt/{0024-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch => 0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch} (95%) rename debian/patches-rt/{0025-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch => 0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch} (91%) rename debian/patches-rt/{0026-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch => 0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch} (97%) rename debian/patches-rt/{0027-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch => 0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch} (95%) rename debian/patches-rt/{0028-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch => 0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch} (93%) rename debian/patches-rt/{0029-kernel-sched-core-add-migrate_disable.patch => 0027-kernel-sched-core-add-migrate_disable.patch} (91%) rename debian/patches-rt/{0030-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch => 0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch} (81%) rename debian/patches-rt/{0031-arm-at91-do-not-disable-enable-clocks-in-a-row.patch => 0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch} (94%) rename debian/patches-rt/{0032-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch => 0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch} (97%) rename debian/patches-rt/{0033-timekeeping-Split-jiffies-seqlock.patch => 0031-timekeeping-Split-jiffies-seqlock.patch} (94%) rename debian/patches-rt/{0034-signal-Revert-ptrace-preempt-magic.patch => 0032-signal-Revert-ptrace-preempt-magic.patch} (87%) rename debian/patches-rt/{0035-net-sched-Use-msleep-instead-of-yield.patch => 0033-net-sched-Use-msleep-instead-of-yield.patch} (95%) rename debian/patches-rt/{0036-dm-rq-remove-BUG_ON-irqs_disabled-check.patch => 0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch} (88%) rename debian/patches-rt/{0037-usb-do-no-disable-interrupts-in-giveback.patch => 0035-usb-do-no-disable-interrupts-in-giveback.patch} (91%) rename debian/patches-rt/{0038-rt-Provide-PREEMPT_RT_BASE-config-switch.patch => 0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch} (90%) rename debian/patches-rt/{0039-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch => 0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch} (93%) rename debian/patches-rt/{0040-jump-label-disable-if-stop_machine-is-used.patch => 0038-jump-label-disable-if-stop_machine-is-used.patch} (88%) rename debian/patches-rt/{0041-kconfig-Disable-config-options-which-are-not-RT-comp.patch => 0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch} (87%) rename debian/patches-rt/{0042-lockdep-disable-self-test.patch => 0040-lockdep-disable-self-test.patch} (88%) rename debian/patches-rt/{0043-mm-Allow-only-slub-on-RT.patch => 0041-mm-Allow-only-slub-on-RT.patch} (86%) rename debian/patches-rt/{0044-locking-Disable-spin-on-owner-for-RT.patch => 0042-locking-Disable-spin-on-owner-for-RT.patch} (87%) rename debian/patches-rt/{0045-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch => 0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch} (84%) rename debian/patches-rt/{0046-rcu-make-RCU_BOOST-default-on-RT.patch => 0044-rcu-make-RCU_BOOST-default-on-RT.patch} (87%) rename debian/patches-rt/{0047-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch => 0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch} (85%) rename debian/patches-rt/{0048-net-core-disable-NET_RX_BUSY_POLL.patch => 0046-net-core-disable-NET_RX_BUSY_POLL.patch} (87%) rename debian/patches-rt/{0049-arm-disable-NEON-in-kernel-mode.patch => 0047-arm-disable-NEON-in-kernel-mode.patch} (97%) rename debian/patches-rt/{0050-powerpc-Use-generic-rwsem-on-RT.patch => 0048-powerpc-Use-generic-rwsem-on-RT.patch} (82%) rename debian/patches-rt/{0051-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch => 0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch} (91%) rename debian/patches-rt/{0052-powerpc-Disable-highmem-on-RT.patch => 0050-powerpc-Disable-highmem-on-RT.patch} (81%) rename debian/patches-rt/{0053-mips-Disable-highmem-on-RT.patch => 0051-mips-Disable-highmem-on-RT.patch} (84%) rename debian/patches-rt/{0054-x86-Use-generic-rwsem_spinlocks-on-rt.patch => 0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch} (79%) rename debian/patches-rt/{0055-leds-trigger-disable-CPU-trigger-on-RT.patch => 0053-leds-trigger-disable-CPU-trigger-on-RT.patch} (91%) rename debian/patches-rt/{0056-cpufreq-drop-K8-s-driver-from-beeing-selected.patch => 0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch} (89%) rename debian/patches-rt/{0057-md-disable-bcache.patch => 0055-md-disable-bcache.patch} (90%) rename debian/patches-rt/{0058-efi-Disable-runtime-services-on-RT.patch => 0056-efi-Disable-runtime-services-on-RT.patch} (90%) rename debian/patches-rt/{0059-printk-Add-a-printk-kill-switch.patch => 0057-printk-Add-a-printk-kill-switch.patch} (96%) rename debian/patches-rt/{0060-printk-Add-force_early_printk-boot-param-to-help-wit.patch => 0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch} (87%) rename debian/patches-rt/{0061-preempt-Provide-preempt_-_-no-rt-variants.patch => 0059-preempt-Provide-preempt_-_-no-rt-variants.patch} (90%) rename debian/patches-rt/{0062-futex-workaround-migrate_disable-enable-in-different.patch => 0060-futex-workaround-migrate_disable-enable-in-different.patch} (92%) rename debian/patches-rt/{0063-rt-Add-local-irq-locks.patch => 0061-rt-Add-local-irq-locks.patch} (98%) rename debian/patches-rt/{0064-locallock-provide-get-put-_locked_ptr-variants.patch => 0062-locallock-provide-get-put-_locked_ptr-variants.patch} (90%) rename debian/patches-rt/{0065-mm-scatterlist-Do-not-disable-irqs-on-RT.patch => 0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch} (83%) rename debian/patches-rt/{0066-signal-x86-Delay-calling-signals-in-atomic.patch => 0064-signal-x86-Delay-calling-signals-in-atomic.patch} (96%) rename debian/patches-rt/{0067-x86-signal-delay-calling-signals-on-32bit.patch => 0065-x86-signal-delay-calling-signals-on-32bit.patch} (90%) rename debian/patches-rt/{0068-buffer_head-Replace-bh_uptodate_lock-for-rt.patch => 0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch} (95%) rename debian/patches-rt/{0069-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch => 0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch} (94%) rename debian/patches-rt/{0070-list_bl-Make-list-head-locking-RT-safe.patch => 0068-list_bl-Make-list-head-locking-RT-safe.patch} (96%) rename debian/patches-rt/{0071-list_bl-fixup-bogus-lockdep-warning.patch => 0069-list_bl-fixup-bogus-lockdep-warning.patch} (94%) rename debian/patches-rt/{0072-genirq-Disable-irqpoll-on-rt.patch => 0070-genirq-Disable-irqpoll-on-rt.patch} (89%) rename debian/patches-rt/{0073-genirq-Force-interrupt-thread-on-RT.patch => 0071-genirq-Force-interrupt-thread-on-RT.patch} (90%) rename debian/patches-rt/{0074-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch => 0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch} (96%) rename debian/patches-rt/{0075-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch => 0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch} (96%) rename debian/patches-rt/{0076-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch => 0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch} (85%) rename debian/patches-rt/{0077-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch => 0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch} (96%) rename debian/patches-rt/{0078-mm-page_alloc-rt-friendly-per-cpu-pages.patch => 0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch} (97%) rename debian/patches-rt/{0079-mm-swap-Convert-to-percpu-locked.patch => 0077-mm-swap-Convert-to-percpu-locked.patch} (96%) rename debian/patches-rt/{0080-mm-perform-lru_add_drain_all-remotely.patch => 0078-mm-perform-lru_add_drain_all-remotely.patch} (95%) rename debian/patches-rt/{0081-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch => 0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch} (95%) rename debian/patches-rt/{0082-ARM-Initialize-split-page-table-locks-for-vector-pag.patch => 0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch} (93%) rename debian/patches-rt/{0083-mm-Enable-SLUB-for-RT.patch => 0081-mm-Enable-SLUB-for-RT.patch} (74%) rename debian/patches-rt/{0084-slub-Enable-irqs-for-__GFP_WAIT.patch => 0082-slub-Enable-irqs-for-__GFP_WAIT.patch} (85%) rename debian/patches-rt/{0085-slub-Disable-SLUB_CPU_PARTIAL.patch => 0083-slub-Disable-SLUB_CPU_PARTIAL.patch} (93%) rename debian/patches-rt/{0086-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch => 0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch} (89%) rename debian/patches-rt/{0087-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch => 0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch} (84%) rename debian/patches-rt/{0088-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch => 0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch} (97%) rename debian/patches-rt/{0089-x86-mm-pat-disable-preemption-__split_large_page-aft.patch => 0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch} (91%) rename debian/patches-rt/{0090-radix-tree-use-local-locks.patch => 0088-radix-tree-use-local-locks.patch} (97%) rename debian/patches-rt/{0091-timers-Prepare-for-full-preemption.patch => 0089-timers-Prepare-for-full-preemption.patch} (93%) rename debian/patches-rt/{0092-x86-kvm-Require-const-tsc-for-RT.patch => 0090-x86-kvm-Require-const-tsc-for-RT.patch} (77%) rename debian/patches-rt/{0093-pci-switchtec-Don-t-use-completion-s-wait-queue.patch => 0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch} (95%) rename debian/patches-rt/{0094-wait.h-include-atomic.h.patch => 0092-wait.h-include-atomic.h.patch} (89%) rename debian/patches-rt/{0095-work-simple-Simple-work-queue-implemenation.patch => 0093-work-simple-Simple-work-queue-implemenation.patch} (97%) rename debian/patches-rt/{0096-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch => 0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch} (86%) rename debian/patches-rt/{0097-completion-Use-simple-wait-queues.patch => 0095-completion-Use-simple-wait-queues.patch} (96%) rename debian/patches-rt/{0098-fs-aio-simple-simple-work.patch => 0096-fs-aio-simple-simple-work.patch} (95%) rename debian/patches-rt/{0099-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch => 0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch} (96%) rename debian/patches-rt/{0100-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch => 0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch} (92%) rename debian/patches-rt/{0101-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch => 0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch} (98%) rename debian/patches-rt/{0102-hrtimers-Prepare-full-preemption.patch => 0100-hrtimers-Prepare-full-preemption.patch} (97%) rename debian/patches-rt/{0103-hrtimer-by-timers-by-default-into-the-softirq-contex.patch => 0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch} (94%) rename debian/patches-rt/{0104-sched-fair-Make-the-hrtimers-non-hard-again.patch => 0102-sched-fair-Make-the-hrtimers-non-hard-again.patch} (81%) rename debian/patches-rt/{0105-hrtimer-Move-schedule_work-call-to-helper-thread.patch => 0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch} (95%) rename debian/patches-rt/{0106-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch => 0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch} (91%) rename debian/patches-rt/{0107-posix-timers-Thread-posix-cpu-timers-on-rt.patch => 0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch} (97%) rename debian/patches-rt/{0108-sched-Move-task_struct-cleanup-to-RCU.patch => 0106-sched-Move-task_struct-cleanup-to-RCU.patch} (93%) rename debian/patches-rt/{0109-sched-Limit-the-number-of-task-migrations-per-batch.patch => 0107-sched-Limit-the-number-of-task-migrations-per-batch.patch} (81%) rename debian/patches-rt/{0110-sched-Move-mmdrop-to-RCU-on-RT.patch => 0108-sched-Move-mmdrop-to-RCU-on-RT.patch} (76%) rename debian/patches-rt/{0111-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch => 0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch} (87%) rename debian/patches-rt/{0112-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch => 0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch} (88%) rename debian/patches-rt/{0113-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch => 0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch} (86%) rename debian/patches-rt/{0114-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch => 0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch} (83%) rename debian/patches-rt/{0115-sched-Disable-TTWU_QUEUE-on-RT.patch => 0113-sched-Disable-TTWU_QUEUE-on-RT.patch} (86%) rename debian/patches-rt/{0116-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch => 0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch} (85%) rename debian/patches-rt/{0117-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch => 0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch} (93%) rename debian/patches-rt/{0118-hotplug-Lightweight-get-online-cpus.patch => 0116-hotplug-Lightweight-get-online-cpus.patch} (88%) rename debian/patches-rt/{0119-trace-Add-migrate-disabled-counter-to-tracing-output.patch => 0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch} (93%) rename debian/patches-rt/{0120-lockdep-Make-it-RT-aware.patch => 0118-lockdep-Make-it-RT-aware.patch} (93%) rename debian/patches-rt/{0121-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch => 0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch} (98%) rename debian/patches-rt/{0122-softirq-Check-preemption-after-reenabling-interrupts.patch => 0120-softirq-Check-preemption-after-reenabling-interrupts.patch} (89%) rename debian/patches-rt/{0123-softirq-Disable-softirq-stacks-for-RT.patch => 0121-softirq-Disable-softirq-stacks-for-RT.patch} (95%) rename debian/patches-rt/{0124-softirq-Split-softirq-locks.patch => 0122-softirq-Split-softirq-locks.patch} (99%) rename debian/patches-rt/{0125-net-core-use-local_bh_disable-in-netif_rx_ni.patch => 0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch} (80%) rename debian/patches-rt/{0126-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch => 0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch} (97%) rename debian/patches-rt/{0127-softirq-split-timer-softirqs-out-of-ksoftirqd.patch => 0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch} (97%) rename debian/patches-rt/{0128-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch => 0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch} (95%) rename debian/patches-rt/{0129-softirq-Avoid-local_softirq_pending-messages-if-task.patch => 0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch} (90%) rename debian/patches-rt/{0130-rtmutex-trylock-is-okay-on-RT.patch => 0128-rtmutex-trylock-is-okay-on-RT.patch} (86%) rename debian/patches-rt/{0131-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch => 0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch} (96%) rename debian/patches-rt/{0132-rtmutex-Handle-the-various-new-futex-race-conditions.patch => 0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch} (97%) rename debian/patches-rt/{0133-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch => 0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch} (96%) rename debian/patches-rt/{0134-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch => 0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch} (88%) rename debian/patches-rt/{0135-pid.h-include-atomic.h.patch => 0133-pid.h-include-atomic.h.patch} (88%) rename debian/patches-rt/{0136-arm-include-definition-for-cpumask_t.patch => 0134-arm-include-definition-for-cpumask_t.patch} (83%) rename debian/patches-rt/{0137-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch => 0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch} (86%) rename debian/patches-rt/{0138-rtmutex-Add-rtmutex_lock_killable.patch => 0136-rtmutex-Add-rtmutex_lock_killable.patch} (91%) rename debian/patches-rt/{0139-rtmutex-Make-lock_killable-work.patch => 0137-rtmutex-Make-lock_killable-work.patch} (89%) rename debian/patches-rt/{0140-spinlock-Split-the-lock-types-header.patch => 0138-spinlock-Split-the-lock-types-header.patch} (97%) rename debian/patches-rt/{0141-rtmutex-Avoid-include-hell.patch => 0139-rtmutex-Avoid-include-hell.patch} (84%) rename debian/patches-rt/{0142-rbtree-don-t-include-the-rcu-header.patch => 0140-rbtree-don-t-include-the-rcu-header.patch} (97%) rename debian/patches-rt/{0143-rtmutex-Provide-rt_mutex_slowlock_locked.patch => 0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch} (96%) rename debian/patches-rt/{0144-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch => 0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch} (96%) rename debian/patches-rt/{0145-rtmutex-add-sleeping-lock-implementation.patch => 0143-rtmutex-add-sleeping-lock-implementation.patch} (98%) rename debian/patches-rt/{0146-rtmutex-add-mutex-implementation-based-on-rtmutex.patch => 0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch} (98%) rename debian/patches-rt/{0147-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch => 0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch} (98%) rename debian/patches-rt/{0148-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch => 0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch} (98%) rename debian/patches-rt/{0149-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch => 0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch} (87%) rename debian/patches-rt/{0150-rtmutex-wire-up-RT-s-locking.patch => 0148-rtmutex-wire-up-RT-s-locking.patch} (98%) rename debian/patches-rt/{0151-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch => 0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch} (98%) rename debian/patches-rt/{0152-kconfig-Add-PREEMPT_RT_FULL.patch => 0150-kconfig-Add-PREEMPT_RT_FULL.patch} (92%) rename debian/patches-rt/{0153-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch => 0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch} (94%) rename debian/patches-rt/{0154-locking-rt-mutex-Flush-block-plug-on-__down_read.patch => 0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch} (89%) rename debian/patches-rt/{0155-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch => 0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch} (88%) rename debian/patches-rt/{0156-ptrace-fix-ptrace-vs-tasklist_lock-race.patch => 0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch} (92%) rename debian/patches-rt/{0157-rtmutex-annotate-sleeping-lock-context.patch => 0155-rtmutex-annotate-sleeping-lock-context.patch} (96%) rename debian/patches-rt/{0158-sched-migrate_disable-fallback-to-preempt_disable-in.patch => 0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch} (90%) rename debian/patches-rt/{0159-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch => 0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch} (97%) rename debian/patches-rt/{0160-rcu-Frob-softirq-test.patch => 0158-rcu-Frob-softirq-test.patch} (98%) rename debian/patches-rt/{0161-rcu-Merge-RCU-bh-into-RCU-preempt.patch => 0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch} (97%) rename debian/patches-rt/{0162-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch => 0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch} (95%) rename debian/patches-rt/{0163-rcu-Eliminate-softirq-processing-from-rcutree.patch => 0161-rcu-Eliminate-softirq-processing-from-rcutree.patch} (98%) rename debian/patches-rt/{0164-srcu-use-cpu_online-instead-custom-check.patch => 0162-srcu-use-cpu_online-instead-custom-check.patch} (94%) rename debian/patches-rt/{0165-srcu-replace-local_irqsave-with-a-locallock.patch => 0163-srcu-replace-local_irqsave-with-a-locallock.patch} (93%) rename debian/patches-rt/{0166-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch => 0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch} (82%) rename debian/patches-rt/{0167-tty-serial-omap-Make-the-locking-RT-aware.patch => 0165-tty-serial-omap-Make-the-locking-RT-aware.patch} (89%) rename debian/patches-rt/{0168-tty-serial-pl011-Make-the-locking-work-on-RT.patch => 0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch} (90%) rename debian/patches-rt/{0169-tty-serial-pl011-explicitly-initialize-the-flags-var.patch => 0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch} (90%) rename debian/patches-rt/{0170-rt-Improve-the-serial-console-PASS_LIMIT.patch => 0168-rt-Improve-the-serial-console-PASS_LIMIT.patch} (89%) rename debian/patches-rt/{0171-tty-serial-8250-don-t-take-the-trylock-during-oops.patch => 0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch} (87%) rename debian/patches-rt/{0172-locking-percpu-rwsem-Remove-preempt_disable-variants.patch => 0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch} (97%) rename debian/patches-rt/{0173-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch => 0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch} (95%) rename debian/patches-rt/{0174-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch => 0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch} (90%) rename debian/patches-rt/{0175-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch => 0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch} (96%) rename debian/patches-rt/{0176-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch => 0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch} (93%) rename debian/patches-rt/{0177-thermal-Defer-thermal-wakups-to-threads.patch => 0175-thermal-Defer-thermal-wakups-to-threads.patch} (95%) rename debian/patches-rt/{0178-x86-fpu-Disable-preemption-around-local_bh_disable.patch => 0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch} (87%) rename debian/patches-rt/{0179-fs-epoll-Do-not-disable-preemption-on-RT.patch => 0177-fs-epoll-Do-not-disable-preemption-on-RT.patch} (85%) rename debian/patches-rt/{0180-mm-vmalloc-Another-preempt-disable-region-which-suck.patch => 0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch} (75%) rename debian/patches-rt/{0181-block-mq-use-cpu_light.patch => 0179-block-mq-use-cpu_light.patch} (86%) rename debian/patches-rt/{0182-block-mq-do-not-invoke-preempt_disable.patch => 0180-block-mq-do-not-invoke-preempt_disable.patch} (90%) rename debian/patches-rt/{0183-block-mq-don-t-complete-requests-via-IPI.patch => 0181-block-mq-don-t-complete-requests-via-IPI.patch} (95%) rename debian/patches-rt/{0184-md-raid5-Make-raid5_percpu-handling-RT-aware.patch => 0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch} (93%) rename debian/patches-rt/{0185-rt-Introduce-cpu_chill.patch => 0183-rt-Introduce-cpu_chill.patch} (96%) rename debian/patches-rt/{0186-hrtimer-Don-t-lose-state-in-cpu_chill.patch => 0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch} (90%) rename debian/patches-rt/{0187-hrtimer-cpu_chill-save-task-state-in-saved_state.patch => 0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch} (92%) rename debian/patches-rt/{0188-block-blk-mq-move-blk_queue_usage_counter_release-in.patch => 0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch} (96%) rename debian/patches-rt/{0189-block-Use-cpu_chill-for-retry-loops.patch => 0187-block-Use-cpu_chill-for-retry-loops.patch} (88%) rename debian/patches-rt/{0190-fs-dcache-Use-cpu_chill-in-trylock-loops.patch => 0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch} (92%) rename debian/patches-rt/{0191-net-Use-cpu_chill-instead-of-cpu_relax.patch => 0189-net-Use-cpu_chill-instead-of-cpu_relax.patch} (90%) rename debian/patches-rt/{0192-fs-dcache-use-swait_queue-instead-of-waitqueue.patch => 0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch} (97%) rename debian/patches-rt/{0193-workqueue-Use-normal-rcu.patch => 0191-workqueue-Use-normal-rcu.patch} (98%) rename debian/patches-rt/{0194-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch => 0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch} (97%) rename debian/patches-rt/{0195-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch => 0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch} (97%) rename debian/patches-rt/{0196-sched-Distangle-worker-accounting-from-rqlock.patch => 0194-sched-Distangle-worker-accounting-from-rqlock.patch} (93%) rename debian/patches-rt/{0197-debugobjects-Make-RT-aware.patch => 0195-debugobjects-Make-RT-aware.patch} (84%) rename debian/patches-rt/{0198-seqlock-Prevent-rt-starvation.patch => 0196-seqlock-Prevent-rt-starvation.patch} (97%) rename debian/patches-rt/{0199-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch => 0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch} (93%) rename debian/patches-rt/{0200-net-Use-skbufhead-with-raw-lock.patch => 0198-net-Use-skbufhead-with-raw-lock.patch} (86%) rename debian/patches-rt/{0201-net-move-xmit_recursion-to-per-task-variable-on-RT.patch => 0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch} (90%) rename debian/patches-rt/{0202-net-provide-a-way-to-delegate-processing-a-softirq-t.patch => 0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch} (90%) rename debian/patches-rt/{0203-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch => 0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch} (82%) rename debian/patches-rt/{0204-net-Qdisc-use-a-seqlock-instead-seqcount.patch => 0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch} (98%) rename debian/patches-rt/{0205-net-add-back-the-missing-serialization-in-ip_send_un.patch => 0203-net-add-back-the-missing-serialization-in-ip_send_un.patch} (94%) rename debian/patches-rt/{0206-net-add-a-lock-around-icmp_sk.patch => 0204-net-add-a-lock-around-icmp_sk.patch} (92%) rename debian/patches-rt/{0207-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch => 0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch} (87%) rename debian/patches-rt/{0208-irqwork-push-most-work-into-softirq-context.patch => 0206-irqwork-push-most-work-into-softirq-context.patch} (97%) rename debian/patches-rt/{0209-printk-Make-rt-aware.patch => 0207-printk-Make-rt-aware.patch} (95%) rename debian/patches-rt/{0210-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch => 0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch} (89%) rename debian/patches-rt/{0211-printk-Drop-the-logbuf_lock-more-often.patch => 0209-printk-Drop-the-logbuf_lock-more-often.patch} (92%) rename debian/patches-rt/{0212-ARM-enable-irq-in-translation-section-permission-fau.patch => 0210-ARM-enable-irq-in-translation-section-permission-fau.patch} (95%) rename debian/patches-rt/{0213-genirq-update-irq_set_irqchip_state-documentation.patch => 0211-genirq-update-irq_set_irqchip_state-documentation.patch} (87%) rename debian/patches-rt/{0214-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch => 0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch} (92%) rename debian/patches-rt/{0215-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch => 0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch} (96%) rename debian/patches-rt/{0216-kgdb-serial-Short-term-workaround.patch => 0214-kgdb-serial-Short-term-workaround.patch} (94%) rename debian/patches-rt/{0217-sysfs-Add-sys-kernel-realtime-entry.patch => 0215-sysfs-Add-sys-kernel-realtime-entry.patch} (89%) rename debian/patches-rt/{0218-mm-rt-kmap_atomic-scheduling.patch => 0216-mm-rt-kmap_atomic-scheduling.patch} (97%) rename debian/patches-rt/{0219-x86-highmem-Add-a-already-used-pte-check.patch => 0217-x86-highmem-Add-a-already-used-pte-check.patch} (83%) rename debian/patches-rt/{0220-arm-highmem-Flush-tlb-on-unmap.patch => 0218-arm-highmem-Flush-tlb-on-unmap.patch} (87%) rename debian/patches-rt/{0221-arm-Enable-highmem-for-rt.patch => 0219-arm-Enable-highmem-for-rt.patch} (97%) rename debian/patches-rt/{0222-scsi-fcoe-Make-RT-aware.patch => 0220-scsi-fcoe-Make-RT-aware.patch} (90%) rename debian/patches-rt/{0223-x86-crypto-Reduce-preempt-disabled-regions.patch => 0221-x86-crypto-Reduce-preempt-disabled-regions.patch} (95%) rename debian/patches-rt/{0224-crypto-Reduce-preempt-disabled-regions-more-algos.patch => 0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch} (98%) rename debian/patches-rt/{0225-crypto-limit-more-FPU-enabled-sections.patch => 0223-crypto-limit-more-FPU-enabled-sections.patch} (95%) rename debian/patches-rt/{0226-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch => 0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch} (94%) rename debian/patches-rt/{0227-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch => 0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch} (94%) rename debian/patches-rt/{0228-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch => 0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch} (82%) rename debian/patches-rt/{0229-x86-stackprotector-Avoid-random-pool-on-rt.patch => 0227-x86-stackprotector-Avoid-random-pool-on-rt.patch} (92%) rename debian/patches-rt/{0230-random-Make-it-work-on-rt.patch => 0228-random-Make-it-work-on-rt.patch} (95%) rename debian/patches-rt/{0231-random-avoid-preempt_disable-ed-section.patch => 0229-random-avoid-preempt_disable-ed-section.patch} (94%) rename debian/patches-rt/{0232-cpu-hotplug-Implement-CPU-pinning.patch => 0230-cpu-hotplug-Implement-CPU-pinning.patch} (87%) rename debian/patches-rt/{0233-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch => 0231-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch} (81%) rename debian/patches-rt/{0234-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch => 0232-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch} (86%) rename debian/patches-rt/{0235-net-Remove-preemption-disabling-in-netif_rx.patch => 0233-net-Remove-preemption-disabling-in-netif_rx.patch} (85%) rename debian/patches-rt/{0236-net-Another-local_irq_disable-kmalloc-headache.patch => 0234-net-Another-local_irq_disable-kmalloc-headache.patch} (90%) rename debian/patches-rt/{0237-net-core-protect-users-of-napi_alloc_cache-against-r.patch => 0235-net-core-protect-users-of-napi_alloc_cache-against-r.patch} (95%) rename debian/patches-rt/{0238-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch => 0236-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch} (93%) rename debian/patches-rt/{0239-net-Add-a-mutex-around-devnet_rename_seq.patch => 0237-net-Add-a-mutex-around-devnet_rename_seq.patch} (81%) rename debian/patches-rt/{0240-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch => 0238-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch} (93%) rename debian/patches-rt/{0241-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch => 0239-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch} (96%) rename debian/patches-rt/{0242-sched-Add-support-for-lazy-preemption.patch => 0240-sched-Add-support-for-lazy-preemption.patch} (94%) rename debian/patches-rt/{0243-ftrace-Fix-trace-header-alignment.patch => 0241-ftrace-Fix-trace-header-alignment.patch} (91%) rename debian/patches-rt/{0244-x86-Support-for-lazy-preemption.patch => 0242-x86-Support-for-lazy-preemption.patch} (96%) rename debian/patches-rt/{0245-x86-lazy-preempt-properly-check-against-preempt-mask.patch => 0243-x86-lazy-preempt-properly-check-against-preempt-mask.patch} (86%) rename debian/patches-rt/{0246-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch => 0244-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch} (89%) rename debian/patches-rt/{0247-arm-Add-support-for-lazy-preemption.patch => 0245-arm-Add-support-for-lazy-preemption.patch} (97%) rename debian/patches-rt/{0248-powerpc-Add-support-for-lazy-preemption.patch => 0246-powerpc-Add-support-for-lazy-preemption.patch} (94%) rename debian/patches-rt/{0249-arch-arm64-Add-lazy-preempt-support.patch => 0247-arch-arm64-Add-lazy-preempt-support.patch} (97%) rename debian/patches-rt/{0250-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch => 0248-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch} (94%) rename debian/patches-rt/{0251-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch => 0249-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch} (94%) rename debian/patches-rt/{0252-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch => 0250-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch} (95%) rename debian/patches-rt/{0253-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch => 0251-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch} (89%) rename debian/patches-rt/{0254-tpm_tis-fix-stall-after-iowrite-s.patch => 0252-tpm_tis-fix-stall-after-iowrite-s.patch} (94%) rename debian/patches-rt/{0255-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch => 0253-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch} (95%) rename debian/patches-rt/{0256-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch => 0254-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch} (93%) rename debian/patches-rt/{0257-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch => 0255-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch} (97%) rename debian/patches-rt/{0258-drm-i915-disable-tracing-on-RT.patch => 0256-drm-i915-disable-tracing-on-RT.patch} (90%) rename debian/patches-rt/{0259-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch => 0257-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch} (87%) rename debian/patches-rt/{0260-cgroups-use-simple-wait-in-css_release.patch => 0258-cgroups-use-simple-wait-in-css_release.patch} (93%) rename debian/patches-rt/{0261-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch => 0259-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch} (98%) rename debian/patches-rt/{0262-apparmor-use-a-locallock-instead-preempt_disable.patch => 0260-apparmor-use-a-locallock-instead-preempt_disable.patch} (94%) rename debian/patches-rt/{0263-workqueue-Prevent-deadlock-stall-on-RT.patch => 0261-workqueue-Prevent-deadlock-stall-on-RT.patch} (95%) rename debian/patches-rt/{0264-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch => 0262-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch} (96%) rename debian/patches-rt/{0265-Add-localversion-for-RT-release.patch => 0263-Add-localversion-for-RT-release.patch} (74%) rename debian/patches-rt/{0266-Linux-4.19.31-rt18-REBASE.patch => 0264-Linux-4.19.37-rt19-REBASE.patch} (64%) diff --git a/debian/changelog b/debian/changelog index 00de02a8a..b93ba5338 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1115,6 +1115,9 @@ linux (4.19.37-1) UNRELEASED; urgency=medium * [mips] Fix indirect syscall tracing & seccomp filtering for big endian MIPS64 kernels with 32-bit userland. + [ Romain Perier ] + * [rt] Update to 4.19.37-rt19 + -- Ben Hutchings Mon, 18 Mar 2019 22:50:08 +0000 linux (4.19.28-2) unstable; urgency=medium diff --git a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch index 64ed2b1fc..7b054f8ed 100644 --- a/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch +++ b/debian/patches-rt/0001-ARM-at91-add-TCB-registers-definitions.patch @@ -1,8 +1,8 @@ -From a65d4f22e9030ffe94b74319c170821fb7bc2a81 Mon Sep 17 00:00:00 2001 +From bc4d8f04b5bd123853531af90f1ec548d8ab61e4 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:18 +0200 -Subject: [PATCH 001/266] ARM: at91: add TCB registers definitions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 001/264] ARM: at91: add TCB registers definitions +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Add registers and bits definitions for the timer counter blocks found on Atmel ARM SoCs. diff --git a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch index 3463d0d35..d9f45a206 100644 --- a/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch +++ b/debian/patches-rt/0002-clocksource-drivers-Add-a-new-driver-for-the-Atmel-A.patch @@ -1,9 +1,9 @@ -From ec74d20d992913ef170482f3ad9afa7ddf59cdf4 Mon Sep 17 00:00:00 2001 +From 1eef86c9b8aa09d8e57f4ee5684c7bfd28f6900f Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:19 +0200 -Subject: [PATCH 002/266] clocksource/drivers: Add a new driver for the Atmel +Subject: [PATCH 002/264] clocksource/drivers: Add a new driver for the Atmel ARM TC blocks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Add a driver for the Atmel Timer Counter Blocks. This driver provides a clocksource and two clockevent devices. diff --git a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch index 2609db9dd..1d5f0e417 100644 --- a/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch +++ b/debian/patches-rt/0003-clocksource-drivers-timer-atmel-tcb-add-clockevent-d.patch @@ -1,9 +1,9 @@ -From f303771b4daf883ace6cfd76268c38b280178d47 Mon Sep 17 00:00:00 2001 +From f6803050ab0965a1255a3b407ca429a04c5cb230 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:20 +0200 -Subject: [PATCH 003/266] clocksource/drivers: timer-atmel-tcb: add clockevent +Subject: [PATCH 003/264] clocksource/drivers: timer-atmel-tcb: add clockevent device on separate channel -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Add an other clockevent device that uses a separate TCB channel when available. diff --git a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch index ac7fb00e6..5863fbe6f 100644 --- a/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch +++ b/debian/patches-rt/0004-clocksource-drivers-atmel-pit-make-option-silent.patch @@ -1,8 +1,8 @@ -From 89b749f497d850591d338a05290961a95c9a1e9e Mon Sep 17 00:00:00 2001 +From 873075a203c574d322429e4a8cd0686541293903 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:21 +0200 -Subject: [PATCH 004/266] clocksource/drivers: atmel-pit: make option silent -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 004/264] clocksource/drivers: atmel-pit: make option silent +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz To conform with the other option, make the ATMEL_PIT option silent so it can be selected from the platform diff --git a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch index 8c1690854..9e0d34428 100644 --- a/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch +++ b/debian/patches-rt/0005-ARM-at91-Implement-clocksource-selection.patch @@ -1,8 +1,8 @@ -From c508ebe2604e0acd904da4940c042924ed2f19a8 Mon Sep 17 00:00:00 2001 +From e0dc436f11c998b38ee3dc4cd269d5075ea12b7e Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:22 +0200 -Subject: [PATCH 005/266] ARM: at91: Implement clocksource selection -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 005/264] ARM: at91: Implement clocksource selection +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Allow selecting and unselecting the PIT clocksource driver so it doesn't have to be compile when unused. diff --git a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch index 251132bc8..2c1cae930 100644 --- a/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch +++ b/debian/patches-rt/0006-ARM-configs-at91-use-new-TCB-timer-driver.patch @@ -1,8 +1,8 @@ -From d8964bb5d00d91ccdd8e3cd971ccb9e13dff91b4 Mon Sep 17 00:00:00 2001 +From ca4a1c8ce5f7224d99ef6c2a6754468cb72ea4c3 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:23 +0200 -Subject: [PATCH 006/266] ARM: configs: at91: use new TCB timer driver -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 006/264] ARM: configs: at91: use new TCB timer driver +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Unselecting ATMEL_TCLIB switches the TCB timer driver from tcb_clksrc to timer-atmel-tcb. diff --git a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch index 936cb86ea..29f3f5b97 100644 --- a/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch +++ b/debian/patches-rt/0007-ARM-configs-at91-unselect-PIT.patch @@ -1,8 +1,8 @@ -From bc6d50051826beac487e82f8187a8ef8e43f04df Mon Sep 17 00:00:00 2001 +From 2c83222f4057f755febccd002f3720bbf73a6473 Mon Sep 17 00:00:00 2001 From: Alexandre Belloni Date: Thu, 13 Sep 2018 13:30:24 +0200 -Subject: [PATCH 007/266] ARM: configs: at91: unselect PIT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 007/264] ARM: configs: at91: unselect PIT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The PIT is not required anymore to successfully boot and may actually harm in case preempt-rt is used because the PIT interrupt is shared. diff --git a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch index 38e7605a1..135fa68f9 100644 --- a/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch +++ b/debian/patches-rt/0008-irqchip-gic-v3-its-Move-pending-table-allocation-to-.patch @@ -1,9 +1,9 @@ -From 63b24725baf9adfb75e97b162a7ed52025e132bb Mon Sep 17 00:00:00 2001 +From bb357496d72d05e2841899655c8e709d7c369ab0 Mon Sep 17 00:00:00 2001 From: Marc Zyngier Date: Fri, 27 Jul 2018 13:38:54 +0100 -Subject: [PATCH 008/266] irqchip/gic-v3-its: Move pending table allocation to +Subject: [PATCH 008/264] irqchip/gic-v3-its: Move pending table allocation to init time -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Marc Zyngier Signed-off-by: Sebastian Andrzej Siewior @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 53 insertions(+), 28 deletions(-) diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c -index 78970cdf2ef6..163cef00a033 100644 +index 65ab2c80529c..21681f0f85f4 100644 --- a/drivers/irqchip/irq-gic-v3-its.c +++ b/drivers/irqchip/irq-gic-v3-its.c @@ -179,6 +179,7 @@ static DEFINE_RAW_SPINLOCK(vmovp_lock); diff --git a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch index 683753c94..6d08fbb65 100644 --- a/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch +++ b/debian/patches-rt/0009-kthread-convert-worker-lock-to-raw-spinlock.patch @@ -1,8 +1,8 @@ -From 67a71e8bdd5bed22f28763f05687dc8afe3d028e Mon Sep 17 00:00:00 2001 +From 9d8b1db47a7e355eb0c34a8af57f3613db6cb18c Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Fri, 28 Sep 2018 21:03:51 +0000 -Subject: [PATCH 009/266] kthread: convert worker lock to raw spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 009/264] kthread: convert worker lock to raw spinlock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In order to enable the queuing of kthread work items from hardirq context even when PREEMPT_RT_FULL is enabled, convert the worker diff --git a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch index 0076368fb..c3974ea10 100644 --- a/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch +++ b/debian/patches-rt/0010-crypto-caam-qi-simplify-CGR-allocation-freeing.patch @@ -1,11 +1,11 @@ -From b4cb1ff0cceb0ca014a49e47cb93a112574e6339 Mon Sep 17 00:00:00 2001 +From b37ee7bd4ac42c97c3fce905634cf808345a25ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Horia=20Geant=C4=83?= Date: Mon, 8 Oct 2018 14:09:37 +0300 -Subject: [PATCH 010/266] crypto: caam/qi - simplify CGR allocation, freeing +Subject: [PATCH 010/264] crypto: caam/qi - simplify CGR allocation, freeing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz [Upstream commit 29e83c757006fd751966bdc53392bb22d74179c6] diff --git a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch index 087136aea..23a35f932 100644 --- a/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch +++ b/debian/patches-rt/0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch @@ -1,8 +1,8 @@ -From a4524b7d31b9a9d9a25b35af08ee65b73d214893 Mon Sep 17 00:00:00 2001 +From 78f68e44994c830d70aa92bb86a47b204ff605c6 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 7 Jan 2019 13:52:31 +0100 -Subject: [PATCH 011/266] sched/fair: Robustify CFS-bandwidth timer locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 011/264] sched/fair: Robustify CFS-bandwidth timer locking +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Traditionally hrtimer callbacks were run with IRQs disabled, but with the introduction of HRTIMER_MODE_SOFT it is possible they run from @@ -25,15 +25,15 @@ Tested-by: Mike Galbraith Signed-off-by: Peter Zijlstra (Intel) Link: https://lkml.kernel.org/r/20190107125231.GE14122@hirez.programming.kicks-ass.net Signed-off-by: Sebastian Andrzej Siewior -[bwh: Adjusted to apply on top of commit c3edd427d538 - "sched/fair: Limit sched_cfs_period_timer() loop to avoid hard lockup"] --- kernel/sched/fair.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) +diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c +index 4aa8e7d90c25..53acadf72cd9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4553,7 +4553,7 @@ static u64 distribute_cfs_runtime(struct +@@ -4553,7 +4553,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, struct rq *rq = rq_of(cfs_rq); struct rq_flags rf; @@ -42,7 +42,7 @@ Signed-off-by: Sebastian Andrzej Siewior if (!cfs_rq_throttled(cfs_rq)) goto next; -@@ -4570,7 +4570,7 @@ static u64 distribute_cfs_runtime(struct +@@ -4570,7 +4570,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, unthrottle_cfs_rq(cfs_rq); next: @@ -51,7 +51,7 @@ Signed-off-by: Sebastian Andrzej Siewior if (!remaining) break; -@@ -4586,7 +4586,7 @@ next: +@@ -4586,7 +4586,7 @@ static u64 distribute_cfs_runtime(struct cfs_bandwidth *cfs_b, * period the timer is deactivated until scheduling resumes; cfs_b->idle is * used to track this state. */ @@ -60,7 +60,7 @@ Signed-off-by: Sebastian Andrzej Siewior { u64 runtime, runtime_expires; int throttled; -@@ -4628,11 +4628,11 @@ static int do_sched_cfs_period_timer(str +@@ -4628,11 +4628,11 @@ static int do_sched_cfs_period_timer(struct cfs_bandwidth *cfs_b, int overrun) while (throttled && cfs_b->runtime > 0 && !cfs_b->distribute_running) { runtime = cfs_b->runtime; cfs_b->distribute_running = 1; @@ -74,7 +74,7 @@ Signed-off-by: Sebastian Andrzej Siewior cfs_b->distribute_running = 0; throttled = !list_empty(&cfs_b->throttled_cfs_rq); -@@ -4741,17 +4741,18 @@ static __always_inline void return_cfs_r +@@ -4741,17 +4741,18 @@ static __always_inline void return_cfs_rq_runtime(struct cfs_rq *cfs_rq) static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b) { u64 runtime = 0, slice = sched_cfs_bandwidth_slice(); @@ -96,7 +96,7 @@ Signed-off-by: Sebastian Andrzej Siewior return; } -@@ -4762,18 +4763,18 @@ static void do_sched_cfs_slack_timer(str +@@ -4762,18 +4763,18 @@ static void do_sched_cfs_slack_timer(struct cfs_bandwidth *cfs_b) if (runtime) cfs_b->distribute_running = 1; @@ -118,7 +118,7 @@ Signed-off-by: Sebastian Andrzej Siewior } /* -@@ -4853,11 +4854,12 @@ static enum hrtimer_restart sched_cfs_pe +@@ -4853,11 +4854,12 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) { struct cfs_bandwidth *cfs_b = container_of(timer, struct cfs_bandwidth, period_timer); @@ -132,7 +132,7 @@ Signed-off-by: Sebastian Andrzej Siewior for (;;) { overrun = hrtimer_forward_now(timer, cfs_b->period); if (!overrun) -@@ -4885,11 +4887,11 @@ static enum hrtimer_restart sched_cfs_pe +@@ -4885,11 +4887,11 @@ static enum hrtimer_restart sched_cfs_period_timer(struct hrtimer *timer) count = 0; } @@ -146,3 +146,6 @@ Signed-off-by: Sebastian Andrzej Siewior return idle ? HRTIMER_NORESTART : HRTIMER_RESTART; } +-- +2.20.1 + diff --git a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch index 39ec3af97..e3bfe57fd 100644 --- a/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch +++ b/debian/patches-rt/0012-arm-Convert-arm-boot_lock-to-raw.patch @@ -1,8 +1,8 @@ -From 37261737c2ad09732c9131095b574191058afc92 Mon Sep 17 00:00:00 2001 +From fa6e4c3d085352808073b23fdff79729db01930a Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Mon, 19 Sep 2011 14:51:14 -0700 -Subject: [PATCH 012/266] arm: Convert arm boot_lock to raw -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 012/264] arm: Convert arm boot_lock to raw +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The arm boot_lock is used by the secondary processor startup code. The locking task is the idle thread, which has idle->sched_class == &idle_sched_class. diff --git a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch index f9711464e..0ef5c3a9d 100644 --- a/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch +++ b/debian/patches-rt/0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch @@ -1,9 +1,9 @@ -From b7623467c5f4754d6461928696e789b3fa834b7a Mon Sep 17 00:00:00 2001 +From 4debab2aa3d29fcdb5b9cd132416094c54e9361b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 17 Jul 2018 18:25:31 +0200 -Subject: [PATCH 013/266] x86/ioapic: Don't let setaffinity unmask threaded EOI +Subject: [PATCH 013/264] x86/ioapic: Don't let setaffinity unmask threaded EOI interrupt too early -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz There is an issue with threaded interrupts which are marked ONESHOT and using the fasteoi handler. diff --git a/debian/patches-rt/0016-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch similarity index 83% rename from debian/patches-rt/0016-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch rename to debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch index f45a8f34f..12af0176e 100644 --- a/debian/patches-rt/0016-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch +++ b/debian/patches-rt/0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch @@ -1,8 +1,8 @@ -From 8802563fe8efa798671fe55ab1417f3665f63cc7 Mon Sep 17 00:00:00 2001 +From 1117688ac7606703683b1ac8cacdbf02d47b4adb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 3 Jul 2018 18:19:48 +0200 -Subject: [PATCH 016/266] cgroup: use irqsave in cgroup_rstat_flush_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 014/264] cgroup: use irqsave in cgroup_rstat_flush_locked() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock either with spin_lock_irq() or spin_lock_irqsave(). @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/kernel/cgroup/rstat.c b/kernel/cgroup/rstat.c -index d503d1a9007c..63fc5e472c82 100644 +index bb95a35e8c2d..3266a9781b4e 100644 --- a/kernel/cgroup/rstat.c +++ b/kernel/cgroup/rstat.c -@@ -157,8 +157,9 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) +@@ -159,8 +159,9 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) raw_spinlock_t *cpu_lock = per_cpu_ptr(&cgroup_rstat_cpu_lock, cpu); struct cgroup *pos = NULL; @@ -36,7 +36,7 @@ index d503d1a9007c..63fc5e472c82 100644 while ((pos = cgroup_rstat_cpu_pop_updated(pos, cgrp, cpu))) { struct cgroup_subsys_state *css; -@@ -170,7 +171,7 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) +@@ -172,7 +173,7 @@ static void cgroup_rstat_flush_locked(struct cgroup *cgrp, bool may_sleep) css->ss->css_rstat_flush(css, cpu); rcu_read_unlock(); } diff --git a/debian/patches-rt/0017-fscache-initialize-cookie-hash-table-raw-spinlocks.patch b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch similarity index 92% rename from debian/patches-rt/0017-fscache-initialize-cookie-hash-table-raw-spinlocks.patch rename to debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch index d153d0ebe..d16dc5e9e 100644 --- a/debian/patches-rt/0017-fscache-initialize-cookie-hash-table-raw-spinlocks.patch +++ b/debian/patches-rt/0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch @@ -1,8 +1,8 @@ -From e9ac49cf76873f8ca7a6868b1a467d3e4a126834 Mon Sep 17 00:00:00 2001 +From 8cf7a5b4f03a2829c823971a12c1a206bcba069d Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Tue, 3 Jul 2018 13:34:30 -0500 -Subject: [PATCH 017/266] fscache: initialize cookie hash table raw spinlocks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 015/264] fscache: initialize cookie hash table raw spinlocks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT diff --git a/debian/patches-rt/0018-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch similarity index 89% rename from debian/patches-rt/0018-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch rename to debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch index 0042ff5c4..8c30ef06f 100644 --- a/debian/patches-rt/0018-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch +++ b/debian/patches-rt/0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch @@ -1,11 +1,11 @@ -From 26295661cf99f6bcac999f0c1001001ae6ece3b1 Mon Sep 17 00:00:00 2001 +From 841d8b9e20d17d7907421dc223346198287e81a1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 29 Aug 2018 21:59:04 +0200 -Subject: [PATCH 018/266] Drivers: hv: vmbus: include header for get_irq_regs() +Subject: [PATCH 016/264] Drivers: hv: vmbus: include header for get_irq_regs() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On !RT the header file get_irq_regs() gets pulled in via other header files. On RT it does not and the build fails: diff --git a/debian/patches-rt/0019-percpu-include-irqflags.h-for-raw_local_irq_save.patch b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch similarity index 85% rename from debian/patches-rt/0019-percpu-include-irqflags.h-for-raw_local_irq_save.patch rename to debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch index b0fff294e..758394627 100644 --- a/debian/patches-rt/0019-percpu-include-irqflags.h-for-raw_local_irq_save.patch +++ b/debian/patches-rt/0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch @@ -1,8 +1,8 @@ -From 359af9f6304a32c08a0983076d636a524e1e8697 Mon Sep 17 00:00:00 2001 +From d77a9b0754acbc89c7884b3505afdbb49677b36a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 11 Oct 2018 16:39:59 +0200 -Subject: [PATCH 019/266] percpu: include irqflags.h for raw_local_irq_save() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 017/264] percpu: include irqflags.h for raw_local_irq_save() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The header percpu.h header file is using raw_local_irq_save() but does not include irqflags.h for its definition. It compiles because the diff --git a/debian/patches-rt/0020-efi-Allow-efi-runtime.patch b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch similarity index 86% rename from debian/patches-rt/0020-efi-Allow-efi-runtime.patch rename to debian/patches-rt/0018-efi-Allow-efi-runtime.patch index 4a2df50d1..13e6e346b 100644 --- a/debian/patches-rt/0020-efi-Allow-efi-runtime.patch +++ b/debian/patches-rt/0018-efi-Allow-efi-runtime.patch @@ -1,8 +1,8 @@ -From b83100f22895ed8f43d7f1ddc629ac5f378364cb Mon Sep 17 00:00:00 2001 +From 10c47a6dadf91edee1d414002f91cc73bbe59c90 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 15:06:10 +0200 -Subject: [PATCH 020/266] efi: Allow efi=runtime -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 018/264] efi: Allow efi=runtime +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In case the option "efi=noruntime" is default at built-time, the user could overwrite its sate by `efi=runtime' and allow it again. diff --git a/debian/patches-rt/0021-x86-efi-drop-task_lock-from-efi_switch_mm.patch b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch similarity index 92% rename from debian/patches-rt/0021-x86-efi-drop-task_lock-from-efi_switch_mm.patch rename to debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch index 50cdd0a4f..abedfd9b3 100644 --- a/debian/patches-rt/0021-x86-efi-drop-task_lock-from-efi_switch_mm.patch +++ b/debian/patches-rt/0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch @@ -1,8 +1,8 @@ -From a70a1ff87b4876681228007d218d34d59473ea36 Mon Sep 17 00:00:00 2001 +From d1af306cedb5a02314565763b49992b10ce5d802 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 24 Jul 2018 14:48:55 +0200 -Subject: [PATCH 021/266] x86/efi: drop task_lock() from efi_switch_mm() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 019/264] x86/efi: drop task_lock() from efi_switch_mm() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz efi_switch_mm() is a wrapper around switch_mm() which saves current's ->active_mm, sets the requests mm as ->active_mm and invokes diff --git a/debian/patches-rt/0022-arm64-KVM-compute_layout-before-altenates-are-applie.patch b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch similarity index 94% rename from debian/patches-rt/0022-arm64-KVM-compute_layout-before-altenates-are-applie.patch rename to debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch index e33794626..c81d76c56 100644 --- a/debian/patches-rt/0022-arm64-KVM-compute_layout-before-altenates-are-applie.patch +++ b/debian/patches-rt/0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch @@ -1,9 +1,9 @@ -From 9af14e5327e358a220624588caf607074b903d2e Mon Sep 17 00:00:00 2001 +From 6d4ae829b2e8c46b1d730790bf2644e5a053cf14 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 09:13:42 +0200 -Subject: [PATCH 022/266] arm64: KVM: compute_layout before altenates are +Subject: [PATCH 020/264] arm64: KVM: compute_layout before altenates are applied -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz compute_layout() is invoked as part of an alternative fixup under stop_machine() and needs a sleeping lock as part of get_random_long(). diff --git a/debian/patches-rt/0023-of-allocate-free-phandle-cache-outside-of-the-devtre.patch b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch similarity index 94% rename from debian/patches-rt/0023-of-allocate-free-phandle-cache-outside-of-the-devtre.patch rename to debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch index 68b5cf17d..ebca3c838 100644 --- a/debian/patches-rt/0023-of-allocate-free-phandle-cache-outside-of-the-devtre.patch +++ b/debian/patches-rt/0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch @@ -1,9 +1,9 @@ -From 620c41f6fc3705fe88d4ede270d434f2e8494e41 Mon Sep 17 00:00:00 2001 +From 1ab1616de2aaaa7392ebb706a457af2fdcd2b82a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 31 Aug 2018 14:16:30 +0200 -Subject: [PATCH 023/266] of: allocate / free phandle cache outside of the +Subject: [PATCH 021/264] of: allocate / free phandle cache outside of the devtree_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The phandle cache code allocates memory while holding devtree_lock which is a raw_spinlock_t. Memory allocation (and free()) is not possible on diff --git a/debian/patches-rt/0024-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch similarity index 95% rename from debian/patches-rt/0024-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch rename to debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch index 82ad5144e..d488ddb6d 100644 --- a/debian/patches-rt/0024-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch +++ b/debian/patches-rt/0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From 8a311199e1b8b0034e48f571a77dc0dba92493fc Mon Sep 17 00:00:00 2001 +From a61c877f81f1f0b850090df19e08d51cf9465955 Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Tue, 18 Sep 2018 10:29:31 -0500 -Subject: [PATCH 024/266] mm/kasan: make quarantine_lock a raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 022/264] mm/kasan: make quarantine_lock a raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The static lock quarantine_lock is used in quarantine.c to protect the quarantine queue datastructures. It is taken inside quarantine queue diff --git a/debian/patches-rt/0025-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch similarity index 91% rename from debian/patches-rt/0025-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch rename to debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch index 402bc340e..2d9b8517a 100644 --- a/debian/patches-rt/0025-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch +++ b/debian/patches-rt/0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch @@ -1,9 +1,9 @@ -From 383db1cd23d5f1b7583f5723fc8460c51ee469a8 Mon Sep 17 00:00:00 2001 +From b710c9561c0a7ddf1c7fef8d3bd3bc6d9e140a4e Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Mon, 29 Oct 2018 11:53:01 +0100 -Subject: [PATCH 025/266] EXP rcu: Revert expedited GP parallelization +Subject: [PATCH 023/264] EXP rcu: Revert expedited GP parallelization cleverness -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz (Commit 258ba8e089db23f760139266c232f01bad73f85c from linux-rcu) diff --git a/debian/patches-rt/0026-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch similarity index 97% rename from debian/patches-rt/0026-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch rename to debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch index 3cfc93de5..f1a322ec6 100644 --- a/debian/patches-rt/0026-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch +++ b/debian/patches-rt/0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch @@ -1,11 +1,11 @@ -From dcf4a87ee4351ab504708b78c95b72551e34f774 Mon Sep 17 00:00:00 2001 +From b32df881582f39cab5e57b894f554f8573170cf7 Mon Sep 17 00:00:00 2001 From: He Zhe Date: Wed, 19 Dec 2018 16:30:57 +0100 -Subject: [PATCH 026/266] kmemleak: Turn kmemleak_lock to raw spinlock on RT +Subject: [PATCH 024/264] kmemleak: Turn kmemleak_lock to raw spinlock on RT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz kmemleak_lock, as a rwlock on RT, can possibly be held in atomic context and causes the follow BUG. diff --git a/debian/patches-rt/0027-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch similarity index 95% rename from debian/patches-rt/0027-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch rename to debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch index b7e90f906..3bbe6719f 100644 --- a/debian/patches-rt/0027-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +++ b/debian/patches-rt/0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -1,8 +1,8 @@ -From 2392a2ef206d32260f9bf32e3f5041bb86920b15 Mon Sep 17 00:00:00 2001 +From 82889085f9639d9aed51313cf8fd8e8ca32b8e8b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 28 Oct 2016 23:05:11 +0200 -Subject: [PATCH 027/266] NFSv4: replace seqcount_t with a seqlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 025/264] NFSv4: replace seqcount_t with a seqlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -58,7 +58,7 @@ index 63287d911c08..2ae55eaa4a1e 100644 }; diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index e7abcf7629b3..d95afb31b918 100644 +index 580e37bc3fe2..9d010731f901 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -2863,7 +2863,7 @@ static int _nfs4_open_and_get_state(struct nfs4_opendata *opendata, diff --git a/debian/patches-rt/0028-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch similarity index 93% rename from debian/patches-rt/0028-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch rename to debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch index e02aafe63..1767b0a97 100644 --- a/debian/patches-rt/0028-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch +++ b/debian/patches-rt/0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch @@ -1,12 +1,12 @@ -From 3550c358113e3e973671b39bbf26eacab512ef1c Mon Sep 17 00:00:00 2001 +From 3ace22e122817ae9b6da2d0c49209a834f96375c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 4 Apr 2017 12:50:16 +0200 -Subject: [PATCH 028/266] kernel: sched: Provide a pointer to the valid CPU +Subject: [PATCH 026/264] kernel: sched: Provide a pointer to the valid CPU mask MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In commit 4b53a3412d66 ("sched/core: Remove the tsk_nr_cpus_allowed() wrapper") the tsk_nr_cpus_allowed() wrapper was removed. There was not @@ -271,7 +271,7 @@ index 0ceb3b6b37e7..ccfef702c771 100644 static inline void task_core_dumping(struct seq_file *m, struct mm_struct *mm) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 4abb5bd74b04..b347614b42f4 100644 +index 5dc024e28397..fdb8ba398ea8 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -660,7 +660,8 @@ struct task_struct { @@ -334,10 +334,10 @@ index 64ef113e387e..bfe9c5c3eb88 100644 /* * One for us, one for whoever does the "release_task()" (usually diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 152a0b0c91bb..c7377dcaf718 100644 +index d7f409866cdf..80badc70c258 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -877,7 +877,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p) +@@ -878,7 +878,7 @@ static inline bool is_per_cpu_kthread(struct task_struct *p) */ static inline bool is_cpu_allowed(struct task_struct *p, int cpu) { @@ -346,7 +346,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 return false; if (is_per_cpu_kthread(p)) -@@ -972,7 +972,7 @@ static int migration_cpu_stop(void *data) +@@ -973,7 +973,7 @@ static int migration_cpu_stop(void *data) local_irq_disable(); /* * We need to explicitly wake pending tasks before running @@ -355,7 +355,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 * during wakeups, see set_cpus_allowed_ptr()'s TASK_WAKING test. */ sched_ttwu_pending(); -@@ -1003,7 +1003,7 @@ static int migration_cpu_stop(void *data) +@@ -1004,7 +1004,7 @@ static int migration_cpu_stop(void *data) */ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask) { @@ -364,7 +364,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 p->nr_cpus_allowed = cpumask_weight(new_mask); } -@@ -1073,7 +1073,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, +@@ -1074,7 +1074,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, goto out; } @@ -373,7 +373,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 goto out; if (!cpumask_intersects(new_mask, cpu_valid_mask)) { -@@ -1236,10 +1236,10 @@ static int migrate_swap_stop(void *data) +@@ -1237,10 +1237,10 @@ static int migrate_swap_stop(void *data) if (task_cpu(arg->src_task) != arg->src_cpu) goto unlock; @@ -386,7 +386,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 goto unlock; __migrate_swap_task(arg->src_task, arg->dst_cpu); -@@ -1281,10 +1281,10 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, +@@ -1282,10 +1282,10 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, if (!cpu_active(arg.src_cpu) || !cpu_active(arg.dst_cpu)) goto out; @@ -399,7 +399,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 goto out; trace_sched_swap_numa(cur, arg.src_cpu, p, arg.dst_cpu); -@@ -1429,7 +1429,7 @@ void kick_process(struct task_struct *p) +@@ -1430,7 +1430,7 @@ void kick_process(struct task_struct *p) EXPORT_SYMBOL_GPL(kick_process); /* @@ -408,7 +408,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 * * A few notes on cpu_active vs cpu_online: * -@@ -1469,14 +1469,14 @@ static int select_fallback_rq(int cpu, struct task_struct *p) +@@ -1470,14 +1470,14 @@ static int select_fallback_rq(int cpu, struct task_struct *p) for_each_cpu(dest_cpu, nodemask) { if (!cpu_active(dest_cpu)) continue; @@ -425,7 +425,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 if (!is_cpu_allowed(p, dest_cpu)) continue; -@@ -1520,7 +1520,7 @@ static int select_fallback_rq(int cpu, struct task_struct *p) +@@ -1521,7 +1521,7 @@ static int select_fallback_rq(int cpu, struct task_struct *p) } /* @@ -434,7 +434,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 */ static inline int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) -@@ -1530,11 +1530,11 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) +@@ -1531,11 +1531,11 @@ int select_task_rq(struct task_struct *p, int cpu, int sd_flags, int wake_flags) if (p->nr_cpus_allowed > 1) cpu = p->sched_class->select_task_rq(p, cpu, sd_flags, wake_flags); else @@ -448,7 +448,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 * CPU. * * Since this is common to all placement strategies, this lives here. -@@ -2401,7 +2401,7 @@ void wake_up_new_task(struct task_struct *p) +@@ -2402,7 +2402,7 @@ void wake_up_new_task(struct task_struct *p) #ifdef CONFIG_SMP /* * Fork balancing, do it here and not earlier because: @@ -457,7 +457,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 * - any previously selected CPU might disappear through hotplug * * Use __set_task_cpu() to avoid calling sched_class::migrate_task_rq, -@@ -4274,7 +4274,7 @@ static int __sched_setscheduler(struct task_struct *p, +@@ -4275,7 +4275,7 @@ static int __sched_setscheduler(struct task_struct *p, * the entire root_domain to become SCHED_DEADLINE. We * will also fail if there's no bandwidth available. */ @@ -466,7 +466,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 rq->rd->dl_bw.bw == 0) { task_rq_unlock(rq, p, &rf); return -EPERM; -@@ -4873,7 +4873,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask) +@@ -4874,7 +4874,7 @@ long sched_getaffinity(pid_t pid, struct cpumask *mask) goto out_unlock; raw_spin_lock_irqsave(&p->pi_lock, flags); @@ -475,7 +475,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 raw_spin_unlock_irqrestore(&p->pi_lock, flags); out_unlock: -@@ -5453,7 +5453,7 @@ int task_can_attach(struct task_struct *p, +@@ -5454,7 +5454,7 @@ int task_can_attach(struct task_struct *p, * allowed nodes is unnecessary. Thus, cpusets are not * applicable for such threads. This prevents checking for * success of set_cpus_allowed_ptr() on all attached tasks @@ -484,7 +484,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 */ if (p->flags & PF_NO_SETAFFINITY) { ret = -EINVAL; -@@ -5480,7 +5480,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu) +@@ -5481,7 +5481,7 @@ int migrate_task_to(struct task_struct *p, int target_cpu) if (curr_cpu == target_cpu) return 0; @@ -493,7 +493,7 @@ index 152a0b0c91bb..c7377dcaf718 100644 return -EINVAL; /* TODO: This is not properly updating schedstats */ -@@ -5618,7 +5618,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf) +@@ -5619,7 +5619,7 @@ static void migrate_tasks(struct rq *dead_rq, struct rq_flags *rf) put_prev_task(rq, next); /* @@ -573,7 +573,7 @@ index 91e4202b0634..f927b1f45474 100644 !dl_task(task) || !task_on_rq_queued(task))) { diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 6afda059e882..09a1e32c366f 100644 +index 53acadf72cd9..c17d63b06026 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -1630,7 +1630,7 @@ static void task_numa_compare(struct task_numa_env *env, @@ -594,7 +594,7 @@ index 6afda059e882..09a1e32c366f 100644 continue; env->dst_cpu = cpu; -@@ -5712,7 +5712,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p, +@@ -5737,7 +5737,7 @@ find_idlest_group(struct sched_domain *sd, struct task_struct *p, /* Skip over this group if it has no CPUs allowed */ if (!cpumask_intersects(sched_group_span(group), @@ -603,7 +603,7 @@ index 6afda059e882..09a1e32c366f 100644 continue; local_group = cpumask_test_cpu(this_cpu, -@@ -5844,7 +5844,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this +@@ -5869,7 +5869,7 @@ find_idlest_group_cpu(struct sched_group *group, struct task_struct *p, int this return cpumask_first(sched_group_span(group)); /* Traverse only the allowed CPUs */ @@ -612,7 +612,7 @@ index 6afda059e882..09a1e32c366f 100644 if (available_idle_cpu(i)) { struct rq *rq = cpu_rq(i); struct cpuidle_state *idle = idle_get_state(rq); -@@ -5884,7 +5884,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p +@@ -5909,7 +5909,7 @@ static inline int find_idlest_cpu(struct sched_domain *sd, struct task_struct *p { int new_cpu = cpu; @@ -621,7 +621,7 @@ index 6afda059e882..09a1e32c366f 100644 return prev_cpu; /* -@@ -6001,7 +6001,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int +@@ -6026,7 +6026,7 @@ static int select_idle_core(struct task_struct *p, struct sched_domain *sd, int if (!test_idle_cores(target, false)) return -1; @@ -630,7 +630,7 @@ index 6afda059e882..09a1e32c366f 100644 for_each_cpu_wrap(core, cpus, target) { bool idle = true; -@@ -6035,7 +6035,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t +@@ -6060,7 +6060,7 @@ static int select_idle_smt(struct task_struct *p, struct sched_domain *sd, int t return -1; for_each_cpu(cpu, cpu_smt_mask(target)) { @@ -639,7 +639,7 @@ index 6afda059e882..09a1e32c366f 100644 continue; if (available_idle_cpu(cpu)) return cpu; -@@ -6098,7 +6098,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t +@@ -6123,7 +6123,7 @@ static int select_idle_cpu(struct task_struct *p, struct sched_domain *sd, int t for_each_cpu_wrap(cpu, sched_domain_span(sd), target) { if (!--nr) return -1; @@ -648,7 +648,7 @@ index 6afda059e882..09a1e32c366f 100644 continue; if (available_idle_cpu(cpu)) break; -@@ -6135,7 +6135,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) +@@ -6160,7 +6160,7 @@ static int select_idle_sibling(struct task_struct *p, int prev, int target) recent_used_cpu != target && cpus_share_cache(recent_used_cpu, target) && available_idle_cpu(recent_used_cpu) && @@ -657,7 +657,7 @@ index 6afda059e882..09a1e32c366f 100644 /* * Replace recent_used_cpu with prev as it is a potential * candidate for the next wake: -@@ -6353,7 +6353,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f +@@ -6378,7 +6378,7 @@ select_task_rq_fair(struct task_struct *p, int prev_cpu, int sd_flag, int wake_f if (sd_flag & SD_BALANCE_WAKE) { record_wakee(p); want_affine = !wake_wide(p) && !wake_cap(p, cpu, prev_cpu) @@ -666,7 +666,7 @@ index 6afda059e882..09a1e32c366f 100644 } rcu_read_lock(); -@@ -7092,14 +7092,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) +@@ -7117,14 +7117,14 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) /* * We do not migrate tasks that are: * 1) throttled_lb_pair, or @@ -683,7 +683,7 @@ index 6afda059e882..09a1e32c366f 100644 int cpu; schedstat_inc(p->se.statistics.nr_failed_migrations_affine); -@@ -7119,7 +7119,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) +@@ -7144,7 +7144,7 @@ int can_migrate_task(struct task_struct *p, struct lb_env *env) /* Prevent to re-select dst_cpu via env's CPUs: */ for_each_cpu_and(cpu, env->dst_grpmask, env->cpus) { @@ -692,7 +692,7 @@ index 6afda059e882..09a1e32c366f 100644 env->flags |= LBF_DST_PINNED; env->new_dst_cpu = cpu; break; -@@ -7716,7 +7716,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd) +@@ -7741,7 +7741,7 @@ check_cpu_capacity(struct rq *rq, struct sched_domain *sd) /* * Group imbalance indicates (and tries to solve) the problem where balancing @@ -701,7 +701,7 @@ index 6afda059e882..09a1e32c366f 100644 * * Imagine a situation of two groups of 4 CPUs each and 4 tasks each with a * cpumask covering 1 CPU of the first group and 3 CPUs of the second group. -@@ -8331,7 +8331,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env) +@@ -8356,7 +8356,7 @@ static struct sched_group *find_busiest_group(struct lb_env *env) /* * If the busiest group is imbalanced the below checks don't * work because they assume all things are equal, which typically @@ -710,7 +710,7 @@ index 6afda059e882..09a1e32c366f 100644 */ if (busiest->group_type == group_imbalanced) goto force_balance; -@@ -8727,7 +8727,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, +@@ -8752,7 +8752,7 @@ static int load_balance(int this_cpu, struct rq *this_rq, * if the curr task on busiest CPU can't be * moved to this_cpu: */ diff --git a/debian/patches-rt/0029-kernel-sched-core-add-migrate_disable.patch b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch similarity index 91% rename from debian/patches-rt/0029-kernel-sched-core-add-migrate_disable.patch rename to debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch index 8f48d6959..8e0aef411 100644 --- a/debian/patches-rt/0029-kernel-sched-core-add-migrate_disable.patch +++ b/debian/patches-rt/0027-kernel-sched-core-add-migrate_disable.patch @@ -1,8 +1,8 @@ -From 6a012b467f25731ba6206a66f07c024a3b88a964 Mon Sep 17 00:00:00 2001 +From 2fc8b5c9ca4ff2df7913d6e6d75a98bdece9b264 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 27 May 2017 19:02:06 +0200 -Subject: [PATCH 029/266] kernel/sched/core: add migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 027/264] kernel/sched/core: add migrate_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz --- include/linux/preempt.h | 23 +++++++ @@ -54,7 +54,7 @@ index c01813c3fbe9..3196d0e76719 100644 #ifdef MODULE diff --git a/include/linux/sched.h b/include/linux/sched.h -index b347614b42f4..fad3583f0933 100644 +index fdb8ba398ea8..df39ad5916e7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -662,6 +662,13 @@ struct task_struct { @@ -86,10 +86,10 @@ index 9fb239e12b82..5801e516ba63 100644 * Callback to arch code if there's nosmp or maxcpus=0 on the * boot command line: diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c7377dcaf718..77f3c4771a2b 100644 +index 80badc70c258..3df110e8c6f9 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1007,7 +1007,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma +@@ -1008,7 +1008,15 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma p->nr_cpus_allowed = cpumask_weight(new_mask); } @@ -106,7 +106,7 @@ index c7377dcaf718..77f3c4771a2b 100644 { struct rq *rq = task_rq(p); bool queued, running; -@@ -1036,6 +1044,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) +@@ -1037,6 +1045,20 @@ void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) set_curr_task(rq, p); } @@ -127,7 +127,7 @@ index c7377dcaf718..77f3c4771a2b 100644 /* * Change a given task's CPU affinity. Migrate the thread to a * proper CPU and schedule it away if the CPU it's executing on -@@ -1094,9 +1116,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, +@@ -1095,9 +1117,16 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, } /* Can the task run on the task's current CPU? If so, we're done */ @@ -145,7 +145,7 @@ index c7377dcaf718..77f3c4771a2b 100644 dest_cpu = cpumask_any_and(cpu_valid_mask, new_mask); if (task_running(rq, p) || p->state == TASK_WAKING) { struct migration_arg arg = { p, dest_cpu }; -@@ -7059,3 +7088,100 @@ const u32 sched_prio_to_wmult[40] = { +@@ -7060,3 +7089,100 @@ const u32 sched_prio_to_wmult[40] = { }; #undef CREATE_TRACE_POINTS @@ -247,10 +247,10 @@ index c7377dcaf718..77f3c4771a2b 100644 +EXPORT_SYMBOL(migrate_enable); +#endif diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c -index 6383aa6a60ca..a719e44debdf 100644 +index 141ea9ff210e..34c27afae009 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c -@@ -978,6 +978,10 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns, +@@ -982,6 +982,10 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns, P(dl.runtime); P(dl.deadline); } diff --git a/debian/patches-rt/0030-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch similarity index 81% rename from debian/patches-rt/0030-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch rename to debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch index 14b117dac..e2148e797 100644 --- a/debian/patches-rt/0030-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch +++ b/debian/patches-rt/0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch @@ -1,9 +1,9 @@ -From 44ee5f4d373ec3180cec3b68f606a77be0ac2dfb Mon Sep 17 00:00:00 2001 +From 0af010b771c642c17c33fbc991e183c04427af59 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 9 Oct 2018 17:34:50 +0200 -Subject: [PATCH 030/266] sched/migrate_disable: Add export_symbol_gpl for +Subject: [PATCH 028/264] sched/migrate_disable: Add export_symbol_gpl for __migrate_disabled -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Jonathan reported that lttng/modules can't use __migrate_disabled(). This function is only used by sched/core itself and the tracing @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 77f3c4771a2b..f027ac73f1df 100644 +index 3df110e8c6f9..9c4a9f0a627b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1012,6 +1012,7 @@ int __migrate_disabled(struct task_struct *p) +@@ -1013,6 +1013,7 @@ int __migrate_disabled(struct task_struct *p) { return p->migrate_disable; } diff --git a/debian/patches-rt/0031-arm-at91-do-not-disable-enable-clocks-in-a-row.patch b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch similarity index 94% rename from debian/patches-rt/0031-arm-at91-do-not-disable-enable-clocks-in-a-row.patch rename to debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch index 078a96a2d..5a33a343c 100644 --- a/debian/patches-rt/0031-arm-at91-do-not-disable-enable-clocks-in-a-row.patch +++ b/debian/patches-rt/0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch @@ -1,8 +1,8 @@ -From 884ce05ebcdf5862f6b5a568ab9635db6bd7618b Mon Sep 17 00:00:00 2001 +From 245bd7bd92ce193e01ef35fbdaae505d5eefd28b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 9 Mar 2016 10:51:06 +0100 -Subject: [PATCH 031/266] arm: at91: do not disable/enable clocks in a row -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 029/264] arm: at91: do not disable/enable clocks in a row +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0032-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch similarity index 97% rename from debian/patches-rt/0032-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch rename to debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch index 06774d27e..70341f748 100644 --- a/debian/patches-rt/0032-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch +++ b/debian/patches-rt/0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch @@ -1,12 +1,12 @@ -From 49d48ae23e845a4b2daeb6bfae37d5c8f5e3acbf Mon Sep 17 00:00:00 2001 +From 7b123775c97399cd5ca5394392bf72c5d73f2808 Mon Sep 17 00:00:00 2001 From: Benedikt Spranger Date: Mon, 8 Mar 2010 18:57:04 +0100 -Subject: [PATCH 032/266] clocksource: TCLIB: Allow higher clock rates for +Subject: [PATCH 030/264] clocksource: TCLIB: Allow higher clock rates for clock events MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz As default the TCLIB uses the 32KiHz base clock rate for clock events. Add a compile time selection to allow higher clock resulution. diff --git a/debian/patches-rt/0033-timekeeping-Split-jiffies-seqlock.patch b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch similarity index 94% rename from debian/patches-rt/0033-timekeeping-Split-jiffies-seqlock.patch rename to debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch index f40ee0f68..22f1a9f72 100644 --- a/debian/patches-rt/0033-timekeeping-Split-jiffies-seqlock.patch +++ b/debian/patches-rt/0031-timekeeping-Split-jiffies-seqlock.patch @@ -1,8 +1,8 @@ -From 3ae267e2e8aab45de92b1aa5900c038e4dc41f50 Mon Sep 17 00:00:00 2001 +From 5a0bfb35b3b826135a39a8e8744e9926b5be7607 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 14 Feb 2013 22:36:59 +0100 -Subject: [PATCH 033/266] timekeeping: Split jiffies seqlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 031/264] timekeeping: Split jiffies seqlock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so it can be taken in atomic context on RT. @@ -43,7 +43,7 @@ index 497719127bf9..62acb8914c9e 100644 } EXPORT_SYMBOL(get_jiffies_64); diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c -index 14de3727b18e..7a87a4488a5e 100644 +index a02e0f6b287c..32f5101f07ce 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -79,13 +79,15 @@ int tick_is_oneshot_available(void) @@ -153,10 +153,10 @@ index 7846ce24ecc0..68cf97548cba 100644 update_wall_time(); } diff --git a/kernel/time/timekeeping.h b/kernel/time/timekeeping.h -index 7a9b4eb7a1d5..acdcf97c99b6 100644 +index 141ab3ab0354..099737f6f10c 100644 --- a/kernel/time/timekeeping.h +++ b/kernel/time/timekeeping.h -@@ -18,7 +18,8 @@ extern void timekeeping_resume(void); +@@ -25,7 +25,8 @@ static inline void sched_clock_resume(void) { } extern void do_timer(unsigned long ticks); extern void update_wall_time(void); diff --git a/debian/patches-rt/0034-signal-Revert-ptrace-preempt-magic.patch b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch similarity index 87% rename from debian/patches-rt/0034-signal-Revert-ptrace-preempt-magic.patch rename to debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch index f07dbcea2..d87803704 100644 --- a/debian/patches-rt/0034-signal-Revert-ptrace-preempt-magic.patch +++ b/debian/patches-rt/0032-signal-Revert-ptrace-preempt-magic.patch @@ -1,8 +1,8 @@ -From 2175ca2814836e7e7d495cf207d249a002d49ee0 Mon Sep 17 00:00:00 2001 +From a9a18a8c88bd90bdac5f33690be17244dc22bd22 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 21 Sep 2011 19:57:12 +0200 -Subject: [PATCH 034/266] signal: Revert ptrace preempt magic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 032/264] signal: Revert ptrace preempt magic +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a diff --git a/debian/patches-rt/0035-net-sched-Use-msleep-instead-of-yield.patch b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch similarity index 95% rename from debian/patches-rt/0035-net-sched-Use-msleep-instead-of-yield.patch rename to debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch index 723183248..b4b03a527 100644 --- a/debian/patches-rt/0035-net-sched-Use-msleep-instead-of-yield.patch +++ b/debian/patches-rt/0033-net-sched-Use-msleep-instead-of-yield.patch @@ -1,8 +1,8 @@ -From df35af291276401c47cf6afbd0bc820042b377f6 Mon Sep 17 00:00:00 2001 +From b1e277ed2b65bf647c2a6dc2d103ffe5aa2e4fa7 Mon Sep 17 00:00:00 2001 From: Marc Kleine-Budde Date: Wed, 5 Mar 2014 00:49:47 +0100 -Subject: [PATCH 035/266] net: sched: Use msleep() instead of yield() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 033/264] net: sched: Use msleep() instead of yield() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0036-dm-rq-remove-BUG_ON-irqs_disabled-check.patch b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch similarity index 88% rename from debian/patches-rt/0036-dm-rq-remove-BUG_ON-irqs_disabled-check.patch rename to debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch index 2488ae2af..4db043fbe 100644 --- a/debian/patches-rt/0036-dm-rq-remove-BUG_ON-irqs_disabled-check.patch +++ b/debian/patches-rt/0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch @@ -1,8 +1,8 @@ -From 8af534638743235393fc2e64e1c5733004109d9f Mon Sep 17 00:00:00 2001 +From 812137beb49a5dea2e269ea9739d0ed291e27375 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 27 Mar 2018 16:24:15 +0200 -Subject: [PATCH 036/266] dm rq: remove BUG_ON(!irqs_disabled) check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 034/264] dm rq: remove BUG_ON(!irqs_disabled) check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In commit 052189a2ec95 ("dm: remove superfluous irq disablement in dm_request_fn") the spin_lock_irq() was replaced with spin_lock() + a diff --git a/debian/patches-rt/0037-usb-do-no-disable-interrupts-in-giveback.patch b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch similarity index 91% rename from debian/patches-rt/0037-usb-do-no-disable-interrupts-in-giveback.patch rename to debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch index 7576749be..cb04c29b1 100644 --- a/debian/patches-rt/0037-usb-do-no-disable-interrupts-in-giveback.patch +++ b/debian/patches-rt/0035-usb-do-no-disable-interrupts-in-giveback.patch @@ -1,8 +1,8 @@ -From c2f85857815236fb7367336e1a6f1edcc87b137b Mon Sep 17 00:00:00 2001 +From e958966734633c26363abc8920eca9c38e5cd7ce Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 8 Nov 2013 17:34:54 +0100 -Subject: [PATCH 037/266] usb: do no disable interrupts in giveback -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 035/264] usb: do no disable interrupts in giveback +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Since commit 94dfd7ed ("USB: HCD: support giveback of URB in tasklet context") the USB code disables interrupts before invoking the complete diff --git a/debian/patches-rt/0038-rt-Provide-PREEMPT_RT_BASE-config-switch.patch b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch similarity index 90% rename from debian/patches-rt/0038-rt-Provide-PREEMPT_RT_BASE-config-switch.patch rename to debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch index da979e646..cebead1b4 100644 --- a/debian/patches-rt/0038-rt-Provide-PREEMPT_RT_BASE-config-switch.patch +++ b/debian/patches-rt/0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch @@ -1,8 +1,8 @@ -From 667e1ce22caf422d9c7b4b05bdde2c47a2e74756 Mon Sep 17 00:00:00 2001 +From 588e8fb01ec7915ef280606b80bd605f49c56915 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 17 Jun 2011 12:39:57 +0200 -Subject: [PATCH 038/266] rt: Provide PREEMPT_RT_BASE config switch -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 036/264] rt: Provide PREEMPT_RT_BASE config switch +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Introduce PREEMPT_RT_BASE which enables parts of PREEMPT_RT_FULL. Forces interrupt threading and enables some of the RT diff --git a/debian/patches-rt/0039-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch similarity index 93% rename from debian/patches-rt/0039-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch rename to debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch index 4b66f14de..1ebc40d28 100644 --- a/debian/patches-rt/0039-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch +++ b/debian/patches-rt/0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch @@ -1,8 +1,8 @@ -From 18f9f1c6657f01598563025bf4d8c56bee127c3e Mon Sep 17 00:00:00 2001 +From 9480b8b41cb649337466e43807eff3816a9530bc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 14 Dec 2011 01:03:49 +0100 -Subject: [PATCH 039/266] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 037/264] cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz There are "valid" GFP_ATOMIC allocations such as @@ -47,7 +47,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 44c6a82b7ce5..06c3ec0c9c12 100644 +index e76d16ac2776..04a45d6d0167 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -934,7 +934,7 @@ config CALGARY_IOMMU_ENABLED_BY_DEFAULT diff --git a/debian/patches-rt/0040-jump-label-disable-if-stop_machine-is-used.patch b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch similarity index 88% rename from debian/patches-rt/0040-jump-label-disable-if-stop_machine-is-used.patch rename to debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch index fba88e30d..d70930cb0 100644 --- a/debian/patches-rt/0040-jump-label-disable-if-stop_machine-is-used.patch +++ b/debian/patches-rt/0038-jump-label-disable-if-stop_machine-is-used.patch @@ -1,8 +1,8 @@ -From 285155bfdfd713f7a20b7b2607bebaa3b6e226d6 Mon Sep 17 00:00:00 2001 +From d23a435dc809c84e3185683681ef735f2097fe57 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Jul 2015 17:14:48 +0200 -Subject: [PATCH 040/266] jump-label: disable if stop_machine() is used -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 038/264] jump-label: disable if stop_machine() is used +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Some architectures are using stop_machine() while switching the opcode which leads to latency spikes. diff --git a/debian/patches-rt/0041-kconfig-Disable-config-options-which-are-not-RT-comp.patch b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch similarity index 87% rename from debian/patches-rt/0041-kconfig-Disable-config-options-which-are-not-RT-comp.patch rename to debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch index fde8177a5..c08f75adf 100644 --- a/debian/patches-rt/0041-kconfig-Disable-config-options-which-are-not-RT-comp.patch +++ b/debian/patches-rt/0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch @@ -1,9 +1,9 @@ -From d751d981bb0b049a6d70770a570d844cc6d7d69f Mon Sep 17 00:00:00 2001 +From 6c83d4802fcd91010b16a5a69456c7370cd10f9f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 24 Jul 2011 12:11:43 +0200 -Subject: [PATCH 041/266] kconfig: Disable config options which are not RT +Subject: [PATCH 039/264] kconfig: Disable config options which are not RT compatible -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Disable stuff which is known to have issues on RT diff --git a/debian/patches-rt/0042-lockdep-disable-self-test.patch b/debian/patches-rt/0040-lockdep-disable-self-test.patch similarity index 88% rename from debian/patches-rt/0042-lockdep-disable-self-test.patch rename to debian/patches-rt/0040-lockdep-disable-self-test.patch index de18c4b4d..d166f3d3b 100644 --- a/debian/patches-rt/0042-lockdep-disable-self-test.patch +++ b/debian/patches-rt/0040-lockdep-disable-self-test.patch @@ -1,11 +1,11 @@ -From c0eb3a8fa85bf6f84e02e76fcb71c49ed95e08c3 Mon Sep 17 00:00:00 2001 +From 968d103b4727308889b77f3fa556e149bba6d56c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 17 Oct 2017 16:36:18 +0200 -Subject: [PATCH 042/266] lockdep: disable self-test +Subject: [PATCH 040/264] lockdep: disable self-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The self-test wasn't always 100% accurate for RT. We disabled a few tests which failed because they had a different semantic for RT. Some diff --git a/debian/patches-rt/0043-mm-Allow-only-slub-on-RT.patch b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch similarity index 86% rename from debian/patches-rt/0043-mm-Allow-only-slub-on-RT.patch rename to debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch index 59089f609..c7a3ab46f 100644 --- a/debian/patches-rt/0043-mm-Allow-only-slub-on-RT.patch +++ b/debian/patches-rt/0041-mm-Allow-only-slub-on-RT.patch @@ -1,8 +1,8 @@ -From 3c67357f9ddd2cd3edc9e9703489fe065841c745 Mon Sep 17 00:00:00 2001 +From 16680836f36c75ccaff96ab3155869144b0dd028 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:44:03 -0500 -Subject: [PATCH 043/266] mm: Allow only slub on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 041/264] mm: Allow only slub on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Disable SLAB and SLOB on -RT. Only SLUB is adopted to -RT needs. diff --git a/debian/patches-rt/0044-locking-Disable-spin-on-owner-for-RT.patch b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch similarity index 87% rename from debian/patches-rt/0044-locking-Disable-spin-on-owner-for-RT.patch rename to debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch index 346a8b6d2..8a3e2229a 100644 --- a/debian/patches-rt/0044-locking-Disable-spin-on-owner-for-RT.patch +++ b/debian/patches-rt/0042-locking-Disable-spin-on-owner-for-RT.patch @@ -1,11 +1,11 @@ -From da969770d426e1540fefe9ce5babeb38ed79736e Mon Sep 17 00:00:00 2001 +From a506cf490ae3e346c6082877f109fcf34568f22d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:51:45 +0200 -Subject: [PATCH 044/266] locking: Disable spin on owner for RT +Subject: [PATCH 042/264] locking: Disable spin on owner for RT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Drop spin on owner for mutex / rwsem. We are most likely not using it but… diff --git a/debian/patches-rt/0045-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch similarity index 84% rename from debian/patches-rt/0045-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch rename to debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch index 298699ab6..55d712de2 100644 --- a/debian/patches-rt/0045-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch +++ b/debian/patches-rt/0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch @@ -1,8 +1,8 @@ -From 7693a7d0ace9236acfc968d46960678bf81951a2 Mon Sep 17 00:00:00 2001 +From 30987f403875e211eee90cac11127e04b1a27c73 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 28 Oct 2012 13:26:09 +0000 -Subject: [PATCH 045/266] rcu: Disable RCU_FAST_NO_HZ on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 043/264] rcu: Disable RCU_FAST_NO_HZ on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0046-rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch similarity index 87% rename from debian/patches-rt/0046-rcu-make-RCU_BOOST-default-on-RT.patch rename to debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch index e896afe94..f1e0fda78 100644 --- a/debian/patches-rt/0046-rcu-make-RCU_BOOST-default-on-RT.patch +++ b/debian/patches-rt/0044-rcu-make-RCU_BOOST-default-on-RT.patch @@ -1,8 +1,8 @@ -From 9663e4eb2ef8749e6888e179b36148a33b0903b6 Mon Sep 17 00:00:00 2001 +From 709173f4678f7f2f0b834e508d8044821d1c2354 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Mar 2014 20:19:05 +0100 -Subject: [PATCH 046/266] rcu: make RCU_BOOST default on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 044/264] rcu: make RCU_BOOST default on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0047-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch similarity index 85% rename from debian/patches-rt/0047-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch rename to debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch index 50bef9763..158d8dcc7 100644 --- a/debian/patches-rt/0047-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch +++ b/debian/patches-rt/0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch @@ -1,8 +1,8 @@ -From 066901c0a5deb8707fb2288c085499a4c497b029 Mon Sep 17 00:00:00 2001 +From 56d2f884391ba7e98721f6639f87698e46429c7f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:03:52 +0200 -Subject: [PATCH 047/266] sched: Disable CONFIG_RT_GROUP_SCHED on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 045/264] sched: Disable CONFIG_RT_GROUP_SCHED on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Carsten reported problems when running: diff --git a/debian/patches-rt/0048-net-core-disable-NET_RX_BUSY_POLL.patch b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch similarity index 87% rename from debian/patches-rt/0048-net-core-disable-NET_RX_BUSY_POLL.patch rename to debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch index b41b2f643..82f91a482 100644 --- a/debian/patches-rt/0048-net-core-disable-NET_RX_BUSY_POLL.patch +++ b/debian/patches-rt/0046-net-core-disable-NET_RX_BUSY_POLL.patch @@ -1,11 +1,11 @@ -From 41d940e10ea6260a89e82f3bc62428bca1a8373a Mon Sep 17 00:00:00 2001 +From a5a9737c0c6edf17eecb16a923a936432f11019e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 27 May 2017 19:02:06 +0200 -Subject: [PATCH 048/266] net/core: disable NET_RX_BUSY_POLL +Subject: [PATCH 046/264] net/core: disable NET_RX_BUSY_POLL MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz sk_busy_loop() does preempt_disable() followed by a few operations which can take sleeping locks and may get long. diff --git a/debian/patches-rt/0049-arm-disable-NEON-in-kernel-mode.patch b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch similarity index 97% rename from debian/patches-rt/0049-arm-disable-NEON-in-kernel-mode.patch rename to debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch index 1c5b9f445..04f5c7704 100644 --- a/debian/patches-rt/0049-arm-disable-NEON-in-kernel-mode.patch +++ b/debian/patches-rt/0047-arm-disable-NEON-in-kernel-mode.patch @@ -1,8 +1,8 @@ -From 971f370fb7433d4b34102c32dea2095776b569b1 Mon Sep 17 00:00:00 2001 +From 0db6c523b2591dbf527c759ef1b3718f96bc3c29 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 1 Dec 2017 10:42:03 +0100 -Subject: [PATCH 049/266] arm*: disable NEON in kernel mode -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 047/264] arm*: disable NEON in kernel mode +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0050-powerpc-Use-generic-rwsem-on-RT.patch b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch similarity index 82% rename from debian/patches-rt/0050-powerpc-Use-generic-rwsem-on-RT.patch rename to debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch index b1819104a..79456daef 100644 --- a/debian/patches-rt/0050-powerpc-Use-generic-rwsem-on-RT.patch +++ b/debian/patches-rt/0048-powerpc-Use-generic-rwsem-on-RT.patch @@ -1,8 +1,8 @@ -From 50ff216c2966385635b18c93bcbd6fc09bb6a942 Mon Sep 17 00:00:00 2001 +From 24bc2177006a16588c79a438ba84122ec215135a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 050/266] powerpc: Use generic rwsem on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 048/264] powerpc: Use generic rwsem on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Use generic code which uses rtmutex diff --git a/debian/patches-rt/0051-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch similarity index 91% rename from debian/patches-rt/0051-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch rename to debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index 32ab6e9ac..8204fae72 100644 --- a/debian/patches-rt/0051-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/debian/patches-rt/0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -1,9 +1,9 @@ -From a87ef1b342f7eccaee4350f3b40f04cb8146563f Mon Sep 17 00:00:00 2001 +From 86dd7e931e1f812e0fc9b44545ed1f9ffc80dcae Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Fri, 24 Apr 2015 15:53:13 +0000 -Subject: [PATCH 051/266] powerpc/kvm: Disable in-kernel MPIC emulation for +Subject: [PATCH 049/264] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT_FULL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz While converting the openpic emulation code to use a raw_spinlock_t enables guests to run on RT, there's still a performance issue. For interrupts sent in diff --git a/debian/patches-rt/0052-powerpc-Disable-highmem-on-RT.patch b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch similarity index 81% rename from debian/patches-rt/0052-powerpc-Disable-highmem-on-RT.patch rename to debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch index 3da0c3fd8..06bed5542 100644 --- a/debian/patches-rt/0052-powerpc-Disable-highmem-on-RT.patch +++ b/debian/patches-rt/0050-powerpc-Disable-highmem-on-RT.patch @@ -1,8 +1,8 @@ -From 82b9e441c6737a2e2b23018ef6ee5e8ea70bea92 Mon Sep 17 00:00:00 2001 +From f5b4401c967f9ead16662b347d2082f8f2743205 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:08:34 +0200 -Subject: [PATCH 052/266] powerpc: Disable highmem on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 050/264] powerpc: Disable highmem on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The current highmem handling on -RT is not compatible and needs fixups. diff --git a/debian/patches-rt/0053-mips-Disable-highmem-on-RT.patch b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch similarity index 84% rename from debian/patches-rt/0053-mips-Disable-highmem-on-RT.patch rename to debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch index 4713003ff..c546bf1a5 100644 --- a/debian/patches-rt/0053-mips-Disable-highmem-on-RT.patch +++ b/debian/patches-rt/0051-mips-Disable-highmem-on-RT.patch @@ -1,8 +1,8 @@ -From 1f9a74c4a2b97a80e19078334933194464eea4e4 Mon Sep 17 00:00:00 2001 +From 29b46bfd781d871ae857c940e6ef76454bf356c2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 17:10:12 +0200 -Subject: [PATCH 053/266] mips: Disable highmem on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 051/264] mips: Disable highmem on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The current highmem handling on -RT is not compatible and needs fixups. diff --git a/debian/patches-rt/0054-x86-Use-generic-rwsem_spinlocks-on-rt.patch b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch similarity index 79% rename from debian/patches-rt/0054-x86-Use-generic-rwsem_spinlocks-on-rt.patch rename to debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch index fbd8efa53..69ce15d49 100644 --- a/debian/patches-rt/0054-x86-Use-generic-rwsem_spinlocks-on-rt.patch +++ b/debian/patches-rt/0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch @@ -1,8 +1,8 @@ -From 9090d6e680a6bc0177bc228d335f7185ae51a20b Mon Sep 17 00:00:00 2001 +From 789344b11534d2799fbc807496846f21869124b5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 26 Jul 2009 02:21:32 +0200 -Subject: [PATCH 054/266] x86: Use generic rwsem_spinlocks on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 052/264] x86: Use generic rwsem_spinlocks on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Simplifies the separation of anon_rw_semaphores and rw_semaphores for -rt. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 06c3ec0c9c12..8c56260bdf84 100644 +index 04a45d6d0167..1b05ae86bdde 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -264,8 +264,11 @@ config ARCH_MAY_HAVE_PC_FDC diff --git a/debian/patches-rt/0055-leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch similarity index 91% rename from debian/patches-rt/0055-leds-trigger-disable-CPU-trigger-on-RT.patch rename to debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch index 31d298a8c..19b8bc14b 100644 --- a/debian/patches-rt/0055-leds-trigger-disable-CPU-trigger-on-RT.patch +++ b/debian/patches-rt/0053-leds-trigger-disable-CPU-trigger-on-RT.patch @@ -1,8 +1,8 @@ -From 6735813a67410ba9afbfa1a69797e4b21b41e5d6 Mon Sep 17 00:00:00 2001 +From 7554227ac04319dadc334245535dd1d21d258de0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 23 Jan 2014 14:45:59 +0100 -Subject: [PATCH 055/266] leds: trigger: disable CPU trigger on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 053/264] leds: trigger: disable CPU trigger on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 diff --git a/debian/patches-rt/0056-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch similarity index 89% rename from debian/patches-rt/0056-cpufreq-drop-K8-s-driver-from-beeing-selected.patch rename to debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch index 21acd228e..9bbb8268b 100644 --- a/debian/patches-rt/0056-cpufreq-drop-K8-s-driver-from-beeing-selected.patch +++ b/debian/patches-rt/0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch @@ -1,8 +1,8 @@ -From 5c0e9974fc9f622e71e435b87ffad62998c6ab07 Mon Sep 17 00:00:00 2001 +From 57c3607ed990ada1d1636542d00bd3ed95e243da Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 9 Apr 2015 15:23:01 +0200 -Subject: [PATCH 056/266] cpufreq: drop K8's driver from beeing selected -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 054/264] cpufreq: drop K8's driver from beeing selected +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Ralf posted a picture of a backtrace from diff --git a/debian/patches-rt/0057-md-disable-bcache.patch b/debian/patches-rt/0055-md-disable-bcache.patch similarity index 90% rename from debian/patches-rt/0057-md-disable-bcache.patch rename to debian/patches-rt/0055-md-disable-bcache.patch index bded8d530..70a2a5381 100644 --- a/debian/patches-rt/0057-md-disable-bcache.patch +++ b/debian/patches-rt/0055-md-disable-bcache.patch @@ -1,11 +1,11 @@ -From affa4221731e24ded417ce3ae0d456609f586437 Mon Sep 17 00:00:00 2001 +From 53eb768ccfb675d61d67bd236402aa90434a6923 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Aug 2013 11:48:57 +0200 -Subject: [PATCH 057/266] md: disable bcache +Subject: [PATCH 055/264] md: disable bcache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz It uses anon semaphores |drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’: diff --git a/debian/patches-rt/0058-efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch similarity index 90% rename from debian/patches-rt/0058-efi-Disable-runtime-services-on-RT.patch rename to debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch index 04406364f..6a385aa50 100644 --- a/debian/patches-rt/0058-efi-Disable-runtime-services-on-RT.patch +++ b/debian/patches-rt/0056-efi-Disable-runtime-services-on-RT.patch @@ -1,8 +1,8 @@ -From f6bac5f902f6e18278e4e5882195b993725d520b Mon Sep 17 00:00:00 2001 +From 62309a1da779bde384a7645a7d3e2713520a76da Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 15:03:16 +0200 -Subject: [PATCH 058/266] efi: Disable runtime services on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 056/264] efi: Disable runtime services on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Based on meassurements the EFI functions get_variable / get_next_variable take up to 2us which looks okay. diff --git a/debian/patches-rt/0059-printk-Add-a-printk-kill-switch.patch b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch similarity index 96% rename from debian/patches-rt/0059-printk-Add-a-printk-kill-switch.patch rename to debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch index 236bebab3..425cb2e5f 100644 --- a/debian/patches-rt/0059-printk-Add-a-printk-kill-switch.patch +++ b/debian/patches-rt/0057-printk-Add-a-printk-kill-switch.patch @@ -1,8 +1,8 @@ -From db94b434e576549c696fa88efa6da37686c3105e Mon Sep 17 00:00:00 2001 +From 09acfc4d67168f054485eb40955069fa2390a5ec Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 22 Jul 2011 17:58:40 +0200 -Subject: [PATCH 059/266] printk: Add a printk kill switch -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 057/264] printk: Add a printk kill switch +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Add a prinkt-kill-switch. This is used from (NMI) watchdog to ensure that it does not dead-lock with the early printk code. diff --git a/debian/patches-rt/0060-printk-Add-force_early_printk-boot-param-to-help-wit.patch b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch similarity index 87% rename from debian/patches-rt/0060-printk-Add-force_early_printk-boot-param-to-help-wit.patch rename to debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch index af3759441..c9190609b 100644 --- a/debian/patches-rt/0060-printk-Add-force_early_printk-boot-param-to-help-wit.patch +++ b/debian/patches-rt/0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch @@ -1,9 +1,9 @@ -From d8d56f3a4ed8403b82e04725ee6de60304deb3a3 Mon Sep 17 00:00:00 2001 +From 3dd75cbf0c1ddd8dc0a7c0492e86f7293a730145 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Fri, 2 Sep 2011 14:41:29 +0200 -Subject: [PATCH 060/266] printk: Add "force_early_printk" boot param to help +Subject: [PATCH 058/264] printk: Add "force_early_printk" boot param to help with debugging -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Gives me an option to screw printk and actually see what the machine says. diff --git a/debian/patches-rt/0061-preempt-Provide-preempt_-_-no-rt-variants.patch b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch similarity index 90% rename from debian/patches-rt/0061-preempt-Provide-preempt_-_-no-rt-variants.patch rename to debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch index 91841a096..d97ff1913 100644 --- a/debian/patches-rt/0061-preempt-Provide-preempt_-_-no-rt-variants.patch +++ b/debian/patches-rt/0059-preempt-Provide-preempt_-_-no-rt-variants.patch @@ -1,8 +1,8 @@ -From 06d1d562d9934f5c0fa80e760657900af0dd35cd Mon Sep 17 00:00:00 2001 +From 31772df387205be3a95e3d0bc21b7b81a244f6df Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 24 Jul 2009 12:38:56 +0200 -Subject: [PATCH 061/266] preempt: Provide preempt_*_(no)rt variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 059/264] preempt: Provide preempt_*_(no)rt variants +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery. diff --git a/debian/patches-rt/0062-futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch similarity index 92% rename from debian/patches-rt/0062-futex-workaround-migrate_disable-enable-in-different.patch rename to debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch index c6d6b6900..606de8ba7 100644 --- a/debian/patches-rt/0062-futex-workaround-migrate_disable-enable-in-different.patch +++ b/debian/patches-rt/0060-futex-workaround-migrate_disable-enable-in-different.patch @@ -1,9 +1,9 @@ -From fcac9e8e052ad0a523a1cf3096b7e506754fa454 Mon Sep 17 00:00:00 2001 +From c78bd62f56b86aa7717ac7a79e288fa8b3978573 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Mar 2017 14:23:35 +0100 -Subject: [PATCH 062/266] futex: workaround migrate_disable/enable in different +Subject: [PATCH 060/264] futex: workaround migrate_disable/enable in different context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz migrate_disable()/migrate_enable() takes a different path in atomic() vs !atomic() context. These little hacks ensure that we don't underflow / overflow @@ -17,7 +17,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 19 insertions(+) diff --git a/kernel/futex.c b/kernel/futex.c -index c5fca746edc4..cea098efd12e 100644 +index 5a26d843a015..1bd0950bea4e 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -2859,6 +2859,14 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags, diff --git a/debian/patches-rt/0063-rt-Add-local-irq-locks.patch b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch similarity index 98% rename from debian/patches-rt/0063-rt-Add-local-irq-locks.patch rename to debian/patches-rt/0061-rt-Add-local-irq-locks.patch index e608fab40..2a34ac1bc 100644 --- a/debian/patches-rt/0063-rt-Add-local-irq-locks.patch +++ b/debian/patches-rt/0061-rt-Add-local-irq-locks.patch @@ -1,8 +1,8 @@ -From f9239dc23086d9c032d0d537c9963abb576143ee Mon Sep 17 00:00:00 2001 +From 5b811e266fa9c293395c73c7a21e7e5c5a51deb1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 20 Jun 2011 09:03:47 +0200 -Subject: [PATCH 063/266] rt: Add local irq locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 061/264] rt: Add local irq locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0064-locallock-provide-get-put-_locked_ptr-variants.patch b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch similarity index 90% rename from debian/patches-rt/0064-locallock-provide-get-put-_locked_ptr-variants.patch rename to debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch index 83f01db6b..c91717e3d 100644 --- a/debian/patches-rt/0064-locallock-provide-get-put-_locked_ptr-variants.patch +++ b/debian/patches-rt/0062-locallock-provide-get-put-_locked_ptr-variants.patch @@ -1,8 +1,8 @@ -From 9e4d01906d9d81f07d456fb83b1bdd5ff019047f Mon Sep 17 00:00:00 2001 +From 251ca7087d744d8b174f8488d2f7ea42cedaccf3 Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Mon, 7 May 2018 08:58:56 -0500 -Subject: [PATCH 064/266] locallock: provide {get,put}_locked_ptr() variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 062/264] locallock: provide {get,put}_locked_ptr() variants +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Provide a set of locallocked accessors for pointers to per-CPU data; this is useful for dynamically-allocated per-CPU regions, for example. diff --git a/debian/patches-rt/0065-mm-scatterlist-Do-not-disable-irqs-on-RT.patch b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch similarity index 83% rename from debian/patches-rt/0065-mm-scatterlist-Do-not-disable-irqs-on-RT.patch rename to debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch index 6c66a1554..75c379271 100644 --- a/debian/patches-rt/0065-mm-scatterlist-Do-not-disable-irqs-on-RT.patch +++ b/debian/patches-rt/0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch @@ -1,8 +1,8 @@ -From 4fd0a81c1f1b284d3b3833169556b1476d2aa4e8 Mon Sep 17 00:00:00 2001 +From bdf1c5db6f1c5d8fe706592f9373849948d65813 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:34 -0500 -Subject: [PATCH 065/266] mm/scatterlist: Do not disable irqs on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 063/264] mm/scatterlist: Do not disable irqs on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz For -RT it is enough to keep pagefault disabled (which is currently handled by kmap_atomic()). diff --git a/debian/patches-rt/0066-signal-x86-Delay-calling-signals-in-atomic.patch b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch similarity index 96% rename from debian/patches-rt/0066-signal-x86-Delay-calling-signals-in-atomic.patch rename to debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch index 4d6130793..139462c23 100644 --- a/debian/patches-rt/0066-signal-x86-Delay-calling-signals-in-atomic.patch +++ b/debian/patches-rt/0064-signal-x86-Delay-calling-signals-in-atomic.patch @@ -1,8 +1,8 @@ -From bacf069f1145a471fbdaafd0d2e75d1ca061c4e9 Mon Sep 17 00:00:00 2001 +From d892f2116baf1643d4d3c792231c687fa49b71ce Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 066/266] signal/x86: Delay calling signals in atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 064/264] signal/x86: Delay calling signals in atomic +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On x86_64 we must disable preemption before we enable interrupts for stack faults, int3 and debugging, because the current task is using @@ -80,7 +80,7 @@ index 33d3c88a7225..fb0438d06ca7 100644 typedef sigset_t compat_sigset_t; #endif diff --git a/include/linux/sched.h b/include/linux/sched.h -index fad3583f0933..daa99f3b7c78 100644 +index df39ad5916e7..535e57775208 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -881,6 +881,10 @@ struct task_struct { diff --git a/debian/patches-rt/0067-x86-signal-delay-calling-signals-on-32bit.patch b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch similarity index 90% rename from debian/patches-rt/0067-x86-signal-delay-calling-signals-on-32bit.patch rename to debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch index 11975669f..16eca8f73 100644 --- a/debian/patches-rt/0067-x86-signal-delay-calling-signals-on-32bit.patch +++ b/debian/patches-rt/0065-x86-signal-delay-calling-signals-on-32bit.patch @@ -1,8 +1,8 @@ -From fdbf4b87f2f3db9fbada1069ca5f38dc2384cec6 Mon Sep 17 00:00:00 2001 +From 6828880f532efdf1ded1248f5e0ea555e9520eda Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Thu, 10 Dec 2015 10:58:51 -0800 -Subject: [PATCH 067/266] x86/signal: delay calling signals on 32bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 065/264] x86/signal: delay calling signals on 32bit +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz When running some ptrace single step tests on x86-32 machine, the below problem is triggered: diff --git a/debian/patches-rt/0068-buffer_head-Replace-bh_uptodate_lock-for-rt.patch b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch similarity index 95% rename from debian/patches-rt/0068-buffer_head-Replace-bh_uptodate_lock-for-rt.patch rename to debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch index 2c07c2e42..e6bae9dd8 100644 --- a/debian/patches-rt/0068-buffer_head-Replace-bh_uptodate_lock-for-rt.patch +++ b/debian/patches-rt/0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch @@ -1,8 +1,8 @@ -From b46962ff96a6d54dd6173294d9ae9f48286b213e Mon Sep 17 00:00:00 2001 +From 651a49976e8e481190cc465a5590940a6f6bbcf9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 09:18:52 +0100 -Subject: [PATCH 068/266] buffer_head: Replace bh_uptodate_lock for -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 066/264] buffer_head: Replace bh_uptodate_lock for -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Wrap the bit_spin_lock calls into a separate inline and add the RT replacements with a real spinlock. @@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner 4 files changed, 46 insertions(+), 25 deletions(-) diff --git a/fs/buffer.c b/fs/buffer.c -index c083c4b3c1e7..b0ac4454b4a0 100644 +index a550e0d8e965..a5b3a456dbff 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -274,8 +274,7 @@ static void end_buffer_async_read(struct buffer_head *bh, int uptodate) @@ -78,7 +78,7 @@ index c083c4b3c1e7..b0ac4454b4a0 100644 } EXPORT_SYMBOL(end_buffer_async_write); -@@ -3361,6 +3353,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags) +@@ -3368,6 +3360,7 @@ struct buffer_head *alloc_buffer_head(gfp_t gfp_flags) struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags); if (ret) { INIT_LIST_HEAD(&ret->b_assoc_buffers); diff --git a/debian/patches-rt/0069-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch similarity index 94% rename from debian/patches-rt/0069-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch rename to debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch index deafdb32b..8e12eac57 100644 --- a/debian/patches-rt/0069-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch +++ b/debian/patches-rt/0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch @@ -1,9 +1,9 @@ -From 3c12ff53bd33aa4b2a87422ac8ae4a39ca3fd689 Mon Sep 17 00:00:00 2001 +From 6107effb93a85ff7db4857dca4a0acc2ec4a7d5c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 18 Mar 2011 10:11:25 +0100 -Subject: [PATCH 069/266] fs: jbd/jbd2: Make state lock and journal head lock +Subject: [PATCH 067/264] fs: jbd/jbd2: Make state lock and journal head lock rt safe -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz bit_spin_locks break under RT. diff --git a/debian/patches-rt/0070-list_bl-Make-list-head-locking-RT-safe.patch b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch similarity index 96% rename from debian/patches-rt/0070-list_bl-Make-list-head-locking-RT-safe.patch rename to debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch index c4f3690f0..8037590b8 100644 --- a/debian/patches-rt/0070-list_bl-Make-list-head-locking-RT-safe.patch +++ b/debian/patches-rt/0068-list_bl-Make-list-head-locking-RT-safe.patch @@ -1,8 +1,8 @@ -From 49c5f6e11359ffcdc8b0c3dd8bf22a629534760e Mon Sep 17 00:00:00 2001 +From 44a67462ebab9e354cfa669144248912fa92ca24 Mon Sep 17 00:00:00 2001 From: Paul Gortmaker Date: Fri, 21 Jun 2013 15:07:25 -0400 -Subject: [PATCH 070/266] list_bl: Make list head locking RT safe -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 068/264] list_bl: Make list head locking RT safe +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0071-list_bl-fixup-bogus-lockdep-warning.patch b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch similarity index 94% rename from debian/patches-rt/0071-list_bl-fixup-bogus-lockdep-warning.patch rename to debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch index 8dc52cb4d..c0e70e7d2 100644 --- a/debian/patches-rt/0071-list_bl-fixup-bogus-lockdep-warning.patch +++ b/debian/patches-rt/0069-list_bl-fixup-bogus-lockdep-warning.patch @@ -1,8 +1,8 @@ -From 18baa05e062b4a3e349cc30313d665960c98d33c Mon Sep 17 00:00:00 2001 +From 20f64514264a9d0ea1533f4743f542a1fb056a16 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 31 Mar 2016 00:04:25 -0500 -Subject: [PATCH 071/266] list_bl: fixup bogus lockdep warning -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 069/264] list_bl: fixup bogus lockdep warning +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz At first glance, the use of 'static inline' seems appropriate for INIT_HLIST_BL_HEAD(). diff --git a/debian/patches-rt/0072-genirq-Disable-irqpoll-on-rt.patch b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch similarity index 89% rename from debian/patches-rt/0072-genirq-Disable-irqpoll-on-rt.patch rename to debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch index 3e9005456..f7f1bf40c 100644 --- a/debian/patches-rt/0072-genirq-Disable-irqpoll-on-rt.patch +++ b/debian/patches-rt/0070-genirq-Disable-irqpoll-on-rt.patch @@ -1,8 +1,8 @@ -From 2f7ec5b079ec9ac3bff29d542d21e5ecd6f14d0f Mon Sep 17 00:00:00 2001 +From 7520cd851f5733f5e69fe73008893f4be48506f9 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:57 -0500 -Subject: [PATCH 072/266] genirq: Disable irqpoll on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 070/264] genirq: Disable irqpoll on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Creates long latencies for no value diff --git a/debian/patches-rt/0073-genirq-Force-interrupt-thread-on-RT.patch b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch similarity index 90% rename from debian/patches-rt/0073-genirq-Force-interrupt-thread-on-RT.patch rename to debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch index 92d2c0813..262dbbab9 100644 --- a/debian/patches-rt/0073-genirq-Force-interrupt-thread-on-RT.patch +++ b/debian/patches-rt/0071-genirq-Force-interrupt-thread-on-RT.patch @@ -1,8 +1,8 @@ -From a21ce2ad1b7d3e1927e69f5ff85f00035cc31e43 Mon Sep 17 00:00:00 2001 +From 22860bd2c33dc3abc1b0aa695f8f455595762a93 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 3 Apr 2011 11:57:29 +0200 -Subject: [PATCH 073/266] genirq: Force interrupt thread on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 071/264] genirq: Force interrupt thread on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Force threaded_irqs and optimize the code (force_irqthreads) in regard to this. diff --git a/debian/patches-rt/0074-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch similarity index 96% rename from debian/patches-rt/0074-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch rename to debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index ff89cfd73..ed36043dd 100644 --- a/debian/patches-rt/0074-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -1,9 +1,9 @@ -From 6993ab71f072edd10b4f3e076c474cea6290b9da Mon Sep 17 00:00:00 2001 +From 3c22477fe8ef4919a3fb0314834751ad2e2134d8 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 28 May 2018 15:24:20 +0200 -Subject: [PATCH 074/266] Split IRQ-off and zone->lock while freeing pages from +Subject: [PATCH 072/264] Split IRQ-off and zone->lock while freeing pages from PCP list #1 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index ef99971c13dd..a84ac7af753d 100644 +index 8e6932a140b8..8c10f34364c0 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1095,7 +1095,7 @@ static inline void prefetch_buddy(struct page *page) diff --git a/debian/patches-rt/0075-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch similarity index 96% rename from debian/patches-rt/0075-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch rename to debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index f0ebed802..ded3d657c 100644 --- a/debian/patches-rt/0075-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -1,9 +1,9 @@ -From 51ba31edfd57dc313746febb2897e6b0735300c6 Mon Sep 17 00:00:00 2001 +From e4639c8f6abcfb4b8b26aa296089349739103578 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 28 May 2018 15:24:21 +0200 -Subject: [PATCH 075/266] Split IRQ-off and zone->lock while freeing pages from +Subject: [PATCH 073/264] Split IRQ-off and zone->lock while freeing pages from PCP list #2 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index a84ac7af753d..8a96b1e6f4f4 100644 +index 8c10f34364c0..4d630aebd84f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1105,8 +1105,8 @@ static inline void prefetch_buddy(struct page *page) diff --git a/debian/patches-rt/0076-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch similarity index 85% rename from debian/patches-rt/0076-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch rename to debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch index 3b9ae98fc..794212d0e 100644 --- a/debian/patches-rt/0076-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From b143284103a8a0d48389a1335bdef9311113921d Mon Sep 17 00:00:00 2001 +From 21da9341b8a6c5d9308bf0c2fa3fe4647749f125 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 28 May 2018 15:24:22 +0200 -Subject: [PATCH 076/266] mm/SLxB: change list_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 074/264] mm/SLxB: change list_lock to raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t otherwise the interrupts won't be disabled on -RT. The locking rules remain @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 73 insertions(+), 73 deletions(-) diff --git a/mm/slab.c b/mm/slab.c -index fad6839e8eab..a7ab3957282b 100644 +index b8e0ec74330f..21fe15fb9624 100644 --- a/mm/slab.c +++ b/mm/slab.c @@ -233,7 +233,7 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent) @@ -43,7 +43,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); } -@@ -730,7 +730,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep, +@@ -731,7 +731,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep, struct kmem_cache_node *n = get_node(cachep, node); if (ac->avail) { @@ -52,7 +52,7 @@ index fad6839e8eab..a7ab3957282b 100644 /* * Stuff objects into the remote nodes shared array first. * That way we could avoid the overhead of putting the objects -@@ -741,7 +741,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep, +@@ -742,7 +742,7 @@ static void __drain_alien_cache(struct kmem_cache *cachep, free_block(cachep, ac->entry, ac->avail, node, list); ac->avail = 0; @@ -61,7 +61,7 @@ index fad6839e8eab..a7ab3957282b 100644 } } -@@ -814,9 +814,9 @@ static int __cache_free_alien(struct kmem_cache *cachep, void *objp, +@@ -815,9 +815,9 @@ static int __cache_free_alien(struct kmem_cache *cachep, void *objp, slabs_destroy(cachep, &list); } else { n = get_node(cachep, page_node); @@ -73,7 +73,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); } return 1; -@@ -857,10 +857,10 @@ static int init_cache_node(struct kmem_cache *cachep, int node, gfp_t gfp) +@@ -858,10 +858,10 @@ static int init_cache_node(struct kmem_cache *cachep, int node, gfp_t gfp) */ n = get_node(cachep, node); if (n) { @@ -86,7 +86,7 @@ index fad6839e8eab..a7ab3957282b 100644 return 0; } -@@ -939,7 +939,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep, +@@ -940,7 +940,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep, goto fail; n = get_node(cachep, node); @@ -95,7 +95,7 @@ index fad6839e8eab..a7ab3957282b 100644 if (n->shared && force_change) { free_block(cachep, n->shared->entry, n->shared->avail, node, &list); -@@ -957,7 +957,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep, +@@ -958,7 +958,7 @@ static int setup_kmem_cache_node(struct kmem_cache *cachep, new_alien = NULL; } @@ -104,7 +104,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); /* -@@ -996,7 +996,7 @@ static void cpuup_canceled(long cpu) +@@ -997,7 +997,7 @@ static void cpuup_canceled(long cpu) if (!n) continue; @@ -113,7 +113,7 @@ index fad6839e8eab..a7ab3957282b 100644 /* Free limit for this kmem_cache_node */ n->free_limit -= cachep->batchcount; -@@ -1009,7 +1009,7 @@ static void cpuup_canceled(long cpu) +@@ -1010,7 +1010,7 @@ static void cpuup_canceled(long cpu) } if (!cpumask_empty(mask)) { @@ -122,7 +122,7 @@ index fad6839e8eab..a7ab3957282b 100644 goto free_slab; } -@@ -1023,7 +1023,7 @@ static void cpuup_canceled(long cpu) +@@ -1024,7 +1024,7 @@ static void cpuup_canceled(long cpu) alien = n->alien; n->alien = NULL; @@ -131,7 +131,7 @@ index fad6839e8eab..a7ab3957282b 100644 kfree(shared); if (alien) { -@@ -1207,7 +1207,7 @@ static void __init init_list(struct kmem_cache *cachep, struct kmem_cache_node * +@@ -1208,7 +1208,7 @@ static void __init init_list(struct kmem_cache *cachep, struct kmem_cache_node * /* * Do not assume that spinlocks can be initialized via memcpy: */ @@ -140,7 +140,7 @@ index fad6839e8eab..a7ab3957282b 100644 MAKE_ALL_LISTS(cachep, ptr, nodeid); cachep->node[nodeid] = ptr; -@@ -1378,11 +1378,11 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid) +@@ -1379,11 +1379,11 @@ slab_out_of_memory(struct kmem_cache *cachep, gfp_t gfpflags, int nodeid) for_each_kmem_cache_node(cachep, node, n) { unsigned long total_slabs, free_slabs, free_objs; @@ -154,7 +154,7 @@ index fad6839e8eab..a7ab3957282b 100644 pr_warn(" node %d: slabs: %ld/%ld, objs: %ld/%ld\n", node, total_slabs - free_slabs, total_slabs, -@@ -2175,7 +2175,7 @@ static void check_spinlock_acquired(struct kmem_cache *cachep) +@@ -2178,7 +2178,7 @@ static void check_spinlock_acquired(struct kmem_cache *cachep) { #ifdef CONFIG_SMP check_irq_off(); @@ -163,7 +163,7 @@ index fad6839e8eab..a7ab3957282b 100644 #endif } -@@ -2183,7 +2183,7 @@ static void check_spinlock_acquired_node(struct kmem_cache *cachep, int node) +@@ -2186,7 +2186,7 @@ static void check_spinlock_acquired_node(struct kmem_cache *cachep, int node) { #ifdef CONFIG_SMP check_irq_off(); @@ -172,7 +172,7 @@ index fad6839e8eab..a7ab3957282b 100644 #endif } -@@ -2223,9 +2223,9 @@ static void do_drain(void *arg) +@@ -2226,9 +2226,9 @@ static void do_drain(void *arg) check_irq_off(); ac = cpu_cache_get(cachep); n = get_node(cachep, node); @@ -184,7 +184,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); ac->avail = 0; } -@@ -2243,9 +2243,9 @@ static void drain_cpu_caches(struct kmem_cache *cachep) +@@ -2246,9 +2246,9 @@ static void drain_cpu_caches(struct kmem_cache *cachep) drain_alien_cache(cachep, n->alien); for_each_kmem_cache_node(cachep, node, n) { @@ -196,7 +196,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); } -@@ -2267,10 +2267,10 @@ static int drain_freelist(struct kmem_cache *cache, +@@ -2270,10 +2270,10 @@ static int drain_freelist(struct kmem_cache *cache, nr_freed = 0; while (nr_freed < tofree && !list_empty(&n->slabs_free)) { @@ -209,7 +209,7 @@ index fad6839e8eab..a7ab3957282b 100644 goto out; } -@@ -2283,7 +2283,7 @@ static int drain_freelist(struct kmem_cache *cache, +@@ -2286,7 +2286,7 @@ static int drain_freelist(struct kmem_cache *cache, * to the cache. */ n->free_objects -= cache->num; @@ -218,7 +218,7 @@ index fad6839e8eab..a7ab3957282b 100644 slab_destroy(cache, page); nr_freed++; } -@@ -2731,7 +2731,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page) +@@ -2734,7 +2734,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page) INIT_LIST_HEAD(&page->lru); n = get_node(cachep, page_to_nid(page)); @@ -227,7 +227,7 @@ index fad6839e8eab..a7ab3957282b 100644 n->total_slabs++; if (!page->active) { list_add_tail(&page->lru, &(n->slabs_free)); -@@ -2741,7 +2741,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page) +@@ -2744,7 +2744,7 @@ static void cache_grow_end(struct kmem_cache *cachep, struct page *page) STATS_INC_GROWN(cachep); n->free_objects += cachep->num - page->active; @@ -236,7 +236,7 @@ index fad6839e8eab..a7ab3957282b 100644 fixup_objfreelist_debug(cachep, &list); } -@@ -2909,7 +2909,7 @@ static struct page *get_first_slab(struct kmem_cache_node *n, bool pfmemalloc) +@@ -2912,7 +2912,7 @@ static struct page *get_first_slab(struct kmem_cache_node *n, bool pfmemalloc) { struct page *page; @@ -245,7 +245,7 @@ index fad6839e8eab..a7ab3957282b 100644 page = list_first_entry_or_null(&n->slabs_partial, struct page, lru); if (!page) { n->free_touched = 1; -@@ -2935,10 +2935,10 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep, +@@ -2938,10 +2938,10 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep, if (!gfp_pfmemalloc_allowed(flags)) return NULL; @@ -258,7 +258,7 @@ index fad6839e8eab..a7ab3957282b 100644 return NULL; } -@@ -2947,7 +2947,7 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep, +@@ -2950,7 +2950,7 @@ static noinline void *cache_alloc_pfmemalloc(struct kmem_cache *cachep, fixup_slab_list(cachep, n, page, &list); @@ -267,7 +267,7 @@ index fad6839e8eab..a7ab3957282b 100644 fixup_objfreelist_debug(cachep, &list); return obj; -@@ -3006,7 +3006,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) +@@ -3009,7 +3009,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) if (!n->free_objects && (!shared || !shared->avail)) goto direct_grow; @@ -276,7 +276,7 @@ index fad6839e8eab..a7ab3957282b 100644 shared = READ_ONCE(n->shared); /* See if we can refill from the shared array */ -@@ -3030,7 +3030,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) +@@ -3033,7 +3033,7 @@ static void *cache_alloc_refill(struct kmem_cache *cachep, gfp_t flags) must_grow: n->free_objects -= ac->avail; alloc_done: @@ -285,7 +285,7 @@ index fad6839e8eab..a7ab3957282b 100644 fixup_objfreelist_debug(cachep, &list); direct_grow: -@@ -3255,7 +3255,7 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, +@@ -3258,7 +3258,7 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, BUG_ON(!n); check_irq_off(); @@ -294,7 +294,7 @@ index fad6839e8eab..a7ab3957282b 100644 page = get_first_slab(n, false); if (!page) goto must_grow; -@@ -3273,12 +3273,12 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, +@@ -3276,12 +3276,12 @@ static void *____cache_alloc_node(struct kmem_cache *cachep, gfp_t flags, fixup_slab_list(cachep, n, page, &list); @@ -309,7 +309,7 @@ index fad6839e8eab..a7ab3957282b 100644 page = cache_grow_begin(cachep, gfp_exact_node(flags), nodeid); if (page) { /* This slab isn't counted yet so don't update free_objects */ -@@ -3454,7 +3454,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) +@@ -3457,7 +3457,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) check_irq_off(); n = get_node(cachep, node); @@ -318,7 +318,7 @@ index fad6839e8eab..a7ab3957282b 100644 if (n->shared) { struct array_cache *shared_array = n->shared; int max = shared_array->limit - shared_array->avail; -@@ -3483,7 +3483,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) +@@ -3486,7 +3486,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac) STATS_SET_FREEABLE(cachep, i); } #endif @@ -327,7 +327,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); ac->avail -= batchcount; memmove(ac->entry, &(ac->entry[batchcount]), sizeof(void *)*ac->avail); -@@ -3893,9 +3893,9 @@ static int __do_tune_cpucache(struct kmem_cache *cachep, int limit, +@@ -3896,9 +3896,9 @@ static int __do_tune_cpucache(struct kmem_cache *cachep, int limit, node = cpu_to_mem(cpu); n = get_node(cachep, node); @@ -339,7 +339,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); } free_percpu(prev); -@@ -4020,9 +4020,9 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_cache_node *n, +@@ -4023,9 +4023,9 @@ static void drain_array(struct kmem_cache *cachep, struct kmem_cache_node *n, return; } @@ -351,7 +351,7 @@ index fad6839e8eab..a7ab3957282b 100644 slabs_destroy(cachep, &list); } -@@ -4106,7 +4106,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo) +@@ -4109,7 +4109,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo) for_each_kmem_cache_node(cachep, node, n) { check_irq_on(); @@ -360,7 +360,7 @@ index fad6839e8eab..a7ab3957282b 100644 total_slabs += n->total_slabs; free_slabs += n->free_slabs; -@@ -4115,7 +4115,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo) +@@ -4118,7 +4118,7 @@ void get_slabinfo(struct kmem_cache *cachep, struct slabinfo *sinfo) if (n->shared) shared_avail += n->shared->avail; @@ -369,7 +369,7 @@ index fad6839e8eab..a7ab3957282b 100644 } num_objs = total_slabs * cachep->num; active_slabs = total_slabs - free_slabs; -@@ -4330,13 +4330,13 @@ static int leaks_show(struct seq_file *m, void *p) +@@ -4333,13 +4333,13 @@ static int leaks_show(struct seq_file *m, void *p) for_each_kmem_cache_node(cachep, node, n) { check_irq_on(); @@ -386,10 +386,10 @@ index fad6839e8eab..a7ab3957282b 100644 } while (!is_store_user_clean(cachep)); diff --git a/mm/slab.h b/mm/slab.h -index 58c6c1c2a78e..e904021207f1 100644 +index 9632772e14be..d6b01d61f768 100644 --- a/mm/slab.h +++ b/mm/slab.h -@@ -453,7 +453,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, gfp_t flags, +@@ -454,7 +454,7 @@ static inline void slab_post_alloc_hook(struct kmem_cache *s, gfp_t flags, * The slab lists for all objects. */ struct kmem_cache_node { @@ -399,7 +399,7 @@ index 58c6c1c2a78e..e904021207f1 100644 #ifdef CONFIG_SLAB struct list_head slabs_partial; /* partial list first, better asm code */ diff --git a/mm/slub.c b/mm/slub.c -index 8da34a8af53d..298cd7d368de 100644 +index 09c0e24a06d8..9450fb6da89f 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1167,7 +1167,7 @@ static noinline int free_debug_processing( @@ -545,7 +545,7 @@ index 8da34a8af53d..298cd7d368de 100644 INIT_LIST_HEAD(&n->partial); #ifdef CONFIG_SLUB_DEBUG atomic_long_set(&n->nr_slabs, 0); -@@ -3653,7 +3653,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) +@@ -3656,7 +3656,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) struct page *page, *h; BUG_ON(irqs_disabled()); @@ -554,7 +554,7 @@ index 8da34a8af53d..298cd7d368de 100644 list_for_each_entry_safe(page, h, &n->partial, lru) { if (!page->inuse) { remove_partial(n, page); -@@ -3663,7 +3663,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) +@@ -3666,7 +3666,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n) "Objects remaining in %s on __kmem_cache_shutdown()"); } } @@ -563,7 +563,7 @@ index 8da34a8af53d..298cd7d368de 100644 list_for_each_entry_safe(page, h, &discard, lru) discard_slab(s, page); -@@ -3936,7 +3936,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) +@@ -3939,7 +3939,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) for (i = 0; i < SHRINK_PROMOTE_MAX; i++) INIT_LIST_HEAD(promote + i); @@ -572,7 +572,7 @@ index 8da34a8af53d..298cd7d368de 100644 /* * Build lists of slabs to discard or promote. -@@ -3967,7 +3967,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) +@@ -3970,7 +3970,7 @@ int __kmem_cache_shrink(struct kmem_cache *s) for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--) list_splice(promote + i, &n->partial); @@ -581,7 +581,7 @@ index 8da34a8af53d..298cd7d368de 100644 /* Release empty slabs */ list_for_each_entry_safe(page, t, &discard, lru) -@@ -4381,7 +4381,7 @@ static int validate_slab_node(struct kmem_cache *s, +@@ -4384,7 +4384,7 @@ static int validate_slab_node(struct kmem_cache *s, struct page *page; unsigned long flags; @@ -590,7 +590,7 @@ index 8da34a8af53d..298cd7d368de 100644 list_for_each_entry(page, &n->partial, lru) { validate_slab_slab(s, page, map); -@@ -4403,7 +4403,7 @@ static int validate_slab_node(struct kmem_cache *s, +@@ -4406,7 +4406,7 @@ static int validate_slab_node(struct kmem_cache *s, s->name, count, atomic_long_read(&n->nr_slabs)); out: @@ -599,7 +599,7 @@ index 8da34a8af53d..298cd7d368de 100644 return count; } -@@ -4593,12 +4593,12 @@ static int list_locations(struct kmem_cache *s, char *buf, +@@ -4596,12 +4596,12 @@ static int list_locations(struct kmem_cache *s, char *buf, if (!atomic_long_read(&n->nr_slabs)) continue; diff --git a/debian/patches-rt/0077-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch similarity index 96% rename from debian/patches-rt/0077-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch rename to debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch index c111ef79c..4eae83880 100644 --- a/debian/patches-rt/0077-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +++ b/debian/patches-rt/0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch @@ -1,9 +1,9 @@ -From 1fa02c36b05b392724988ddda8806f6cbf674446 Mon Sep 17 00:00:00 2001 +From 7950585d96adfc3a0b99a639041dbaed50e2a496 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 21 Jun 2018 17:29:19 +0200 -Subject: [PATCH 077/266] mm/SLUB: delay giving back empty slubs to IRQ enabled +Subject: [PATCH 075/264] mm/SLUB: delay giving back empty slubs to IRQ enabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz __free_slab() is invoked with disabled interrupts which increases the irq-off time while __free_pages() is doing the work. @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 69 insertions(+), 5 deletions(-) diff --git a/mm/slub.c b/mm/slub.c -index 298cd7d368de..224f79ee6b39 100644 +index 9450fb6da89f..7fd47a914f61 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1330,6 +1330,12 @@ static inline void dec_slabs_node(struct kmem_cache *s, int node, @@ -205,7 +205,7 @@ index 298cd7d368de..224f79ee6b39 100644 slab_post_alloc_hook(s, flags, i, p); __kmem_cache_free_bulk(s, i, p); return 0; -@@ -4180,6 +4238,12 @@ void __init kmem_cache_init(void) +@@ -4183,6 +4241,12 @@ void __init kmem_cache_init(void) { static __initdata struct kmem_cache boot_kmem_cache, boot_kmem_cache_node; diff --git a/debian/patches-rt/0078-mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch similarity index 97% rename from debian/patches-rt/0078-mm-page_alloc-rt-friendly-per-cpu-pages.patch rename to debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch index d98f03e84..ce6d28c29 100644 --- a/debian/patches-rt/0078-mm-page_alloc-rt-friendly-per-cpu-pages.patch +++ b/debian/patches-rt/0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -1,8 +1,8 @@ -From 8cf680defa2721e8a3636f0d81f0ae698b532200 Mon Sep 17 00:00:00 2001 +From 31695882006c45fad86890ceff90dd7d65ea5dd3 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:37 -0500 -Subject: [PATCH 078/266] mm: page_alloc: rt-friendly per-cpu pages -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 076/264] mm: page_alloc: rt-friendly per-cpu pages +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. @@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 8a96b1e6f4f4..bfbd1d6abb54 100644 +index 4d630aebd84f..4d11ec179aa7 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -60,6 +60,7 @@ diff --git a/debian/patches-rt/0079-mm-swap-Convert-to-percpu-locked.patch b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch similarity index 96% rename from debian/patches-rt/0079-mm-swap-Convert-to-percpu-locked.patch rename to debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch index 7679b16d6..dfa3ed4b5 100644 --- a/debian/patches-rt/0079-mm-swap-Convert-to-percpu-locked.patch +++ b/debian/patches-rt/0077-mm-swap-Convert-to-percpu-locked.patch @@ -1,8 +1,8 @@ -From 3e69b8c10ef337ad55294b386473175604fac7ae Mon Sep 17 00:00:00 2001 +From 25ce0ae0ad1ef1ed724757c0137241db28a8208d Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:51 -0500 -Subject: [PATCH 079/266] mm/swap: Convert to percpu locked -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 077/264] mm/swap: Convert to percpu locked +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Replace global locks (get_cpu + local_irq_save) with "local_locks()". Currently there is one of for "rotate" and one for "swap". @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/include/linux/swap.h b/include/linux/swap.h -index 77221c16733a..6819766b93aa 100644 +index 7bd0a6f2ac2b..e643672fa802 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -12,6 +12,7 @@ @@ -56,7 +56,7 @@ index faca45ebe62d..f8ccb9d9daa3 100644 cc->last_migrated_pfn = 0; } diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index bfbd1d6abb54..5af1cdd1b923 100644 +index 4d11ec179aa7..a01c15fdb723 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7205,8 +7205,9 @@ void __init free_area_init(unsigned long *zones_size) diff --git a/debian/patches-rt/0080-mm-perform-lru_add_drain_all-remotely.patch b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch similarity index 95% rename from debian/patches-rt/0080-mm-perform-lru_add_drain_all-remotely.patch rename to debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch index 5bc0dd779..cd8c89154 100644 --- a/debian/patches-rt/0080-mm-perform-lru_add_drain_all-remotely.patch +++ b/debian/patches-rt/0078-mm-perform-lru_add_drain_all-remotely.patch @@ -1,8 +1,8 @@ -From ac3ff5ace2c5405df8a46847cd66757ae63d5477 Mon Sep 17 00:00:00 2001 +From c6e0c51ac7fe1d0892449e41e6792babe4d7c3fa Mon Sep 17 00:00:00 2001 From: Luiz Capitulino Date: Fri, 27 May 2016 15:03:28 +0200 -Subject: [PATCH 080/266] mm: perform lru_add_drain_all() remotely -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 078/264] mm: perform lru_add_drain_all() remotely +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0081-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch similarity index 95% rename from debian/patches-rt/0081-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch rename to debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch index d76ed8c25..afeb3a08a 100644 --- a/debian/patches-rt/0081-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch +++ b/debian/patches-rt/0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch @@ -1,9 +1,9 @@ -From 97d2d31ce45e742af6dc423c28ab0658114264dc Mon Sep 17 00:00:00 2001 +From b0971a2847fd9cd9f59eb19e6761f6800a33150d Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:30:13 -0500 -Subject: [PATCH 081/266] mm/vmstat: Protect per cpu variables with preempt +Subject: [PATCH 079/264] mm/vmstat: Protect per cpu variables with preempt disable on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Disable preemption on -RT for the vmstat code. On vanila the code runs in IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the @@ -41,7 +41,7 @@ index f25cef84b41d..febee8649220 100644 static inline void count_vm_events(enum vm_event_item item, long delta) diff --git a/mm/vmstat.c b/mm/vmstat.c -index 7878da76abf2..2cfaa5075c72 100644 +index 4a387937f9f5..0cd11c5e3999 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -320,6 +320,7 @@ void __mod_zone_page_state(struct zone *zone, enum zone_stat_item item, diff --git a/debian/patches-rt/0082-ARM-Initialize-split-page-table-locks-for-vector-pag.patch b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch similarity index 93% rename from debian/patches-rt/0082-ARM-Initialize-split-page-table-locks-for-vector-pag.patch rename to debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch index 3d82435ed..531c19f7f 100644 --- a/debian/patches-rt/0082-ARM-Initialize-split-page-table-locks-for-vector-pag.patch +++ b/debian/patches-rt/0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch @@ -1,9 +1,9 @@ -From c4a52a68ff41c185a61d501c061b08ce81a2506e Mon Sep 17 00:00:00 2001 +From 1062ea19aa6e1c3dacb44d07747c89b4f66dadc2 Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Sat, 1 Oct 2011 18:58:13 -0700 -Subject: [PATCH 082/266] ARM: Initialize split page table locks for vector +Subject: [PATCH 080/264] ARM: Initialize split page table locks for vector page -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Without this patch, ARM can not use SPLIT_PTLOCK_CPUS if PREEMPT_RT_FULL=y because vectors_user_mapping() creates a diff --git a/debian/patches-rt/0083-mm-Enable-SLUB-for-RT.patch b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch similarity index 74% rename from debian/patches-rt/0083-mm-Enable-SLUB-for-RT.patch rename to debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch index 88178fde3..6b83add73 100644 --- a/debian/patches-rt/0083-mm-Enable-SLUB-for-RT.patch +++ b/debian/patches-rt/0081-mm-Enable-SLUB-for-RT.patch @@ -1,8 +1,8 @@ -From e438a74270d17d8f9d68d4278b14497bc2671a07 Mon Sep 17 00:00:00 2001 +From 7bd789a93c5b97d553b15fd8e446228d23456aff Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Oct 2012 10:32:35 +0100 -Subject: [PATCH 083/266] mm: Enable SLUB for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 081/264] mm: Enable SLUB for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Avoid the memory allocation in IRQ section @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 6 insertions(+) diff --git a/mm/slub.c b/mm/slub.c -index 224f79ee6b39..154c0eb7c28b 100644 +index 7fd47a914f61..efd441e79e6f 100644 --- a/mm/slub.c +++ b/mm/slub.c -@@ -3677,6 +3677,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, +@@ -3680,6 +3680,11 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, const char *text) { #ifdef CONFIG_SLUB_DEBUG @@ -29,7 +29,7 @@ index 224f79ee6b39..154c0eb7c28b 100644 void *addr = page_address(page); void *p; unsigned long *map = kcalloc(BITS_TO_LONGS(page->objects), -@@ -3698,6 +3703,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, +@@ -3701,6 +3706,7 @@ static void list_slab_objects(struct kmem_cache *s, struct page *page, slab_unlock(page); kfree(map); #endif diff --git a/debian/patches-rt/0084-slub-Enable-irqs-for-__GFP_WAIT.patch b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch similarity index 85% rename from debian/patches-rt/0084-slub-Enable-irqs-for-__GFP_WAIT.patch rename to debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch index a78d2f626..da0a16666 100644 --- a/debian/patches-rt/0084-slub-Enable-irqs-for-__GFP_WAIT.patch +++ b/debian/patches-rt/0082-slub-Enable-irqs-for-__GFP_WAIT.patch @@ -1,8 +1,8 @@ -From 605ec36d61e9293b08da52f9fd7edabe92f45940 Mon Sep 17 00:00:00 2001 +From 11224977de88f7f3ddc92b29390c44fdf9a85820 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 9 Jan 2013 12:08:15 +0100 -Subject: [PATCH 084/266] slub: Enable irqs for __GFP_WAIT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 082/264] slub: Enable irqs for __GFP_WAIT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz SYSTEM_RUNNING might be too late for enabling interrupts. Allocations with GFP_WAIT can happen before that. So use this as an indicator. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mm/slub.c b/mm/slub.c -index 154c0eb7c28b..bcc176415952 100644 +index efd441e79e6f..2240b51a0549 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1570,10 +1570,17 @@ static struct page *allocate_slab(struct kmem_cache *s, gfp_t flags, int node) diff --git a/debian/patches-rt/0085-slub-Disable-SLUB_CPU_PARTIAL.patch b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch similarity index 93% rename from debian/patches-rt/0085-slub-Disable-SLUB_CPU_PARTIAL.patch rename to debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch index c6e0e95e9..30c20df82 100644 --- a/debian/patches-rt/0085-slub-Disable-SLUB_CPU_PARTIAL.patch +++ b/debian/patches-rt/0083-slub-Disable-SLUB_CPU_PARTIAL.patch @@ -1,8 +1,8 @@ -From 41a8d11daef3a3ccbdc5af850a2de8ef30bf59f2 Mon Sep 17 00:00:00 2001 +From b8b912f1bb257eb44228b3bdb7652c4d6dcda56b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 15 Apr 2015 19:00:47 +0200 -Subject: [PATCH 085/266] slub: Disable SLUB_CPU_PARTIAL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 083/264] slub: Disable SLUB_CPU_PARTIAL +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz |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/debian/patches-rt/0086-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch similarity index 89% rename from debian/patches-rt/0086-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch rename to debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch index b541e273e..76882e26f 100644 --- a/debian/patches-rt/0086-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +++ b/debian/patches-rt/0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -1,9 +1,9 @@ -From 69dc67df10975fa926d4d2a2bb0184b60f539002 Mon Sep 17 00:00:00 2001 +From 107eee1a14857d0aecad3c1f56f8b4cabbadcf89 Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Wed, 30 Oct 2013 11:48:33 -0700 -Subject: [PATCH 086/266] mm/memcontrol: Don't call schedule_work_on in +Subject: [PATCH 084/264] mm/memcontrol: Don't call schedule_work_on in preemption disabled context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The following trace is triggered when running ltp oom test cases: @@ -49,10 +49,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c -index 9518aefd8cbb..5ae52e587528 100644 +index 7e7cc0cd89fe..174329de4779 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c -@@ -2052,7 +2052,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) +@@ -2063,7 +2063,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) * as well as workers from this path always operate on the local * per-cpu data. CPU up doesn't touch memcg_stock at all. */ @@ -61,7 +61,7 @@ index 9518aefd8cbb..5ae52e587528 100644 for_each_online_cpu(cpu) { struct memcg_stock_pcp *stock = &per_cpu(memcg_stock, cpu); struct mem_cgroup *memcg; -@@ -2072,7 +2072,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) +@@ -2083,7 +2083,7 @@ static void drain_all_stock(struct mem_cgroup *root_memcg) } css_put(&memcg->css); } diff --git a/debian/patches-rt/0087-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch similarity index 84% rename from debian/patches-rt/0087-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch rename to debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch index bfdae0850..9eab23b95 100644 --- a/debian/patches-rt/0087-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch +++ b/debian/patches-rt/0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch @@ -1,9 +1,9 @@ -From a400b856179528a4ed99bc3e9ab62c9b9f4299e3 Mon Sep 17 00:00:00 2001 +From b1fa5897c72583b68655f7eeca2e598dbfa8a0b5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 28 Jan 2015 17:14:16 +0100 -Subject: [PATCH 087/266] mm/memcontrol: Replace local_irq_disable with local +Subject: [PATCH 085/264] mm/memcontrol: Replace local_irq_disable with local locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz There are a few local_irq_disable() which then take sleeping locks. This patch converts them local locks. @@ -14,7 +14,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 5ae52e587528..d0ea4e74d6fc 100644 +index 174329de4779..d0f245d80f93 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -69,6 +69,7 @@ @@ -34,7 +34,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 /* Whether legacy memory+swap accounting is active */ static bool do_memsw_account(void) { -@@ -4859,12 +4862,12 @@ static int mem_cgroup_move_account(struct page *page, +@@ -4884,12 +4887,12 @@ static int mem_cgroup_move_account(struct page *page, ret = 0; @@ -49,7 +49,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 out_unlock: unlock_page(page); out: -@@ -5983,10 +5986,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, +@@ -6008,10 +6011,10 @@ void mem_cgroup_commit_charge(struct page *page, struct mem_cgroup *memcg, commit_charge(page, memcg, lrucare); @@ -62,7 +62,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 if (do_memsw_account() && PageSwapCache(page)) { swp_entry_t entry = { .val = page_private(page) }; -@@ -6055,7 +6058,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) +@@ -6080,7 +6083,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) memcg_oom_recover(ug->memcg); } @@ -71,7 +71,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); -@@ -6063,7 +6066,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) +@@ -6088,7 +6091,7 @@ static void uncharge_batch(const struct uncharge_gather *ug) __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); __this_cpu_add(ug->memcg->stat_cpu->nr_page_events, nr_pages); memcg_check_events(ug->memcg, ug->dummy_page); @@ -80,7 +80,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 if (!mem_cgroup_is_root(ug->memcg)) css_put_many(&ug->memcg->css, nr_pages); -@@ -6226,10 +6229,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage) +@@ -6251,10 +6254,10 @@ void mem_cgroup_migrate(struct page *oldpage, struct page *newpage) commit_charge(newpage, memcg, false); @@ -93,7 +93,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 } DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key); -@@ -6421,6 +6424,7 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) +@@ -6446,6 +6449,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; @@ -101,7 +101,7 @@ index 5ae52e587528..d0ea4e74d6fc 100644 VM_BUG_ON_PAGE(PageLRU(page), page); VM_BUG_ON_PAGE(page_count(page), page); -@@ -6466,13 +6470,17 @@ void mem_cgroup_swapout(struct page *page, swp_entry_t entry) +@@ -6491,13 +6495,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 updating the per-CPU variables. */ diff --git a/debian/patches-rt/0088-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch similarity index 97% rename from debian/patches-rt/0088-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch rename to debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch index 28a2f4722..96ee2f268 100644 --- a/debian/patches-rt/0088-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch +++ b/debian/patches-rt/0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch @@ -1,8 +1,8 @@ -From e96c261e79fc523e023aedf55130eea2b4026dfb Mon Sep 17 00:00:00 2001 +From 83e42c20f52f70e65d03b214fd9c8579b0128f47 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Tue, 22 Mar 2016 11:16:09 +0100 -Subject: [PATCH 088/266] mm/zsmalloc: copy with get_cpu_var() and locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 086/264] mm/zsmalloc: copy with get_cpu_var() and locking +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz get_cpu_var() disables preemption and triggers a might_sleep() splat later. This is replaced with get_locked_var(). diff --git a/debian/patches-rt/0089-x86-mm-pat-disable-preemption-__split_large_page-aft.patch b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch similarity index 91% rename from debian/patches-rt/0089-x86-mm-pat-disable-preemption-__split_large_page-aft.patch rename to debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch index fc8bde400..807540b24 100644 --- a/debian/patches-rt/0089-x86-mm-pat-disable-preemption-__split_large_page-aft.patch +++ b/debian/patches-rt/0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch @@ -1,9 +1,9 @@ -From 245b526fa55247c1866beef0e28326ccc11214c8 Mon Sep 17 00:00:00 2001 +From 2543c80b6aadc59c70c6b6e912ed1e6a9965b3c0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 11 Dec 2018 21:53:43 +0100 -Subject: [PATCH 089/266] x86/mm/pat: disable preemption __split_large_page() +Subject: [PATCH 087/264] x86/mm/pat: disable preemption __split_large_page() after spin_lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Commit "x86/mm/pat: Disable preemption around __flush_tlb_all()" added a warning if __flush_tlb_all() is invoked in preemptible context. On !RT diff --git a/debian/patches-rt/0090-radix-tree-use-local-locks.patch b/debian/patches-rt/0088-radix-tree-use-local-locks.patch similarity index 97% rename from debian/patches-rt/0090-radix-tree-use-local-locks.patch rename to debian/patches-rt/0088-radix-tree-use-local-locks.patch index b35eb8200..3e360c505 100644 --- a/debian/patches-rt/0090-radix-tree-use-local-locks.patch +++ b/debian/patches-rt/0088-radix-tree-use-local-locks.patch @@ -1,8 +1,8 @@ -From 6e49e380bae22fbdbbc8ad1beaeb2b68f18bbcab Mon Sep 17 00:00:00 2001 +From 11c1fef6d646f26007271dd7486fe14176d6e6f6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 25 Jan 2017 16:34:27 +0100 -Subject: [PATCH 090/266] radix-tree: use local locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 088/264] radix-tree: use local locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0091-timers-Prepare-for-full-preemption.patch b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch similarity index 93% rename from debian/patches-rt/0091-timers-Prepare-for-full-preemption.patch rename to debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch index 4d1a228d8..c2545967e 100644 --- a/debian/patches-rt/0091-timers-Prepare-for-full-preemption.patch +++ b/debian/patches-rt/0089-timers-Prepare-for-full-preemption.patch @@ -1,8 +1,8 @@ -From 08b09c27edd97bc659d7c41867e01fe9daa71125 Mon Sep 17 00:00:00 2001 +From 558451a44923dab908e500200b3f6f02fd6e4fae Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 091/266] timers: Prepare for full preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 089/264] timers: Prepare for full preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -30,10 +30,10 @@ index 7b066fd38248..54627d046b3a 100644 #else # define del_timer_sync(t) del_timer(t) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index f027ac73f1df..8250701ecfd7 100644 +index 9c4a9f0a627b..ddf6282d9780 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -497,11 +497,14 @@ void resched_cpu(int cpu) +@@ -498,11 +498,14 @@ void resched_cpu(int cpu) */ int get_nohz_timer_target(void) { @@ -50,7 +50,7 @@ index f027ac73f1df..8250701ecfd7 100644 rcu_read_lock(); for_each_domain(cpu, sd) { -@@ -520,6 +523,8 @@ int get_nohz_timer_target(void) +@@ -521,6 +524,8 @@ int get_nohz_timer_target(void) cpu = housekeeping_any_cpu(HK_FLAG_TIMER); unlock: rcu_read_unlock(); diff --git a/debian/patches-rt/0092-x86-kvm-Require-const-tsc-for-RT.patch b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch similarity index 77% rename from debian/patches-rt/0092-x86-kvm-Require-const-tsc-for-RT.patch rename to debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch index e860353c8..932fed7b6 100644 --- a/debian/patches-rt/0092-x86-kvm-Require-const-tsc-for-RT.patch +++ b/debian/patches-rt/0090-x86-kvm-Require-const-tsc-for-RT.patch @@ -1,8 +1,8 @@ -From 72511f2c697b25d19b0a4dd298c2f7987d7cc386 Mon Sep 17 00:00:00 2001 +From ea0ad5586875098798cbf5d53bb21f2a5b82e537 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 6 Nov 2011 12:26:18 +0100 -Subject: [PATCH 092/266] x86: kvm Require const tsc for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 090/264] x86: kvm Require const tsc for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds @@ -15,10 +15,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 6181ec19bed2..10681ac91866 100644 +index 4a61e1609c97..0b4fd313b626 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -6698,6 +6698,13 @@ int kvm_arch_init(void *opaque) +@@ -6725,6 +6725,13 @@ int kvm_arch_init(void *opaque) goto out; } diff --git a/debian/patches-rt/0093-pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch similarity index 95% rename from debian/patches-rt/0093-pci-switchtec-Don-t-use-completion-s-wait-queue.patch rename to debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch index c48bb53cc..97a85c927 100644 --- a/debian/patches-rt/0093-pci-switchtec-Don-t-use-completion-s-wait-queue.patch +++ b/debian/patches-rt/0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch @@ -1,8 +1,8 @@ -From 7fbdd307f3cf05c50b493ea0a31f68dbd0a3ed50 Mon Sep 17 00:00:00 2001 +From 8d76a7f3ba4284defc688a9131aa96e66eb1310a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 4 Oct 2017 10:24:23 +0200 -Subject: [PATCH 093/266] pci/switchtec: Don't use completion's wait queue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 091/264] pci/switchtec: Don't use completion's wait queue +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 diff --git a/debian/patches-rt/0094-wait.h-include-atomic.h.patch b/debian/patches-rt/0092-wait.h-include-atomic.h.patch similarity index 89% rename from debian/patches-rt/0094-wait.h-include-atomic.h.patch rename to debian/patches-rt/0092-wait.h-include-atomic.h.patch index fd2477407..94bb1bf45 100644 --- a/debian/patches-rt/0094-wait.h-include-atomic.h.patch +++ b/debian/patches-rt/0092-wait.h-include-atomic.h.patch @@ -1,11 +1,11 @@ -From b22255c793ef483f700e31323610af55e947782b Mon Sep 17 00:00:00 2001 +From f8a4f74be5bbce9f9664ebf005bb35f26875858f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 28 Oct 2013 12:19:57 +0100 -Subject: [PATCH 094/266] wait.h: include atomic.h +Subject: [PATCH 092/264] wait.h: include atomic.h MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz | CC init/main.o |In file included from include/linux/mmzone.h:9:0, diff --git a/debian/patches-rt/0095-work-simple-Simple-work-queue-implemenation.patch b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch similarity index 97% rename from debian/patches-rt/0095-work-simple-Simple-work-queue-implemenation.patch rename to debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch index 4d9abfbd1..f02695465 100644 --- a/debian/patches-rt/0095-work-simple-Simple-work-queue-implemenation.patch +++ b/debian/patches-rt/0093-work-simple-Simple-work-queue-implemenation.patch @@ -1,8 +1,8 @@ -From c8edd94ddadba2df66391d879cc3f73ddac3fb1d Mon Sep 17 00:00:00 2001 +From 7cf55f71248f4f3c603383a84c73c5e44bfb9229 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Fri, 11 Jul 2014 15:26:11 +0200 -Subject: [PATCH 095/266] work-simple: Simple work queue implemenation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 093/264] work-simple: Simple work queue implemenation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Provides a framework for enqueuing callbacks from irq context PREEMPT_RT_FULL safe. The callbacks are executed in kthread context. diff --git a/debian/patches-rt/0096-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch similarity index 86% rename from debian/patches-rt/0096-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch rename to debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch index 4611b801a..07c7bc449 100644 --- a/debian/patches-rt/0096-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch +++ b/debian/patches-rt/0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch @@ -1,9 +1,9 @@ -From 9b018413a45c8182c7ddfe274e127f723ceb35d8 Mon Sep 17 00:00:00 2001 +From ba25a567c5891e2b1acd586212b0fd92ce755e71 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 10 Sep 2018 18:00:31 +0200 -Subject: [PATCH 096/266] work-simple: drop a shit statement in +Subject: [PATCH 094/264] work-simple: drop a shit statement in SWORK_EVENT_PENDING -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Dan Carpenter reported | smatch warnings: diff --git a/debian/patches-rt/0097-completion-Use-simple-wait-queues.patch b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch similarity index 96% rename from debian/patches-rt/0097-completion-Use-simple-wait-queues.patch rename to debian/patches-rt/0095-completion-Use-simple-wait-queues.patch index 885e99b38..088f6872e 100644 --- a/debian/patches-rt/0097-completion-Use-simple-wait-queues.patch +++ b/debian/patches-rt/0095-completion-Use-simple-wait-queues.patch @@ -1,8 +1,8 @@ -From c2beaeff146ca9f454afd0da8cadea8fbfdf6c84 Mon Sep 17 00:00:00 2001 +From d24dfe04ec75d5329d870c0d20f56f2cba4563ec Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 11 Jan 2013 11:23:51 +0100 -Subject: [PATCH 097/266] completion: Use simple wait queues -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 095/264] completion: Use simple wait queues +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Completions have no long lasting callbacks and therefor do not need the complex waitqueue variant. Use simple waitqueues which reduces the @@ -55,10 +55,10 @@ index 94ad6fe29e69..52a49f0bbc19 100644 break; default: diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c -index 31e8bf3578c8..4d6741a54dd0 100644 +index aa15593a3ac4..5e9269cd14fa 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c -@@ -1623,7 +1623,7 @@ static void ffs_data_put(struct ffs_data *ffs) +@@ -1624,7 +1624,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) || @@ -320,10 +320,10 @@ index a1ad5b7d5521..755a58084978 100644 } EXPORT_SYMBOL(completion_done); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 8250701ecfd7..714f5617fe1f 100644 +index ddf6282d9780..8272d920b749 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -7108,7 +7108,10 @@ void migrate_disable(void) +@@ -7109,7 +7109,10 @@ void migrate_disable(void) return; } #ifdef CONFIG_SCHED_DEBUG @@ -335,7 +335,7 @@ index 8250701ecfd7..714f5617fe1f 100644 #endif if (p->migrate_disable) { -@@ -7138,7 +7141,10 @@ void migrate_enable(void) +@@ -7139,7 +7142,10 @@ void migrate_enable(void) } #ifdef CONFIG_SCHED_DEBUG diff --git a/debian/patches-rt/0098-fs-aio-simple-simple-work.patch b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch similarity index 95% rename from debian/patches-rt/0098-fs-aio-simple-simple-work.patch rename to debian/patches-rt/0096-fs-aio-simple-simple-work.patch index e339b70a4..1da18bafe 100644 --- a/debian/patches-rt/0098-fs-aio-simple-simple-work.patch +++ b/debian/patches-rt/0096-fs-aio-simple-simple-work.patch @@ -1,8 +1,8 @@ -From afe56dc247199dfab44e763d2b7d384b8a27a028 Mon Sep 17 00:00:00 2001 +From 39010d30f3244de6b51646a0325b6292d8c84282 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 16 Feb 2015 18:49:10 +0100 -Subject: [PATCH 098/266] fs/aio: simple simple work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 096/264] fs/aio: simple simple work +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz |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/debian/patches-rt/0099-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch b/debian/patches-rt/0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch similarity index 96% rename from debian/patches-rt/0099-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch rename to debian/patches-rt/0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch index 17df55565..a6fdada60 100644 --- a/debian/patches-rt/0099-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch +++ b/debian/patches-rt/0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch @@ -1,9 +1,9 @@ -From 2241ac7c8cc88110d42529596fd90f272387fd00 Mon Sep 17 00:00:00 2001 +From 2010005b28eea662f9390937d92563ea1c466e24 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 21 Aug 2013 17:48:46 +0200 -Subject: [PATCH 099/266] genirq: Do not invoke the affinity callback via a +Subject: [PATCH 097/264] genirq: Do not invoke the affinity callback via a workqueue on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Joe Korty reported, that __irq_set_affinity_locked() schedules a workqueue while holding a rawlock which results in a might_sleep() diff --git a/debian/patches-rt/0100-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch b/debian/patches-rt/0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch similarity index 92% rename from debian/patches-rt/0100-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch rename to debian/patches-rt/0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch index fa7c3043e..d28432248 100644 --- a/debian/patches-rt/0100-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch +++ b/debian/patches-rt/0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch @@ -1,9 +1,9 @@ -From d14b54f5a857ad006ce9a339e8ddea5b0580db2b Mon Sep 17 00:00:00 2001 +From 49622b7282a6c10c5a70f3987df4ccfe3a32c92b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 15 Nov 2017 17:29:51 +0100 -Subject: [PATCH 100/266] time/hrtimer: avoid schedule_work() with interrupts +Subject: [PATCH 098/264] time/hrtimer: avoid schedule_work() with interrupts disabled -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The NOHZ code tries to schedule a workqueue with interrupts disabled. Since this does not work -RT I am switching it to swork instead. diff --git a/debian/patches-rt/0101-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/debian/patches-rt/0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch similarity index 98% rename from debian/patches-rt/0101-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch rename to debian/patches-rt/0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch index e3f4ad3ff..6b982075e 100644 --- a/debian/patches-rt/0101-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +++ b/debian/patches-rt/0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch @@ -1,9 +1,9 @@ -From 5a01e5b6e3930af282fc1ad4c52348c2863b6d80 Mon Sep 17 00:00:00 2001 +From 7223736bbeccbb731d509b603b15adcbf36bdade Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 3 Jul 2018 11:25:41 +0200 -Subject: [PATCH 101/266] hrtimer: consolidate hrtimer_init() + +Subject: [PATCH 099/264] hrtimer: consolidate hrtimer_init() + hrtimer_init_sleeper() calls -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz hrtimer_init_sleeper() calls require a prior initialisation of the hrtimer object with hrtimer_init(). Lets make the initialisation of @@ -126,7 +126,7 @@ index 2b5ef8e94d19..94bd2e841de6 100644 hrtimer_start_range_ns(&__t.timer, timeout, \ current->timer_slack_ns, \ diff --git a/kernel/futex.c b/kernel/futex.c -index cea098efd12e..2b3eb43ba3fd 100644 +index 1bd0950bea4e..fadd9bff6e3c 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -2684,10 +2684,9 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val, diff --git a/debian/patches-rt/0102-hrtimers-Prepare-full-preemption.patch b/debian/patches-rt/0100-hrtimers-Prepare-full-preemption.patch similarity index 97% rename from debian/patches-rt/0102-hrtimers-Prepare-full-preemption.patch rename to debian/patches-rt/0100-hrtimers-Prepare-full-preemption.patch index 525884e94..c53b8f016 100644 --- a/debian/patches-rt/0102-hrtimers-Prepare-full-preemption.patch +++ b/debian/patches-rt/0100-hrtimers-Prepare-full-preemption.patch @@ -1,8 +1,8 @@ -From 3ef6906fafdfc41d1ed2eb6a520c5a0024718306 Mon Sep 17 00:00:00 2001 +From 87f5cf4447982ad964655f0831ea4deff2c59819 Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 3 Jul 2009 08:29:34 -0500 -Subject: [PATCH 102/266] hrtimers: Prepare full preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 100/264] hrtimers: Prepare full preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Make cancellation of a running callback in softirq context safe against preemption. @@ -95,7 +95,7 @@ index ee7e987ea1b4..0571b498db73 100644 void run_posix_cpu_timers(struct task_struct *task); diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c -index fa5de5e8de61..6020ee66e517 100644 +index fdeb9bc6affb..966708e8ce14 100644 --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c @@ -436,7 +436,7 @@ int alarm_cancel(struct alarm *alarm) diff --git a/debian/patches-rt/0103-hrtimer-by-timers-by-default-into-the-softirq-contex.patch b/debian/patches-rt/0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch similarity index 94% rename from debian/patches-rt/0103-hrtimer-by-timers-by-default-into-the-softirq-contex.patch rename to debian/patches-rt/0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch index e7307dfbb..db8473a04 100644 --- a/debian/patches-rt/0103-hrtimer-by-timers-by-default-into-the-softirq-contex.patch +++ b/debian/patches-rt/0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch @@ -1,9 +1,9 @@ -From 889614d308523d73fb2fdc097bbbd60984bfb155 Mon Sep 17 00:00:00 2001 +From 7bbc9e32ebfc904f317e3e3808164cdcba6f7f6d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 3 Jul 2009 08:44:31 -0500 -Subject: [PATCH 103/266] hrtimer: by timers by default into the softirq +Subject: [PATCH 101/264] hrtimer: by timers by default into the softirq context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz We can't have hrtimers callbacks running in hardirq context on RT. Therefore the timers are deferred to the softirq context by default. @@ -66,7 +66,7 @@ index 73ad7309436a..2bdb047c7656 100644 /* diff --git a/kernel/events/core.c b/kernel/events/core.c -index aa996a0854b9..e30d437229da 100644 +index 87bd96399d1c..36661d7a8581 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -1102,7 +1102,7 @@ static void __perf_mux_hrtimer_init(struct perf_cpu_context *cpuctx, int cpu) @@ -78,7 +78,7 @@ index aa996a0854b9..e30d437229da 100644 timer->function = perf_mux_hrtimer_handler; } -@@ -9181,7 +9181,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event) +@@ -9183,7 +9183,7 @@ static void perf_swevent_init_hrtimer(struct perf_event *event) if (!is_sampling_event(event)) return; @@ -88,10 +88,10 @@ index aa996a0854b9..e30d437229da 100644 /* diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 714f5617fe1f..45fd27df22ef 100644 +index 8272d920b749..4ed3b29cb0c8 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -314,7 +314,7 @@ static void hrtick_rq_init(struct rq *rq) +@@ -315,7 +315,7 @@ static void hrtick_rq_init(struct rq *rq) rq->hrtick_csd.info = rq; #endif @@ -114,10 +114,10 @@ index f927b1f45474..ad2a793a912b 100644 } diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 09a1e32c366f..53831b858a41 100644 +index c17d63b06026..4193041b3cab 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4879,9 +4879,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) +@@ -4904,9 +4904,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); @@ -220,7 +220,7 @@ index 54fd344ef973..c217af74dddf 100644 /* Get the next period (per-CPU) */ diff --git a/kernel/watchdog.c b/kernel/watchdog.c -index 977918d5d350..6062f03bf9dc 100644 +index bbc4940f21af..defd493ba967 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c @@ -483,7 +483,7 @@ static void watchdog_enable(unsigned int cpu) diff --git a/debian/patches-rt/0104-sched-fair-Make-the-hrtimers-non-hard-again.patch b/debian/patches-rt/0102-sched-fair-Make-the-hrtimers-non-hard-again.patch similarity index 81% rename from debian/patches-rt/0104-sched-fair-Make-the-hrtimers-non-hard-again.patch rename to debian/patches-rt/0102-sched-fair-Make-the-hrtimers-non-hard-again.patch index 63c21468c..630f07e33 100644 --- a/debian/patches-rt/0104-sched-fair-Make-the-hrtimers-non-hard-again.patch +++ b/debian/patches-rt/0102-sched-fair-Make-the-hrtimers-non-hard-again.patch @@ -1,8 +1,8 @@ -From 73d6f2c019741cbc8070a6696215f4cb00d76b34 Mon Sep 17 00:00:00 2001 +From f498fc065cd56d96f2583801142a348eb801e631 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 8 Jan 2019 12:31:06 +0100 -Subject: [PATCH 104/266] sched/fair: Make the hrtimers non-hard again -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 102/264] sched/fair: Make the hrtimers non-hard again +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Since commit "sched/fair: Robustify CFS-bandwidth timer locking" both hrtimer can run in softirq context because now interrupts are disabled @@ -14,10 +14,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 53831b858a41..09a1e32c366f 100644 +index 4193041b3cab..c17d63b06026 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4879,9 +4879,9 @@ void init_cfs_bandwidth(struct cfs_bandwidth *cfs_b) +@@ -4904,9 +4904,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); diff --git a/debian/patches-rt/0105-hrtimer-Move-schedule_work-call-to-helper-thread.patch b/debian/patches-rt/0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch similarity index 95% rename from debian/patches-rt/0105-hrtimer-Move-schedule_work-call-to-helper-thread.patch rename to debian/patches-rt/0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch index 3804456f9..c32cf65b3 100644 --- a/debian/patches-rt/0105-hrtimer-Move-schedule_work-call-to-helper-thread.patch +++ b/debian/patches-rt/0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch @@ -1,8 +1,8 @@ -From 110886b47449ae5d499c1173c95bca9a01e056a2 Mon Sep 17 00:00:00 2001 +From ca493505f2f12750ca207582fc7b6ca69cbf504e Mon Sep 17 00:00:00 2001 From: Yang Shi Date: Mon, 16 Sep 2013 14:09:19 -0700 -Subject: [PATCH 105/266] hrtimer: Move schedule_work call to helper thread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 103/264] hrtimer: Move schedule_work call to helper thread +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz When run ltp leapsec_timer test, the following call trace is caught: diff --git a/debian/patches-rt/0106-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch b/debian/patches-rt/0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch similarity index 91% rename from debian/patches-rt/0106-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch rename to debian/patches-rt/0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch index 01c785b63..b370b11f1 100644 --- a/debian/patches-rt/0106-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch +++ b/debian/patches-rt/0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch @@ -1,9 +1,9 @@ -From 94f946ca35aeadcc93631f6821bfa58557b83f3d Mon Sep 17 00:00:00 2001 +From 78fffa8243d75e61f9508289b2f68d2f66cf34f6 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 10:15:13 +0100 -Subject: [PATCH 106/266] hrtimer: move state change before hrtimer_cancel in +Subject: [PATCH 104/264] hrtimer: move state change before hrtimer_cancel in do_nanosleep() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz There is a small window between setting t->task to NULL and waking the task up (which would set TASK_RUNNING). So the timer would fire, run and diff --git a/debian/patches-rt/0107-posix-timers-Thread-posix-cpu-timers-on-rt.patch b/debian/patches-rt/0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch similarity index 97% rename from debian/patches-rt/0107-posix-timers-Thread-posix-cpu-timers-on-rt.patch rename to debian/patches-rt/0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch index fc727f085..fd38f6d6f 100644 --- a/debian/patches-rt/0107-posix-timers-Thread-posix-cpu-timers-on-rt.patch +++ b/debian/patches-rt/0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch @@ -1,8 +1,8 @@ -From e9383ea076df7a79a03d8f96cecd6677d1f5f8df Mon Sep 17 00:00:00 2001 +From 34b024b3a992c144a3df653c0ad623a8a69dc735 Mon Sep 17 00:00:00 2001 From: John Stultz Date: Fri, 3 Jul 2009 08:29:58 -0500 -Subject: [PATCH 107/266] posix-timers: Thread posix-cpu-timers on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 105/264] posix-timers: Thread posix-cpu-timers on -rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz posix-cpu-timer code takes non -rt safe locks in hard irq context. Move it to a thread. @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner 4 files changed, 164 insertions(+), 3 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index daa99f3b7c78..4b1994fd819b 100644 +index 535e57775208..c2dfe6939773 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -832,6 +832,9 @@ struct task_struct { diff --git a/debian/patches-rt/0108-sched-Move-task_struct-cleanup-to-RCU.patch b/debian/patches-rt/0106-sched-Move-task_struct-cleanup-to-RCU.patch similarity index 93% rename from debian/patches-rt/0108-sched-Move-task_struct-cleanup-to-RCU.patch rename to debian/patches-rt/0106-sched-Move-task_struct-cleanup-to-RCU.patch index a0c284e7f..05226dbbb 100644 --- a/debian/patches-rt/0108-sched-Move-task_struct-cleanup-to-RCU.patch +++ b/debian/patches-rt/0106-sched-Move-task_struct-cleanup-to-RCU.patch @@ -1,8 +1,8 @@ -From 62ffbb5ae0b46393d64612f452c170360a7dd7d6 Mon Sep 17 00:00:00 2001 +From 3c13de2cc91a9379fe1de22e474cad11805812f9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 May 2011 16:59:16 +0200 -Subject: [PATCH 108/266] sched: Move task_struct cleanup to RCU -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 106/264] sched: Move task_struct cleanup to RCU +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz __put_task_struct() does quite some expensive work. We don't want to burden random tasks with that. @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 4b1994fd819b..fe3bb4313329 100644 +index c2dfe6939773..a6f2f76b1162 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1186,6 +1186,9 @@ struct task_struct { diff --git a/debian/patches-rt/0109-sched-Limit-the-number-of-task-migrations-per-batch.patch b/debian/patches-rt/0107-sched-Limit-the-number-of-task-migrations-per-batch.patch similarity index 81% rename from debian/patches-rt/0109-sched-Limit-the-number-of-task-migrations-per-batch.patch rename to debian/patches-rt/0107-sched-Limit-the-number-of-task-migrations-per-batch.patch index a41d339bd..7523510f9 100644 --- a/debian/patches-rt/0109-sched-Limit-the-number-of-task-migrations-per-batch.patch +++ b/debian/patches-rt/0107-sched-Limit-the-number-of-task-migrations-per-batch.patch @@ -1,8 +1,8 @@ -From c0699f51c272869f78f1d7915212cc431703057a Mon Sep 17 00:00:00 2001 +From 043af6e53425a94e13a6648ac0206a006f2d7792 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:12:51 +0200 -Subject: [PATCH 109/266] sched: Limit the number of task migrations per batch -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 107/264] sched: Limit the number of task migrations per batch +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 45fd27df22ef..b9c91231d19d 100644 +index 4ed3b29cb0c8..f6504beff565 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -44,7 +44,11 @@ const_debug unsigned int sysctl_sched_features = diff --git a/debian/patches-rt/0110-sched-Move-mmdrop-to-RCU-on-RT.patch b/debian/patches-rt/0108-sched-Move-mmdrop-to-RCU-on-RT.patch similarity index 76% rename from debian/patches-rt/0110-sched-Move-mmdrop-to-RCU-on-RT.patch rename to debian/patches-rt/0108-sched-Move-mmdrop-to-RCU-on-RT.patch index 08ef982a9..7bff710d4 100644 --- a/debian/patches-rt/0110-sched-Move-mmdrop-to-RCU-on-RT.patch +++ b/debian/patches-rt/0108-sched-Move-mmdrop-to-RCU-on-RT.patch @@ -1,15 +1,13 @@ -From 7af1b0bc40a20c1a44e4298081eaa2db43e5dac9 Mon Sep 17 00:00:00 2001 +From 2870b4f8c6cadeb84fb963b2d58ffc546a4c3371 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 6 Jun 2011 12:20:33 +0200 -Subject: [PATCH 110/266] sched: Move mmdrop to RCU on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 108/264] sched: Move mmdrop to RCU on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Takes sleeping locks and calls into the memory allocator, so nothing we want to do in task switch and oder atomic contexts. Signed-off-by: Thomas Gleixner -[bwh: Adjusted to apply on top of commit 6ff17bc5936e "coredump: fix race - condition between mmget_not_zero()/get_task_mm() and core dumping"] --- include/linux/mm_types.h | 4 ++++ include/linux/sched/mm.h | 11 +++++++++++ @@ -17,6 +15,8 @@ Signed-off-by: Thomas Gleixner kernel/sched/core.c | 18 ++++++++++++++++-- 4 files changed, 44 insertions(+), 2 deletions(-) +diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h +index 5ed8f6292a53..f430cf0a377e 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -12,6 +12,7 @@ @@ -27,7 +27,7 @@ Signed-off-by: Thomas Gleixner #include #include -@@ -484,6 +485,9 @@ struct mm_struct { +@@ -482,6 +483,9 @@ struct mm_struct { bool tlb_flush_batched; #endif struct uprobes_state uprobes_state; @@ -37,9 +37,11 @@ Signed-off-by: Thomas Gleixner #ifdef CONFIG_HUGETLB_PAGE atomic_long_t hugetlb_usage; #endif +diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h +index cebb79fe2c72..6e578905e4ec 100644 --- a/include/linux/sched/mm.h +++ b/include/linux/sched/mm.h -@@ -49,6 +49,17 @@ static inline void mmdrop(struct mm_stru +@@ -49,6 +49,17 @@ static inline void mmdrop(struct mm_struct *mm) __mmdrop(mm); } @@ -57,9 +59,11 @@ Signed-off-by: Thomas Gleixner /* * This has to be called after a get_task_mm()/mmget_not_zero() * followed by taking the mmap_sem for writing before modifying the +diff --git a/kernel/fork.c b/kernel/fork.c +index b7e0aac93ee5..857ce1a7269f 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -642,6 +642,19 @@ void __mmdrop(struct mm_struct *mm) +@@ -637,6 +637,19 @@ void __mmdrop(struct mm_struct *mm) } EXPORT_SYMBOL_GPL(__mmdrop); @@ -79,9 +83,11 @@ Signed-off-by: Thomas Gleixner static void mmdrop_async_fn(struct work_struct *work) { struct mm_struct *mm; +diff --git a/kernel/sched/core.c b/kernel/sched/core.c +index f6504beff565..551ce1adea4a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2729,9 +2729,13 @@ static struct rq *finish_task_switch(str +@@ -2729,9 +2729,13 @@ static struct rq *finish_task_switch(struct task_struct *prev) * provided by mmdrop(), * - a sync_core for SYNC_CORE. */ @@ -96,7 +102,7 @@ Signed-off-by: Thomas Gleixner } if (unlikely(prev_state == TASK_DEAD)) { if (prev->sched_class->task_dead) -@@ -5560,6 +5564,8 @@ void sched_setnuma(struct task_struct *p +@@ -5559,6 +5563,8 @@ void sched_setnuma(struct task_struct *p, int nid) #endif /* CONFIG_NUMA_BALANCING */ #ifdef CONFIG_HOTPLUG_CPU @@ -105,7 +111,7 @@ Signed-off-by: Thomas Gleixner /* * Ensure that the idle task is using init_mm right before its CPU goes * offline. -@@ -5575,7 +5581,11 @@ void idle_task_exit(void) +@@ -5574,7 +5580,11 @@ void idle_task_exit(void) current->active_mm = &init_mm; finish_arch_post_lock_switch(); } @@ -118,7 +124,7 @@ Signed-off-by: Thomas Gleixner } /* -@@ -5887,6 +5897,10 @@ int sched_cpu_dying(unsigned int cpu) +@@ -5886,6 +5896,10 @@ int sched_cpu_dying(unsigned int cpu) update_max_interval(); nohz_balance_exit_idle(rq); hrtick_clear(rq); @@ -129,3 +135,6 @@ Signed-off-by: Thomas Gleixner return 0; } #endif +-- +2.20.1 + diff --git a/debian/patches-rt/0111-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches-rt/0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch similarity index 87% rename from debian/patches-rt/0111-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch rename to debian/patches-rt/0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch index b673b3c92..acb9ab34a 100644 --- a/debian/patches-rt/0111-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +++ b/debian/patches-rt/0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch @@ -1,9 +1,9 @@ -From 790c45b2ab27b4fa98e76408a4f7dd80311ea9c3 Mon Sep 17 00:00:00 2001 +From 5237487b97c59d69fbd880f60b8cc9ca5414a52a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Nov 2016 19:31:08 +0100 -Subject: [PATCH 111/266] kernel/sched: move stack + kprobe clean up to +Subject: [PATCH 109/264] kernel/sched: move stack + kprobe clean up to __put_task_struct() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz There is no need to free the stack before the task struct (except for reasons mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if @@ -46,10 +46,10 @@ index 857ce1a7269f..8a9241afefb0 100644 task_numa_free(tsk); security_task_free(tsk); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 1c791181915d..5d784f3d839b 100644 +index 551ce1adea4a..788947117ed2 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2740,15 +2740,6 @@ static struct rq *finish_task_switch(struct task_struct *prev) +@@ -2741,15 +2741,6 @@ static struct rq *finish_task_switch(struct task_struct *prev) if (prev->sched_class->task_dead) prev->sched_class->task_dead(prev); diff --git a/debian/patches-rt/0112-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch b/debian/patches-rt/0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch similarity index 88% rename from debian/patches-rt/0112-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch rename to debian/patches-rt/0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch index 51c1cc96e..aeb526033 100644 --- a/debian/patches-rt/0112-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch +++ b/debian/patches-rt/0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch @@ -1,9 +1,9 @@ -From b5d18ac7ad46783e45412e4c8f6623416c22f17c Mon Sep 17 00:00:00 2001 +From 63a798ec299b7daacf684067fbe7917856193133 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 25 Jun 2011 09:21:04 +0200 -Subject: [PATCH 112/266] sched: Add saved_state for tasks blocked on sleeping +Subject: [PATCH 110/264] sched: Add saved_state for tasks blocked on sleeping locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Spinlocks are state preserving in !RT. RT changes the state when a task gets blocked on a lock. So we need to remember the state before @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner 3 files changed, 36 insertions(+), 1 deletion(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index fe3bb4313329..5c7dbe3cfe35 100644 +index a6f2f76b1162..ad44849fba2e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -600,6 +600,8 @@ struct task_struct { @@ -40,10 +40,10 @@ index fe3bb4313329..5c7dbe3cfe35 100644 #ifdef CONFIG_SMP diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 5d784f3d839b..c2b801adcff0 100644 +index 788947117ed2..e7dccbb9973a 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1998,8 +1998,27 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) +@@ -1999,8 +1999,27 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) */ raw_spin_lock_irqsave(&p->pi_lock, flags); smp_mb__after_spinlock(); @@ -72,7 +72,7 @@ index 5d784f3d839b..c2b801adcff0 100644 trace_sched_waking(p); -@@ -2163,6 +2182,18 @@ int wake_up_process(struct task_struct *p) +@@ -2164,6 +2183,18 @@ int wake_up_process(struct task_struct *p) } EXPORT_SYMBOL(wake_up_process); @@ -92,7 +92,7 @@ index 5d784f3d839b..c2b801adcff0 100644 { return try_to_wake_up(p, state, 0); diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index b63172288f7b..74750997b061 100644 +index 4c7a837d7c14..dd6ae39957ce 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1443,6 +1443,7 @@ static inline int task_on_rq_migrating(struct task_struct *p) diff --git a/debian/patches-rt/0113-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch b/debian/patches-rt/0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch similarity index 86% rename from debian/patches-rt/0113-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch rename to debian/patches-rt/0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch index 2b2af6f99..c53dcbe07 100644 --- a/debian/patches-rt/0113-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch +++ b/debian/patches-rt/0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch @@ -1,9 +1,9 @@ -From 46a347593cfdb52cf9f6de548c4921cbeb0f719e Mon Sep 17 00:00:00 2001 +From 01cbb896854fa0cccd07b728402d50b349946011 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 7 Jun 2011 09:19:06 +0200 -Subject: [PATCH 113/266] sched: Do not account rcu_preempt_depth on RT in +Subject: [PATCH 111/264] sched: Do not account rcu_preempt_depth on RT in might_sleep() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz RT changes the rcu_preempt_depth semantics, so we cannot check for it in might_sleep(). @@ -40,10 +40,10 @@ index 75e5b393cf44..0539f55bf7b3 100644 /* Internal to kernel */ diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index c2b801adcff0..14db9abb5c2d 100644 +index e7dccbb9973a..8033a8f4efdd 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -6155,7 +6155,7 @@ void __init sched_init(void) +@@ -6156,7 +6156,7 @@ void __init sched_init(void) #ifdef CONFIG_DEBUG_ATOMIC_SLEEP static inline int preempt_count_equals(int preempt_offset) { diff --git a/debian/patches-rt/0114-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch b/debian/patches-rt/0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch similarity index 83% rename from debian/patches-rt/0114-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch rename to debian/patches-rt/0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch index 9c827f03d..17ea843a8 100644 --- a/debian/patches-rt/0114-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch +++ b/debian/patches-rt/0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch @@ -1,8 +1,8 @@ -From 0b9b20aa2fcb870dea7357331f91f976225c5ff1 Mon Sep 17 00:00:00 2001 +From 575557e0c67be96034f9528399a7b7361dae5dd2 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 22:51:33 +0200 -Subject: [PATCH 114/266] sched: Use the proper LOCK_OFFSET for cond_resched() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 112/264] sched: Use the proper LOCK_OFFSET for cond_resched() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz RT does not increment preempt count when a 'sleeping' spinlock is locked. Update PREEMPT_LOCK_OFFSET for that case. diff --git a/debian/patches-rt/0115-sched-Disable-TTWU_QUEUE-on-RT.patch b/debian/patches-rt/0113-sched-Disable-TTWU_QUEUE-on-RT.patch similarity index 86% rename from debian/patches-rt/0115-sched-Disable-TTWU_QUEUE-on-RT.patch rename to debian/patches-rt/0113-sched-Disable-TTWU_QUEUE-on-RT.patch index 592526600..2b864988c 100644 --- a/debian/patches-rt/0115-sched-Disable-TTWU_QUEUE-on-RT.patch +++ b/debian/patches-rt/0113-sched-Disable-TTWU_QUEUE-on-RT.patch @@ -1,8 +1,8 @@ -From f824506bd5287df43be5c5d54673c1bb78bab657 Mon Sep 17 00:00:00 2001 +From 5e05ad5c470039b646a457459138f582bc139f3f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Sep 2011 16:42:35 +0200 -Subject: [PATCH 115/266] sched: Disable TTWU_QUEUE on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 113/264] sched: Disable TTWU_QUEUE on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0116-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch b/debian/patches-rt/0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch similarity index 85% rename from debian/patches-rt/0116-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch rename to debian/patches-rt/0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch index 46d1f2981..a808b9fbb 100644 --- a/debian/patches-rt/0116-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch +++ b/debian/patches-rt/0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch @@ -1,9 +1,9 @@ -From e264e8af1908fcc71779f78c18628393bf10d315 Mon Sep 17 00:00:00 2001 +From 1241476225268360ae571ec5de750f504cac3604 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Mon, 18 Mar 2013 15:12:49 -0400 -Subject: [PATCH 116/266] sched/workqueue: Only wake up idle workers if not +Subject: [PATCH 114/264] sched/workqueue: Only wake up idle workers if not blocked on sleeping spin lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In -rt, most spin_locks() turn into mutexes. One of these spin_lock conversions is performed on the workqueue gcwq->lock. When the idle @@ -25,10 +25,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 14db9abb5c2d..8c06e227f8eb 100644 +index 8033a8f4efdd..acca3e94ee27 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -3497,8 +3497,10 @@ static void __sched notrace __schedule(bool preempt) +@@ -3498,8 +3498,10 @@ static void __sched notrace __schedule(bool preempt) * If a worker went to sleep, notify and ask workqueue * whether it wants to wake up a task to maintain * concurrency. diff --git a/debian/patches-rt/0117-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch b/debian/patches-rt/0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch similarity index 93% rename from debian/patches-rt/0117-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch rename to debian/patches-rt/0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch index f7ee5bbd9..915ba64b2 100644 --- a/debian/patches-rt/0117-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch +++ b/debian/patches-rt/0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch @@ -1,9 +1,9 @@ -From e86c2bf7d5f40db496d640ca4900373d42d40340 Mon Sep 17 00:00:00 2001 +From 5fe7427b8a7b38b8b395ce68c2c6cb06b2f95a58 Mon Sep 17 00:00:00 2001 From: Daniel Bristot de Oliveira Date: Mon, 26 Jun 2017 17:07:15 +0200 -Subject: [PATCH 117/266] rt: Increase/decrease the nr of migratory tasks when +Subject: [PATCH 115/264] rt: Increase/decrease the nr of migratory tasks when enabling/disabling migration -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz There is a problem in the migrate_disable()/enable() implementation regarding the number of migratory tasks in the rt/dl RQs. The problem @@ -82,10 +82,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 8c06e227f8eb..18cadbb57e8c 100644 +index acca3e94ee27..eb752804e8cf 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -7139,6 +7139,47 @@ const u32 sched_prio_to_wmult[40] = { +@@ -7140,6 +7140,47 @@ const u32 sched_prio_to_wmult[40] = { #if defined(CONFIG_PREEMPT_COUNT) && defined(CONFIG_SMP) @@ -133,7 +133,7 @@ index 8c06e227f8eb..18cadbb57e8c 100644 void migrate_disable(void) { struct task_struct *p = current; -@@ -7162,10 +7203,9 @@ void migrate_disable(void) +@@ -7163,10 +7204,9 @@ void migrate_disable(void) } preempt_disable(); @@ -146,7 +146,7 @@ index 8c06e227f8eb..18cadbb57e8c 100644 preempt_enable(); } -@@ -7197,9 +7237,8 @@ void migrate_enable(void) +@@ -7198,9 +7238,8 @@ void migrate_enable(void) preempt_disable(); diff --git a/debian/patches-rt/0118-hotplug-Lightweight-get-online-cpus.patch b/debian/patches-rt/0116-hotplug-Lightweight-get-online-cpus.patch similarity index 88% rename from debian/patches-rt/0118-hotplug-Lightweight-get-online-cpus.patch rename to debian/patches-rt/0116-hotplug-Lightweight-get-online-cpus.patch index 5fe783352..8e7341f5d 100644 --- a/debian/patches-rt/0118-hotplug-Lightweight-get-online-cpus.patch +++ b/debian/patches-rt/0116-hotplug-Lightweight-get-online-cpus.patch @@ -1,8 +1,8 @@ -From b91d1b4efca990372f45adff4e6b56626a943a24 Mon Sep 17 00:00:00 2001 +From 1e1a0808ffc8df10c6bc1e46f40a4948395f72a6 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 15 Jun 2011 12:36:06 +0200 -Subject: [PATCH 118/266] hotplug: Lightweight get online cpus -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 116/264] hotplug: Lightweight get online cpus +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz get_online_cpus() is a heavy weight function which involves a global mutex. migrate_disable() wants a simpler construct which prevents only @@ -43,7 +43,7 @@ index 5041357d0297..3403eab853b7 100644 /* Wrappers which go away once all code is converted */ diff --git a/kernel/cpu.c b/kernel/cpu.c -index 56f657adcf03..e244bc4d2157 100644 +index dc250ec2c096..f684f41492d3 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -281,6 +281,21 @@ static int cpu_hotplug_disabled; @@ -69,10 +69,10 @@ index 56f657adcf03..e244bc4d2157 100644 void cpus_read_lock(void) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 18cadbb57e8c..0f4594130f85 100644 +index eb752804e8cf..516f05702550 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -7203,6 +7203,7 @@ void migrate_disable(void) +@@ -7204,6 +7204,7 @@ void migrate_disable(void) } preempt_disable(); @@ -80,7 +80,7 @@ index 18cadbb57e8c..0f4594130f85 100644 migrate_disable_update_cpus_allowed(p); p->migrate_disable = 1; -@@ -7268,12 +7269,15 @@ void migrate_enable(void) +@@ -7269,12 +7270,15 @@ void migrate_enable(void) arg.task = p; arg.dest_cpu = dest_cpu; diff --git a/debian/patches-rt/0119-trace-Add-migrate-disabled-counter-to-tracing-output.patch b/debian/patches-rt/0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch similarity index 93% rename from debian/patches-rt/0119-trace-Add-migrate-disabled-counter-to-tracing-output.patch rename to debian/patches-rt/0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch index e092e5ad5..c96e6ca6b 100644 --- a/debian/patches-rt/0119-trace-Add-migrate-disabled-counter-to-tracing-output.patch +++ b/debian/patches-rt/0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch @@ -1,8 +1,8 @@ -From 70e38da108c215d935f7f0541e46df700d2ceef7 Mon Sep 17 00:00:00 2001 +From e93174d8da86d81922b37dd559f026f1eb4cafb8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:56:42 +0200 -Subject: [PATCH 119/266] trace: Add migrate-disabled counter to tracing output -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 117/264] trace: Add migrate-disabled counter to tracing output +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Thomas Gleixner --- @@ -26,7 +26,7 @@ index 78a010e19ed4..0403d9696944 100644 #define TRACE_EVENT_TYPE_MAX \ diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 1f96b292df31..ff041c26dbb4 100644 +index c65cea71d1ee..0af14953d52d 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2146,6 +2146,8 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, diff --git a/debian/patches-rt/0120-lockdep-Make-it-RT-aware.patch b/debian/patches-rt/0118-lockdep-Make-it-RT-aware.patch similarity index 93% rename from debian/patches-rt/0120-lockdep-Make-it-RT-aware.patch rename to debian/patches-rt/0118-lockdep-Make-it-RT-aware.patch index db4d0a952..2362fe5a5 100644 --- a/debian/patches-rt/0120-lockdep-Make-it-RT-aware.patch +++ b/debian/patches-rt/0118-lockdep-Make-it-RT-aware.patch @@ -1,8 +1,8 @@ -From 1703879feabe16cfd6f95e2413e90f30dd21d57f Mon Sep 17 00:00:00 2001 +From 1a31bace22b513efaa0864bd1d32d7d4c698a618 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 18:51:23 +0200 -Subject: [PATCH 120/266] lockdep: Make it RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 118/264] lockdep: Make it RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz teach lockdep that we don't really do softirqs on -RT. diff --git a/debian/patches-rt/0121-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch b/debian/patches-rt/0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch similarity index 98% rename from debian/patches-rt/0121-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch rename to debian/patches-rt/0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch index 90c67c4da..c382998c6 100644 --- a/debian/patches-rt/0121-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +++ b/debian/patches-rt/0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch @@ -1,9 +1,9 @@ -From 3b3d2e35d8bfcd45b0a7cfd749704562563b4385 Mon Sep 17 00:00:00 2001 +From f0dbaae62eb8d03e46818d0babb5889b3a5ce6eb Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Tue, 29 Nov 2011 20:18:22 -0500 -Subject: [PATCH 121/266] tasklet: Prevent tasklets from going into infinite +Subject: [PATCH 119/264] tasklet: Prevent tasklets from going into infinite spin in RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz When CONFIG_PREEMPT_RT_FULL is enabled, tasklets run as threads, and spinlocks turn are mutexes. But this can cause issues with diff --git a/debian/patches-rt/0122-softirq-Check-preemption-after-reenabling-interrupts.patch b/debian/patches-rt/0120-softirq-Check-preemption-after-reenabling-interrupts.patch similarity index 89% rename from debian/patches-rt/0122-softirq-Check-preemption-after-reenabling-interrupts.patch rename to debian/patches-rt/0120-softirq-Check-preemption-after-reenabling-interrupts.patch index 6a3144123..f2c2d883e 100644 --- a/debian/patches-rt/0122-softirq-Check-preemption-after-reenabling-interrupts.patch +++ b/debian/patches-rt/0120-softirq-Check-preemption-after-reenabling-interrupts.patch @@ -1,8 +1,8 @@ -From 687c6e5b4f0aed2ed2830235293d180a7f512225 Mon Sep 17 00:00:00 2001 +From dcfab76d9eab264a1e79cc42713a004d2ef7658b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 13 Nov 2011 17:17:09 +0100 -Subject: [PATCH 122/266] softirq: Check preemption after reenabling interrupts -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 120/264] softirq: Check preemption after reenabling interrupts +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -117,10 +117,10 @@ index 86a709954f5a..9c069ef83d6d 100644 return 0; } diff --git a/net/core/dev.c b/net/core/dev.c -index 5c8c0a572ee9..7f8beb5e4d2d 100644 +index 3bcec116a5f2..3362d8897058 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -2712,6 +2712,7 @@ static void __netif_reschedule(struct Qdisc *q) +@@ -2726,6 +2726,7 @@ static void __netif_reschedule(struct Qdisc *q) sd->output_queue_tailp = &q->next_sched; raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_restore(flags); @@ -128,7 +128,7 @@ index 5c8c0a572ee9..7f8beb5e4d2d 100644 } void __netif_schedule(struct Qdisc *q) -@@ -2774,6 +2775,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason) +@@ -2788,6 +2789,7 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason) __this_cpu_write(softnet_data.completion_queue, skb); raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_restore(flags); @@ -136,7 +136,7 @@ index 5c8c0a572ee9..7f8beb5e4d2d 100644 } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4246,6 +4248,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, +@@ -4260,6 +4262,7 @@ static int enqueue_to_backlog(struct sk_buff *skb, int cpu, rps_unlock(sd); local_irq_restore(flags); @@ -144,7 +144,7 @@ index 5c8c0a572ee9..7f8beb5e4d2d 100644 atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -5799,12 +5802,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) +@@ -5815,12 +5818,14 @@ static void net_rps_action_and_irq_enable(struct softnet_data *sd) sd->rps_ipi_list = NULL; local_irq_enable(); @@ -159,7 +159,7 @@ index 5c8c0a572ee9..7f8beb5e4d2d 100644 } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -5882,6 +5887,7 @@ void __napi_schedule(struct napi_struct *n) +@@ -5898,6 +5903,7 @@ void __napi_schedule(struct napi_struct *n) local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -167,7 +167,7 @@ index 5c8c0a572ee9..7f8beb5e4d2d 100644 } EXPORT_SYMBOL(__napi_schedule); -@@ -9289,6 +9295,7 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9305,6 +9311,7 @@ static int dev_cpu_dead(unsigned int oldcpu) raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); diff --git a/debian/patches-rt/0123-softirq-Disable-softirq-stacks-for-RT.patch b/debian/patches-rt/0121-softirq-Disable-softirq-stacks-for-RT.patch similarity index 95% rename from debian/patches-rt/0123-softirq-Disable-softirq-stacks-for-RT.patch rename to debian/patches-rt/0121-softirq-Disable-softirq-stacks-for-RT.patch index 0babf73a1..9bcc30704 100644 --- a/debian/patches-rt/0123-softirq-Disable-softirq-stacks-for-RT.patch +++ b/debian/patches-rt/0121-softirq-Disable-softirq-stacks-for-RT.patch @@ -1,8 +1,8 @@ -From 8017d265ca47b1720b9054891b5491ba52e06f65 Mon Sep 17 00:00:00 2001 +From 7a6ae7f96331bdaeeac96006086d01805ca48612 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 18 Jul 2011 13:59:17 +0200 -Subject: [PATCH 123/266] softirq: Disable softirq stacks for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 121/264] softirq: Disable softirq stacks for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. @@ -120,10 +120,10 @@ index 713670e6d13d..5dfc715343f9 100644 #ifdef CONFIG_HOTPLUG_CPU void fixup_irqs(void) diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S -index f95dcb209fdf..fbbf9ce28af1 100644 +index 617df50a11d9..ce2a6587ed11 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S -@@ -1039,6 +1039,7 @@ bad_gs: +@@ -1043,6 +1043,7 @@ bad_gs: jmp 2b .previous @@ -131,7 +131,7 @@ index f95dcb209fdf..fbbf9ce28af1 100644 /* Call softirq on interrupt stack. Interrupts are off. */ ENTRY(do_softirq_own_stack) pushq %rbp -@@ -1049,6 +1050,7 @@ ENTRY(do_softirq_own_stack) +@@ -1053,6 +1054,7 @@ ENTRY(do_softirq_own_stack) leaveq ret ENDPROC(do_softirq_own_stack) diff --git a/debian/patches-rt/0124-softirq-Split-softirq-locks.patch b/debian/patches-rt/0122-softirq-Split-softirq-locks.patch similarity index 99% rename from debian/patches-rt/0124-softirq-Split-softirq-locks.patch rename to debian/patches-rt/0122-softirq-Split-softirq-locks.patch index 64fcbcad7..31fdef8db 100644 --- a/debian/patches-rt/0124-softirq-Split-softirq-locks.patch +++ b/debian/patches-rt/0122-softirq-Split-softirq-locks.patch @@ -1,8 +1,8 @@ -From 6d00cc510df8cc473c6cc08ffd0782efb5dd7725 Mon Sep 17 00:00:00 2001 +From 35e1d70c2ede4d34ff411570acf377f7ffe77e70 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 4 Oct 2012 14:20:47 +0100 -Subject: [PATCH 124/266] softirq: Split softirq locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 122/264] softirq: Split softirq locks +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The 3.x RT series removed the split softirq implementation in favour of pushing softirq processing into the context of the thread which @@ -178,7 +178,7 @@ index 9984f2b75b73..27c3176d88d2 100644 #define in_task() (!(preempt_count() & \ (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET))) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 5c7dbe3cfe35..e9e0e8add76b 100644 +index ad44849fba2e..7ecccccbd358 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1190,6 +1190,8 @@ struct task_struct { diff --git a/debian/patches-rt/0125-net-core-use-local_bh_disable-in-netif_rx_ni.patch b/debian/patches-rt/0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch similarity index 80% rename from debian/patches-rt/0125-net-core-use-local_bh_disable-in-netif_rx_ni.patch rename to debian/patches-rt/0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch index f45290d4c..371cdcc79 100644 --- a/debian/patches-rt/0125-net-core-use-local_bh_disable-in-netif_rx_ni.patch +++ b/debian/patches-rt/0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch @@ -1,8 +1,8 @@ -From 5c498b9e99322199a2b4a42b1abeed613b701e61 Mon Sep 17 00:00:00 2001 +From e4b4f2fba2b81120beca06cd1c49f37ceb8bd9c2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 16 Jun 2017 19:03:16 +0200 -Subject: [PATCH 125/266] net/core: use local_bh_disable() in netif_rx_ni() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 123/264] net/core: use local_bh_disable() in netif_rx_ni() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In 2004 netif_rx_ni() gained a preempt_disable() section around netif_rx() and its do_softirq() + testing for it. The do_softirq() part @@ -19,10 +19,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/net/core/dev.c b/net/core/dev.c -index 7f8beb5e4d2d..b7fbababf836 100644 +index 3362d8897058..b8208b940b5d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4512,11 +4512,9 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4526,11 +4526,9 @@ int netif_rx_ni(struct sk_buff *skb) trace_netif_rx_ni_entry(skb); diff --git a/debian/patches-rt/0126-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch b/debian/patches-rt/0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch similarity index 97% rename from debian/patches-rt/0126-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch rename to debian/patches-rt/0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch index c060e2f73..f3f665a04 100644 --- a/debian/patches-rt/0126-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +++ b/debian/patches-rt/0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch @@ -1,9 +1,9 @@ -From 71f5db69f4ad03364b9cffdf30d191ad9105f990 Mon Sep 17 00:00:00 2001 +From 68c9fb7ded900fff5f4e0a41978b36eb36292c66 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 31 Jan 2012 13:01:27 +0100 -Subject: [PATCH 126/266] genirq: Allow disabling of softirq processing in irq +Subject: [PATCH 124/264] genirq: Allow disabling of softirq processing in irq thread context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The processing of softirqs in irq thread context is a performance gain for the non-rt workloads of a system, but it's counterproductive for diff --git a/debian/patches-rt/0127-softirq-split-timer-softirqs-out-of-ksoftirqd.patch b/debian/patches-rt/0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch similarity index 97% rename from debian/patches-rt/0127-softirq-split-timer-softirqs-out-of-ksoftirqd.patch rename to debian/patches-rt/0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch index 818177467..a557be59a 100644 --- a/debian/patches-rt/0127-softirq-split-timer-softirqs-out-of-ksoftirqd.patch +++ b/debian/patches-rt/0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch @@ -1,8 +1,8 @@ -From b599dd4ecbc0a25a6ed3cb22c8d7e134fef79273 Mon Sep 17 00:00:00 2001 +From 5b5c9a38190fcf09aad69449f6552598a2502bf8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Jan 2016 16:34:17 +0100 -Subject: [PATCH 127/266] softirq: split timer softirqs out of ksoftirqd -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 125/264] softirq: split timer softirqs out of ksoftirqd +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0128-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch similarity index 95% rename from debian/patches-rt/0128-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch rename to debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch index 0c428f469..be73bb63b 100644 --- a/debian/patches-rt/0128-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch +++ b/debian/patches-rt/0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch @@ -1,9 +1,9 @@ -From 11af1b8e331124f698e5bdc717b6073f1be73a89 Mon Sep 17 00:00:00 2001 +From f76ac7c02f06f8b40b041c7b9ff9bc13c55bb353 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 18 Feb 2019 13:19:59 +0100 -Subject: [PATCH 128/266] softirq: Avoid "local_softirq_pending" messages if +Subject: [PATCH 126/264] softirq: Avoid "local_softirq_pending" messages if ksoftirqd is blocked -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz If the ksoftirqd thread has a softirq pending and is blocked on the `local_softirq_locks' lock then softirq_check_pending_idle() won't diff --git a/debian/patches-rt/0129-softirq-Avoid-local_softirq_pending-messages-if-task.patch b/debian/patches-rt/0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch similarity index 90% rename from debian/patches-rt/0129-softirq-Avoid-local_softirq_pending-messages-if-task.patch rename to debian/patches-rt/0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch index 622229406..2ba5cba62 100644 --- a/debian/patches-rt/0129-softirq-Avoid-local_softirq_pending-messages-if-task.patch +++ b/debian/patches-rt/0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch @@ -1,9 +1,9 @@ -From 3d0ff8b7d6f589be93fcc6e875937ca27bf88960 Mon Sep 17 00:00:00 2001 +From 35b95587b8a912221d7eb0bdbb7aefb126c7db5d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Feb 2019 16:49:29 +0100 -Subject: [PATCH 129/266] softirq: Avoid "local_softirq_pending" messages if +Subject: [PATCH 127/264] softirq: Avoid "local_softirq_pending" messages if task is in cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz If the softirq thread enters cpu_chill() then ->state is UNINTERRUPTIBLE and has no ->pi_blocked_on set and so its mask is not taken into account. diff --git a/debian/patches-rt/0130-rtmutex-trylock-is-okay-on-RT.patch b/debian/patches-rt/0128-rtmutex-trylock-is-okay-on-RT.patch similarity index 86% rename from debian/patches-rt/0130-rtmutex-trylock-is-okay-on-RT.patch rename to debian/patches-rt/0128-rtmutex-trylock-is-okay-on-RT.patch index f9e01bb2a..e6ed7e7be 100644 --- a/debian/patches-rt/0130-rtmutex-trylock-is-okay-on-RT.patch +++ b/debian/patches-rt/0128-rtmutex-trylock-is-okay-on-RT.patch @@ -1,8 +1,8 @@ -From 4e4c957bf31499b5a66c72751e3d9f0247f441fa Mon Sep 17 00:00:00 2001 +From 86d0b19c922c5c25ec598f869e859be148c058e2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 2 Dec 2015 11:34:07 +0100 -Subject: [PATCH 130/266] rtmutex: trylock is okay on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 128/264] rtmutex: trylock is okay on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 diff --git a/debian/patches-rt/0131-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches-rt/0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch similarity index 96% rename from debian/patches-rt/0131-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch rename to debian/patches-rt/0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch index 34f41612c..abaffe3be 100644 --- a/debian/patches-rt/0131-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +++ b/debian/patches-rt/0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -1,8 +1,8 @@ -From ba58c2b7821218d77e2c849cb4a9f638de69f4b1 Mon Sep 17 00:00:00 2001 +From 8e56a215d6f5df86b3cfcf2386facd511db3d0ed Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 15 Sep 2016 10:51:27 +0200 -Subject: [PATCH 131/266] fs/nfs: turn rmdir_sem into a semaphore -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 129/264] fs/nfs: turn rmdir_sem into a semaphore +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0132-rtmutex-Handle-the-various-new-futex-race-conditions.patch b/debian/patches-rt/0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch similarity index 97% rename from debian/patches-rt/0132-rtmutex-Handle-the-various-new-futex-race-conditions.patch rename to debian/patches-rt/0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch index 946e7b1ff..ccb58c009 100644 --- a/debian/patches-rt/0132-rtmutex-Handle-the-various-new-futex-race-conditions.patch +++ b/debian/patches-rt/0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch @@ -1,8 +1,8 @@ -From 6773936dddf122a487785ab10dfe5a55f1702a86 Mon Sep 17 00:00:00 2001 +From 915b60215e529acc7c55ded1a85af2ad92a5c9c3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 10 Jun 2011 11:04:15 +0200 -Subject: [PATCH 132/266] rtmutex: Handle the various new futex race conditions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 130/264] rtmutex: Handle the various new futex race conditions +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and @@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner 3 files changed, 94 insertions(+), 21 deletions(-) diff --git a/kernel/futex.c b/kernel/futex.c -index 2b3eb43ba3fd..a59202dd2c3f 100644 +index fadd9bff6e3c..be06626b29d2 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -2146,6 +2146,16 @@ static int futex_requeue(u32 __user *uaddr1, unsigned int flags, diff --git a/debian/patches-rt/0133-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch b/debian/patches-rt/0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch similarity index 96% rename from debian/patches-rt/0133-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch rename to debian/patches-rt/0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch index 63a627359..ee1755e50 100644 --- a/debian/patches-rt/0133-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +++ b/debian/patches-rt/0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch @@ -1,8 +1,8 @@ -From 4986899d985b4b50ae2ecad6ce66bb8cca2a4047 Mon Sep 17 00:00:00 2001 +From c1664acee8627620a0406cc55b13d81c710f2bac Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 133/266] futex: Fix bug on when a requeued RT task times out -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 131/264] futex: Fix bug on when a requeued RT task times out +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Requeue with timeout causes a bug with PREEMPT_RT_FULL. diff --git a/debian/patches-rt/0134-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/debian/patches-rt/0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch similarity index 88% rename from debian/patches-rt/0134-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch rename to debian/patches-rt/0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch index 0e96aae65..e259532e4 100644 --- a/debian/patches-rt/0134-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch +++ b/debian/patches-rt/0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch @@ -1,9 +1,9 @@ -From b9aa9db48ab0cf192b26cafb81de88fa671b1bac Mon Sep 17 00:00:00 2001 +From 03de38c7dbb4653aa5f13353b834b6be244a727d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 1 Mar 2013 11:17:42 +0100 -Subject: [PATCH 134/266] futex: Ensure lock/unlock symetry versus pi_lock and +Subject: [PATCH 132/264] futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In exit_pi_state_list() we have the following locking construct: @@ -32,7 +32,7 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 2 insertions(+) diff --git a/kernel/futex.c b/kernel/futex.c -index a59202dd2c3f..8f58ce04bebf 100644 +index be06626b29d2..eeb3e16fb9ec 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -918,7 +918,9 @@ void exit_pi_state_list(struct task_struct *curr) diff --git a/debian/patches-rt/0135-pid.h-include-atomic.h.patch b/debian/patches-rt/0133-pid.h-include-atomic.h.patch similarity index 88% rename from debian/patches-rt/0135-pid.h-include-atomic.h.patch rename to debian/patches-rt/0133-pid.h-include-atomic.h.patch index 7bfca5cf3..9e3ec0b1c 100644 --- a/debian/patches-rt/0135-pid.h-include-atomic.h.patch +++ b/debian/patches-rt/0133-pid.h-include-atomic.h.patch @@ -1,8 +1,8 @@ -From fc467ae64b036ce803d358440d7255281e9a5023 Mon Sep 17 00:00:00 2001 +From fab65ac89d2148c60793f1043b3391b8431674d1 Mon Sep 17 00:00:00 2001 From: Grygorii Strashko Date: Tue, 21 Jul 2015 19:43:56 +0300 -Subject: [PATCH 135/266] pid.h: include atomic.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 133/264] pid.h: include atomic.h +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz This patch fixes build error: CC kernel/pid_namespace.o diff --git a/debian/patches-rt/0136-arm-include-definition-for-cpumask_t.patch b/debian/patches-rt/0134-arm-include-definition-for-cpumask_t.patch similarity index 83% rename from debian/patches-rt/0136-arm-include-definition-for-cpumask_t.patch rename to debian/patches-rt/0134-arm-include-definition-for-cpumask_t.patch index 149b97f68..50809542e 100644 --- a/debian/patches-rt/0136-arm-include-definition-for-cpumask_t.patch +++ b/debian/patches-rt/0134-arm-include-definition-for-cpumask_t.patch @@ -1,8 +1,8 @@ -From f5433b699e63eb406b6fb5816f59ff6ee5f39d3d Mon Sep 17 00:00:00 2001 +From 3286a3abb2234e5ecf7605154781fbd762b3d726 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 22 Dec 2016 17:28:33 +0100 -Subject: [PATCH 136/266] arm: include definition for cpumask_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 134/264] arm: include definition for cpumask_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0137-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch b/debian/patches-rt/0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch similarity index 86% rename from debian/patches-rt/0137-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch rename to debian/patches-rt/0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch index d902a35cf..873a6d943 100644 --- a/debian/patches-rt/0137-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +++ b/debian/patches-rt/0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch @@ -1,9 +1,9 @@ -From c7751dabfa3dd161c53b1b84eb47a02b0e7b4aef Mon Sep 17 00:00:00 2001 +From 55274d88157f847bb93b54d4b3c0d569995b8443 Mon Sep 17 00:00:00 2001 From: "Wolfgang M. Reimer" Date: Tue, 21 Jul 2015 16:20:07 +0200 -Subject: [PATCH 137/266] locking: locktorture: Do NOT include rwlock.h +Subject: [PATCH 135/264] locking: locktorture: Do NOT include rwlock.h directly -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Including rwlock.h directly will cause kernel builds to fail if CONFIG_PREEMPT_RT_FULL is defined. The correct header file diff --git a/debian/patches-rt/0138-rtmutex-Add-rtmutex_lock_killable.patch b/debian/patches-rt/0136-rtmutex-Add-rtmutex_lock_killable.patch similarity index 91% rename from debian/patches-rt/0138-rtmutex-Add-rtmutex_lock_killable.patch rename to debian/patches-rt/0136-rtmutex-Add-rtmutex_lock_killable.patch index 24ccdf610..41bd2393a 100644 --- a/debian/patches-rt/0138-rtmutex-Add-rtmutex_lock_killable.patch +++ b/debian/patches-rt/0136-rtmutex-Add-rtmutex_lock_killable.patch @@ -1,8 +1,8 @@ -From 317ebab8dd59c91207d43671ac61a3921b8b3192 Mon Sep 17 00:00:00 2001 +From 84d0c68fcaa44acc03d15941d982f4a0157903d0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 9 Jun 2011 11:43:52 +0200 -Subject: [PATCH 138/266] rtmutex: Add rtmutex_lock_killable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 136/264] rtmutex: Add rtmutex_lock_killable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Add "killable" type to rtmutex. We need this since rtmutex are used as "normal" mutexes which do use this type. diff --git a/debian/patches-rt/0139-rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/0137-rtmutex-Make-lock_killable-work.patch similarity index 89% rename from debian/patches-rt/0139-rtmutex-Make-lock_killable-work.patch rename to debian/patches-rt/0137-rtmutex-Make-lock_killable-work.patch index f785ec7e2..6f4bf9f34 100644 --- a/debian/patches-rt/0139-rtmutex-Make-lock_killable-work.patch +++ b/debian/patches-rt/0137-rtmutex-Make-lock_killable-work.patch @@ -1,8 +1,8 @@ -From c90a8e8b7a889b34b395cec28fc59fc2bf3487e6 Mon Sep 17 00:00:00 2001 +From 05fb36753dd6a8fb6b5af57e77d7f195083d3348 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 1 Apr 2017 12:50:59 +0200 -Subject: [PATCH 139/266] rtmutex: Make lock_killable work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 137/264] rtmutex: Make lock_killable work +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. diff --git a/debian/patches-rt/0140-spinlock-Split-the-lock-types-header.patch b/debian/patches-rt/0138-spinlock-Split-the-lock-types-header.patch similarity index 97% rename from debian/patches-rt/0140-spinlock-Split-the-lock-types-header.patch rename to debian/patches-rt/0138-spinlock-Split-the-lock-types-header.patch index 2700d35f7..452be203f 100644 --- a/debian/patches-rt/0140-spinlock-Split-the-lock-types-header.patch +++ b/debian/patches-rt/0138-spinlock-Split-the-lock-types-header.patch @@ -1,8 +1,8 @@ -From 5f8b853599e755b01265397ba1cadf28f3d3d99b Mon Sep 17 00:00:00 2001 +From 8eee663cf2becdb10a170336c2cf3fba5fe3be80 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 19:34:01 +0200 -Subject: [PATCH 140/266] spinlock: Split the lock types header -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 138/264] spinlock: Split the lock types header +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0141-rtmutex-Avoid-include-hell.patch b/debian/patches-rt/0139-rtmutex-Avoid-include-hell.patch similarity index 84% rename from debian/patches-rt/0141-rtmutex-Avoid-include-hell.patch rename to debian/patches-rt/0139-rtmutex-Avoid-include-hell.patch index b29d30663..364ab89ba 100644 --- a/debian/patches-rt/0141-rtmutex-Avoid-include-hell.patch +++ b/debian/patches-rt/0139-rtmutex-Avoid-include-hell.patch @@ -1,8 +1,8 @@ -From 2e65dfa1c3ba7751f6138973ac0dcef5ed9c60ad Mon Sep 17 00:00:00 2001 +From a006197b4fa5fcec0fd8bee40072cf420689c354 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 20:06:39 +0200 -Subject: [PATCH 141/266] rtmutex: Avoid include hell -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 139/264] rtmutex: Avoid include hell +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Include only the required raw types. This avoids pulling in the complete spinlock header which in turn requires rtmutex.h at some point. diff --git a/debian/patches-rt/0142-rbtree-don-t-include-the-rcu-header.patch b/debian/patches-rt/0140-rbtree-don-t-include-the-rcu-header.patch similarity index 97% rename from debian/patches-rt/0142-rbtree-don-t-include-the-rcu-header.patch rename to debian/patches-rt/0140-rbtree-don-t-include-the-rcu-header.patch index b7d0e3c4a..e335af122 100644 --- a/debian/patches-rt/0142-rbtree-don-t-include-the-rcu-header.patch +++ b/debian/patches-rt/0140-rbtree-don-t-include-the-rcu-header.patch @@ -1,11 +1,11 @@ -From 1091be35cd6c1ba408770043808adc04dd2c2804 Mon Sep 17 00:00:00 2001 +From 3465bbb3bbbf562cd3d67f1c2f387eaa48a1af70 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Feb 2019 16:56:02 +0100 -Subject: [PATCH 142/266] rbtree: don't include the rcu header +Subject: [PATCH 140/264] rbtree: don't include the rcu header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The RCU header pulls in spinlock.h and fails due not yet defined types: diff --git a/debian/patches-rt/0143-rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch similarity index 96% rename from debian/patches-rt/0143-rtmutex-Provide-rt_mutex_slowlock_locked.patch rename to debian/patches-rt/0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch index 894dbf5db..f1038f0b6 100644 --- a/debian/patches-rt/0143-rtmutex-Provide-rt_mutex_slowlock_locked.patch +++ b/debian/patches-rt/0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch @@ -1,8 +1,8 @@ -From da0c8fe4e80d462e6a33749415917f001ef5aeef Mon Sep 17 00:00:00 2001 +From 28e2025df13c6a1c66fae452e91d26f8d2755460 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:14:22 +0200 -Subject: [PATCH 143/266] rtmutex: Provide rt_mutex_slowlock_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 141/264] rtmutex: Provide rt_mutex_slowlock_locked() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. diff --git a/debian/patches-rt/0144-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch b/debian/patches-rt/0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch similarity index 96% rename from debian/patches-rt/0144-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch rename to debian/patches-rt/0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch index 5b31de958..5b03b5b38 100644 --- a/debian/patches-rt/0144-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch +++ b/debian/patches-rt/0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch @@ -1,9 +1,9 @@ -From 82e51212994aa107e9151f83db13a866e63e3eab Mon Sep 17 00:00:00 2001 +From cc9444912602fb283e5e75dc9ca36ee98cf8d0e9 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 16:36:39 +0200 -Subject: [PATCH 144/266] rtmutex: export lockdep-less version of rt_mutex's +Subject: [PATCH 142/264] rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Required for lock implementation ontop of rtmutex. diff --git a/debian/patches-rt/0145-rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/0143-rtmutex-add-sleeping-lock-implementation.patch similarity index 98% rename from debian/patches-rt/0145-rtmutex-add-sleeping-lock-implementation.patch rename to debian/patches-rt/0143-rtmutex-add-sleeping-lock-implementation.patch index 44de7c431..a494601ea 100644 --- a/debian/patches-rt/0145-rtmutex-add-sleeping-lock-implementation.patch +++ b/debian/patches-rt/0143-rtmutex-add-sleeping-lock-implementation.patch @@ -1,8 +1,8 @@ -From 12101e1de5938dc8ae633cde473c46afa3a93f51 Mon Sep 17 00:00:00 2001 +From 162034b085d74f4c4131bf4dc0c229a4c971cfae Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:11:19 +0200 -Subject: [PATCH 145/266] rtmutex: add sleeping lock implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 143/264] rtmutex: add sleeping lock implementation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior @@ -103,7 +103,7 @@ index a355289b1fa1..138bd1e183e0 100644 * rt_mutex_is_locked - is the mutex locked * @lock: the mutex to be queried diff --git a/include/linux/sched.h b/include/linux/sched.h -index e9e0e8add76b..50c1c498284d 100644 +index 7ecccccbd358..1797fd3c8cbb 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -134,6 +134,9 @@ struct task_group; @@ -408,7 +408,7 @@ index 8a9241afefb0..f62ae61064c7 100644 account_kernel_stack(tsk, 1); diff --git a/kernel/futex.c b/kernel/futex.c -index 8f58ce04bebf..3ae815cba677 100644 +index eeb3e16fb9ec..2c5a5e180223 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -1474,6 +1474,7 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_pi_state *pi_ @@ -1144,10 +1144,10 @@ index 5955ad2aa2a8..6fcf0a3e180d 100644 #ifdef CONFIG_DEBUG_RT_MUTEXES # include "rtmutex-debug.h" diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 0f4594130f85..e1ac20ada353 100644 +index 516f05702550..e699500aea26 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -400,9 +400,15 @@ static bool set_nr_if_polling(struct task_struct *p) +@@ -401,9 +401,15 @@ static bool set_nr_if_polling(struct task_struct *p) #endif #endif @@ -1165,7 +1165,7 @@ index 0f4594130f85..e1ac20ada353 100644 /* * Atomically grab the task, if ->wake_q is !nil already it means -@@ -425,24 +431,32 @@ void wake_q_add(struct wake_q_head *head, struct task_struct *task) +@@ -426,24 +432,32 @@ void wake_q_add(struct wake_q_head *head, struct task_struct *task) head->lastp = &node->next; } diff --git a/debian/patches-rt/0146-rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/debian/patches-rt/0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch similarity index 98% rename from debian/patches-rt/0146-rtmutex-add-mutex-implementation-based-on-rtmutex.patch rename to debian/patches-rt/0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch index 53f93931b..7cb4345d2 100644 --- a/debian/patches-rt/0146-rtmutex-add-mutex-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch @@ -1,8 +1,8 @@ -From f7a01ca80315d2d8df004bdc999eee46341c9206 Mon Sep 17 00:00:00 2001 +From b2eccb42878894e44f005029aa9b2fc9962d9093 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:17:03 +0200 -Subject: [PATCH 146/266] rtmutex: add mutex implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 144/264] rtmutex: add mutex implementation based on rtmutex +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior diff --git a/debian/patches-rt/0147-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/debian/patches-rt/0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch similarity index 98% rename from debian/patches-rt/0147-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch rename to debian/patches-rt/0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch index 8cc7793f6..b4cdec534 100644 --- a/debian/patches-rt/0147-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch @@ -1,8 +1,8 @@ -From fc7abcdbdc3e90275825a91ec4ed00d65b530bbf Mon Sep 17 00:00:00 2001 +From d8e44c235bb3238fc1848c72b906014f1d9a5fb1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:28:34 +0200 -Subject: [PATCH 147/266] rtmutex: add rwsem implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 145/264] rtmutex: add rwsem implementation based on rtmutex +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0148-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/debian/patches-rt/0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch similarity index 98% rename from debian/patches-rt/0148-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch rename to debian/patches-rt/0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch index bd36751ec..e35f4cdf4 100644 --- a/debian/patches-rt/0148-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch @@ -1,8 +1,8 @@ -From acc07c5cb3fa39f0c7fa8e85cebcdb991ce4e8b3 Mon Sep 17 00:00:00 2001 +From d49ee1d88e89db7c1a404171e67553b7695c349c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:18:06 +0200 -Subject: [PATCH 148/266] rtmutex: add rwlock implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 146/264] rtmutex: add rwlock implementation based on rtmutex +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The implementation is bias-based, similar to the rwsem implementation. diff --git a/debian/patches-rt/0149-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch b/debian/patches-rt/0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch similarity index 87% rename from debian/patches-rt/0149-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch rename to debian/patches-rt/0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch index c38295068..a131be075 100644 --- a/debian/patches-rt/0149-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch +++ b/debian/patches-rt/0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch @@ -1,8 +1,8 @@ -From a41d31d3376d02abc89addebb2fba03b5df121e4 Mon Sep 17 00:00:00 2001 +From f4e21a9f84eb9919949bfe5763eb96637b90bb1e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Jan 2019 21:16:31 +0100 -Subject: [PATCH 149/266] rtmutex/rwlock: preserve state like a sleeping lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 147/264] rtmutex/rwlock: preserve state like a sleeping lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The rwlock is spinning while acquiring a lock. Therefore it must become a sleeping lock on RT and preserve its task state while sleeping and diff --git a/debian/patches-rt/0150-rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/0148-rtmutex-wire-up-RT-s-locking.patch similarity index 98% rename from debian/patches-rt/0150-rtmutex-wire-up-RT-s-locking.patch rename to debian/patches-rt/0148-rtmutex-wire-up-RT-s-locking.patch index a9c21386c..9a6ccdef5 100644 --- a/debian/patches-rt/0150-rtmutex-wire-up-RT-s-locking.patch +++ b/debian/patches-rt/0148-rtmutex-wire-up-RT-s-locking.patch @@ -1,8 +1,8 @@ -From d32229387d83bbad7273b5e77458d802dccb8f75 Mon Sep 17 00:00:00 2001 +From 145de90802b872003bf17064f49d5b1ea94f1a5f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 12 Oct 2017 17:31:14 +0200 -Subject: [PATCH 150/266] rtmutex: wire up RT's locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 148/264] rtmutex: wire up RT's locking +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior diff --git a/debian/patches-rt/0151-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch similarity index 98% rename from debian/patches-rt/0151-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch rename to debian/patches-rt/0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch index 8420a6198..c8b431d04 100644 --- a/debian/patches-rt/0151-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +++ b/debian/patches-rt/0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch @@ -1,8 +1,8 @@ -From 20c592a758fb9c0ba36cd914cd959e9d3333ab25 Mon Sep 17 00:00:00 2001 +From cb5d05fc6f3f2a23c0dc2d3cdf925e62d8e9e13f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 17:34:38 +0200 -Subject: [PATCH 151/266] rtmutex: add ww_mutex addon for mutex-rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 149/264] rtmutex: add ww_mutex addon for mutex-rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Sebastian Andrzej Siewior --- diff --git a/debian/patches-rt/0152-kconfig-Add-PREEMPT_RT_FULL.patch b/debian/patches-rt/0150-kconfig-Add-PREEMPT_RT_FULL.patch similarity index 92% rename from debian/patches-rt/0152-kconfig-Add-PREEMPT_RT_FULL.patch rename to debian/patches-rt/0150-kconfig-Add-PREEMPT_RT_FULL.patch index 24143c667..b732c616f 100644 --- a/debian/patches-rt/0152-kconfig-Add-PREEMPT_RT_FULL.patch +++ b/debian/patches-rt/0150-kconfig-Add-PREEMPT_RT_FULL.patch @@ -1,8 +1,8 @@ -From 7f8d53956c9bfe7b7ec4cb4457859c31b590a0d4 Mon Sep 17 00:00:00 2001 +From 77032b07bcce84656ba960fea1a786fda5dcd81a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 29 Jun 2011 14:58:57 +0200 -Subject: [PATCH 152/266] kconfig: Add PREEMPT_RT_FULL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 150/264] kconfig: Add PREEMPT_RT_FULL +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Introduce the final symbol for PREEMPT_RT_FULL. diff --git a/debian/patches-rt/0153-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/debian/patches-rt/0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch similarity index 94% rename from debian/patches-rt/0153-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch rename to debian/patches-rt/0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch index 53dd5f515..171532628 100644 --- a/debian/patches-rt/0153-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch +++ b/debian/patches-rt/0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch @@ -1,9 +1,9 @@ -From a3f1ea501d0a88c91a226ab5abfd1426fd6d0d03 Mon Sep 17 00:00:00 2001 +From 810f1d5d210b1101d5b93300358d6362861ea392 Mon Sep 17 00:00:00 2001 From: Mikulas Patocka Date: Mon, 13 Nov 2017 12:56:53 -0500 -Subject: [PATCH 153/266] locking/rt-mutex: fix deadlock in device mapper / +Subject: [PATCH 151/264] locking/rt-mutex: fix deadlock in device mapper / block-IO -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz When some block device driver creates a bio and submits it to another block device driver, the bio is added to current->bio_list (in order to diff --git a/debian/patches-rt/0154-locking-rt-mutex-Flush-block-plug-on-__down_read.patch b/debian/patches-rt/0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch similarity index 89% rename from debian/patches-rt/0154-locking-rt-mutex-Flush-block-plug-on-__down_read.patch rename to debian/patches-rt/0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch index ffca4e533..d1886b601 100644 --- a/debian/patches-rt/0154-locking-rt-mutex-Flush-block-plug-on-__down_read.patch +++ b/debian/patches-rt/0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch @@ -1,8 +1,8 @@ -From 3766a1ad7f39dee4d0904e695dbce0e5b57c2793 Mon Sep 17 00:00:00 2001 +From 9c3afee65f743bf1492e76f16139111e10d8f205 Mon Sep 17 00:00:00 2001 From: Scott Wood Date: Fri, 4 Jan 2019 15:33:21 -0500 -Subject: [PATCH 154/266] locking/rt-mutex: Flush block plug on __down_read() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 152/264] locking/rt-mutex: Flush block plug on __down_read() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz __down_read() bypasses the rtmutex frontend to call rt_mutex_slowlock_locked() directly, and thus it needs to call diff --git a/debian/patches-rt/0155-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch b/debian/patches-rt/0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch similarity index 88% rename from debian/patches-rt/0155-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch rename to debian/patches-rt/0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch index e5dd7cf8e..4cadcfe3e 100644 --- a/debian/patches-rt/0155-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch +++ b/debian/patches-rt/0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch @@ -1,9 +1,9 @@ -From 4a2ad275c5119a9642537809ba478fadb723f17b Mon Sep 17 00:00:00 2001 +From 4a9a885ab4f7e220568aa7c19704f1f6b020f545 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 16 Nov 2017 16:48:48 +0100 -Subject: [PATCH 155/266] locking/rtmutex: re-init the wait_lock in +Subject: [PATCH 153/264] locking/rtmutex: re-init the wait_lock in rt_mutex_init_proxy_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz We could provide a key-class for the lockdep (and fixup all callers) or move the init to all callers (like it was) in order to avoid lockdep diff --git a/debian/patches-rt/0156-ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch similarity index 92% rename from debian/patches-rt/0156-ptrace-fix-ptrace-vs-tasklist_lock-race.patch rename to debian/patches-rt/0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch index 57d7198d8..6488f131c 100644 --- a/debian/patches-rt/0156-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +++ b/debian/patches-rt/0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -1,8 +1,8 @@ -From 7877aa7d4dadcb60285a6e0399bac95709519f5f Mon Sep 17 00:00:00 2001 +From de7eff6fda53e683a83289d9c0c0a2d774fbfe92 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Aug 2013 18:21:04 +0200 -Subject: [PATCH 156/266] ptrace: fix ptrace vs tasklist_lock race -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 154/264] ptrace: fix ptrace vs tasklist_lock race +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz As explained by Alexander Fyodorov : @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 68 insertions(+), 7 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 50c1c498284d..d16eaae0b381 100644 +index 1797fd3c8cbb..25e9a40f9576 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -101,12 +101,8 @@ struct task_group; @@ -120,10 +120,10 @@ index 21fec73d45d4..9c8d6f9f3a3a 100644 } spin_unlock_irq(&task->sighand->siglock); diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index e1ac20ada353..64524f66c559 100644 +index e699500aea26..14eb51dae23d 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1348,6 +1348,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, +@@ -1349,6 +1349,18 @@ int migrate_swap(struct task_struct *cur, struct task_struct *p, } #endif /* CONFIG_NUMA_BALANCING */ @@ -142,7 +142,7 @@ index e1ac20ada353..64524f66c559 100644 /* * wait_task_inactive - wait for a thread to unschedule. * -@@ -1392,7 +1404,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) +@@ -1393,7 +1405,7 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) * is actually now running somewhere else! */ while (task_running(rq, p)) { @@ -151,7 +151,7 @@ index e1ac20ada353..64524f66c559 100644 return 0; cpu_relax(); } -@@ -1407,7 +1419,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) +@@ -1408,7 +1420,8 @@ unsigned long wait_task_inactive(struct task_struct *p, long match_state) running = task_running(rq, p); queued = task_on_rq_queued(p); ncsw = 0; diff --git a/debian/patches-rt/0157-rtmutex-annotate-sleeping-lock-context.patch b/debian/patches-rt/0155-rtmutex-annotate-sleeping-lock-context.patch similarity index 96% rename from debian/patches-rt/0157-rtmutex-annotate-sleeping-lock-context.patch rename to debian/patches-rt/0155-rtmutex-annotate-sleeping-lock-context.patch index 6f4e4a9d9..7fdee7aa3 100644 --- a/debian/patches-rt/0157-rtmutex-annotate-sleeping-lock-context.patch +++ b/debian/patches-rt/0155-rtmutex-annotate-sleeping-lock-context.patch @@ -1,8 +1,8 @@ -From f9b4e68860fd0bdd4d304242f7157d827b6704bd Mon Sep 17 00:00:00 2001 +From 2a9b009589ed8b11c6c94e2af70c3d6fc4c957b8 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Sep 2017 14:25:13 +0200 -Subject: [PATCH 157/266] rtmutex: annotate sleeping lock context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 155/264] rtmutex: annotate sleeping lock context +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -54,7 +54,7 @@ index 27c3176d88d2..9eafc34898b4 100644 #define migrate_disable() barrier() #define migrate_enable() barrier() diff --git a/include/linux/sched.h b/include/linux/sched.h -index d16eaae0b381..9c40729f268b 100644 +index 25e9a40f9576..8f0bb5f6d39e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -673,6 +673,15 @@ struct task_struct { @@ -250,10 +250,10 @@ index a97c20ea9bce..564e3927e7b0 100644 !t->rcu_read_unlock_special.b.blocked) { diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 64524f66c559..719b41d6525c 100644 +index 14eb51dae23d..a5226728e407 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -7308,4 +7308,49 @@ void migrate_enable(void) +@@ -7309,4 +7309,49 @@ void migrate_enable(void) preempt_enable(); } EXPORT_SYMBOL(migrate_enable); diff --git a/debian/patches-rt/0158-sched-migrate_disable-fallback-to-preempt_disable-in.patch b/debian/patches-rt/0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch similarity index 90% rename from debian/patches-rt/0158-sched-migrate_disable-fallback-to-preempt_disable-in.patch rename to debian/patches-rt/0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch index cecf44cbf..09a3575d2 100644 --- a/debian/patches-rt/0158-sched-migrate_disable-fallback-to-preempt_disable-in.patch +++ b/debian/patches-rt/0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch @@ -1,9 +1,9 @@ -From d26947b7516fd68bec9e5f63c62e710bd13c44f3 Mon Sep 17 00:00:00 2001 +From 09cc5496ae17c924c25e80d5a300901957c44b54 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 5 Jul 2018 14:44:51 +0200 -Subject: [PATCH 158/266] sched/migrate_disable: fallback to preempt_disable() +Subject: [PATCH 156/264] sched/migrate_disable: fallback to preempt_disable() instead barrier() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -71,7 +71,7 @@ index 9eafc34898b4..ed8413e7140f 100644 { return 0; diff --git a/include/linux/sched.h b/include/linux/sched.h -index 9c40729f268b..7cbef398ac48 100644 +index 8f0bb5f6d39e..a023e1ba5d8f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -667,7 +667,7 @@ struct task_struct { @@ -94,10 +94,10 @@ index 9c40729f268b..7cbef398ac48 100644 # endif #endif diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 719b41d6525c..1ba8ec17992e 100644 +index a5226728e407..fb205b1ec799 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1030,7 +1030,7 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma +@@ -1031,7 +1031,7 @@ void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_ma p->nr_cpus_allowed = cpumask_weight(new_mask); } @@ -106,7 +106,7 @@ index 719b41d6525c..1ba8ec17992e 100644 int __migrate_disabled(struct task_struct *p) { return p->migrate_disable; -@@ -1070,7 +1070,7 @@ static void __do_set_cpus_allowed_tail(struct task_struct *p, +@@ -1071,7 +1071,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) { @@ -115,7 +115,7 @@ index 719b41d6525c..1ba8ec17992e 100644 if (__migrate_disabled(p)) { lockdep_assert_held(&p->pi_lock); -@@ -1143,7 +1143,7 @@ static int __set_cpus_allowed_ptr(struct task_struct *p, +@@ -1144,7 +1144,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; @@ -124,7 +124,7 @@ index 719b41d6525c..1ba8ec17992e 100644 if (__migrate_disabled(p)) { p->migrate_disable_update = 1; goto out; -@@ -7164,7 +7164,7 @@ const u32 sched_prio_to_wmult[40] = { +@@ -7165,7 +7165,7 @@ const u32 sched_prio_to_wmult[40] = { #undef CREATE_TRACE_POINTS @@ -133,7 +133,7 @@ index 719b41d6525c..1ba8ec17992e 100644 static inline void update_nr_migratory(struct task_struct *p, long delta) -@@ -7312,45 +7312,44 @@ EXPORT_SYMBOL(migrate_enable); +@@ -7313,45 +7313,44 @@ EXPORT_SYMBOL(migrate_enable); #elif !defined(CONFIG_SMP) && defined(CONFIG_PREEMPT_RT_BASE) void migrate_disable(void) { @@ -187,10 +187,10 @@ index 719b41d6525c..1ba8ec17992e 100644 EXPORT_SYMBOL(migrate_enable); #endif diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c -index a719e44debdf..429078602ed7 100644 +index 34c27afae009..cb6ad6fd2320 100644 --- a/kernel/sched/debug.c +++ b/kernel/sched/debug.c -@@ -978,7 +978,7 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns, +@@ -982,7 +982,7 @@ void proc_sched_show_task(struct task_struct *p, struct pid_namespace *ns, P(dl.runtime); P(dl.deadline); } diff --git a/debian/patches-rt/0159-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/debian/patches-rt/0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch similarity index 97% rename from debian/patches-rt/0159-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch rename to debian/patches-rt/0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch index 175ef88f8..9fd8ffd0f 100644 --- a/debian/patches-rt/0159-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +++ b/debian/patches-rt/0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch @@ -1,9 +1,9 @@ -From 5777bab1456912686ec85f494201ea7b509af1c7 Mon Sep 17 00:00:00 2001 +From e283cad9ed8ce6e508399dc21fde2645ff2a9259 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 17:40:42 +0200 -Subject: [PATCH 159/266] locking: don't check for __LINUX_SPINLOCK_TYPES_H on +Subject: [PATCH 157/264] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Upstream uses arch_spinlock_t within spinlock_t and requests that spinlock_types.h header file is included first. diff --git a/debian/patches-rt/0160-rcu-Frob-softirq-test.patch b/debian/patches-rt/0158-rcu-Frob-softirq-test.patch similarity index 98% rename from debian/patches-rt/0160-rcu-Frob-softirq-test.patch rename to debian/patches-rt/0158-rcu-Frob-softirq-test.patch index 41e5836dc..8e009a766 100644 --- a/debian/patches-rt/0160-rcu-Frob-softirq-test.patch +++ b/debian/patches-rt/0158-rcu-Frob-softirq-test.patch @@ -1,8 +1,8 @@ -From 6e7032191391320f2f2552f9833a0ac23652174a Mon Sep 17 00:00:00 2001 +From 0a4604cc3cc194643ed11ab6909612b9bed4b4ad Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Sat, 13 Aug 2011 00:23:17 +0200 -Subject: [PATCH 160/266] rcu: Frob softirq test -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 158/264] rcu: Frob softirq test +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz With RT_FULL we get the below wreckage: diff --git a/debian/patches-rt/0161-rcu-Merge-RCU-bh-into-RCU-preempt.patch b/debian/patches-rt/0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch similarity index 97% rename from debian/patches-rt/0161-rcu-Merge-RCU-bh-into-RCU-preempt.patch rename to debian/patches-rt/0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch index f2a874f8a..b14db9735 100644 --- a/debian/patches-rt/0161-rcu-Merge-RCU-bh-into-RCU-preempt.patch +++ b/debian/patches-rt/0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch @@ -1,8 +1,8 @@ -From f0420dc53c66d266f674ee85f7f9e81057057d7d Mon Sep 17 00:00:00 2001 +From dd8eae9da2e22bd7b41cea43792b107b3deb3fd7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 5 Oct 2011 11:59:38 -0700 -Subject: [PATCH 161/266] rcu: Merge RCU-bh into RCU-preempt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 159/264] rcu: Merge RCU-bh into RCU-preempt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The Linux kernel has long RCU-bh read-side critical sections that intolerably increase scheduling latency under mainline's RCU-bh rules, @@ -327,10 +327,10 @@ index 4e74df768c57..fbbff7c21148 100644 #ifdef CONFIG_PREEMPT_RCU extern struct rcu_state rcu_preempt_state; diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c -index 39cb23d22109..f56c0fbdf22e 100644 +index 81688a133552..6ffafb1b1584 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c -@@ -286,6 +286,7 @@ int rcu_read_lock_held(void) +@@ -288,6 +288,7 @@ int rcu_read_lock_held(void) } EXPORT_SYMBOL_GPL(rcu_read_lock_held); @@ -338,7 +338,7 @@ index 39cb23d22109..f56c0fbdf22e 100644 /** * rcu_read_lock_bh_held() - might we be in RCU-bh read-side critical section? * -@@ -312,6 +313,7 @@ int rcu_read_lock_bh_held(void) +@@ -314,6 +315,7 @@ int rcu_read_lock_bh_held(void) return in_softirq() || irqs_disabled(); } EXPORT_SYMBOL_GPL(rcu_read_lock_bh_held); diff --git a/debian/patches-rt/0162-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch b/debian/patches-rt/0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch similarity index 95% rename from debian/patches-rt/0162-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch rename to debian/patches-rt/0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch index 628b336c4..0c80818fb 100644 --- a/debian/patches-rt/0162-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +++ b/debian/patches-rt/0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch @@ -1,8 +1,8 @@ -From e393ca6c12969b914302fe67fa8c30fc55cb990f Mon Sep 17 00:00:00 2001 +From 435eba4b4298b15db7304d4b60e313d95f9b004f Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Wed, 5 Oct 2011 11:45:18 -0700 -Subject: [PATCH 162/266] rcu: Make ksoftirqd do RCU quiescent states -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 160/264] rcu: Make ksoftirqd do RCU quiescent states +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0163-rcu-Eliminate-softirq-processing-from-rcutree.patch b/debian/patches-rt/0161-rcu-Eliminate-softirq-processing-from-rcutree.patch similarity index 98% rename from debian/patches-rt/0163-rcu-Eliminate-softirq-processing-from-rcutree.patch rename to debian/patches-rt/0161-rcu-Eliminate-softirq-processing-from-rcutree.patch index 11ebd8937..c9bc2d15f 100644 --- a/debian/patches-rt/0163-rcu-Eliminate-softirq-processing-from-rcutree.patch +++ b/debian/patches-rt/0161-rcu-Eliminate-softirq-processing-from-rcutree.patch @@ -1,8 +1,8 @@ -From 3f1fa9e4254eb009516d3b0558bbaf02d212a731 Mon Sep 17 00:00:00 2001 +From ca691ed27290645375a66795b1d87fb910501211 Mon Sep 17 00:00:00 2001 From: "Paul E. McKenney" Date: Mon, 4 Nov 2013 13:21:10 -0800 -Subject: [PATCH 163/266] rcu: Eliminate softirq processing from rcutree -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 161/264] rcu: Eliminate softirq processing from rcutree +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0164-srcu-use-cpu_online-instead-custom-check.patch b/debian/patches-rt/0162-srcu-use-cpu_online-instead-custom-check.patch similarity index 94% rename from debian/patches-rt/0164-srcu-use-cpu_online-instead-custom-check.patch rename to debian/patches-rt/0162-srcu-use-cpu_online-instead-custom-check.patch index 9eb7891e7..7e146d78a 100644 --- a/debian/patches-rt/0164-srcu-use-cpu_online-instead-custom-check.patch +++ b/debian/patches-rt/0162-srcu-use-cpu_online-instead-custom-check.patch @@ -1,8 +1,8 @@ -From 933f666204c4c7d4ed2af0102e69fa58cc7d9a6b Mon Sep 17 00:00:00 2001 +From cf507028c7a29d61fc47c6209aeca2d9d7cd0876 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Sep 2017 14:43:41 +0200 -Subject: [PATCH 164/266] srcu: use cpu_online() instead custom check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 162/264] srcu: use cpu_online() instead custom check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0165-srcu-replace-local_irqsave-with-a-locallock.patch b/debian/patches-rt/0163-srcu-replace-local_irqsave-with-a-locallock.patch similarity index 93% rename from debian/patches-rt/0165-srcu-replace-local_irqsave-with-a-locallock.patch rename to debian/patches-rt/0163-srcu-replace-local_irqsave-with-a-locallock.patch index 8f763734a..ff72640cc 100644 --- a/debian/patches-rt/0165-srcu-replace-local_irqsave-with-a-locallock.patch +++ b/debian/patches-rt/0163-srcu-replace-local_irqsave-with-a-locallock.patch @@ -1,8 +1,8 @@ -From 6ca5ffc1b215c6c71dca70fd1d04b8bea1b3eea5 Mon Sep 17 00:00:00 2001 +From 162767bbf4dfe16744f93ead7a5c938defc00489 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 12 Oct 2017 18:37:12 +0200 -Subject: [PATCH 165/266] srcu: replace local_irqsave() with a locallock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 163/264] srcu: replace local_irqsave() with a locallock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0166-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/debian/patches-rt/0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch similarity index 82% rename from debian/patches-rt/0166-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch rename to debian/patches-rt/0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch index fb316b735..5ab36c440 100644 --- a/debian/patches-rt/0166-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch +++ b/debian/patches-rt/0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch @@ -1,8 +1,8 @@ -From 903eaab8f96d6e2333946ce5360686e1dfd5f857 Mon Sep 17 00:00:00 2001 +From f723e17e9826ed2e03a4b4c40c575ea2e2bf2c56 Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Wed, 12 Oct 2016 11:21:14 -0500 -Subject: [PATCH 166/266] rcu: enable rcu_normal_after_boot by default for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 164/264] rcu: enable rcu_normal_after_boot by default for RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The forcing of an expedited grace period is an expensive and very RT-application unfriendly operation, as it forcibly preempts all running @@ -20,10 +20,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/rcu/update.c b/kernel/rcu/update.c -index f56c0fbdf22e..12027723abaf 100644 +index 6ffafb1b1584..16d8dba23329 100644 --- a/kernel/rcu/update.c +++ b/kernel/rcu/update.c -@@ -67,7 +67,7 @@ extern int rcu_expedited; /* from sysctl */ +@@ -68,7 +68,7 @@ extern int rcu_expedited; /* from sysctl */ module_param(rcu_expedited, int, 0); extern int rcu_normal; /* from sysctl */ module_param(rcu_normal, int, 0); diff --git a/debian/patches-rt/0167-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0165-tty-serial-omap-Make-the-locking-RT-aware.patch similarity index 89% rename from debian/patches-rt/0167-tty-serial-omap-Make-the-locking-RT-aware.patch rename to debian/patches-rt/0165-tty-serial-omap-Make-the-locking-RT-aware.patch index c41d2b409..6dcbe055b 100644 --- a/debian/patches-rt/0167-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/debian/patches-rt/0165-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,8 +1,8 @@ -From 3e89f2fefa0c427d8352c05bc3fe185d86957e11 Mon Sep 17 00:00:00 2001 +From ccd76e8feed9271e97bc207e13fce803567e1017 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 -Subject: [PATCH 167/266] tty/serial/omap: Make the locking RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 165/264] tty/serial/omap: Make the locking RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0168-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches-rt/0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch similarity index 90% rename from debian/patches-rt/0168-tty-serial-pl011-Make-the-locking-work-on-RT.patch rename to debian/patches-rt/0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch index 8dde3bc64..7b889f81d 100644 --- a/debian/patches-rt/0168-tty-serial-pl011-Make-the-locking-work-on-RT.patch +++ b/debian/patches-rt/0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch @@ -1,8 +1,8 @@ -From b0bbc7b28e21b82de5daa31813dfe25e5cbdea2d Mon Sep 17 00:00:00 2001 +From 9ad06fff0efb4629430d5ced37c81e4f3ef040bf Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Jan 2013 21:36:51 +0100 -Subject: [PATCH 168/266] tty/serial/pl011: Make the locking work on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 166/264] tty/serial/pl011: Make the locking work on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0169-tty-serial-pl011-explicitly-initialize-the-flags-var.patch b/debian/patches-rt/0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch similarity index 90% rename from debian/patches-rt/0169-tty-serial-pl011-explicitly-initialize-the-flags-var.patch rename to debian/patches-rt/0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch index bd4ea327b..9791a8eb7 100644 --- a/debian/patches-rt/0169-tty-serial-pl011-explicitly-initialize-the-flags-var.patch +++ b/debian/patches-rt/0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch @@ -1,12 +1,12 @@ -From 53d73fabf979b11317aedc2e68db2a3be9fbc60d Mon Sep 17 00:00:00 2001 +From e30b0dc820111e11ecc71383d20682d2eee77061 Mon Sep 17 00:00:00 2001 From: Kurt Kanzenbach Date: Mon, 24 Sep 2018 10:29:01 +0200 -Subject: [PATCH 169/266] tty: serial: pl011: explicitly initialize the flags +Subject: [PATCH 167/264] tty: serial: pl011: explicitly initialize the flags variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Silence the following gcc warning: diff --git a/debian/patches-rt/0170-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches-rt/0168-rt-Improve-the-serial-console-PASS_LIMIT.patch similarity index 89% rename from debian/patches-rt/0170-rt-Improve-the-serial-console-PASS_LIMIT.patch rename to debian/patches-rt/0168-rt-Improve-the-serial-console-PASS_LIMIT.patch index 695b0648b..fe836ae7e 100644 --- a/debian/patches-rt/0170-rt-Improve-the-serial-console-PASS_LIMIT.patch +++ b/debian/patches-rt/0168-rt-Improve-the-serial-console-PASS_LIMIT.patch @@ -1,11 +1,11 @@ -From 5046f18cfab42c6ee735c6fe50bde26b9c959918 Mon Sep 17 00:00:00 2001 +From 0a6ea176915e05db911401e89a925ee948f4434f Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Wed, 14 Dec 2011 13:05:54 +0100 -Subject: [PATCH 170/266] rt: Improve the serial console PASS_LIMIT +Subject: [PATCH 168/264] rt: Improve the serial console PASS_LIMIT MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Beyond the warning: diff --git a/debian/patches-rt/0171-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/debian/patches-rt/0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch similarity index 87% rename from debian/patches-rt/0171-tty-serial-8250-don-t-take-the-trylock-during-oops.patch rename to debian/patches-rt/0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch index dee19c0c7..b484dbc2f 100644 --- a/debian/patches-rt/0171-tty-serial-8250-don-t-take-the-trylock-during-oops.patch +++ b/debian/patches-rt/0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch @@ -1,8 +1,8 @@ -From d956c57b51d17a4a3fc42e271aa670f8f076fd72 Mon Sep 17 00:00:00 2001 +From 511eaf0e0ecbd9898b7f680f08ab0636062f3c7e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Apr 2016 16:55:02 +0200 -Subject: [PATCH 171/266] tty: serial: 8250: don't take the trylock during oops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 169/264] tty: serial: 8250: don't take the trylock during oops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 diff --git a/debian/patches-rt/0172-locking-percpu-rwsem-Remove-preempt_disable-variants.patch b/debian/patches-rt/0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch similarity index 97% rename from debian/patches-rt/0172-locking-percpu-rwsem-Remove-preempt_disable-variants.patch rename to debian/patches-rt/0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch index 4ba0f289e..6f39c1d58 100644 --- a/debian/patches-rt/0172-locking-percpu-rwsem-Remove-preempt_disable-variants.patch +++ b/debian/patches-rt/0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch @@ -1,8 +1,8 @@ -From 4ef6395c9615037a1654ca08d336023210c7ca62 Mon Sep 17 00:00:00 2001 +From 7b2e3123b8a2c8f1df0aa040b4c58d2f443fa8a5 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 23 Nov 2016 16:29:32 +0100 -Subject: [PATCH 172/266] locking/percpu-rwsem: Remove preempt_disable variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 170/264] locking/percpu-rwsem: Remove preempt_disable variants +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Effective revert commit: diff --git a/debian/patches-rt/0173-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch b/debian/patches-rt/0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch similarity index 95% rename from debian/patches-rt/0173-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch rename to debian/patches-rt/0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch index ce86f2212..4632813b3 100644 --- a/debian/patches-rt/0173-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch +++ b/debian/patches-rt/0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch @@ -1,9 +1,9 @@ -From f549a8681f1ce87de0c057d6c79a7fdd7c4379df Mon Sep 17 00:00:00 2001 +From 28f91f849d8485292f7b25ce6a2ceae9fe18fb4d Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Tue, 15 May 2012 13:53:56 +0800 -Subject: [PATCH 173/266] mm: Protect activate_mm() by +Subject: [PATCH 171/264] mm: Protect activate_mm() by preempt_[disable&enable]_rt() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz User preempt_*_rt instead of local_irq_*_rt or otherwise there will be warning on ARM like below: diff --git a/debian/patches-rt/0174-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch b/debian/patches-rt/0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch similarity index 90% rename from debian/patches-rt/0174-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch rename to debian/patches-rt/0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch index dc4e4e045..e0c6b1465 100644 --- a/debian/patches-rt/0174-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch +++ b/debian/patches-rt/0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch @@ -1,9 +1,9 @@ -From ebbb9a9f03e351cb225715bdea5290ad500ee122 Mon Sep 17 00:00:00 2001 +From bbbfae78f8bad17199822dcfb994d1c927de5c32 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Sep 2017 12:32:34 +0200 -Subject: [PATCH 174/266] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD +Subject: [PATCH 172/264] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However diff --git a/debian/patches-rt/0175-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches-rt/0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch similarity index 96% rename from debian/patches-rt/0175-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch rename to debian/patches-rt/0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch index e66e6fb28..6d081e832 100644 --- a/debian/patches-rt/0175-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +++ b/debian/patches-rt/0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch @@ -1,9 +1,9 @@ -From f89292fdb56a9f4814ba63be4e9406535a7d73ee Mon Sep 17 00:00:00 2001 +From 2f25e633c3f100305735735e8f7728a335395f94 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 20 Oct 2017 11:29:53 +0200 -Subject: [PATCH 175/266] fs/dcache: disable preemption on i_dir_seq's write +Subject: [PATCH 173/264] fs/dcache: disable preemption on i_dir_seq's write side -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz i_dir_seq is an opencoded seqcounter. Based on the code it looks like we could have two writers in parallel despite the fact that the d_lock is diff --git a/debian/patches-rt/0176-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch b/debian/patches-rt/0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch similarity index 93% rename from debian/patches-rt/0176-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch rename to debian/patches-rt/0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch index a04a24cb5..7a4a927ce 100644 --- a/debian/patches-rt/0176-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch +++ b/debian/patches-rt/0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch @@ -1,9 +1,9 @@ -From 00b3c613749d2d91319d2889aba0cdec40ebccbc Mon Sep 17 00:00:00 2001 +From cef566ebb92c429f8d12735d50bf7d6772daa4dc Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Mon, 7 May 2018 08:58:57 -0500 -Subject: [PATCH 176/266] squashfs: make use of local lock in multi_cpu +Subject: [PATCH 174/264] squashfs: make use of local lock in multi_cpu decompressor -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Currently, the squashfs multi_cpu decompressor makes use of get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption diff --git a/debian/patches-rt/0177-thermal-Defer-thermal-wakups-to-threads.patch b/debian/patches-rt/0175-thermal-Defer-thermal-wakups-to-threads.patch similarity index 95% rename from debian/patches-rt/0177-thermal-Defer-thermal-wakups-to-threads.patch rename to debian/patches-rt/0175-thermal-Defer-thermal-wakups-to-threads.patch index d6a7b8f37..cee6bdd60 100644 --- a/debian/patches-rt/0177-thermal-Defer-thermal-wakups-to-threads.patch +++ b/debian/patches-rt/0175-thermal-Defer-thermal-wakups-to-threads.patch @@ -1,8 +1,8 @@ -From f5c77040bd15f792f0fa071f4952d2e0a9dabdb5 Mon Sep 17 00:00:00 2001 +From 63284d578bc862d28f5f85f74fdc9fdadc90bea3 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Tue, 17 Feb 2015 09:37:44 +0100 -Subject: [PATCH 177/266] thermal: Defer thermal wakups to threads -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 175/264] thermal: Defer thermal wakups to threads +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On RT the spin lock in pkg_temp_thermal_platfrom_thermal_notify will call schedule while we run in irq context. diff --git a/debian/patches-rt/0178-x86-fpu-Disable-preemption-around-local_bh_disable.patch b/debian/patches-rt/0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch similarity index 87% rename from debian/patches-rt/0178-x86-fpu-Disable-preemption-around-local_bh_disable.patch rename to debian/patches-rt/0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch index c62323915..bd1844b83 100644 --- a/debian/patches-rt/0178-x86-fpu-Disable-preemption-around-local_bh_disable.patch +++ b/debian/patches-rt/0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch @@ -1,8 +1,8 @@ -From 482c1d809f42cca299aab151b70a6bd10aaef96c Mon Sep 17 00:00:00 2001 +From ac8e13bf3ba7c4ef2587d4b8932ca56d30ca4841 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 11 Dec 2018 15:10:33 +0100 -Subject: [PATCH 178/266] x86/fpu: Disable preemption around local_bh_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 176/264] x86/fpu: Disable preemption around local_bh_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz __fpu__restore_sig() restores the content of the FPU state in the CPUs and in order to avoid concurency it disbles BH. On !RT it also disables diff --git a/debian/patches-rt/0179-fs-epoll-Do-not-disable-preemption-on-RT.patch b/debian/patches-rt/0177-fs-epoll-Do-not-disable-preemption-on-RT.patch similarity index 85% rename from debian/patches-rt/0179-fs-epoll-Do-not-disable-preemption-on-RT.patch rename to debian/patches-rt/0177-fs-epoll-Do-not-disable-preemption-on-RT.patch index 10424be86..fe489e328 100644 --- a/debian/patches-rt/0179-fs-epoll-Do-not-disable-preemption-on-RT.patch +++ b/debian/patches-rt/0177-fs-epoll-Do-not-disable-preemption-on-RT.patch @@ -1,8 +1,8 @@ -From 39b0991fe910916dc29605b766be44eb0dae1026 Mon Sep 17 00:00:00 2001 +From 364aac82cf51da276aaf325fbcc1d837b41ebd6d Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 16:35:35 +0200 -Subject: [PATCH 179/266] fs/epoll: Do not disable preemption on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 177/264] fs/epoll: Do not disable preemption on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0180-mm-vmalloc-Another-preempt-disable-region-which-suck.patch b/debian/patches-rt/0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch similarity index 75% rename from debian/patches-rt/0180-mm-vmalloc-Another-preempt-disable-region-which-suck.patch rename to debian/patches-rt/0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch index 4b23ece53..80cb72ce2 100644 --- a/debian/patches-rt/0180-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +++ b/debian/patches-rt/0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch @@ -1,9 +1,9 @@ -From 66324075b4c64550ab72d8947287bfa8f04e1c88 Mon Sep 17 00:00:00 2001 +From 27414c4ed0a59bb7044e708938c07d3141da2f38 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 11:39:36 +0200 -Subject: [PATCH 180/266] mm/vmalloc: Another preempt disable region which +Subject: [PATCH 178/264] mm/vmalloc: Another preempt disable region which sucks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Avoid the preempt disable version of get_cpu_var(). The inner-lock should provide enough serialisation. @@ -14,10 +14,10 @@ Signed-off-by: Thomas Gleixner 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/vmalloc.c b/mm/vmalloc.c -index 91a789a46b12..32e43ad5bbdb 100644 +index a46ec261a44e..5c6939cc28b7 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -848,7 +848,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) +@@ -852,7 +852,7 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) struct vmap_block *vb; struct vmap_area *va; unsigned long vb_idx; @@ -26,7 +26,7 @@ index 91a789a46b12..32e43ad5bbdb 100644 void *vaddr; node = numa_node_id(); -@@ -891,11 +891,12 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) +@@ -895,11 +895,12 @@ static void *new_vmap_block(unsigned int order, gfp_t gfp_mask) BUG_ON(err); radix_tree_preload_end(); @@ -41,7 +41,7 @@ index 91a789a46b12..32e43ad5bbdb 100644 return vaddr; } -@@ -964,6 +965,7 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask) +@@ -968,6 +969,7 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask) struct vmap_block *vb; void *vaddr = NULL; unsigned int order; @@ -49,7 +49,7 @@ index 91a789a46b12..32e43ad5bbdb 100644 BUG_ON(offset_in_page(size)); BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); -@@ -978,7 +980,8 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask) +@@ -982,7 +984,8 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask) order = get_order(size); rcu_read_lock(); @@ -59,7 +59,7 @@ index 91a789a46b12..32e43ad5bbdb 100644 list_for_each_entry_rcu(vb, &vbq->free, free_list) { unsigned long pages_off; -@@ -1001,7 +1004,7 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask) +@@ -1005,7 +1008,7 @@ static void *vb_alloc(unsigned long size, gfp_t gfp_mask) break; } diff --git a/debian/patches-rt/0181-block-mq-use-cpu_light.patch b/debian/patches-rt/0179-block-mq-use-cpu_light.patch similarity index 86% rename from debian/patches-rt/0181-block-mq-use-cpu_light.patch rename to debian/patches-rt/0179-block-mq-use-cpu_light.patch index 0ce49efd1..f95b387cf 100644 --- a/debian/patches-rt/0181-block-mq-use-cpu_light.patch +++ b/debian/patches-rt/0179-block-mq-use-cpu_light.patch @@ -1,8 +1,8 @@ -From a3476724b95cfe5022254b5f370fe1aa2ed83a1e Mon Sep 17 00:00:00 2001 +From 42ff48e7b8242871b11a0c7c5e8753c702c8aee5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 9 Apr 2014 10:37:23 +0200 -Subject: [PATCH 181/266] block: mq: use cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 179/264] block: mq: use cpu_light() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0182-block-mq-do-not-invoke-preempt_disable.patch b/debian/patches-rt/0180-block-mq-do-not-invoke-preempt_disable.patch similarity index 90% rename from debian/patches-rt/0182-block-mq-do-not-invoke-preempt_disable.patch rename to debian/patches-rt/0180-block-mq-do-not-invoke-preempt_disable.patch index f90b40da8..cd4f3ae35 100644 --- a/debian/patches-rt/0182-block-mq-do-not-invoke-preempt_disable.patch +++ b/debian/patches-rt/0180-block-mq-do-not-invoke-preempt_disable.patch @@ -1,8 +1,8 @@ -From 8ab35120c61aacf96969ec11474e7eaa1e9f8acd Mon Sep 17 00:00:00 2001 +From 1574b433606302c16705ba46441b23c6f286e3a0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 182/266] block/mq: do not invoke preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 180/264] block/mq: do not invoke preempt_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz preempt_disable() and get_cpu() don't play well together with the sleeping locks it tries to allocate later. diff --git a/debian/patches-rt/0183-block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches-rt/0181-block-mq-don-t-complete-requests-via-IPI.patch similarity index 95% rename from debian/patches-rt/0183-block-mq-don-t-complete-requests-via-IPI.patch rename to debian/patches-rt/0181-block-mq-don-t-complete-requests-via-IPI.patch index ca0dac020..de4bb57da 100644 --- a/debian/patches-rt/0183-block-mq-don-t-complete-requests-via-IPI.patch +++ b/debian/patches-rt/0181-block-mq-don-t-complete-requests-via-IPI.patch @@ -1,8 +1,8 @@ -From 45847d8391ade61ca033a1232bb42bd67290576e Mon Sep 17 00:00:00 2001 +From 9ec5d3b932b407e0b6780392ddb1f7f2fe1251e4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 29 Jan 2015 15:10:08 +0100 -Subject: [PATCH 183/266] block/mq: don't complete requests via IPI -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 181/264] block/mq: don't complete requests via IPI +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The IPI runs in hardirq context and there are sleeping locks. This patch moves the completion into a workqueue. diff --git a/debian/patches-rt/0184-md-raid5-Make-raid5_percpu-handling-RT-aware.patch b/debian/patches-rt/0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch similarity index 93% rename from debian/patches-rt/0184-md-raid5-Make-raid5_percpu-handling-RT-aware.patch rename to debian/patches-rt/0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch index e1e67697b..0a7fd6268 100644 --- a/debian/patches-rt/0184-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +++ b/debian/patches-rt/0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch @@ -1,8 +1,8 @@ -From e4d91b9abed3e9b3c02750eaec73c6f1175dd775 Mon Sep 17 00:00:00 2001 +From 6c971609e903127436e633a14252b0f3cf42c919 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 6 Apr 2010 16:51:31 +0200 -Subject: [PATCH 184/266] md: raid5: Make raid5_percpu handling RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 182/264] md: raid5: Make raid5_percpu handling RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic diff --git a/debian/patches-rt/0185-rt-Introduce-cpu_chill.patch b/debian/patches-rt/0183-rt-Introduce-cpu_chill.patch similarity index 96% rename from debian/patches-rt/0185-rt-Introduce-cpu_chill.patch rename to debian/patches-rt/0183-rt-Introduce-cpu_chill.patch index b079c7eff..d3c6198bd 100644 --- a/debian/patches-rt/0185-rt-Introduce-cpu_chill.patch +++ b/debian/patches-rt/0183-rt-Introduce-cpu_chill.patch @@ -1,8 +1,8 @@ -From 336adb234fa01301ae7d8c0d70ebad5554a5eca4 Mon Sep 17 00:00:00 2001 +From 70f8f6e166aff0215e6e440d9365f8ce0ade2336 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 20:51:03 +0100 -Subject: [PATCH 185/266] rt: Introduce cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 183/264] rt: Introduce cpu_chill() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0186-hrtimer-Don-t-lose-state-in-cpu_chill.patch b/debian/patches-rt/0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch similarity index 90% rename from debian/patches-rt/0186-hrtimer-Don-t-lose-state-in-cpu_chill.patch rename to debian/patches-rt/0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch index acfafd5bf..4606a10a4 100644 --- a/debian/patches-rt/0186-hrtimer-Don-t-lose-state-in-cpu_chill.patch +++ b/debian/patches-rt/0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch @@ -1,8 +1,8 @@ -From 4f09277700f2c83eddc6b233065946c0ee7237d3 Mon Sep 17 00:00:00 2001 +From 420f45d08b300f698438e0a208f03e0f89aa8009 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Feb 2019 16:59:15 +0100 -Subject: [PATCH 186/266] hrtimer: Don't lose state in cpu_chill() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 184/264] hrtimer: Don't lose state in cpu_chill() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In cpu_chill() the state is set to TASK_UNINTERRUPTIBLE and a timer is programmed. On return the state is always TASK_RUNNING which means we diff --git a/debian/patches-rt/0187-hrtimer-cpu_chill-save-task-state-in-saved_state.patch b/debian/patches-rt/0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch similarity index 92% rename from debian/patches-rt/0187-hrtimer-cpu_chill-save-task-state-in-saved_state.patch rename to debian/patches-rt/0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch index e8792b4de..1a3c97fff 100644 --- a/debian/patches-rt/0187-hrtimer-cpu_chill-save-task-state-in-saved_state.patch +++ b/debian/patches-rt/0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch @@ -1,9 +1,9 @@ -From fd7d956a5a4f34ccd0a91b2fbd37367e8d666bec Mon Sep 17 00:00:00 2001 +From 39c4c7819a0377ee59a1197664454bc54012907b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Feb 2019 12:31:10 +0100 -Subject: [PATCH 187/266] hrtimer: cpu_chill(): save task state in +Subject: [PATCH 185/264] hrtimer: cpu_chill(): save task state in ->saved_state() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In the previous change I saved the current task state on stack. This was bad because while the task is scheduled-out it might receive a wake-up. diff --git a/debian/patches-rt/0188-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/debian/patches-rt/0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch similarity index 96% rename from debian/patches-rt/0188-block-blk-mq-move-blk_queue_usage_counter_release-in.patch rename to debian/patches-rt/0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch index 4de02495a..eb0340110 100644 --- a/debian/patches-rt/0188-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +++ b/debian/patches-rt/0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch @@ -1,9 +1,9 @@ -From e08fb0c66c4fd6b8cfad1f3a8211699472b97f5b Mon Sep 17 00:00:00 2001 +From 3933bc43d3be58eb86a118b1bd147cd4a2c9b33d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 13 Mar 2018 13:49:16 +0100 -Subject: [PATCH 188/266] block: blk-mq: move blk_queue_usage_counter_release() +Subject: [PATCH 186/264] block: blk-mq: move blk_queue_usage_counter_release() into process context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz | BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 | in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6 diff --git a/debian/patches-rt/0189-block-Use-cpu_chill-for-retry-loops.patch b/debian/patches-rt/0187-block-Use-cpu_chill-for-retry-loops.patch similarity index 88% rename from debian/patches-rt/0189-block-Use-cpu_chill-for-retry-loops.patch rename to debian/patches-rt/0187-block-Use-cpu_chill-for-retry-loops.patch index 74139a608..f987e72b4 100644 --- a/debian/patches-rt/0189-block-Use-cpu_chill-for-retry-loops.patch +++ b/debian/patches-rt/0187-block-Use-cpu_chill-for-retry-loops.patch @@ -1,8 +1,8 @@ -From 5012d2406de9f26b056bf87baa45c7b278fa1fbd Mon Sep 17 00:00:00 2001 +From 608d51b75238d882851b21f980b37aa54d26620e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 20 Dec 2012 18:28:26 +0100 -Subject: [PATCH 189/266] block: Use cpu_chill() for retry loops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 187/264] block: Use cpu_chill() for retry loops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0190-fs-dcache-Use-cpu_chill-in-trylock-loops.patch b/debian/patches-rt/0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch similarity index 92% rename from debian/patches-rt/0190-fs-dcache-Use-cpu_chill-in-trylock-loops.patch rename to debian/patches-rt/0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch index 603052e99..ba662dfe6 100644 --- a/debian/patches-rt/0190-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +++ b/debian/patches-rt/0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch @@ -1,8 +1,8 @@ -From 945dddbc331ba33e6ba9826125e5752a99cb752d Mon Sep 17 00:00:00 2001 +From 4e8f4b38754fe437338d35cde5fafd8bfa53aaa3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:00:34 +0100 -Subject: [PATCH 190/266] fs: dcache: Use cpu_chill() in trylock loops -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 188/264] fs: dcache: Use cpu_chill() in trylock loops +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system diff --git a/debian/patches-rt/0191-net-Use-cpu_chill-instead-of-cpu_relax.patch b/debian/patches-rt/0189-net-Use-cpu_chill-instead-of-cpu_relax.patch similarity index 90% rename from debian/patches-rt/0191-net-Use-cpu_chill-instead-of-cpu_relax.patch rename to debian/patches-rt/0189-net-Use-cpu_chill-instead-of-cpu_relax.patch index cf1f48b02..5c2c11d46 100644 --- a/debian/patches-rt/0191-net-Use-cpu_chill-instead-of-cpu_relax.patch +++ b/debian/patches-rt/0189-net-Use-cpu_chill-instead-of-cpu_relax.patch @@ -1,8 +1,8 @@ -From 762e21beb30e7fe62bc3aaa3af8a593576a60251 Mon Sep 17 00:00:00 2001 +From 128245989afa7b20f2b7e7fc43727086cce5bf13 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 7 Mar 2012 21:10:04 +0100 -Subject: [PATCH 191/266] net: Use cpu_chill() instead of cpu_relax() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 189/264] net: Use cpu_chill() instead of cpu_relax() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system @@ -15,7 +15,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 fd16fb836df2..52b97a25a979 100644 +index a0d295478e69..ce1bfcbbda45 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -63,6 +63,7 @@ diff --git a/debian/patches-rt/0192-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch similarity index 97% rename from debian/patches-rt/0192-fs-dcache-use-swait_queue-instead-of-waitqueue.patch rename to debian/patches-rt/0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch index 7d5cb1de0..6b1b75929 100644 --- a/debian/patches-rt/0192-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/debian/patches-rt/0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -1,8 +1,8 @@ -From d6e169768be2b9d8769000195c06013127ccc4ec Mon Sep 17 00:00:00 2001 +From 0e5745ddcc9a0454ba787dfcb0da5e9753b787dc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 14:35:49 +0200 -Subject: [PATCH 192/266] fs/dcache: use swait_queue instead of waitqueue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 190/264] fs/dcache: use swait_queue instead of waitqueue +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. @@ -177,7 +177,7 @@ index 81d77b15b347..2c0ac4338e17 100644 if (IS_ERR(child)) goto end_instantiate; diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c -index 4d598a399bbf..2d8c5cd1a8c3 100644 +index d65390727541..abd4d1632e7c 100644 --- a/fs/proc/proc_sysctl.c +++ b/fs/proc/proc_sysctl.c @@ -677,7 +677,7 @@ static bool proc_sys_fill_cache(struct file *file, diff --git a/debian/patches-rt/0193-workqueue-Use-normal-rcu.patch b/debian/patches-rt/0191-workqueue-Use-normal-rcu.patch similarity index 98% rename from debian/patches-rt/0193-workqueue-Use-normal-rcu.patch rename to debian/patches-rt/0191-workqueue-Use-normal-rcu.patch index 7ffdf67cf..cabf3c207 100644 --- a/debian/patches-rt/0193-workqueue-Use-normal-rcu.patch +++ b/debian/patches-rt/0191-workqueue-Use-normal-rcu.patch @@ -1,8 +1,8 @@ -From 98fc72ef0aa784748c91a7cf3694a3a0d71849e7 Mon Sep 17 00:00:00 2001 +From e29f4dc4c3456a8de27d079dc97e6489b05b61b0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 24 Jul 2013 15:26:54 +0200 -Subject: [PATCH 193/266] workqueue: Use normal rcu -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 191/264] workqueue: Use normal rcu +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 diff --git a/debian/patches-rt/0194-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch b/debian/patches-rt/0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch similarity index 97% rename from debian/patches-rt/0194-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch rename to debian/patches-rt/0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch index b7f6cd76d..e2aa91eb0 100644 --- a/debian/patches-rt/0194-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch +++ b/debian/patches-rt/0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch @@ -1,9 +1,9 @@ -From 82a41803231c15d971d06cafc3f9ba1243dde943 Mon Sep 17 00:00:00 2001 +From 693d52e4cc082c2aafb8154ee7581e38f4c584d3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:42:26 +0200 -Subject: [PATCH 194/266] workqueue: Use local irq lock instead of irq disable +Subject: [PATCH 192/264] workqueue: Use local irq lock instead of irq disable regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Use a local_irq_lock as a replacement for irq off regions. We keep the semantic of irq-off in regard to the pool->lock and remain preemptible. diff --git a/debian/patches-rt/0195-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch b/debian/patches-rt/0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch similarity index 97% rename from debian/patches-rt/0195-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch rename to debian/patches-rt/0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch index 09b181ade..5b9dc857d 100644 --- a/debian/patches-rt/0195-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch +++ b/debian/patches-rt/0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch @@ -1,8 +1,8 @@ -From 76cb1f900f404b9f52cb08a3738c94cdfd774ae0 Mon Sep 17 00:00:00 2001 +From d874f4bd157934c3b8f5f30c0291b9716f86e849 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Mon, 1 Jul 2013 11:02:42 +0200 -Subject: [PATCH 195/266] workqueue: Prevent workqueue versus ata-piix livelock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 193/264] workqueue: Prevent workqueue versus ata-piix livelock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 diff --git a/debian/patches-rt/0196-sched-Distangle-worker-accounting-from-rqlock.patch b/debian/patches-rt/0194-sched-Distangle-worker-accounting-from-rqlock.patch similarity index 93% rename from debian/patches-rt/0196-sched-Distangle-worker-accounting-from-rqlock.patch rename to debian/patches-rt/0194-sched-Distangle-worker-accounting-from-rqlock.patch index 568b6a15e..3747efc84 100644 --- a/debian/patches-rt/0196-sched-Distangle-worker-accounting-from-rqlock.patch +++ b/debian/patches-rt/0194-sched-Distangle-worker-accounting-from-rqlock.patch @@ -1,8 +1,8 @@ -From 0586bf86bf2f1b09ef39d5af88d617b1be694afe Mon Sep 17 00:00:00 2001 +From 4452796adea3514d123d9e41188dfcfc86adc6d0 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Jun 2011 19:47:03 +0200 -Subject: [PATCH 196/266] sched: Distangle worker accounting from rqlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 194/264] sched: Distangle worker accounting from rqlock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -34,10 +34,10 @@ Signed-off-by: Sebastian Andrzej Siewior 3 files changed, 47 insertions(+), 100 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 1ba8ec17992e..afae5090e573 100644 +index fb205b1ec799..1cd1abc45097 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1703,10 +1703,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl +@@ -1704,10 +1704,6 @@ static inline void ttwu_activate(struct rq *rq, struct task_struct *p, int en_fl { activate_task(rq, p, en_flags); p->on_rq = TASK_ON_RQ_QUEUED; @@ -48,7 +48,7 @@ index 1ba8ec17992e..afae5090e573 100644 } /* -@@ -2142,56 +2138,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) +@@ -2143,56 +2139,6 @@ try_to_wake_up(struct task_struct *p, unsigned int state, int wake_flags) return success; } @@ -105,7 +105,7 @@ index 1ba8ec17992e..afae5090e573 100644 /** * wake_up_process - Wake up a specific process * @p: The process to be woken up. -@@ -3519,21 +3465,6 @@ static void __sched notrace __schedule(bool preempt) +@@ -3520,21 +3466,6 @@ static void __sched notrace __schedule(bool preempt) atomic_inc(&rq->nr_iowait); delayacct_blkio_start(); } @@ -127,7 +127,7 @@ index 1ba8ec17992e..afae5090e573 100644 } switch_count = &prev->nvcsw; } -@@ -3593,6 +3524,20 @@ static inline void sched_submit_work(struct task_struct *tsk) +@@ -3594,6 +3525,20 @@ static inline void sched_submit_work(struct task_struct *tsk) { if (!tsk->state || tsk_is_pi_blocked(tsk)) return; @@ -148,7 +148,7 @@ index 1ba8ec17992e..afae5090e573 100644 /* * If we are going to sleep and we have plugged IO queued, * make sure to submit it to avoid deadlocks. -@@ -3601,6 +3546,12 @@ static inline void sched_submit_work(struct task_struct *tsk) +@@ -3602,6 +3547,12 @@ static inline void sched_submit_work(struct task_struct *tsk) blk_schedule_flush_plug(tsk); } @@ -161,7 +161,7 @@ index 1ba8ec17992e..afae5090e573 100644 asmlinkage __visible void __sched schedule(void) { struct task_struct *tsk = current; -@@ -3611,6 +3562,7 @@ asmlinkage __visible void __sched schedule(void) +@@ -3612,6 +3563,7 @@ asmlinkage __visible void __sched schedule(void) __schedule(false); sched_preempt_enable_no_resched(); } while (need_resched()); diff --git a/debian/patches-rt/0197-debugobjects-Make-RT-aware.patch b/debian/patches-rt/0195-debugobjects-Make-RT-aware.patch similarity index 84% rename from debian/patches-rt/0197-debugobjects-Make-RT-aware.patch rename to debian/patches-rt/0195-debugobjects-Make-RT-aware.patch index 8ef1bd59a..5d830076d 100644 --- a/debian/patches-rt/0197-debugobjects-Make-RT-aware.patch +++ b/debian/patches-rt/0195-debugobjects-Make-RT-aware.patch @@ -1,8 +1,8 @@ -From 053327774ffe140931050f994bb9547d8c55576b Mon Sep 17 00:00:00 2001 +From bfbfd69e3adaeffcc546f391f1f039dd715b2d57 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 17 Jul 2011 21:41:35 +0200 -Subject: [PATCH 197/266] debugobjects: Make RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 195/264] debugobjects: Make RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Avoid filling the pool / allocating memory with irqs off(). diff --git a/debian/patches-rt/0198-seqlock-Prevent-rt-starvation.patch b/debian/patches-rt/0196-seqlock-Prevent-rt-starvation.patch similarity index 97% rename from debian/patches-rt/0198-seqlock-Prevent-rt-starvation.patch rename to debian/patches-rt/0196-seqlock-Prevent-rt-starvation.patch index c83e7224e..f5d7e4de5 100644 --- a/debian/patches-rt/0198-seqlock-Prevent-rt-starvation.patch +++ b/debian/patches-rt/0196-seqlock-Prevent-rt-starvation.patch @@ -1,8 +1,8 @@ -From c4f81bc52cd0d6586753b9554c3c00304e90d47d Mon Sep 17 00:00:00 2001 +From 62e2b0613933b1d4557d86f4557375a9ee647fa7 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 22 Feb 2012 12:03:30 +0100 -Subject: [PATCH 198/266] seqlock: Prevent rt starvation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 196/264] seqlock: Prevent rt starvation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz If a low prio writer gets preempted while holding the seqlock write locked, a high prio reader spins forever on RT. diff --git a/debian/patches-rt/0199-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch similarity index 93% rename from debian/patches-rt/0199-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch rename to debian/patches-rt/0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch index 7f430fb0c..2718663f3 100644 --- a/debian/patches-rt/0199-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch +++ b/debian/patches-rt/0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -1,9 +1,9 @@ -From 82793adbaabce238fbcb3f23affef2391caccfe3 Mon Sep 17 00:00:00 2001 +From b1572dc20a39a216ac1fbb36998f32af0f79b9ae Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 18 Feb 2015 16:05:28 +0100 -Subject: [PATCH 199/266] sunrpc: Make svc_xprt_do_enqueue() use +Subject: [PATCH 197/264] sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd diff --git a/debian/patches-rt/0200-net-Use-skbufhead-with-raw-lock.patch b/debian/patches-rt/0198-net-Use-skbufhead-with-raw-lock.patch similarity index 86% rename from debian/patches-rt/0200-net-Use-skbufhead-with-raw-lock.patch rename to debian/patches-rt/0198-net-Use-skbufhead-with-raw-lock.patch index 9f1804adc..0308413f0 100644 --- a/debian/patches-rt/0200-net-Use-skbufhead-with-raw-lock.patch +++ b/debian/patches-rt/0198-net-Use-skbufhead-with-raw-lock.patch @@ -1,8 +1,8 @@ -From bf74fc8271a0cd33a6bea1ebfe9a398bb8208798 Mon Sep 17 00:00:00 2001 +From 4893c0317fda3cc20eac3b4bbfcdd808ef3db828 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 12 Jul 2011 15:38:34 +0200 -Subject: [PATCH 200/266] net: Use skbufhead with raw lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 198/264] net: Use skbufhead with raw lock +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -16,10 +16,10 @@ Signed-off-by: Thomas Gleixner 3 files changed, 33 insertions(+), 8 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h -index 21fef8c5eca7..4eec6a61c4f1 100644 +index 8c2fec0bcb26..384c63ecb9ae 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h -@@ -2970,6 +2970,7 @@ struct softnet_data { +@@ -2973,6 +2973,7 @@ struct softnet_data { unsigned int dropped; struct sk_buff_head input_pkt_queue; struct napi_struct backlog; @@ -53,7 +53,7 @@ index 820903ceac4f..f7f3abb41acb 100644 struct lock_class_key *class) { diff --git a/net/core/dev.c b/net/core/dev.c -index b7fbababf836..a66be126c8ac 100644 +index b8208b940b5d..327a985bf0c7 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) @@ -73,7 +73,7 @@ index b7fbababf836..a66be126c8ac 100644 #endif } -@@ -5244,7 +5244,7 @@ static void flush_backlog(struct work_struct *work) +@@ -5260,7 +5260,7 @@ static void flush_backlog(struct work_struct *work) skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->input_pkt_queue); @@ -82,7 +82,7 @@ index b7fbababf836..a66be126c8ac 100644 input_queue_head_incr(sd); } } -@@ -5254,11 +5254,14 @@ static void flush_backlog(struct work_struct *work) +@@ -5270,11 +5270,14 @@ static void flush_backlog(struct work_struct *work) skb_queue_walk_safe(&sd->process_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->process_queue); @@ -98,7 +98,7 @@ index b7fbababf836..a66be126c8ac 100644 } static void flush_all_backlogs(void) -@@ -5837,7 +5840,9 @@ static int process_backlog(struct napi_struct *napi, int quota) +@@ -5853,7 +5856,9 @@ static int process_backlog(struct napi_struct *napi, int quota) while (again) { struct sk_buff *skb; @@ -108,7 +108,7 @@ index b7fbababf836..a66be126c8ac 100644 rcu_read_lock(); __netif_receive_skb(skb); rcu_read_unlock(); -@@ -5845,9 +5850,9 @@ static int process_backlog(struct napi_struct *napi, int quota) +@@ -5861,9 +5866,9 @@ static int process_backlog(struct napi_struct *napi, int quota) if (++work >= quota) return work; @@ -119,7 +119,7 @@ index b7fbababf836..a66be126c8ac 100644 rps_lock(sd); if (skb_queue_empty(&sd->input_pkt_queue)) { /* -@@ -6312,13 +6317,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) +@@ -6328,13 +6333,21 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) unsigned long time_limit = jiffies + usecs_to_jiffies(netdev_budget_usecs); int budget = netdev_budget; @@ -141,7 +141,7 @@ index b7fbababf836..a66be126c8ac 100644 for (;;) { struct napi_struct *n; -@@ -9307,10 +9320,13 @@ static int dev_cpu_dead(unsigned int oldcpu) +@@ -9323,10 +9336,13 @@ static int dev_cpu_dead(unsigned int oldcpu) netif_rx_ni(skb); input_queue_head_incr(oldsd); } @@ -156,7 +156,7 @@ index b7fbababf836..a66be126c8ac 100644 return 0; } -@@ -9619,8 +9635,9 @@ static int __init net_dev_init(void) +@@ -9635,8 +9651,9 @@ static int __init net_dev_init(void) INIT_WORK(flush, flush_backlog); diff --git a/debian/patches-rt/0201-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/debian/patches-rt/0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch similarity index 90% rename from debian/patches-rt/0201-net-move-xmit_recursion-to-per-task-variable-on-RT.patch rename to debian/patches-rt/0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch index c18ff4fe7..50488b349 100644 --- a/debian/patches-rt/0201-net-move-xmit_recursion-to-per-task-variable-on-RT.patch +++ b/debian/patches-rt/0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch @@ -1,8 +1,8 @@ -From bf6541489a495c50b32e41bc87ab1589a1f9641a Mon Sep 17 00:00:00 2001 +From e6cdcf7dbf2aa921c55ed19673c775491efc2a75 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 13 Jan 2016 15:55:02 +0100 -Subject: [PATCH 201/266] net: move xmit_recursion to per-task variable on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 199/264] net: move xmit_recursion to per-task variable on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz A softirq on -RT can be preempted. That means one task is in __dev_queue_xmit(), gets preempted and another task may enter @@ -25,7 +25,7 @@ Signed-off-by: Sebastian Andrzej Siewior 4 files changed, 104 insertions(+), 15 deletions(-) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h -index 4eec6a61c4f1..68bdfa139782 100644 +index 384c63ecb9ae..b6a75296eb46 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -587,7 +587,11 @@ struct netdev_queue { @@ -40,7 +40,7 @@ index 4eec6a61c4f1..68bdfa139782 100644 /* * Time (in jiffies) of last Tx */ -@@ -2608,14 +2612,53 @@ void netdev_freemem(struct net_device *dev); +@@ -2611,14 +2615,53 @@ void netdev_freemem(struct net_device *dev); void synchronize_net(void); int init_dummy_netdev(struct net_device *dev); @@ -95,7 +95,7 @@ index 4eec6a61c4f1..68bdfa139782 100644 struct net_device *dev_get_by_index(struct net *net, int ifindex); struct net_device *__dev_get_by_index(struct net *net, int ifindex); struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); -@@ -3791,10 +3834,48 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits) +@@ -3794,10 +3837,48 @@ static inline u32 netif_msg_init(int debug_value, int default_msg_enable_bits) return (1 << debug_value) - 1; } @@ -145,7 +145,7 @@ index 4eec6a61c4f1..68bdfa139782 100644 } static inline bool __netif_tx_acquire(struct netdev_queue *txq) -@@ -3811,32 +3892,32 @@ static inline void __netif_tx_release(struct netdev_queue *txq) +@@ -3814,32 +3895,32 @@ static inline void __netif_tx_release(struct netdev_queue *txq) static inline void __netif_tx_lock_bh(struct netdev_queue *txq) { spin_lock_bh(&txq->_xmit_lock); @@ -184,7 +184,7 @@ index 4eec6a61c4f1..68bdfa139782 100644 } diff --git a/include/linux/sched.h b/include/linux/sched.h -index 7cbef398ac48..80f6dedc3391 100644 +index a023e1ba5d8f..a9a5edfa9689 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1208,6 +1208,9 @@ struct task_struct { @@ -198,10 +198,10 @@ index 7cbef398ac48..80f6dedc3391 100644 int pagefault_disabled; #ifdef CONFIG_MMU diff --git a/net/core/dev.c b/net/core/dev.c -index a66be126c8ac..163275e0beff 100644 +index 327a985bf0c7..ee90223959fc 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3523,8 +3523,10 @@ static void skb_update_prio(struct sk_buff *skb) +@@ -3537,8 +3537,10 @@ static void skb_update_prio(struct sk_buff *skb) #define skb_update_prio(skb) #endif @@ -212,7 +212,7 @@ index a66be126c8ac..163275e0beff 100644 /** * dev_loopback_xmit - loop back @skb -@@ -3815,9 +3817,12 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) +@@ -3829,9 +3831,12 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) if (dev->flags & IFF_UP) { int cpu = smp_processor_id(); /* ok because BHs are off */ @@ -227,7 +227,7 @@ index a66be126c8ac..163275e0beff 100644 goto recursion_alert; skb = validate_xmit_skb(skb, dev, &again); -@@ -3827,9 +3832,9 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) +@@ -3841,9 +3846,9 @@ static int __dev_queue_xmit(struct sk_buff *skb, struct net_device *sb_dev) HARD_TX_LOCK(dev, txq, cpu); if (!netif_xmit_stopped(txq)) { @@ -239,7 +239,7 @@ index a66be126c8ac..163275e0beff 100644 if (dev_xmit_complete(rc)) { HARD_TX_UNLOCK(dev, txq); goto out; -@@ -8372,7 +8377,7 @@ static void netdev_init_one_queue(struct net_device *dev, +@@ -8388,7 +8393,7 @@ static void netdev_init_one_queue(struct net_device *dev, /* Initialize queue lock */ spin_lock_init(&queue->_xmit_lock); netdev_set_xmit_lockdep_class(&queue->_xmit_lock, dev->type); diff --git a/debian/patches-rt/0202-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/debian/patches-rt/0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch similarity index 90% rename from debian/patches-rt/0202-net-provide-a-way-to-delegate-processing-a-softirq-t.patch rename to debian/patches-rt/0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch index d3532a31d..65b5778c1 100644 --- a/debian/patches-rt/0202-net-provide-a-way-to-delegate-processing-a-softirq-t.patch +++ b/debian/patches-rt/0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch @@ -1,9 +1,9 @@ -From fa53f62fc4de7d893ecc40f7552d4c09fad54d0e Mon Sep 17 00:00:00 2001 +From 0ba4f1b56a7639a293956b84416566f0211c8c77 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Jan 2016 15:39:05 +0100 -Subject: [PATCH 202/266] net: provide a way to delegate processing a softirq +Subject: [PATCH 200/264] net: provide a way to delegate processing a softirq to ksoftirqd -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz If the NET_RX uses up all of his budget it moves the following NAPI invocations into the `ksoftirqd`. On -RT it does not do so. Instead it @@ -72,10 +72,10 @@ index 27a4bb2303d0..25bcf2f2714b 100644 * This function must run with irqs disabled! */ diff --git a/net/core/dev.c b/net/core/dev.c -index 163275e0beff..bbe322600b0c 100644 +index ee90223959fc..da95705ccb67 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -6366,7 +6366,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) +@@ -6382,7 +6382,7 @@ static __latent_entropy void net_rx_action(struct softirq_action *h) list_splice_tail(&repoll, &list); list_splice(&list, &sd->poll_list); if (!list_empty(&sd->poll_list)) diff --git a/debian/patches-rt/0203-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches-rt/0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch similarity index 82% rename from debian/patches-rt/0203-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch rename to debian/patches-rt/0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch index 9658d54e4..ada39ec0f 100644 --- a/debian/patches-rt/0203-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +++ b/debian/patches-rt/0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch @@ -1,9 +1,9 @@ -From 8e7bc853cc2cd990c98ef62f4940161775027b31 Mon Sep 17 00:00:00 2001 +From 9e7513a103f18db66ffaf2bcfd13c834cba602d7 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 30 Mar 2016 13:36:29 +0200 -Subject: [PATCH 203/266] net: dev: always take qdisc's busylock in +Subject: [PATCH 201/264] net: dev: always take qdisc's busylock in __dev_xmit_skb() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The root-lock is dropped before dev_hard_start_xmit() is invoked and after setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 4 insertions(+) diff --git a/net/core/dev.c b/net/core/dev.c -index bbe322600b0c..dc4e043940fb 100644 +index da95705ccb67..351e81f8a72d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -3451,7 +3451,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, +@@ -3465,7 +3465,11 @@ static inline int __dev_xmit_skb(struct sk_buff *skb, struct Qdisc *q, * This permits qdisc->running owner to get the lock more * often and dequeue packets faster. */ diff --git a/debian/patches-rt/0204-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch similarity index 98% rename from debian/patches-rt/0204-net-Qdisc-use-a-seqlock-instead-seqcount.patch rename to debian/patches-rt/0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch index 1ac2400ca..1bf439d5f 100644 --- a/debian/patches-rt/0204-net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/debian/patches-rt/0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -1,8 +1,8 @@ -From c31ad87248d2f39ed7240c6648cad99d2fe48a4b Mon Sep 17 00:00:00 2001 +From 8f5f7360b52bbe5081ba3204a2004f6fdeb75114 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Sep 2016 17:36:35 +0200 -Subject: [PATCH 204/266] net/Qdisc: use a seqlock instead seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 202/264] net/Qdisc: use a seqlock instead seqcount +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0205-net-add-back-the-missing-serialization-in-ip_send_un.patch b/debian/patches-rt/0203-net-add-back-the-missing-serialization-in-ip_send_un.patch similarity index 94% rename from debian/patches-rt/0205-net-add-back-the-missing-serialization-in-ip_send_un.patch rename to debian/patches-rt/0203-net-add-back-the-missing-serialization-in-ip_send_un.patch index 3ae647164..9bb023dd3 100644 --- a/debian/patches-rt/0205-net-add-back-the-missing-serialization-in-ip_send_un.patch +++ b/debian/patches-rt/0203-net-add-back-the-missing-serialization-in-ip_send_un.patch @@ -1,12 +1,12 @@ -From 0907a92dc79cb3b6e1eb4f13bd5accbf8611b073 Mon Sep 17 00:00:00 2001 +From de40c876cec758a0735fda3a4dffd05924f12a4b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 31 Aug 2016 17:21:56 +0200 -Subject: [PATCH 205/266] net: add back the missing serialization in +Subject: [PATCH 203/264] net: add back the missing serialization in ip_send_unicast_reply() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Some time ago Sami Pietikäinen reported a crash on -RT in ip_send_unicast_reply() which was later fixed by Nicholas Mc Guire @@ -43,7 +43,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 30fdf891940b..94195c68207e 100644 +index 11101cf8693b..2b7205ad261a 100644 --- a/net/ipv4/tcp_ipv4.c +++ b/net/ipv4/tcp_ipv4.c @@ -62,6 +62,7 @@ diff --git a/debian/patches-rt/0206-net-add-a-lock-around-icmp_sk.patch b/debian/patches-rt/0204-net-add-a-lock-around-icmp_sk.patch similarity index 92% rename from debian/patches-rt/0206-net-add-a-lock-around-icmp_sk.patch rename to debian/patches-rt/0204-net-add-a-lock-around-icmp_sk.patch index b441821e0..476368dcc 100644 --- a/debian/patches-rt/0206-net-add-a-lock-around-icmp_sk.patch +++ b/debian/patches-rt/0204-net-add-a-lock-around-icmp_sk.patch @@ -1,8 +1,8 @@ -From 67ee4a58aa056573b88dc5d2783ced8e864f21d0 Mon Sep 17 00:00:00 2001 +From c35d9dd75bf9f6d2e39202e23d04a8850172240f Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 31 Aug 2016 17:54:09 +0200 -Subject: [PATCH 206/266] net: add a lock around icmp_sk() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 204/264] net: add a lock around icmp_sk() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0207-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/debian/patches-rt/0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch similarity index 87% rename from debian/patches-rt/0207-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch rename to debian/patches-rt/0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch index ffb2c8c0f..89e904160 100644 --- a/debian/patches-rt/0207-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch +++ b/debian/patches-rt/0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch @@ -1,9 +1,9 @@ -From 5b46d2bfd7f52c24f2712e1740e4757d29d6dc6c Mon Sep 17 00:00:00 2001 +From bdd2169d3d5cc93fcaca144c2166ac375331e25d Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Tue, 6 Dec 2016 17:50:30 -0500 -Subject: [PATCH 207/266] net: Have __napi_schedule_irqoff() disable interrupts +Subject: [PATCH 205/264] net: Have __napi_schedule_irqoff() disable interrupts on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz A customer hit a crash where the napi sd->poll_list became corrupted. The customer had the bnx2x driver, which does a @@ -29,7 +29,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 14 insertions(+) diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h -index 68bdfa139782..3a722e31e4da 100644 +index b6a75296eb46..946875cae933 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -422,7 +422,19 @@ typedef enum rx_handler_result rx_handler_result_t; @@ -53,10 +53,10 @@ index 68bdfa139782..3a722e31e4da 100644 static inline bool napi_disable_pending(struct napi_struct *n) { diff --git a/net/core/dev.c b/net/core/dev.c -index dc4e043940fb..b4028addf291 100644 +index 351e81f8a72d..50fe1e3ee26d 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -5936,6 +5936,7 @@ bool napi_schedule_prep(struct napi_struct *n) +@@ -5952,6 +5952,7 @@ bool napi_schedule_prep(struct napi_struct *n) } EXPORT_SYMBOL(napi_schedule_prep); @@ -64,7 +64,7 @@ index dc4e043940fb..b4028addf291 100644 /** * __napi_schedule_irqoff - schedule for receive * @n: entry to schedule -@@ -5947,6 +5948,7 @@ void __napi_schedule_irqoff(struct napi_struct *n) +@@ -5963,6 +5964,7 @@ void __napi_schedule_irqoff(struct napi_struct *n) ____napi_schedule(this_cpu_ptr(&softnet_data), n); } EXPORT_SYMBOL(__napi_schedule_irqoff); diff --git a/debian/patches-rt/0208-irqwork-push-most-work-into-softirq-context.patch b/debian/patches-rt/0206-irqwork-push-most-work-into-softirq-context.patch similarity index 97% rename from debian/patches-rt/0208-irqwork-push-most-work-into-softirq-context.patch rename to debian/patches-rt/0206-irqwork-push-most-work-into-softirq-context.patch index 3a3cec0da..eba96c203 100644 --- a/debian/patches-rt/0208-irqwork-push-most-work-into-softirq-context.patch +++ b/debian/patches-rt/0206-irqwork-push-most-work-into-softirq-context.patch @@ -1,8 +1,8 @@ -From d5bc7d50b9d151688a06740c7f7bb53d31eb93b4 Mon Sep 17 00:00:00 2001 +From 01a7f110c5d6b059012d7f6cf4c1b3af79253a7c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 23 Jun 2015 15:32:51 +0200 -Subject: [PATCH 208/266] irqwork: push most work into softirq context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 206/264] irqwork: push most work into softirq context +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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. @@ -198,7 +198,7 @@ index f162a4f54b05..278fe66bfb70 100644 rdp->rcu_iw_gp_seq = rnp->gp_seq; irq_work_queue_on(&rdp->rcu_iw, rdp->cpu); diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c -index 505a41c42b96..a32943de5dbc 100644 +index c0a751464971..6e95f1ca3e22 100644 --- a/kernel/sched/topology.c +++ b/kernel/sched/topology.c @@ -279,6 +279,7 @@ static int init_rootdomain(struct root_domain *rd) diff --git a/debian/patches-rt/0209-printk-Make-rt-aware.patch b/debian/patches-rt/0207-printk-Make-rt-aware.patch similarity index 95% rename from debian/patches-rt/0209-printk-Make-rt-aware.patch rename to debian/patches-rt/0207-printk-Make-rt-aware.patch index ab955bc57..22a9ea82a 100644 --- a/debian/patches-rt/0209-printk-Make-rt-aware.patch +++ b/debian/patches-rt/0207-printk-Make-rt-aware.patch @@ -1,8 +1,8 @@ -From 8faf80f4a440f15668ace2c02bed1d35ae4adff3 Mon Sep 17 00:00:00 2001 +From 4d49bcfa2103be6571f2f53e06e8fa71d49feb9b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Sep 2012 14:50:37 +0200 -Subject: [PATCH 209/266] printk: Make rt aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 207/264] printk: Make rt aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Drop the lock before calling the console driver and do not disable interrupts while printing to a serial console. diff --git a/debian/patches-rt/0210-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/debian/patches-rt/0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch similarity index 89% rename from debian/patches-rt/0210-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch rename to debian/patches-rt/0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch index 16e6122ea..b8bde9e44 100644 --- a/debian/patches-rt/0210-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch +++ b/debian/patches-rt/0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch @@ -1,8 +1,8 @@ -From af59a684620beb5f2edbea7e302390e7d980b73e Mon Sep 17 00:00:00 2001 +From 160a19dcfe1a664e430a678562901a32630f7ee2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 19 May 2016 17:45:27 +0200 -Subject: [PATCH 210/266] kernel/printk: Don't try to print from IRQ/NMI region -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 208/264] kernel/printk: Don't try to print from IRQ/NMI region +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 diff --git a/debian/patches-rt/0211-printk-Drop-the-logbuf_lock-more-often.patch b/debian/patches-rt/0209-printk-Drop-the-logbuf_lock-more-often.patch similarity index 92% rename from debian/patches-rt/0211-printk-Drop-the-logbuf_lock-more-often.patch rename to debian/patches-rt/0209-printk-Drop-the-logbuf_lock-more-often.patch index 33f1c6625..a90e0eb95 100644 --- a/debian/patches-rt/0211-printk-Drop-the-logbuf_lock-more-often.patch +++ b/debian/patches-rt/0209-printk-Drop-the-logbuf_lock-more-often.patch @@ -1,8 +1,8 @@ -From 06810537e40e728eb91fab5dbc8b836db1989912 Mon Sep 17 00:00:00 2001 +From bf31931f09583088100f40d4c4b255571cc72578 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 21 Mar 2013 19:01:05 +0100 -Subject: [PATCH 211/266] printk: Drop the logbuf_lock more often -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 209/264] printk: Drop the logbuf_lock more often +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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. diff --git a/debian/patches-rt/0212-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0210-ARM-enable-irq-in-translation-section-permission-fau.patch similarity index 95% rename from debian/patches-rt/0212-ARM-enable-irq-in-translation-section-permission-fau.patch rename to debian/patches-rt/0210-ARM-enable-irq-in-translation-section-permission-fau.patch index 356efbf45..18c7f2cb8 100644 --- a/debian/patches-rt/0212-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/debian/patches-rt/0210-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,12 +1,12 @@ -From 418f742ee48703d6d790578aea5580eaf782722e Mon Sep 17 00:00:00 2001 +From 740bf3655673f2b77230957eb21238798aa0b203 Mon Sep 17 00:00:00 2001 From: "Yadi.hu" Date: Wed, 10 Dec 2014 10:32:09 +0800 -Subject: [PATCH 212/266] ARM: enable irq in translation/section permission +Subject: [PATCH 210/264] ARM: enable irq in translation/section permission fault handlers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Probably happens on all ARM, with CONFIG_PREEMPT_RT_FULL diff --git a/debian/patches-rt/0213-genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/0211-genirq-update-irq_set_irqchip_state-documentation.patch similarity index 87% rename from debian/patches-rt/0213-genirq-update-irq_set_irqchip_state-documentation.patch rename to debian/patches-rt/0211-genirq-update-irq_set_irqchip_state-documentation.patch index 810bef0cf..72f3668a7 100644 --- a/debian/patches-rt/0213-genirq-update-irq_set_irqchip_state-documentation.patch +++ b/debian/patches-rt/0211-genirq-update-irq_set_irqchip_state-documentation.patch @@ -1,8 +1,8 @@ -From 8a492dd953741486ef8dec9c107d4e1ba0190fa9 Mon Sep 17 00:00:00 2001 +From 9179df818d04fdf3d3cc195a5d19fac4b4c904f1 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:00 -0600 -Subject: [PATCH 213/266] genirq: update irq_set_irqchip_state documentation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 211/264] genirq: update irq_set_irqchip_state documentation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0214-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches-rt/0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch similarity index 92% rename from debian/patches-rt/0214-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch rename to debian/patches-rt/0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index 9d3d46ad8..0baa5b95e 100644 --- a/debian/patches-rt/0214-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/debian/patches-rt/0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -1,9 +1,9 @@ -From 3bc92c364ea4a31b42fbaeebab098e6caf3d2feb Mon Sep 17 00:00:00 2001 +From 7635f97cb803db25caa49d5fd48ecb46672272d9 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Thu, 11 Feb 2016 11:54:01 -0600 -Subject: [PATCH 214/266] KVM: arm/arm64: downgrade preempt_disable()d region +Subject: [PATCH 212/264] KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating the vgic and timer states to prevent the calling task from migrating to diff --git a/debian/patches-rt/0215-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch b/debian/patches-rt/0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch similarity index 96% rename from debian/patches-rt/0215-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch rename to debian/patches-rt/0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch index 23d3d3a73..66f75bb6d 100644 --- a/debian/patches-rt/0215-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch +++ b/debian/patches-rt/0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch @@ -1,9 +1,9 @@ -From 972a07118b3e07e7e585182621cbc2b69acf78c0 Mon Sep 17 00:00:00 2001 +From 25f8f6ec0e7c56b6029b247d513eec0ba512da9b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 25 Jul 2018 14:02:38 +0200 -Subject: [PATCH 215/266] arm64: fpsimd: use preemp_disable in addition to +Subject: [PATCH 213/264] arm64: fpsimd: use preemp_disable in addition to local_bh_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The code disables BH and expects that it is not preemptible. On -RT the diff --git a/debian/patches-rt/0216-kgdb-serial-Short-term-workaround.patch b/debian/patches-rt/0214-kgdb-serial-Short-term-workaround.patch similarity index 94% rename from debian/patches-rt/0216-kgdb-serial-Short-term-workaround.patch rename to debian/patches-rt/0214-kgdb-serial-Short-term-workaround.patch index b17113202..7a00c4d8b 100644 --- a/debian/patches-rt/0216-kgdb-serial-Short-term-workaround.patch +++ b/debian/patches-rt/0214-kgdb-serial-Short-term-workaround.patch @@ -1,8 +1,8 @@ -From f2715a381adb65a81e31558b869e2a010bb5ae8a Mon Sep 17 00:00:00 2001 +From b9a4d200f0fc873f1ad960b730b283ea779c74a4 Mon Sep 17 00:00:00 2001 From: Jason Wessel Date: Thu, 28 Jul 2011 12:42:23 -0500 -Subject: [PATCH 216/266] kgdb/serial: Short term workaround -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 214/264] kgdb/serial: Short term workaround +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On 07/27/2011 04:37 PM, Thomas Gleixner wrote: > - KGDB (not yet disabled) is reportedly unusable on -rt right now due diff --git a/debian/patches-rt/0217-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0215-sysfs-Add-sys-kernel-realtime-entry.patch similarity index 89% rename from debian/patches-rt/0217-sysfs-Add-sys-kernel-realtime-entry.patch rename to debian/patches-rt/0215-sysfs-Add-sys-kernel-realtime-entry.patch index 188447d50..4c6c1b0af 100644 --- a/debian/patches-rt/0217-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/debian/patches-rt/0215-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,8 +1,8 @@ -From d1cbdeac46f1ee781ca0a2258241f88581088ce6 Mon Sep 17 00:00:00 2001 +From 65880324093a78662b662259e6d79ad55ac8a4bf Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 -Subject: [PATCH 217/266] sysfs: Add /sys/kernel/realtime entry -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 215/264] sysfs: Add /sys/kernel/realtime entry +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. diff --git a/debian/patches-rt/0218-mm-rt-kmap_atomic-scheduling.patch b/debian/patches-rt/0216-mm-rt-kmap_atomic-scheduling.patch similarity index 97% rename from debian/patches-rt/0218-mm-rt-kmap_atomic-scheduling.patch rename to debian/patches-rt/0216-mm-rt-kmap_atomic-scheduling.patch index 308a60eff..b8e021adb 100644 --- a/debian/patches-rt/0218-mm-rt-kmap_atomic-scheduling.patch +++ b/debian/patches-rt/0216-mm-rt-kmap_atomic-scheduling.patch @@ -1,8 +1,8 @@ -From bc54e9dc9a1914d97010a4e14c68d1a21406b346 Mon Sep 17 00:00:00 2001 +From e8dfb76eeb36e00d6827406f9b0d110eee60a084 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Thu, 28 Jul 2011 10:43:51 +0200 -Subject: [PATCH 218/266] mm, rt: kmap_atomic scheduling -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 216/264] mm, rt: kmap_atomic scheduling +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In fact, with migrate_disable() existing one could play games with kmap_atomic. You could save/restore the kmap_atomic slots on context @@ -248,7 +248,7 @@ index 0690679832d4..1ac89e4718bf 100644 } diff --git a/include/linux/sched.h b/include/linux/sched.h -index 80f6dedc3391..320be04498a9 100644 +index a9a5edfa9689..76e6cdafb992 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -28,6 +28,7 @@ diff --git a/debian/patches-rt/0219-x86-highmem-Add-a-already-used-pte-check.patch b/debian/patches-rt/0217-x86-highmem-Add-a-already-used-pte-check.patch similarity index 83% rename from debian/patches-rt/0219-x86-highmem-Add-a-already-used-pte-check.patch rename to debian/patches-rt/0217-x86-highmem-Add-a-already-used-pte-check.patch index e4b1eea46..cc78ad755 100644 --- a/debian/patches-rt/0219-x86-highmem-Add-a-already-used-pte-check.patch +++ b/debian/patches-rt/0217-x86-highmem-Add-a-already-used-pte-check.patch @@ -1,8 +1,8 @@ -From cd3614855e4c65eaa6be98bb350080ec58373cde Mon Sep 17 00:00:00 2001 +From c22bb5db4da4e6b17aa8a6387ffcd503dea51ec5 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Mar 2013 17:09:55 +0100 -Subject: [PATCH 219/266] x86/highmem: Add a "already used pte" check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 217/264] x86/highmem: Add a "already used pte" check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz This is a copy from kmap_atomic_prot(). diff --git a/debian/patches-rt/0220-arm-highmem-Flush-tlb-on-unmap.patch b/debian/patches-rt/0218-arm-highmem-Flush-tlb-on-unmap.patch similarity index 87% rename from debian/patches-rt/0220-arm-highmem-Flush-tlb-on-unmap.patch rename to debian/patches-rt/0218-arm-highmem-Flush-tlb-on-unmap.patch index 5fe7f6076..f696bf85f 100644 --- a/debian/patches-rt/0220-arm-highmem-Flush-tlb-on-unmap.patch +++ b/debian/patches-rt/0218-arm-highmem-Flush-tlb-on-unmap.patch @@ -1,8 +1,8 @@ -From 7587838e3ab05a258457bce16fb13a5c625ee6b9 Mon Sep 17 00:00:00 2001 +From fba4ff7b8883d22067b9453a1d158c520f067b70 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 11 Mar 2013 21:37:27 +0100 -Subject: [PATCH 220/266] arm/highmem: Flush tlb on unmap -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 218/264] arm/highmem: Flush tlb on unmap +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0221-arm-Enable-highmem-for-rt.patch b/debian/patches-rt/0219-arm-Enable-highmem-for-rt.patch similarity index 97% rename from debian/patches-rt/0221-arm-Enable-highmem-for-rt.patch rename to debian/patches-rt/0219-arm-Enable-highmem-for-rt.patch index d144f48d4..1eb19907d 100644 --- a/debian/patches-rt/0221-arm-Enable-highmem-for-rt.patch +++ b/debian/patches-rt/0219-arm-Enable-highmem-for-rt.patch @@ -1,8 +1,8 @@ -From 24d080b32cfb2d1e6644ae723bbdfbab742aa274 Mon Sep 17 00:00:00 2001 +From 1a0e06d9a75c6d9d6ec21e345030430e78e81a84 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 13 Feb 2013 11:03:11 +0100 -Subject: [PATCH 221/266] arm: Enable highmem for rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 219/264] arm: Enable highmem for rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz fixup highmem for ARM. diff --git a/debian/patches-rt/0222-scsi-fcoe-Make-RT-aware.patch b/debian/patches-rt/0220-scsi-fcoe-Make-RT-aware.patch similarity index 90% rename from debian/patches-rt/0222-scsi-fcoe-Make-RT-aware.patch rename to debian/patches-rt/0220-scsi-fcoe-Make-RT-aware.patch index 5d832953c..368e59d64 100644 --- a/debian/patches-rt/0222-scsi-fcoe-Make-RT-aware.patch +++ b/debian/patches-rt/0220-scsi-fcoe-Make-RT-aware.patch @@ -1,8 +1,8 @@ -From fa1bdacac643ee0a36ed8a7d9e42aac2c2075655 Mon Sep 17 00:00:00 2001 +From f4644bebeab291324244e2cb3d957c692cec7168 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sat, 12 Nov 2011 14:00:48 +0100 -Subject: [PATCH 222/266] scsi/fcoe: Make RT aware. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 220/264] scsi/fcoe: Make RT aware. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. @@ -15,7 +15,7 @@ Signed-off-by: Thomas Gleixner 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/fcoe/fcoe.c b/drivers/scsi/fcoe/fcoe.c -index f46b312d04bc..adbdb38eced2 100644 +index 6768b2e8148a..c20f51af6bdf 100644 --- a/drivers/scsi/fcoe/fcoe.c +++ b/drivers/scsi/fcoe/fcoe.c @@ -1459,11 +1459,11 @@ static int fcoe_rcv(struct sk_buff *skb, struct net_device *netdev, @@ -73,10 +73,10 @@ index f46b312d04bc..adbdb38eced2 100644 } diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c -index 54da3166da8d..ac4e443c3ba8 100644 +index 7dc4ffa24430..4946df66a5ab 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) +@@ -838,7 +838,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) INIT_LIST_HEAD(&del_list); @@ -85,7 +85,7 @@ index 54da3166da8d..ac4e443c3ba8 100644 list_for_each_entry_safe(fcf, next, &fip->fcfs, list) { deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2; -@@ -871,7 +871,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) +@@ -874,7 +874,7 @@ static unsigned long fcoe_ctlr_age_fcfs(struct fcoe_ctlr *fip) sel_time = fcf->time; } } diff --git a/debian/patches-rt/0223-x86-crypto-Reduce-preempt-disabled-regions.patch b/debian/patches-rt/0221-x86-crypto-Reduce-preempt-disabled-regions.patch similarity index 95% rename from debian/patches-rt/0223-x86-crypto-Reduce-preempt-disabled-regions.patch rename to debian/patches-rt/0221-x86-crypto-Reduce-preempt-disabled-regions.patch index 69ea79896..06cd2bafc 100644 --- a/debian/patches-rt/0223-x86-crypto-Reduce-preempt-disabled-regions.patch +++ b/debian/patches-rt/0221-x86-crypto-Reduce-preempt-disabled-regions.patch @@ -1,8 +1,8 @@ -From afdbe47317480e4e195faebb0cbaeaba166d27ec Mon Sep 17 00:00:00 2001 +From 3f5be0658bbd8160961eec6f903d89aad36f03f1 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Mon, 14 Nov 2011 18:19:27 +0100 -Subject: [PATCH 223/266] x86: crypto: Reduce preempt disabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 221/264] x86: crypto: Reduce preempt disabled regions +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. diff --git a/debian/patches-rt/0224-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch similarity index 98% rename from debian/patches-rt/0224-crypto-Reduce-preempt-disabled-regions-more-algos.patch rename to debian/patches-rt/0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch index cc6a3b719..4277bc058 100644 --- a/debian/patches-rt/0224-crypto-Reduce-preempt-disabled-regions-more-algos.patch +++ b/debian/patches-rt/0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -1,8 +1,8 @@ -From b1087b7d43c527984b5892d4b50c921c78432950 Mon Sep 17 00:00:00 2001 +From e17c7ea4fb043fe1d4e89e4a42ff80b20d157f12 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 21 Feb 2014 17:24:04 +0100 -Subject: [PATCH 224/266] crypto: Reduce preempt disabled regions, more algos -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 222/264] crypto: Reduce preempt disabled regions, more algos +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Don Estabrook reported | kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() diff --git a/debian/patches-rt/0225-crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/0223-crypto-limit-more-FPU-enabled-sections.patch similarity index 95% rename from debian/patches-rt/0225-crypto-limit-more-FPU-enabled-sections.patch rename to debian/patches-rt/0223-crypto-limit-more-FPU-enabled-sections.patch index 270f86305..f4fb440be 100644 --- a/debian/patches-rt/0225-crypto-limit-more-FPU-enabled-sections.patch +++ b/debian/patches-rt/0223-crypto-limit-more-FPU-enabled-sections.patch @@ -1,11 +1,11 @@ -From 607e8697d0dc5e97c9b707c96e81841f9b587467 Mon Sep 17 00:00:00 2001 +From da94fdf57dbc4e55dd359d103c8f61cc2811f47c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 30 Nov 2017 13:40:10 +0100 -Subject: [PATCH 225/266] crypto: limit more FPU-enabled sections +Subject: [PATCH 223/264] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Those crypto drivers use SSE/AVX/… for their crypto work and in order to do so in kernel they need to enable the "FPU" in kernel mode which diff --git a/debian/patches-rt/0226-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch b/debian/patches-rt/0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch similarity index 94% rename from debian/patches-rt/0226-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch rename to debian/patches-rt/0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch index 6aa8c922c..54e15e545 100644 --- a/debian/patches-rt/0226-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch +++ b/debian/patches-rt/0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch @@ -1,9 +1,9 @@ -From 2d8273e45e5c4831f867f1f3e3311f1f9cb203ec Mon Sep 17 00:00:00 2001 +From d46edae98108392143e56a64ada43af295b537a9 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 11 Jul 2018 17:14:47 +0200 -Subject: [PATCH 226/266] crypto: scompress - serialize RT percpu scratch +Subject: [PATCH 224/264] crypto: scompress - serialize RT percpu scratch buffer access with a local lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz | BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974 | in_atomic(): 1, irqs_disabled(): 0, pid: 1401, name: cryptomgr_test diff --git a/debian/patches-rt/0227-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch b/debian/patches-rt/0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch similarity index 94% rename from debian/patches-rt/0227-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch rename to debian/patches-rt/0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch index 1c134b79b..d37b65cc9 100644 --- a/debian/patches-rt/0227-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch +++ b/debian/patches-rt/0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch @@ -1,9 +1,9 @@ -From 3e017e1cdb6fa08d6cc7c6f3cc57ba9b269c6fca Mon Sep 17 00:00:00 2001 +From b1616c1d9f52000a3614707e3c3ffe2b63c5fde9 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 26 Jul 2018 18:52:00 +0200 -Subject: [PATCH 227/266] crypto: cryptd - add a lock instead +Subject: [PATCH 225/264] crypto: cryptd - add a lock instead preempt_disable/local_bh_disable -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz cryptd has a per-CPU lock which protected with local_bh_disable() and preempt_disable(). diff --git a/debian/patches-rt/0228-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch b/debian/patches-rt/0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch similarity index 82% rename from debian/patches-rt/0228-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch rename to debian/patches-rt/0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch index a13bd8428..ae397f995 100644 --- a/debian/patches-rt/0228-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch +++ b/debian/patches-rt/0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch @@ -1,9 +1,9 @@ -From a5584c410beb3104139873c7f81a0225da6bc302 Mon Sep 17 00:00:00 2001 +From c3ce683225b678190d7c42bd8bc695ad74595ac8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 14 Jul 2015 14:26:34 +0200 -Subject: [PATCH 228/266] panic: skip get_random_bytes for RT_FULL in +Subject: [PATCH 226/264] panic: skip get_random_bytes for RT_FULL in init_oops_id -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Disable on -RT. If this is invoked from irq-context we will have problems to acquire the sleeping lock. diff --git a/debian/patches-rt/0229-x86-stackprotector-Avoid-random-pool-on-rt.patch b/debian/patches-rt/0227-x86-stackprotector-Avoid-random-pool-on-rt.patch similarity index 92% rename from debian/patches-rt/0229-x86-stackprotector-Avoid-random-pool-on-rt.patch rename to debian/patches-rt/0227-x86-stackprotector-Avoid-random-pool-on-rt.patch index ba1ff6b63..4533e1dd7 100644 --- a/debian/patches-rt/0229-x86-stackprotector-Avoid-random-pool-on-rt.patch +++ b/debian/patches-rt/0227-x86-stackprotector-Avoid-random-pool-on-rt.patch @@ -1,8 +1,8 @@ -From 36751fceed79c085219ead85013948d19ed1f000 Mon Sep 17 00:00:00 2001 +From 3daaf6574c9be1128d8384deff5de6c53bc2712f Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 16 Dec 2010 14:25:18 +0100 -Subject: [PATCH 229/266] x86: stackprotector: Avoid random pool on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 227/264] x86: stackprotector: Avoid random pool on rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0230-random-Make-it-work-on-rt.patch b/debian/patches-rt/0228-random-Make-it-work-on-rt.patch similarity index 95% rename from debian/patches-rt/0230-random-Make-it-work-on-rt.patch rename to debian/patches-rt/0228-random-Make-it-work-on-rt.patch index 0e06525ab..e90dfd279 100644 --- a/debian/patches-rt/0230-random-Make-it-work-on-rt.patch +++ b/debian/patches-rt/0228-random-Make-it-work-on-rt.patch @@ -1,8 +1,8 @@ -From c9ed52a80deb0f924bfe5c5062f0395f234017dc Mon Sep 17 00:00:00 2001 +From 5310182891f60d9a88c1abbc7512eca69f680a99 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 21 Aug 2012 20:38:50 +0200 -Subject: [PATCH 230/266] random: Make it work on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 228/264] random: Make it work on rt +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Delegate the random insertion to the forced threaded interrupt handler. Store the return IP of the hard interrupt handler in the irq @@ -99,10 +99,10 @@ index 9aa18f387a34..39aaa14993cc 100644 /* diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h -index dd1e40ddac7d..f8796e6e9e8a 100644 +index 875c41b23f20..ff5eb8d1ede4 100644 --- a/include/linux/irqdesc.h +++ b/include/linux/irqdesc.h -@@ -70,6 +70,7 @@ struct irq_desc { +@@ -71,6 +71,7 @@ struct irq_desc { unsigned int irqs_unhandled; atomic_t threads_handled; int threads_handled_last; diff --git a/debian/patches-rt/0231-random-avoid-preempt_disable-ed-section.patch b/debian/patches-rt/0229-random-avoid-preempt_disable-ed-section.patch similarity index 94% rename from debian/patches-rt/0231-random-avoid-preempt_disable-ed-section.patch rename to debian/patches-rt/0229-random-avoid-preempt_disable-ed-section.patch index fe0a43ad4..a9d1664f3 100644 --- a/debian/patches-rt/0231-random-avoid-preempt_disable-ed-section.patch +++ b/debian/patches-rt/0229-random-avoid-preempt_disable-ed-section.patch @@ -1,8 +1,8 @@ -From d607e6cd468a930b893f032564747b95466a9704 Mon Sep 17 00:00:00 2001 +From 58450ccb54ddabe50f8c0990f4ea69f7cdaabdac Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 12 May 2017 15:46:17 +0200 -Subject: [PATCH 231/266] random: avoid preempt_disable()ed section -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 229/264] random: avoid preempt_disable()ed section +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz extract_crng() will use sleeping locks while in a preempt_disable() section due to get_cpu_var(). diff --git a/debian/patches-rt/0232-cpu-hotplug-Implement-CPU-pinning.patch b/debian/patches-rt/0230-cpu-hotplug-Implement-CPU-pinning.patch similarity index 87% rename from debian/patches-rt/0232-cpu-hotplug-Implement-CPU-pinning.patch rename to debian/patches-rt/0230-cpu-hotplug-Implement-CPU-pinning.patch index 9a78f2e21..97227b4e8 100644 --- a/debian/patches-rt/0232-cpu-hotplug-Implement-CPU-pinning.patch +++ b/debian/patches-rt/0230-cpu-hotplug-Implement-CPU-pinning.patch @@ -1,8 +1,8 @@ -From 648b8e5d6b23936164d2ccf52df6f5169bfc7e90 Mon Sep 17 00:00:00 2001 +From d4c787bcf728f34398550a7ad54acb389cd41654 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 19 Jul 2017 17:31:20 +0200 -Subject: [PATCH 232/266] cpu/hotplug: Implement CPU pinning -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 230/264] cpu/hotplug: Implement CPU pinning +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Thomas Gleixner --- @@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner 2 files changed, 39 insertions(+) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 320be04498a9..f4bd8754744b 100644 +index 76e6cdafb992..0445d5c7ced0 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -671,6 +671,7 @@ struct task_struct { @@ -23,7 +23,7 @@ index 320be04498a9..f4bd8754744b 100644 int migrate_disable_atomic; # endif diff --git a/kernel/cpu.c b/kernel/cpu.c -index e244bc4d2157..9fb2fcd1a5c8 100644 +index f684f41492d3..3340c4f873ad 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -75,6 +75,11 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = { @@ -81,7 +81,7 @@ index e244bc4d2157..9fb2fcd1a5c8 100644 } DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock); -@@ -828,6 +861,7 @@ static int take_cpu_down(void *_param) +@@ -853,6 +886,7 @@ static int take_cpu_down(void *_param) static int takedown_cpu(unsigned int cpu) { @@ -89,7 +89,7 @@ index e244bc4d2157..9fb2fcd1a5c8 100644 struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); int err; -@@ -840,11 +874,14 @@ static int takedown_cpu(unsigned int cpu) +@@ -865,11 +899,14 @@ static int takedown_cpu(unsigned int cpu) */ irq_lock_sparse(); @@ -104,7 +104,7 @@ index e244bc4d2157..9fb2fcd1a5c8 100644 /* CPU refused to die */ irq_unlock_sparse(); /* Unpark the hotplug thread so we can rollback there */ -@@ -863,6 +900,7 @@ static int takedown_cpu(unsigned int cpu) +@@ -888,6 +925,7 @@ static int takedown_cpu(unsigned int cpu) wait_for_ap_thread(st, false); BUG_ON(st->state != CPUHP_AP_IDLE_DEAD); diff --git a/debian/patches-rt/0233-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch b/debian/patches-rt/0231-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch similarity index 81% rename from debian/patches-rt/0233-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch rename to debian/patches-rt/0231-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch index 2a25a4f13..72ac5f0b1 100644 --- a/debian/patches-rt/0233-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch +++ b/debian/patches-rt/0231-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch @@ -1,9 +1,9 @@ -From 8e2b950fa322a31581bd93b5e9c91640d3f6cfd3 Mon Sep 17 00:00:00 2001 +From 579810b4daa730ec872b6c1e8940d5ab6625bb44 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 19 Aug 2018 08:28:35 +0200 -Subject: [PATCH 233/266] sched: Allow pinned user tasks to be awakened to the +Subject: [PATCH 231/264] sched: Allow pinned user tasks to be awakened to the CPU they pinned -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Since commit 7af443ee16976 ("sched/core: Require cpu_active() in select_task_rq(), for user tasks") select_fallback_rq() will BUG() if @@ -22,10 +22,10 @@ Signed-off-by: Sebastian Andrzej Siewior 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index afae5090e573..3ae90dfa36da 100644 +index 1cd1abc45097..960271e088ab 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -903,7 +903,7 @@ static inline bool is_cpu_allowed(struct task_struct *p, int cpu) +@@ -904,7 +904,7 @@ static inline bool is_cpu_allowed(struct task_struct *p, int cpu) if (!cpumask_test_cpu(cpu, p->cpus_ptr)) return false; diff --git a/debian/patches-rt/0234-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/debian/patches-rt/0232-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch similarity index 86% rename from debian/patches-rt/0234-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch rename to debian/patches-rt/0232-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch index 24ba0fc6d..3214fa7a1 100644 --- a/debian/patches-rt/0234-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch +++ b/debian/patches-rt/0232-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch @@ -1,8 +1,8 @@ -From 74306a17fd2310c2c18ac38a6c9c8c8a72dd5fbc Mon Sep 17 00:00:00 2001 +From e8484e1a8250b915f8da072e0693769465f9e956 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 4 Aug 2017 18:31:00 +0200 -Subject: [PATCH 234/266] hotplug: duct-tape RT-rwlock usage for non-RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 232/264] hotplug: duct-tape RT-rwlock usage for non-RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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 @@ -14,7 +14,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 9fb2fcd1a5c8..580bf6fc4f5d 100644 +index 3340c4f873ad..ad2d23d9fee2 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -75,7 +75,7 @@ static DEFINE_PER_CPU(struct cpuhp_cpu_state, cpuhp_state) = { @@ -58,7 +58,7 @@ index 9fb2fcd1a5c8..580bf6fc4f5d 100644 } DEFINE_STATIC_PERCPU_RWSEM(cpu_hotplug_lock); -@@ -861,7 +865,9 @@ static int take_cpu_down(void *_param) +@@ -886,7 +890,9 @@ static int take_cpu_down(void *_param) static int takedown_cpu(unsigned int cpu) { @@ -68,7 +68,7 @@ index 9fb2fcd1a5c8..580bf6fc4f5d 100644 struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); int err; -@@ -874,14 +880,18 @@ static int takedown_cpu(unsigned int cpu) +@@ -899,14 +905,18 @@ static int takedown_cpu(unsigned int cpu) */ irq_lock_sparse(); @@ -87,7 +87,7 @@ index 9fb2fcd1a5c8..580bf6fc4f5d 100644 /* CPU refused to die */ irq_unlock_sparse(); /* Unpark the hotplug thread so we can rollback there */ -@@ -900,7 +910,9 @@ static int takedown_cpu(unsigned int cpu) +@@ -925,7 +935,9 @@ static int takedown_cpu(unsigned int cpu) wait_for_ap_thread(st, false); BUG_ON(st->state != CPUHP_AP_IDLE_DEAD); diff --git a/debian/patches-rt/0235-net-Remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/0233-net-Remove-preemption-disabling-in-netif_rx.patch similarity index 85% rename from debian/patches-rt/0235-net-Remove-preemption-disabling-in-netif_rx.patch rename to debian/patches-rt/0233-net-Remove-preemption-disabling-in-netif_rx.patch index 0349f7cbb..dde0d289a 100644 --- a/debian/patches-rt/0235-net-Remove-preemption-disabling-in-netif_rx.patch +++ b/debian/patches-rt/0233-net-Remove-preemption-disabling-in-netif_rx.patch @@ -1,8 +1,8 @@ -From 0e5d84d9d8c76899bc02a8275b2f0e65da5dadfc Mon Sep 17 00:00:00 2001 +From d11da9d22d701a9a3e48a6ce8b2e94bfb3c922c2 Mon Sep 17 00:00:00 2001 From: Priyanka Jain Date: Thu, 17 May 2012 09:35:11 +0530 -Subject: [PATCH 235/266] net: Remove preemption disabling in netif_rx() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 233/264] net: Remove preemption disabling in netif_rx() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by @@ -36,10 +36,10 @@ 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 b4028addf291..7d3f923a0436 100644 +index 50fe1e3ee26d..0c7238cc6ae2 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4470,7 +4470,7 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4484,7 +4484,7 @@ static int netif_rx_internal(struct sk_buff *skb) struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; @@ -48,7 +48,7 @@ index b4028addf291..7d3f923a0436 100644 rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); -@@ -4480,14 +4480,14 @@ static int netif_rx_internal(struct sk_buff *skb) +@@ -4494,14 +4494,14 @@ static int netif_rx_internal(struct sk_buff *skb) ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); diff --git a/debian/patches-rt/0236-net-Another-local_irq_disable-kmalloc-headache.patch b/debian/patches-rt/0234-net-Another-local_irq_disable-kmalloc-headache.patch similarity index 90% rename from debian/patches-rt/0236-net-Another-local_irq_disable-kmalloc-headache.patch rename to debian/patches-rt/0234-net-Another-local_irq_disable-kmalloc-headache.patch index 0a27eb9f8..cea30a048 100644 --- a/debian/patches-rt/0236-net-Another-local_irq_disable-kmalloc-headache.patch +++ b/debian/patches-rt/0234-net-Another-local_irq_disable-kmalloc-headache.patch @@ -1,8 +1,8 @@ -From 987dcd48a15be9b3628b0494136908e55b9e5f00 Mon Sep 17 00:00:00 2001 +From c82cf443e33d996e2ec0d6ea914dbb03c9540f12 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 26 Sep 2012 16:21:08 +0200 -Subject: [PATCH 236/266] net: Another local_irq_disable/kmalloc headache -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 234/264] net: Another local_irq_disable/kmalloc headache +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Replace it by a local lock. Though that's pretty inefficient :( @@ -12,7 +12,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 8656b1e20d35..3f3b9e06c9e8 100644 +index 8b5768113acd..f89d5388ea07 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -63,6 +63,7 @@ diff --git a/debian/patches-rt/0237-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/debian/patches-rt/0235-net-core-protect-users-of-napi_alloc_cache-against-r.patch similarity index 95% rename from debian/patches-rt/0237-net-core-protect-users-of-napi_alloc_cache-against-r.patch rename to debian/patches-rt/0235-net-core-protect-users-of-napi_alloc_cache-against-r.patch index 9a1fd8fd6..7851a4ec9 100644 --- a/debian/patches-rt/0237-net-core-protect-users-of-napi_alloc_cache-against-r.patch +++ b/debian/patches-rt/0235-net-core-protect-users-of-napi_alloc_cache-against-r.patch @@ -1,9 +1,9 @@ -From 29f6e57de6c190abc11019bce2efbffdcc50bc18 Mon Sep 17 00:00:00 2001 +From aee85b9563699974c6712aa097ca316a0ad1949b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 15 Jan 2016 16:33:34 +0100 -Subject: [PATCH 237/266] net/core: protect users of napi_alloc_cache against +Subject: [PATCH 235/264] net/core: protect users of napi_alloc_cache against reentrance -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On -RT the code running in BH can not be moved to another CPU so CPU local variable remain local. However the code can be preempted @@ -18,7 +18,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 3f3b9e06c9e8..bc27edb6a316 100644 +index f89d5388ea07..e20b1f25a273 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -332,6 +332,7 @@ struct napi_alloc_cache { diff --git a/debian/patches-rt/0238-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch b/debian/patches-rt/0236-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch similarity index 93% rename from debian/patches-rt/0238-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch rename to debian/patches-rt/0236-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch index b6956f651..ea1c767f8 100644 --- a/debian/patches-rt/0238-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch +++ b/debian/patches-rt/0236-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch @@ -1,9 +1,9 @@ -From 02efcce7d36253d7b375cf6424b874833ee9f32c Mon Sep 17 00:00:00 2001 +From 0cabd4b2f5b341ccb079e8a59ec58999bd69ed9b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Sun, 28 Oct 2012 11:18:08 +0100 -Subject: [PATCH 238/266] net: netfilter: Serialize xt_write_recseq sections on +Subject: [PATCH 236/264] net: netfilter: Serialize xt_write_recseq sections on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The netfilter code relies only on the implicit semantics of local_bh_disable() for serializing wt_write_recseq sections. RT breaks diff --git a/debian/patches-rt/0239-net-Add-a-mutex-around-devnet_rename_seq.patch b/debian/patches-rt/0237-net-Add-a-mutex-around-devnet_rename_seq.patch similarity index 81% rename from debian/patches-rt/0239-net-Add-a-mutex-around-devnet_rename_seq.patch rename to debian/patches-rt/0237-net-Add-a-mutex-around-devnet_rename_seq.patch index 692005642..df88ebe8a 100644 --- a/debian/patches-rt/0239-net-Add-a-mutex-around-devnet_rename_seq.patch +++ b/debian/patches-rt/0237-net-Add-a-mutex-around-devnet_rename_seq.patch @@ -1,8 +1,8 @@ -From 3f9f4bd60152113147989ef17257a50d8b5e419d Mon Sep 17 00:00:00 2001 +From 7beec1c3857d0010fff01b209cbb4fa4c6674c1b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 20 Mar 2013 18:06:20 +0100 -Subject: [PATCH 239/266] net: Add a mutex around devnet_rename_seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 237/264] net: Add a mutex around devnet_rename_seq +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On RT write_seqcount_begin() disables preemption and device_rename() allocates memory with GFP_KERNEL and grabs later the sysfs_mutex @@ -21,9 +21,11 @@ Signed-off-by: Thomas Gleixner net/core/dev.c | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) +diff --git a/net/core/dev.c b/net/core/dev.c +index 0c7238cc6ae2..848937d85a41 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -195,6 +195,7 @@ static unsigned int napi_gen_id = NR_CPU +@@ -195,6 +195,7 @@ static unsigned int napi_gen_id = NR_CPUS; static DEFINE_READ_MOSTLY_HASHTABLE(napi_hash, 8); static seqcount_t devnet_rename_seq; @@ -31,7 +33,7 @@ Signed-off-by: Thomas Gleixner static inline void dev_base_seq_inc(struct net *net) { -@@ -920,7 +921,8 @@ retry: +@@ -920,7 +921,8 @@ int netdev_get_name(struct net *net, char *name, int ifindex) strcpy(name, dev->name); rcu_read_unlock(); if (read_seqcount_retry(&devnet_rename_seq, seq)) { @@ -41,7 +43,7 @@ Signed-off-by: Thomas Gleixner goto retry; } -@@ -1197,20 +1199,17 @@ int dev_change_name(struct net_device *d +@@ -1197,20 +1199,17 @@ int dev_change_name(struct net_device *dev, const char *newname) likely(!(dev->priv_flags & IFF_LIVE_RENAME_OK))) return -EBUSY; @@ -68,7 +70,7 @@ Signed-off-by: Thomas Gleixner if (oldname[0] && !strchr(oldname, '%')) netdev_info(dev, "renamed from %s\n", oldname); -@@ -1223,11 +1222,12 @@ rollback: +@@ -1223,11 +1222,12 @@ int dev_change_name(struct net_device *dev, const char *newname) if (ret) { memcpy(dev->name, oldname, IFNAMSIZ); dev->name_assign_type = old_assign_type; @@ -84,7 +86,7 @@ Signed-off-by: Thomas Gleixner netdev_adjacent_rename_links(dev, oldname); -@@ -1248,7 +1248,8 @@ rollback: +@@ -1248,7 +1248,8 @@ int dev_change_name(struct net_device *dev, const char *newname) /* err >= 0 after dev_alloc_name() or stores the first errno */ if (err >= 0) { err = ret; @@ -94,7 +96,7 @@ Signed-off-by: Thomas Gleixner memcpy(dev->name, oldname, IFNAMSIZ); memcpy(oldname, newname, IFNAMSIZ); dev->name_assign_type = old_assign_type; -@@ -1261,6 +1262,11 @@ rollback: +@@ -1261,6 +1262,11 @@ int dev_change_name(struct net_device *dev, const char *newname) } return err; @@ -106,3 +108,6 @@ Signed-off-by: Thomas Gleixner } /** +-- +2.20.1 + diff --git a/debian/patches-rt/0240-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch b/debian/patches-rt/0238-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch similarity index 93% rename from debian/patches-rt/0240-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch rename to debian/patches-rt/0238-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch index 2f4bac41c..4e2de336e 100644 --- a/debian/patches-rt/0240-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +++ b/debian/patches-rt/0238-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch @@ -1,9 +1,9 @@ -From 77fce3edd290f7c5c4fcf858ed242aa60c62b984 Mon Sep 17 00:00:00 2001 +From fdee0604e425474b4b3ba2935764f5b995764ba4 Mon Sep 17 00:00:00 2001 From: Yong Zhang Date: Mon, 16 Apr 2012 15:01:56 +0800 -Subject: [PATCH 240/266] lockdep: selftest: Only do hardirq context test for +Subject: [PATCH 238/264] lockdep: selftest: Only do hardirq context test for raw spinlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz On -rt there is no softirq context any more and rwlock is sleepable, disable softirq context test and rwlock+irq test. diff --git a/debian/patches-rt/0241-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/0239-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch similarity index 96% rename from debian/patches-rt/0241-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch rename to debian/patches-rt/0239-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch index 65ee4012f..a26109855 100644 --- a/debian/patches-rt/0241-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +++ b/debian/patches-rt/0239-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -1,9 +1,9 @@ -From 0446455888db835ab4752900736f86b7ca18f5f3 Mon Sep 17 00:00:00 2001 +From 726d6192b03ebe0886b0592a3cb6e071b84f9580 Mon Sep 17 00:00:00 2001 From: Josh Cartwright Date: Wed, 28 Jan 2015 13:08:45 -0600 -Subject: [PATCH 241/266] lockdep: selftest: fix warnings due to missing +Subject: [PATCH 239/264] lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz "lockdep: Selftest: Only do hardirq context test for raw spinlock" disabled the execution of certain tests with PREEMPT_RT_FULL, but did diff --git a/debian/patches-rt/0242-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0240-sched-Add-support-for-lazy-preemption.patch similarity index 94% rename from debian/patches-rt/0242-sched-Add-support-for-lazy-preemption.patch rename to debian/patches-rt/0240-sched-Add-support-for-lazy-preemption.patch index d9bf072ed..6b60e5d0c 100644 --- a/debian/patches-rt/0242-sched-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0240-sched-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From e191c8b2ec2810646a31e0ab366d8a94f8332e65 Mon Sep 17 00:00:00 2001 +From ccc79764a3c2281d5d0f7e15ba4628bceabd7a37 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 26 Oct 2012 18:50:54 +0100 -Subject: [PATCH 242/266] sched: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 240/264] sched: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -144,7 +144,7 @@ index ed8413e7140f..9c74a019bf57 100644 } while (0) diff --git a/include/linux/sched.h b/include/linux/sched.h -index f4bd8754744b..5e87f7429c26 100644 +index 0445d5c7ced0..dd95bd64504e 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1725,6 +1725,44 @@ static inline int test_tsk_need_resched(struct task_struct *tsk) @@ -245,7 +245,7 @@ index 907d72b3ba95..306567f72a3e 100644 prompt "Preemption Model" default PREEMPT_NONE diff --git a/kernel/cpu.c b/kernel/cpu.c -index 580bf6fc4f5d..8f295d3a6270 100644 +index ad2d23d9fee2..46118ba36e3e 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -304,11 +304,13 @@ void pin_current_cpu(void) @@ -263,10 +263,10 @@ index 580bf6fc4f5d..8f295d3a6270 100644 __read_rt_unlock(cpuhp_pin); goto again; diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 3ae90dfa36da..9811d79d19ba 100644 +index 960271e088ab..6d06dd682cd5 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -492,6 +492,48 @@ void resched_curr(struct rq *rq) +@@ -493,6 +493,48 @@ void resched_curr(struct rq *rq) trace_sched_wake_idle_without_ipi(cpu); } @@ -315,7 +315,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 void resched_cpu(int cpu) { struct rq *rq = cpu_rq(cpu); -@@ -2404,6 +2446,9 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) +@@ -2405,6 +2447,9 @@ int sched_fork(unsigned long clone_flags, struct task_struct *p) p->on_cpu = 0; #endif init_task_preempt_count(p); @@ -325,7 +325,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 #ifdef CONFIG_SMP plist_node_init(&p->pushable_tasks, MAX_PRIO); RB_CLEAR_NODE(&p->pushable_dl_tasks); -@@ -3471,6 +3516,7 @@ static void __sched notrace __schedule(bool preempt) +@@ -3472,6 +3517,7 @@ static void __sched notrace __schedule(bool preempt) next = pick_next_task(rq, prev, &rf); clear_tsk_need_resched(prev); @@ -333,7 +333,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 clear_preempt_need_resched(); if (likely(prev != next)) { -@@ -3651,6 +3697,30 @@ static void __sched notrace preempt_schedule_common(void) +@@ -3652,6 +3698,30 @@ static void __sched notrace preempt_schedule_common(void) } while (need_resched()); } @@ -364,7 +364,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 #ifdef CONFIG_PREEMPT /* * this is the entry point to schedule() from in-kernel preemption -@@ -3665,7 +3735,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void) +@@ -3666,7 +3736,8 @@ asmlinkage __visible void __sched notrace preempt_schedule(void) */ if (likely(!preemptible())) return; @@ -374,7 +374,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 preempt_schedule_common(); } NOKPROBE_SYMBOL(preempt_schedule); -@@ -3692,6 +3763,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void) +@@ -3693,6 +3764,9 @@ asmlinkage __visible void __sched notrace preempt_schedule_notrace(void) if (likely(!preemptible())) return; @@ -384,7 +384,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 do { /* * Because the function tracer can trace preempt_count_sub() -@@ -5460,7 +5534,9 @@ void init_idle(struct task_struct *idle, int cpu) +@@ -5461,7 +5535,9 @@ void init_idle(struct task_struct *idle, int cpu) /* Set the preempt count _outside_ the spinlocks! */ init_idle_preempt_count(idle, cpu); @@ -395,7 +395,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 /* * The idle tasks have their own, simple scheduling class: */ -@@ -7182,6 +7258,7 @@ void migrate_disable(void) +@@ -7183,6 +7259,7 @@ void migrate_disable(void) } preempt_disable(); @@ -403,7 +403,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 pin_current_cpu(); migrate_disable_update_cpus_allowed(p); -@@ -7249,6 +7326,7 @@ void migrate_enable(void) +@@ -7250,6 +7327,7 @@ void migrate_enable(void) arg.dest_cpu = dest_cpu; unpin_current_cpu(); @@ -411,7 +411,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 preempt_enable(); stop_one_cpu(task_cpu(p), migration_cpu_stop, &arg); tlb_migrate_finish(p->mm); -@@ -7257,6 +7335,7 @@ void migrate_enable(void) +@@ -7258,6 +7336,7 @@ void migrate_enable(void) } } unpin_current_cpu(); @@ -420,7 +420,7 @@ index 3ae90dfa36da..9811d79d19ba 100644 } EXPORT_SYMBOL(migrate_enable); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 09a1e32c366f..e2ee22587fb3 100644 +index c17d63b06026..3b29a0b6748a 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -4017,7 +4017,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) @@ -459,7 +459,7 @@ index 09a1e32c366f..e2ee22587fb3 100644 } static __always_inline -@@ -5038,7 +5038,7 @@ static void hrtick_start_fair(struct rq *rq, struct task_struct *p) +@@ -5063,7 +5063,7 @@ static void hrtick_start_fair(struct rq *rq, struct task_struct *p) if (delta < 0) { if (rq->curr == p) @@ -468,7 +468,7 @@ index 09a1e32c366f..e2ee22587fb3 100644 return; } hrtick_start(rq, delta); -@@ -6614,7 +6614,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ +@@ -6639,7 +6639,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_ return; preempt: @@ -477,7 +477,7 @@ index 09a1e32c366f..e2ee22587fb3 100644 /* * Only set the backward buddy when the current task is still * on the rq. This can happen when a wakeup gets interleaved -@@ -9701,7 +9701,7 @@ static void task_fork_fair(struct task_struct *p) +@@ -9726,7 +9726,7 @@ static void task_fork_fair(struct task_struct *p) * 'current' within the tree based on its new key value. */ swap(curr->vruntime, se->vruntime); @@ -486,7 +486,7 @@ index 09a1e32c366f..e2ee22587fb3 100644 } se->vruntime -= cfs_rq->min_vruntime; -@@ -9725,7 +9725,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio) +@@ -9750,7 +9750,7 @@ prio_changed_fair(struct rq *rq, struct task_struct *p, int oldprio) */ if (rq->curr == p) { if (p->prio > oldprio) @@ -510,7 +510,7 @@ index 68de18405857..12a12be6770b 100644 /* diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h -index 74750997b061..780be08170d7 100644 +index dd6ae39957ce..58d3972ae0d4 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -1638,6 +1638,15 @@ extern void reweight_task(struct task_struct *p, int prio); @@ -530,7 +530,7 @@ index 74750997b061..780be08170d7 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 ff041c26dbb4..1a07fe69dd37 100644 +index 0af14953d52d..02a29282b828 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -2134,6 +2134,7 @@ tracing_generic_entry_update(struct trace_entry *entry, unsigned long flags, diff --git a/debian/patches-rt/0243-ftrace-Fix-trace-header-alignment.patch b/debian/patches-rt/0241-ftrace-Fix-trace-header-alignment.patch similarity index 91% rename from debian/patches-rt/0243-ftrace-Fix-trace-header-alignment.patch rename to debian/patches-rt/0241-ftrace-Fix-trace-header-alignment.patch index d36769f1e..be101ee65 100644 --- a/debian/patches-rt/0243-ftrace-Fix-trace-header-alignment.patch +++ b/debian/patches-rt/0241-ftrace-Fix-trace-header-alignment.patch @@ -1,8 +1,8 @@ -From 8e8c6e698ff89c0ce02e1ec2087b11d65b257442 Mon Sep 17 00:00:00 2001 +From 9dc4f4dc93a57dce9f30fb429753a23f0e339749 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 16 Oct 2016 05:08:30 +0200 -Subject: [PATCH 243/266] ftrace: Fix trace header alignment -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 241/264] ftrace: Fix trace header alignment +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Line up helper arrows to the right column. @@ -15,7 +15,7 @@ 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 1a07fe69dd37..1b5a223fd69a 100644 +index 02a29282b828..fb2ff2dfd134 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -3348,17 +3348,17 @@ get_total_entries(struct trace_buffer *buf, diff --git a/debian/patches-rt/0244-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0242-x86-Support-for-lazy-preemption.patch similarity index 96% rename from debian/patches-rt/0244-x86-Support-for-lazy-preemption.patch rename to debian/patches-rt/0242-x86-Support-for-lazy-preemption.patch index ffda26a91..b9f386bfb 100644 --- a/debian/patches-rt/0244-x86-Support-for-lazy-preemption.patch +++ b/debian/patches-rt/0242-x86-Support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 0bf47192a779dfefe044cdd60717b9d5bd4b53b4 Mon Sep 17 00:00:00 2001 +From 85dc65ec7e8efc7a7842a1c52b964fe3a5f3214e Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 11:03:47 +0100 -Subject: [PATCH 244/266] x86: Support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 242/264] x86: Support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Implement the x86 pieces for lazy preempt. @@ -18,7 +18,7 @@ Signed-off-by: Thomas Gleixner 7 files changed, 79 insertions(+), 3 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 8c56260bdf84..28f8cd79aa74 100644 +index 1b05ae86bdde..736e369e141b 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -180,6 +180,7 @@ config X86 @@ -82,10 +82,10 @@ index fbbf1ba57ec6..0169c257cfff 100644 jz restore_all_kernel call preempt_schedule_irq diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S -index fbbf9ce28af1..826262a5868e 100644 +index ce2a6587ed11..d01d68de64ae 100644 --- a/arch/x86/entry/entry_64.S +++ b/arch/x86/entry/entry_64.S -@@ -705,7 +705,23 @@ retint_kernel: +@@ -706,7 +706,23 @@ retint_kernel: btl $9, EFLAGS(%rsp) /* were interrupts off? */ jnc 1f 0: cmpl $0, PER_CPU_VAR(__preempt_count) diff --git a/debian/patches-rt/0245-x86-lazy-preempt-properly-check-against-preempt-mask.patch b/debian/patches-rt/0243-x86-lazy-preempt-properly-check-against-preempt-mask.patch similarity index 86% rename from debian/patches-rt/0245-x86-lazy-preempt-properly-check-against-preempt-mask.patch rename to debian/patches-rt/0243-x86-lazy-preempt-properly-check-against-preempt-mask.patch index 7eb2260e2..cbc7263f4 100644 --- a/debian/patches-rt/0245-x86-lazy-preempt-properly-check-against-preempt-mask.patch +++ b/debian/patches-rt/0243-x86-lazy-preempt-properly-check-against-preempt-mask.patch @@ -1,9 +1,9 @@ -From 3aca0b7f02e232494aeac9cd55afc698bf8f3e29 Mon Sep 17 00:00:00 2001 +From d35f3a1ee1cf19c8b8aefe555a8af80a5f5b8fe1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 18 Feb 2019 16:57:09 +0100 -Subject: [PATCH 245/266] x86: lazy-preempt: properly check against +Subject: [PATCH 243/264] x86: lazy-preempt: properly check against preempt-mask -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz should_resched() should check against preempt_offset after unmasking the need-resched-bit. Otherwise should_resched() won't work for diff --git a/debian/patches-rt/0246-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch b/debian/patches-rt/0244-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch similarity index 89% rename from debian/patches-rt/0246-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch rename to debian/patches-rt/0244-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch index 7512d3451..f602c43ac 100644 --- a/debian/patches-rt/0246-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch +++ b/debian/patches-rt/0244-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch @@ -1,9 +1,9 @@ -From 094d90481f6be0ffabaecf80017a607fb51167a1 Mon Sep 17 00:00:00 2001 +From 48a22e409d7de1904f5577d83d0c8f9cb69ce766 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Feb 2019 14:53:49 +0100 -Subject: [PATCH 246/266] x86: lazy-preempt: use proper return label on +Subject: [PATCH 244/264] x86: lazy-preempt: use proper return label on 32bit-x86 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The lazy-preempt uses the wrong return label in case preemption isn't possible. This results crash while returning to the kernel. diff --git a/debian/patches-rt/0247-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0245-arm-Add-support-for-lazy-preemption.patch similarity index 97% rename from debian/patches-rt/0247-arm-Add-support-for-lazy-preemption.patch rename to debian/patches-rt/0245-arm-Add-support-for-lazy-preemption.patch index 04784fbf1..ea159e15a 100644 --- a/debian/patches-rt/0247-arm-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0245-arm-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 27abc6e47b12fa13152b6642facc203874ca16c7 Mon Sep 17 00:00:00 2001 +From 4b5643e59aaece3f42def2a9ea0fe2dd07cab601 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 31 Oct 2012 12:04:11 +0100 -Subject: [PATCH 247/266] arm: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 245/264] arm: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Implement the arm pieces for lazy preempt. diff --git a/debian/patches-rt/0248-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0246-powerpc-Add-support-for-lazy-preemption.patch similarity index 94% rename from debian/patches-rt/0248-powerpc-Add-support-for-lazy-preemption.patch rename to debian/patches-rt/0246-powerpc-Add-support-for-lazy-preemption.patch index ba0fc4c1b..4ae796c97 100644 --- a/debian/patches-rt/0248-powerpc-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0246-powerpc-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 6e5f05d1ca90b51f8bce63ea76b4af56c7d5cb6c Mon Sep 17 00:00:00 2001 +From 0f9163aaaab913d5d2fe2dc92e8c82e588eef09b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 10:14:11 +0100 -Subject: [PATCH 248/266] powerpc: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 246/264] powerpc: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Implement the powerpc pieces for lazy preempt. @@ -141,10 +141,10 @@ index 26b3f853cbf6..3783f3ef17a4 100644 andi. r0,r9,_TIF_USER_WORK_MASK beq restore_user diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S -index 2206912ea4f0..970c3643789a 100644 +index 7a46e0e57a36..7671fa5da9fa 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S -@@ -171,7 +171,7 @@ system_call: /* label this so stack traces look sane */ +@@ -176,7 +176,7 @@ system_call: /* label this so stack traces look sane */ * based on caller's run-mode / personality. */ ld r11,SYS_CALL_TABLE@toc(2) @@ -153,7 +153,7 @@ index 2206912ea4f0..970c3643789a 100644 beq 15f addi r11,r11,8 /* use 32-bit syscall entries */ clrldi r3,r3,32 -@@ -763,7 +763,7 @@ _GLOBAL(ret_from_except_lite) +@@ -768,7 +768,7 @@ _GLOBAL(ret_from_except_lite) bl restore_math b restore #endif @@ -162,7 +162,7 @@ index 2206912ea4f0..970c3643789a 100644 beq 2f bl restore_interrupts SCHEDULE_USER -@@ -825,10 +825,18 @@ resume_kernel: +@@ -830,10 +830,18 @@ resume_kernel: #ifdef CONFIG_PREEMPT /* Check if we need to preempt */ @@ -182,7 +182,7 @@ index 2206912ea4f0..970c3643789a 100644 cmpwi cr0,r8,0 bne restore ld r0,SOFTE(r1) -@@ -845,7 +853,7 @@ resume_kernel: +@@ -850,7 +858,7 @@ resume_kernel: /* Re-test flags and eventually loop */ CURRENT_THREAD_INFO(r9, r1) ld r4,TI_FLAGS(r9) diff --git a/debian/patches-rt/0249-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0247-arch-arm64-Add-lazy-preempt-support.patch similarity index 97% rename from debian/patches-rt/0249-arch-arm64-Add-lazy-preempt-support.patch rename to debian/patches-rt/0247-arch-arm64-Add-lazy-preempt-support.patch index 2675a4de3..0240e2ac0 100644 --- a/debian/patches-rt/0249-arch-arm64-Add-lazy-preempt-support.patch +++ b/debian/patches-rt/0247-arch-arm64-Add-lazy-preempt-support.patch @@ -1,8 +1,8 @@ -From ac569db45631d8be8ac90304342ef8370d4e3826 Mon Sep 17 00:00:00 2001 +From 896a4ed8a9134811455719d2bc0ba8e5248c5a0f Mon Sep 17 00:00:00 2001 From: Anders Roxell Date: Thu, 14 May 2015 17:52:17 +0200 -Subject: [PATCH 249/266] arch/arm64: Add lazy preempt support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 247/264] arch/arm64: Add lazy preempt support +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz arm64 is missing support for PREEMPT_RT. The main feature which is lacking is support for lazy preemption. The arch-specific entry code, diff --git a/debian/patches-rt/0250-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches-rt/0248-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch similarity index 94% rename from debian/patches-rt/0250-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch rename to debian/patches-rt/0248-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch index dfaf880cb..5e0f78619 100644 --- a/debian/patches-rt/0250-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +++ b/debian/patches-rt/0248-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch @@ -1,9 +1,9 @@ -From 8a3ebce56251a19129b169e40504a4d841775496 Mon Sep 17 00:00:00 2001 +From 221c555911b760b4e7b8712860fe2368dd85d4e2 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 16 Oct 2016 05:11:54 +0200 -Subject: [PATCH 250/266] connector/cn_proc: Protect send_msg() with a local +Subject: [PATCH 248/264] connector/cn_proc: Protect send_msg() with a local lock on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 |in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep diff --git a/debian/patches-rt/0251-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/0249-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch similarity index 94% rename from debian/patches-rt/0251-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch rename to debian/patches-rt/0249-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch index 370b8d7ad..95eb11f6b 100644 --- a/debian/patches-rt/0251-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +++ b/debian/patches-rt/0249-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -1,9 +1,9 @@ -From 596390e9ca896b8f80a6c5736f3e0fb63c26ca57 Mon Sep 17 00:00:00 2001 +From 666113236b467b8463b3a9f1976d21bd61e8f88e Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 31 Mar 2016 04:08:28 +0200 -Subject: [PATCH 251/266] drivers/block/zram: Replace bit spinlocks with +Subject: [PATCH 249/264] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz They're nondeterministic, and lead to ___might_sleep() splats in -rt. OTOH, they're a lot less wasteful than an rtmutex per page. diff --git a/debian/patches-rt/0252-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches-rt/0250-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch similarity index 95% rename from debian/patches-rt/0252-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch rename to debian/patches-rt/0250-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch index 416b5c1ab..6cec4d8d7 100644 --- a/debian/patches-rt/0252-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +++ b/debian/patches-rt/0250-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch @@ -1,9 +1,9 @@ -From 804440336b04875f7b737fd5cdcfb118c416340c Mon Sep 17 00:00:00 2001 +From 84d4ca0b3c56c0dbc248508726c5f69cbf14d0cc Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 20 Oct 2016 11:15:22 +0200 -Subject: [PATCH 252/266] drivers/zram: Don't disable preemption in +Subject: [PATCH 250/264] drivers/zram: Don't disable preemption in zcomp_stream_get/put() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz In v4.7, the driver switched to percpu compression streams, disabling preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We diff --git a/debian/patches-rt/0253-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/debian/patches-rt/0251-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch similarity index 89% rename from debian/patches-rt/0253-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch rename to debian/patches-rt/0251-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch index 851f381af..2ff87cd59 100644 --- a/debian/patches-rt/0253-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch +++ b/debian/patches-rt/0251-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch @@ -1,9 +1,9 @@ -From 8f12c2d0304bfa4554e0216fa621b0cdb8bd99b6 Mon Sep 17 00:00:00 2001 +From 24fddbe29940c9217a8e2f5e9443ca29f941281a Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Wed, 23 Aug 2017 11:57:29 +0200 -Subject: [PATCH 253/266] drivers/zram: fix zcomp_stream_get() +Subject: [PATCH 251/264] drivers/zram: fix zcomp_stream_get() smp_processor_id() use in preemptible code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Use get_local_ptr() instead this_cpu_ptr() to avoid a warning regarding smp_processor_id() in preemptible code. diff --git a/debian/patches-rt/0254-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0252-tpm_tis-fix-stall-after-iowrite-s.patch similarity index 94% rename from debian/patches-rt/0254-tpm_tis-fix-stall-after-iowrite-s.patch rename to debian/patches-rt/0252-tpm_tis-fix-stall-after-iowrite-s.patch index 2ad05dd9b..36382371d 100644 --- a/debian/patches-rt/0254-tpm_tis-fix-stall-after-iowrite-s.patch +++ b/debian/patches-rt/0252-tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,8 +1,8 @@ -From 8afa13346657d6fbf5a52a5dc31e14f37a611866 Mon Sep 17 00:00:00 2001 +From e17cfb4da190f56567819460296b640854ef8af0 Mon Sep 17 00:00:00 2001 From: Haris Okanovic Date: Tue, 15 Aug 2017 15:13:08 -0500 -Subject: [PATCH 254/266] tpm_tis: fix stall after iowrite*()s -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 252/264] tpm_tis: fix stall after iowrite*()s +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0255-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch b/debian/patches-rt/0253-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch similarity index 95% rename from debian/patches-rt/0255-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch rename to debian/patches-rt/0253-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch index ee49ce0ef..852a303f9 100644 --- a/debian/patches-rt/0255-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch +++ b/debian/patches-rt/0253-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch @@ -1,8 +1,8 @@ -From e2846d88f2af5d8052bf0234060f7381a7ba9d56 Mon Sep 17 00:00:00 2001 +From 2e143bef6376db39d9e876eae3e3f1f718ff0b23 Mon Sep 17 00:00:00 2001 From: Julia Cartwright Date: Fri, 28 Sep 2018 21:03:51 +0000 -Subject: [PATCH 255/266] watchdog: prevent deferral of watchdogd wakeup on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 253/264] watchdog: prevent deferral of watchdogd wakeup on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz When PREEMPT_RT_FULL is enabled, all hrtimer expiry functions are deferred for execution into the context of ktimersoftd unless otherwise diff --git a/debian/patches-rt/0256-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch b/debian/patches-rt/0254-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch similarity index 93% rename from debian/patches-rt/0256-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch rename to debian/patches-rt/0254-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch index 5eacc7187..f392cfed8 100644 --- a/debian/patches-rt/0256-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +++ b/debian/patches-rt/0254-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch @@ -1,9 +1,9 @@ -From fd7ad451657bc1d2745adae012accec69a290a7f Mon Sep 17 00:00:00 2001 +From 14ab946c30ebc65a97dd2a3a68f5f1bb0bfb8c7a Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 08:09:11 +0100 -Subject: [PATCH 256/266] drm,radeon,i915: Use preempt_disable/enable_rt() +Subject: [PATCH 254/264] drm,radeon,i915: Use preempt_disable/enable_rt() where recommended -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz DRM folks identified the spots, so use them. diff --git a/debian/patches-rt/0257-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch b/debian/patches-rt/0255-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch similarity index 97% rename from debian/patches-rt/0257-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch rename to debian/patches-rt/0255-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch index 311583c27..106dfbb2a 100644 --- a/debian/patches-rt/0257-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch +++ b/debian/patches-rt/0255-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch @@ -1,9 +1,9 @@ -From 014ca6a4c50510ca158c89df3e03ddf459b2cca8 Mon Sep 17 00:00:00 2001 +From fa836f911e7122a32cf1d934a9736497b5dee45d Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 09:01:42 +0100 -Subject: [PATCH 257/266] drm,i915: Use local_lock/unlock_irq() in +Subject: [PATCH 255/264] drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz [ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918 [ 8.014041] in_atomic(): 0, irqs_disabled(): 1, pid: 78, name: kworker/u4:4 diff --git a/debian/patches-rt/0258-drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/0256-drm-i915-disable-tracing-on-RT.patch similarity index 90% rename from debian/patches-rt/0258-drm-i915-disable-tracing-on-RT.patch rename to debian/patches-rt/0256-drm-i915-disable-tracing-on-RT.patch index 2e9fb5e01..6a51d61d4 100644 --- a/debian/patches-rt/0258-drm-i915-disable-tracing-on-RT.patch +++ b/debian/patches-rt/0256-drm-i915-disable-tracing-on-RT.patch @@ -1,8 +1,8 @@ -From 2c9b4d76e3ee784c2b29c08e1e6ee0a51972602e Mon Sep 17 00:00:00 2001 +From 0d087f448e0154cd673da85a57d305bb17f43f48 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 09:52:20 +0100 -Subject: [PATCH 258/266] drm/i915: disable tracing on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 256/264] drm/i915: disable tracing on -RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 diff --git a/debian/patches-rt/0259-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0257-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch similarity index 87% rename from debian/patches-rt/0259-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch rename to debian/patches-rt/0257-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index e80c97899..9654984e5 100644 --- a/debian/patches-rt/0259-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/debian/patches-rt/0257-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -1,9 +1,9 @@ -From 33e6f852f6d813a1dfe1e579957fca84cfb80a6e Mon Sep 17 00:00:00 2001 +From 1e0d82558c60f1e889452550fe5766802e54c9bc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 19 Dec 2018 10:47:02 +0100 -Subject: [PATCH 259/266] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with +Subject: [PATCH 257/264] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The order of the header files is important. If this header file is included after tracepoint.h was included then the NOTRACE here becomes a diff --git a/debian/patches-rt/0260-cgroups-use-simple-wait-in-css_release.patch b/debian/patches-rt/0258-cgroups-use-simple-wait-in-css_release.patch similarity index 93% rename from debian/patches-rt/0260-cgroups-use-simple-wait-in-css_release.patch rename to debian/patches-rt/0258-cgroups-use-simple-wait-in-css_release.patch index 1dcf734df..6c438b233 100644 --- a/debian/patches-rt/0260-cgroups-use-simple-wait-in-css_release.patch +++ b/debian/patches-rt/0258-cgroups-use-simple-wait-in-css_release.patch @@ -1,8 +1,8 @@ -From d12fcd626ee85e19b217131c681953e534772eb1 Mon Sep 17 00:00:00 2001 +From 12874386b3141dd4afa5b6e4aee17e99f529f37e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 13 Feb 2015 15:52:24 +0100 -Subject: [PATCH 260/266] cgroups: use simple wait in css_release() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 258/264] cgroups: use simple wait in css_release() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz To avoid: |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914 @@ -35,7 +35,7 @@ Signed-off-by: Sebastian Andrzej Siewior 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h -index 22254c1fe1c5..1762eee54f74 100644 +index 6002275937f5..ba64953d53d9 100644 --- a/include/linux/cgroup-defs.h +++ b/include/linux/cgroup-defs.h @@ -20,6 +20,7 @@ @@ -55,7 +55,7 @@ index 22254c1fe1c5..1762eee54f74 100644 /* diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c -index e710ac7fbbbf..0e7e4500c549 100644 +index 63dae7e0ccae..4377e0fd8827 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -4628,10 +4628,10 @@ static void css_free_rwork_fn(struct work_struct *work) diff --git a/debian/patches-rt/0261-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0259-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch similarity index 98% rename from debian/patches-rt/0261-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch rename to debian/patches-rt/0259-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch index 7a7fbf8a1..f58623dc4 100644 --- a/debian/patches-rt/0261-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0259-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch @@ -1,8 +1,8 @@ -From da07ea849302ed3d11e26c0b4543e5982d1234da Mon Sep 17 00:00:00 2001 +From 3bf07cd523e1ceabae1252c9c286b5fa88608994 Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sun, 8 Jan 2017 09:32:25 +0100 -Subject: [PATCH 261/266] cpuset: Convert callback_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 259/264] cpuset: Convert callback_lock to raw_spinlock_t +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz The two commits below add up to a cpuset might_sleep() splat for RT: diff --git a/debian/patches-rt/0262-apparmor-use-a-locallock-instead-preempt_disable.patch b/debian/patches-rt/0260-apparmor-use-a-locallock-instead-preempt_disable.patch similarity index 94% rename from debian/patches-rt/0262-apparmor-use-a-locallock-instead-preempt_disable.patch rename to debian/patches-rt/0260-apparmor-use-a-locallock-instead-preempt_disable.patch index 406aadf47..5f31d9647 100644 --- a/debian/patches-rt/0262-apparmor-use-a-locallock-instead-preempt_disable.patch +++ b/debian/patches-rt/0260-apparmor-use-a-locallock-instead-preempt_disable.patch @@ -1,8 +1,8 @@ -From b029b075f29695c1a7095a1eea4d3949fa7a334a Mon Sep 17 00:00:00 2001 +From f03e611745700fad514b850296eab0b098b3c12d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 11 Oct 2017 17:43:49 +0200 -Subject: [PATCH 262/266] apparmor: use a locallock instead preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 260/264] apparmor: use a locallock instead preempt_disable() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz 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/debian/patches-rt/0263-workqueue-Prevent-deadlock-stall-on-RT.patch b/debian/patches-rt/0261-workqueue-Prevent-deadlock-stall-on-RT.patch similarity index 95% rename from debian/patches-rt/0263-workqueue-Prevent-deadlock-stall-on-RT.patch rename to debian/patches-rt/0261-workqueue-Prevent-deadlock-stall-on-RT.patch index d99fbbd7b..8c27a48dd 100644 --- a/debian/patches-rt/0263-workqueue-Prevent-deadlock-stall-on-RT.patch +++ b/debian/patches-rt/0261-workqueue-Prevent-deadlock-stall-on-RT.patch @@ -1,8 +1,8 @@ -From 9ff4c4812c4c2db18d01f0218a5cec21f962a0ce Mon Sep 17 00:00:00 2001 +From 936c037e636229e54d45ea6887e110d47d891059 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 27 Jun 2014 16:24:52 +0200 -Subject: [PATCH 263/266] workqueue: Prevent deadlock/stall on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 261/264] workqueue: Prevent deadlock/stall on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Austin reported a XFS deadlock/stall on RT where scheduled work gets never exececuted and tasks are waiting for each other for ever. @@ -43,10 +43,10 @@ Cc: Steven Rostedt 2 files changed, 51 insertions(+), 15 deletions(-) diff --git a/kernel/sched/core.c b/kernel/sched/core.c -index 9811d79d19ba..0689c0c4e39f 100644 +index 6d06dd682cd5..d2a475e00af8 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -3568,9 +3568,8 @@ void __noreturn do_task_dead(void) +@@ -3569,9 +3569,8 @@ void __noreturn do_task_dead(void) static inline void sched_submit_work(struct task_struct *tsk) { @@ -57,7 +57,7 @@ index 9811d79d19ba..0689c0c4e39f 100644 /* * If a worker went to sleep, notify and ask workqueue whether * it wants to wake up a task to maintain concurrency. -@@ -3584,6 +3583,9 @@ static inline void sched_submit_work(struct task_struct *tsk) +@@ -3585,6 +3584,9 @@ static inline void sched_submit_work(struct task_struct *tsk) preempt_enable_no_resched(); } diff --git a/debian/patches-rt/0264-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/0262-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch similarity index 96% rename from debian/patches-rt/0264-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch rename to debian/patches-rt/0262-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch index 39cedcf03..189c9068b 100644 --- a/debian/patches-rt/0264-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/debian/patches-rt/0262-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,8 +1,8 @@ -From a75a6d0bbac2c7cbe1e654021c59cb43299881b2 Mon Sep 17 00:00:00 2001 +From d05a6a9bf872f14f98543e61c6ef160307078b7c Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 3 Jul 2009 08:44:56 -0500 -Subject: [PATCH 264/266] signals: Allow rt tasks to cache one sigqueue struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 262/264] signals: Allow rt tasks to cache one sigqueue struct +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner 5 files changed, 70 insertions(+), 5 deletions(-) diff --git a/include/linux/sched.h b/include/linux/sched.h -index 5e87f7429c26..f61e536c5eb9 100644 +index dd95bd64504e..c342fa06ab99 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -895,6 +895,8 @@ struct task_struct { @@ -42,7 +42,7 @@ index e4d01469ed60..746dd5d28c54 100644 /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */ static inline int valid_signal(unsigned long sig) diff --git a/kernel/exit.c b/kernel/exit.c -index d607e23fd0c3..9874b088a11f 100644 +index 5c0964dc805a..47d4161d1104 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -160,7 +160,7 @@ static void __exit_signal(struct task_struct *tsk) diff --git a/debian/patches-rt/0265-Add-localversion-for-RT-release.patch b/debian/patches-rt/0263-Add-localversion-for-RT-release.patch similarity index 74% rename from debian/patches-rt/0265-Add-localversion-for-RT-release.patch rename to debian/patches-rt/0263-Add-localversion-for-RT-release.patch index 1e127fa51..ef968c0a1 100644 --- a/debian/patches-rt/0265-Add-localversion-for-RT-release.patch +++ b/debian/patches-rt/0263-Add-localversion-for-RT-release.patch @@ -1,8 +1,8 @@ -From 4bf4dea23aa2921131627e921c3dd6bfd9e8f0dd Mon Sep 17 00:00:00 2001 +From 7b48c4366f0f483bb81cc05f7f427176bff52bf8 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 -Subject: [PATCH 265/266] Add localversion for -RT release -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 263/264] Add localversion for -RT release +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz Signed-off-by: Thomas Gleixner --- diff --git a/debian/patches-rt/0266-Linux-4.19.31-rt18-REBASE.patch b/debian/patches-rt/0264-Linux-4.19.37-rt19-REBASE.patch similarity index 64% rename from debian/patches-rt/0266-Linux-4.19.31-rt18-REBASE.patch rename to debian/patches-rt/0264-Linux-4.19.37-rt19-REBASE.patch index 84580993d..cb4c73332 100644 --- a/debian/patches-rt/0266-Linux-4.19.31-rt18-REBASE.patch +++ b/debian/patches-rt/0264-Linux-4.19.37-rt19-REBASE.patch @@ -1,20 +1,20 @@ -From 6b52b8ce2b7051a19d8dba22b0bffec2d44cb0fd Mon Sep 17 00:00:00 2001 +From fa22542beb4d7bbdc035d8e068214d519c5f8d24 Mon Sep 17 00:00:00 2001 From: Steven Rostedt Date: Wed, 27 Mar 2019 10:00:33 -0400 -Subject: [PATCH 266/266] Linux 4.19.31-rt18 REBASE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.31-rt18.tar.xz +Subject: [PATCH 264/264] Linux 4.19.37-rt19 REBASE +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patches-4.19.37-rt19.tar.xz --- localversion-rt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/localversion-rt b/localversion-rt -index 1199ebade17b..9e7cd66d9f44 100644 +index 1199ebade17b..483ad771f201 100644 --- a/localversion-rt +++ b/localversion-rt @@ -1 +1 @@ --rt16 -+-rt18 ++-rt19 -- 2.20.1 diff --git a/debian/patches-rt/series b/debian/patches-rt/series index 8f3e5b6e1..0a2c289c1 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -11,254 +11,254 @@ 0011-sched-fair-Robustify-CFS-bandwidth-timer-locking.patch 0012-arm-Convert-arm-boot_lock-to-raw.patch 0013-x86-ioapic-Don-t-let-setaffinity-unmask-threaded-EOI.patch -0016-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch -0017-fscache-initialize-cookie-hash-table-raw-spinlocks.patch -0018-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch -0019-percpu-include-irqflags.h-for-raw_local_irq_save.patch -0020-efi-Allow-efi-runtime.patch -0021-x86-efi-drop-task_lock-from-efi_switch_mm.patch -0022-arm64-KVM-compute_layout-before-altenates-are-applie.patch -0023-of-allocate-free-phandle-cache-outside-of-the-devtre.patch -0024-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch -0025-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch -0026-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch -0027-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch -0028-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch -0029-kernel-sched-core-add-migrate_disable.patch -0030-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch -0031-arm-at91-do-not-disable-enable-clocks-in-a-row.patch -0032-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch -0033-timekeeping-Split-jiffies-seqlock.patch -0034-signal-Revert-ptrace-preempt-magic.patch -0035-net-sched-Use-msleep-instead-of-yield.patch -0036-dm-rq-remove-BUG_ON-irqs_disabled-check.patch -0037-usb-do-no-disable-interrupts-in-giveback.patch -0038-rt-Provide-PREEMPT_RT_BASE-config-switch.patch -0039-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch -0040-jump-label-disable-if-stop_machine-is-used.patch -0041-kconfig-Disable-config-options-which-are-not-RT-comp.patch -0042-lockdep-disable-self-test.patch -0043-mm-Allow-only-slub-on-RT.patch -0044-locking-Disable-spin-on-owner-for-RT.patch -0045-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch -0046-rcu-make-RCU_BOOST-default-on-RT.patch -0047-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch -0048-net-core-disable-NET_RX_BUSY_POLL.patch -0049-arm-disable-NEON-in-kernel-mode.patch -0050-powerpc-Use-generic-rwsem-on-RT.patch -0051-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch -0052-powerpc-Disable-highmem-on-RT.patch -0053-mips-Disable-highmem-on-RT.patch -0054-x86-Use-generic-rwsem_spinlocks-on-rt.patch -0055-leds-trigger-disable-CPU-trigger-on-RT.patch -0056-cpufreq-drop-K8-s-driver-from-beeing-selected.patch -0057-md-disable-bcache.patch -0058-efi-Disable-runtime-services-on-RT.patch -0059-printk-Add-a-printk-kill-switch.patch -0060-printk-Add-force_early_printk-boot-param-to-help-wit.patch -0061-preempt-Provide-preempt_-_-no-rt-variants.patch -0062-futex-workaround-migrate_disable-enable-in-different.patch -0063-rt-Add-local-irq-locks.patch -0064-locallock-provide-get-put-_locked_ptr-variants.patch -0065-mm-scatterlist-Do-not-disable-irqs-on-RT.patch -0066-signal-x86-Delay-calling-signals-in-atomic.patch -0067-x86-signal-delay-calling-signals-on-32bit.patch -0068-buffer_head-Replace-bh_uptodate_lock-for-rt.patch -0069-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch -0070-list_bl-Make-list-head-locking-RT-safe.patch -0071-list_bl-fixup-bogus-lockdep-warning.patch -0072-genirq-Disable-irqpoll-on-rt.patch -0073-genirq-Force-interrupt-thread-on-RT.patch -0074-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch -0075-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch -0076-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch -0077-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch -0078-mm-page_alloc-rt-friendly-per-cpu-pages.patch -0079-mm-swap-Convert-to-percpu-locked.patch -0080-mm-perform-lru_add_drain_all-remotely.patch -0081-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch -0082-ARM-Initialize-split-page-table-locks-for-vector-pag.patch -0083-mm-Enable-SLUB-for-RT.patch -0084-slub-Enable-irqs-for-__GFP_WAIT.patch -0085-slub-Disable-SLUB_CPU_PARTIAL.patch -0086-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch -0087-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch -0088-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch -0089-x86-mm-pat-disable-preemption-__split_large_page-aft.patch -0090-radix-tree-use-local-locks.patch -0091-timers-Prepare-for-full-preemption.patch -0092-x86-kvm-Require-const-tsc-for-RT.patch -0093-pci-switchtec-Don-t-use-completion-s-wait-queue.patch -0094-wait.h-include-atomic.h.patch -0095-work-simple-Simple-work-queue-implemenation.patch -0096-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch -0097-completion-Use-simple-wait-queues.patch -0098-fs-aio-simple-simple-work.patch -0099-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch -0100-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch -0101-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch -0102-hrtimers-Prepare-full-preemption.patch -0103-hrtimer-by-timers-by-default-into-the-softirq-contex.patch -0104-sched-fair-Make-the-hrtimers-non-hard-again.patch -0105-hrtimer-Move-schedule_work-call-to-helper-thread.patch -0106-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch -0107-posix-timers-Thread-posix-cpu-timers-on-rt.patch -0108-sched-Move-task_struct-cleanup-to-RCU.patch -0109-sched-Limit-the-number-of-task-migrations-per-batch.patch -0110-sched-Move-mmdrop-to-RCU-on-RT.patch -0111-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch -0112-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch -0113-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch -0114-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch -0115-sched-Disable-TTWU_QUEUE-on-RT.patch -0116-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch -0117-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch -0118-hotplug-Lightweight-get-online-cpus.patch -0119-trace-Add-migrate-disabled-counter-to-tracing-output.patch -0120-lockdep-Make-it-RT-aware.patch -0121-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch -0122-softirq-Check-preemption-after-reenabling-interrupts.patch -0123-softirq-Disable-softirq-stacks-for-RT.patch -0124-softirq-Split-softirq-locks.patch -0125-net-core-use-local_bh_disable-in-netif_rx_ni.patch -0126-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch -0127-softirq-split-timer-softirqs-out-of-ksoftirqd.patch -0128-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch -0129-softirq-Avoid-local_softirq_pending-messages-if-task.patch -0130-rtmutex-trylock-is-okay-on-RT.patch -0131-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch -0132-rtmutex-Handle-the-various-new-futex-race-conditions.patch -0133-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch -0134-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch -0135-pid.h-include-atomic.h.patch -0136-arm-include-definition-for-cpumask_t.patch -0137-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch -0138-rtmutex-Add-rtmutex_lock_killable.patch -0139-rtmutex-Make-lock_killable-work.patch -0140-spinlock-Split-the-lock-types-header.patch -0141-rtmutex-Avoid-include-hell.patch -0142-rbtree-don-t-include-the-rcu-header.patch -0143-rtmutex-Provide-rt_mutex_slowlock_locked.patch -0144-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch -0145-rtmutex-add-sleeping-lock-implementation.patch -0146-rtmutex-add-mutex-implementation-based-on-rtmutex.patch -0147-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch -0148-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch -0149-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch -0150-rtmutex-wire-up-RT-s-locking.patch -0151-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch -0152-kconfig-Add-PREEMPT_RT_FULL.patch -0153-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch -0154-locking-rt-mutex-Flush-block-plug-on-__down_read.patch -0155-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch -0156-ptrace-fix-ptrace-vs-tasklist_lock-race.patch -0157-rtmutex-annotate-sleeping-lock-context.patch -0158-sched-migrate_disable-fallback-to-preempt_disable-in.patch -0159-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch -0160-rcu-Frob-softirq-test.patch -0161-rcu-Merge-RCU-bh-into-RCU-preempt.patch -0162-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch -0163-rcu-Eliminate-softirq-processing-from-rcutree.patch -0164-srcu-use-cpu_online-instead-custom-check.patch -0165-srcu-replace-local_irqsave-with-a-locallock.patch -0166-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch -0167-tty-serial-omap-Make-the-locking-RT-aware.patch -0168-tty-serial-pl011-Make-the-locking-work-on-RT.patch -0169-tty-serial-pl011-explicitly-initialize-the-flags-var.patch -0170-rt-Improve-the-serial-console-PASS_LIMIT.patch -0171-tty-serial-8250-don-t-take-the-trylock-during-oops.patch -0172-locking-percpu-rwsem-Remove-preempt_disable-variants.patch -0173-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch -0174-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch -0175-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch -0176-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch -0177-thermal-Defer-thermal-wakups-to-threads.patch -0178-x86-fpu-Disable-preemption-around-local_bh_disable.patch -0179-fs-epoll-Do-not-disable-preemption-on-RT.patch -0180-mm-vmalloc-Another-preempt-disable-region-which-suck.patch -0181-block-mq-use-cpu_light.patch -0182-block-mq-do-not-invoke-preempt_disable.patch -0183-block-mq-don-t-complete-requests-via-IPI.patch -0184-md-raid5-Make-raid5_percpu-handling-RT-aware.patch -0185-rt-Introduce-cpu_chill.patch -0186-hrtimer-Don-t-lose-state-in-cpu_chill.patch -0187-hrtimer-cpu_chill-save-task-state-in-saved_state.patch -0188-block-blk-mq-move-blk_queue_usage_counter_release-in.patch -0189-block-Use-cpu_chill-for-retry-loops.patch -0190-fs-dcache-Use-cpu_chill-in-trylock-loops.patch -0191-net-Use-cpu_chill-instead-of-cpu_relax.patch -0192-fs-dcache-use-swait_queue-instead-of-waitqueue.patch -0193-workqueue-Use-normal-rcu.patch -0194-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch -0195-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch -0196-sched-Distangle-worker-accounting-from-rqlock.patch -0197-debugobjects-Make-RT-aware.patch -0198-seqlock-Prevent-rt-starvation.patch -0199-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch -0200-net-Use-skbufhead-with-raw-lock.patch -0201-net-move-xmit_recursion-to-per-task-variable-on-RT.patch -0202-net-provide-a-way-to-delegate-processing-a-softirq-t.patch -0203-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch -0204-net-Qdisc-use-a-seqlock-instead-seqcount.patch -0205-net-add-back-the-missing-serialization-in-ip_send_un.patch -0206-net-add-a-lock-around-icmp_sk.patch -0207-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch -0208-irqwork-push-most-work-into-softirq-context.patch -0209-printk-Make-rt-aware.patch -0210-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch -0211-printk-Drop-the-logbuf_lock-more-often.patch -0212-ARM-enable-irq-in-translation-section-permission-fau.patch -0213-genirq-update-irq_set_irqchip_state-documentation.patch -0214-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch -0215-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch -0216-kgdb-serial-Short-term-workaround.patch -0217-sysfs-Add-sys-kernel-realtime-entry.patch -0218-mm-rt-kmap_atomic-scheduling.patch -0219-x86-highmem-Add-a-already-used-pte-check.patch -0220-arm-highmem-Flush-tlb-on-unmap.patch -0221-arm-Enable-highmem-for-rt.patch -0222-scsi-fcoe-Make-RT-aware.patch -0223-x86-crypto-Reduce-preempt-disabled-regions.patch -0224-crypto-Reduce-preempt-disabled-regions-more-algos.patch -0225-crypto-limit-more-FPU-enabled-sections.patch -0226-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch -0227-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch -0228-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch -0229-x86-stackprotector-Avoid-random-pool-on-rt.patch -0230-random-Make-it-work-on-rt.patch -0231-random-avoid-preempt_disable-ed-section.patch -0232-cpu-hotplug-Implement-CPU-pinning.patch -0233-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch -0234-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch -0235-net-Remove-preemption-disabling-in-netif_rx.patch -0236-net-Another-local_irq_disable-kmalloc-headache.patch -0237-net-core-protect-users-of-napi_alloc_cache-against-r.patch -0238-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch -0239-net-Add-a-mutex-around-devnet_rename_seq.patch -0240-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch -0241-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch -0242-sched-Add-support-for-lazy-preemption.patch -0243-ftrace-Fix-trace-header-alignment.patch -0244-x86-Support-for-lazy-preemption.patch -0245-x86-lazy-preempt-properly-check-against-preempt-mask.patch -0246-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch -0247-arm-Add-support-for-lazy-preemption.patch -0248-powerpc-Add-support-for-lazy-preemption.patch -0249-arch-arm64-Add-lazy-preempt-support.patch -0250-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch -0251-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch -0252-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch -0253-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch -0254-tpm_tis-fix-stall-after-iowrite-s.patch -0255-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch -0256-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch -0257-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch -0258-drm-i915-disable-tracing-on-RT.patch -0259-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch -0260-cgroups-use-simple-wait-in-css_release.patch -0261-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch -0262-apparmor-use-a-locallock-instead-preempt_disable.patch -0263-workqueue-Prevent-deadlock-stall-on-RT.patch -0264-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch -0265-Add-localversion-for-RT-release.patch -0266-Linux-4.19.31-rt18-REBASE.patch +0014-cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch +0015-fscache-initialize-cookie-hash-table-raw-spinlocks.patch +0016-Drivers-hv-vmbus-include-header-for-get_irq_regs.patch +0017-percpu-include-irqflags.h-for-raw_local_irq_save.patch +0018-efi-Allow-efi-runtime.patch +0019-x86-efi-drop-task_lock-from-efi_switch_mm.patch +0020-arm64-KVM-compute_layout-before-altenates-are-applie.patch +0021-of-allocate-free-phandle-cache-outside-of-the-devtre.patch +0022-mm-kasan-make-quarantine_lock-a-raw_spinlock_t.patch +0023-EXP-rcu-Revert-expedited-GP-parallelization-cleverne.patch +0024-kmemleak-Turn-kmemleak_lock-to-raw-spinlock-on-RT.patch +0025-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +0026-kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch +0027-kernel-sched-core-add-migrate_disable.patch +0028-sched-migrate_disable-Add-export_symbol_gpl-for-__mi.patch +0029-arm-at91-do-not-disable-enable-clocks-in-a-row.patch +0030-clocksource-TCLIB-Allow-higher-clock-rates-for-clock.patch +0031-timekeeping-Split-jiffies-seqlock.patch +0032-signal-Revert-ptrace-preempt-magic.patch +0033-net-sched-Use-msleep-instead-of-yield.patch +0034-dm-rq-remove-BUG_ON-irqs_disabled-check.patch +0035-usb-do-no-disable-interrupts-in-giveback.patch +0036-rt-Provide-PREEMPT_RT_BASE-config-switch.patch +0037-cpumask-Disable-CONFIG_CPUMASK_OFFSTACK-for-RT.patch +0038-jump-label-disable-if-stop_machine-is-used.patch +0039-kconfig-Disable-config-options-which-are-not-RT-comp.patch +0040-lockdep-disable-self-test.patch +0041-mm-Allow-only-slub-on-RT.patch +0042-locking-Disable-spin-on-owner-for-RT.patch +0043-rcu-Disable-RCU_FAST_NO_HZ-on-RT.patch +0044-rcu-make-RCU_BOOST-default-on-RT.patch +0045-sched-Disable-CONFIG_RT_GROUP_SCHED-on-RT.patch +0046-net-core-disable-NET_RX_BUSY_POLL.patch +0047-arm-disable-NEON-in-kernel-mode.patch +0048-powerpc-Use-generic-rwsem-on-RT.patch +0049-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +0050-powerpc-Disable-highmem-on-RT.patch +0051-mips-Disable-highmem-on-RT.patch +0052-x86-Use-generic-rwsem_spinlocks-on-rt.patch +0053-leds-trigger-disable-CPU-trigger-on-RT.patch +0054-cpufreq-drop-K8-s-driver-from-beeing-selected.patch +0055-md-disable-bcache.patch +0056-efi-Disable-runtime-services-on-RT.patch +0057-printk-Add-a-printk-kill-switch.patch +0058-printk-Add-force_early_printk-boot-param-to-help-wit.patch +0059-preempt-Provide-preempt_-_-no-rt-variants.patch +0060-futex-workaround-migrate_disable-enable-in-different.patch +0061-rt-Add-local-irq-locks.patch +0062-locallock-provide-get-put-_locked_ptr-variants.patch +0063-mm-scatterlist-Do-not-disable-irqs-on-RT.patch +0064-signal-x86-Delay-calling-signals-in-atomic.patch +0065-x86-signal-delay-calling-signals-on-32bit.patch +0066-buffer_head-Replace-bh_uptodate_lock-for-rt.patch +0067-fs-jbd-jbd2-Make-state-lock-and-journal-head-lock-rt.patch +0068-list_bl-Make-list-head-locking-RT-safe.patch +0069-list_bl-fixup-bogus-lockdep-warning.patch +0070-genirq-Disable-irqpoll-on-rt.patch +0071-genirq-Force-interrupt-thread-on-RT.patch +0072-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +0073-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +0074-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch +0075-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +0076-mm-page_alloc-rt-friendly-per-cpu-pages.patch +0077-mm-swap-Convert-to-percpu-locked.patch +0078-mm-perform-lru_add_drain_all-remotely.patch +0079-mm-vmstat-Protect-per-cpu-variables-with-preempt-dis.patch +0080-ARM-Initialize-split-page-table-locks-for-vector-pag.patch +0081-mm-Enable-SLUB-for-RT.patch +0082-slub-Enable-irqs-for-__GFP_WAIT.patch +0083-slub-Disable-SLUB_CPU_PARTIAL.patch +0084-mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +0085-mm-memcontrol-Replace-local_irq_disable-with-local-l.patch +0086-mm-zsmalloc-copy-with-get_cpu_var-and-locking.patch +0087-x86-mm-pat-disable-preemption-__split_large_page-aft.patch +0088-radix-tree-use-local-locks.patch +0089-timers-Prepare-for-full-preemption.patch +0090-x86-kvm-Require-const-tsc-for-RT.patch +0091-pci-switchtec-Don-t-use-completion-s-wait-queue.patch +0092-wait.h-include-atomic.h.patch +0093-work-simple-Simple-work-queue-implemenation.patch +0094-work-simple-drop-a-shit-statement-in-SWORK_EVENT_PEN.patch +0095-completion-Use-simple-wait-queues.patch +0096-fs-aio-simple-simple-work.patch +0097-genirq-Do-not-invoke-the-affinity-callback-via-a-wor.patch +0098-time-hrtimer-avoid-schedule_work-with-interrupts-dis.patch +0099-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +0100-hrtimers-Prepare-full-preemption.patch +0101-hrtimer-by-timers-by-default-into-the-softirq-contex.patch +0102-sched-fair-Make-the-hrtimers-non-hard-again.patch +0103-hrtimer-Move-schedule_work-call-to-helper-thread.patch +0104-hrtimer-move-state-change-before-hrtimer_cancel-in-d.patch +0105-posix-timers-Thread-posix-cpu-timers-on-rt.patch +0106-sched-Move-task_struct-cleanup-to-RCU.patch +0107-sched-Limit-the-number-of-task-migrations-per-batch.patch +0108-sched-Move-mmdrop-to-RCU-on-RT.patch +0109-kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +0110-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch +0111-sched-Do-not-account-rcu_preempt_depth-on-RT-in-migh.patch +0112-sched-Use-the-proper-LOCK_OFFSET-for-cond_resched.patch +0113-sched-Disable-TTWU_QUEUE-on-RT.patch +0114-sched-workqueue-Only-wake-up-idle-workers-if-not-blo.patch +0115-rt-Increase-decrease-the-nr-of-migratory-tasks-when-.patch +0116-hotplug-Lightweight-get-online-cpus.patch +0117-trace-Add-migrate-disabled-counter-to-tracing-output.patch +0118-lockdep-Make-it-RT-aware.patch +0119-tasklet-Prevent-tasklets-from-going-into-infinite-sp.patch +0120-softirq-Check-preemption-after-reenabling-interrupts.patch +0121-softirq-Disable-softirq-stacks-for-RT.patch +0122-softirq-Split-softirq-locks.patch +0123-net-core-use-local_bh_disable-in-netif_rx_ni.patch +0124-genirq-Allow-disabling-of-softirq-processing-in-irq-.patch +0125-softirq-split-timer-softirqs-out-of-ksoftirqd.patch +0126-softirq-Avoid-local_softirq_pending-messages-if-ksof.patch +0127-softirq-Avoid-local_softirq_pending-messages-if-task.patch +0128-rtmutex-trylock-is-okay-on-RT.patch +0129-fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +0130-rtmutex-Handle-the-various-new-futex-race-conditions.patch +0131-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch +0132-futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch +0133-pid.h-include-atomic.h.patch +0134-arm-include-definition-for-cpumask_t.patch +0135-locking-locktorture-Do-NOT-include-rwlock.h-directly.patch +0136-rtmutex-Add-rtmutex_lock_killable.patch +0137-rtmutex-Make-lock_killable-work.patch +0138-spinlock-Split-the-lock-types-header.patch +0139-rtmutex-Avoid-include-hell.patch +0140-rbtree-don-t-include-the-rcu-header.patch +0141-rtmutex-Provide-rt_mutex_slowlock_locked.patch +0142-rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch +0143-rtmutex-add-sleeping-lock-implementation.patch +0144-rtmutex-add-mutex-implementation-based-on-rtmutex.patch +0145-rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +0146-rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +0147-rtmutex-rwlock-preserve-state-like-a-sleeping-lock.patch +0148-rtmutex-wire-up-RT-s-locking.patch +0149-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +0150-kconfig-Add-PREEMPT_RT_FULL.patch +0151-locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch +0152-locking-rt-mutex-Flush-block-plug-on-__down_read.patch +0153-locking-rtmutex-re-init-the-wait_lock-in-rt_mutex_in.patch +0154-ptrace-fix-ptrace-vs-tasklist_lock-race.patch +0155-rtmutex-annotate-sleeping-lock-context.patch +0156-sched-migrate_disable-fallback-to-preempt_disable-in.patch +0157-locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +0158-rcu-Frob-softirq-test.patch +0159-rcu-Merge-RCU-bh-into-RCU-preempt.patch +0160-rcu-Make-ksoftirqd-do-RCU-quiescent-states.patch +0161-rcu-Eliminate-softirq-processing-from-rcutree.patch +0162-srcu-use-cpu_online-instead-custom-check.patch +0163-srcu-replace-local_irqsave-with-a-locallock.patch +0164-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch +0165-tty-serial-omap-Make-the-locking-RT-aware.patch +0166-tty-serial-pl011-Make-the-locking-work-on-RT.patch +0167-tty-serial-pl011-explicitly-initialize-the-flags-var.patch +0168-rt-Improve-the-serial-console-PASS_LIMIT.patch +0169-tty-serial-8250-don-t-take-the-trylock-during-oops.patch +0170-locking-percpu-rwsem-Remove-preempt_disable-variants.patch +0171-mm-Protect-activate_mm-by-preempt_-disable-enable-_r.patch +0172-fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-ini.patch +0173-fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +0174-squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch +0175-thermal-Defer-thermal-wakups-to-threads.patch +0176-x86-fpu-Disable-preemption-around-local_bh_disable.patch +0177-fs-epoll-Do-not-disable-preemption-on-RT.patch +0178-mm-vmalloc-Another-preempt-disable-region-which-suck.patch +0179-block-mq-use-cpu_light.patch +0180-block-mq-do-not-invoke-preempt_disable.patch +0181-block-mq-don-t-complete-requests-via-IPI.patch +0182-md-raid5-Make-raid5_percpu-handling-RT-aware.patch +0183-rt-Introduce-cpu_chill.patch +0184-hrtimer-Don-t-lose-state-in-cpu_chill.patch +0185-hrtimer-cpu_chill-save-task-state-in-saved_state.patch +0186-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +0187-block-Use-cpu_chill-for-retry-loops.patch +0188-fs-dcache-Use-cpu_chill-in-trylock-loops.patch +0189-net-Use-cpu_chill-instead-of-cpu_relax.patch +0190-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +0191-workqueue-Use-normal-rcu.patch +0192-workqueue-Use-local-irq-lock-instead-of-irq-disable-.patch +0193-workqueue-Prevent-workqueue-versus-ata-piix-livelock.patch +0194-sched-Distangle-worker-accounting-from-rqlock.patch +0195-debugobjects-Make-RT-aware.patch +0196-seqlock-Prevent-rt-starvation.patch +0197-sunrpc-Make-svc_xprt_do_enqueue-use-get_cpu_light.patch +0198-net-Use-skbufhead-with-raw-lock.patch +0199-net-move-xmit_recursion-to-per-task-variable-on-RT.patch +0200-net-provide-a-way-to-delegate-processing-a-softirq-t.patch +0201-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +0202-net-Qdisc-use-a-seqlock-instead-seqcount.patch +0203-net-add-back-the-missing-serialization-in-ip_send_un.patch +0204-net-add-a-lock-around-icmp_sk.patch +0205-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch +0206-irqwork-push-most-work-into-softirq-context.patch +0207-printk-Make-rt-aware.patch +0208-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch +0209-printk-Drop-the-logbuf_lock-more-often.patch +0210-ARM-enable-irq-in-translation-section-permission-fau.patch +0211-genirq-update-irq_set_irqchip_state-documentation.patch +0212-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +0213-arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch +0214-kgdb-serial-Short-term-workaround.patch +0215-sysfs-Add-sys-kernel-realtime-entry.patch +0216-mm-rt-kmap_atomic-scheduling.patch +0217-x86-highmem-Add-a-already-used-pte-check.patch +0218-arm-highmem-Flush-tlb-on-unmap.patch +0219-arm-Enable-highmem-for-rt.patch +0220-scsi-fcoe-Make-RT-aware.patch +0221-x86-crypto-Reduce-preempt-disabled-regions.patch +0222-crypto-Reduce-preempt-disabled-regions-more-algos.patch +0223-crypto-limit-more-FPU-enabled-sections.patch +0224-crypto-scompress-serialize-RT-percpu-scratch-buffer-.patch +0225-crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch +0226-panic-skip-get_random_bytes-for-RT_FULL-in-init_oops.patch +0227-x86-stackprotector-Avoid-random-pool-on-rt.patch +0228-random-Make-it-work-on-rt.patch +0229-random-avoid-preempt_disable-ed-section.patch +0230-cpu-hotplug-Implement-CPU-pinning.patch +0231-sched-Allow-pinned-user-tasks-to-be-awakened-to-the-.patch +0232-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch +0233-net-Remove-preemption-disabling-in-netif_rx.patch +0234-net-Another-local_irq_disable-kmalloc-headache.patch +0235-net-core-protect-users-of-napi_alloc_cache-against-r.patch +0236-net-netfilter-Serialize-xt_write_recseq-sections-on-.patch +0237-net-Add-a-mutex-around-devnet_rename_seq.patch +0238-lockdep-selftest-Only-do-hardirq-context-test-for-ra.patch +0239-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +0240-sched-Add-support-for-lazy-preemption.patch +0241-ftrace-Fix-trace-header-alignment.patch +0242-x86-Support-for-lazy-preemption.patch +0243-x86-lazy-preempt-properly-check-against-preempt-mask.patch +0244-x86-lazy-preempt-use-proper-return-label-on-32bit-x8.patch +0245-arm-Add-support-for-lazy-preemption.patch +0246-powerpc-Add-support-for-lazy-preemption.patch +0247-arch-arm64-Add-lazy-preempt-support.patch +0248-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +0249-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +0250-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +0251-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch +0252-tpm_tis-fix-stall-after-iowrite-s.patch +0253-watchdog-prevent-deferral-of-watchdogd-wakeup-on-RT.patch +0254-drm-radeon-i915-Use-preempt_disable-enable_rt-where-.patch +0255-drm-i915-Use-local_lock-unlock_irq-in-intel_pipe_upd.patch +0256-drm-i915-disable-tracing-on-RT.patch +0257-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +0258-cgroups-use-simple-wait-in-css_release.patch +0259-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +0260-apparmor-use-a-locallock-instead-preempt_disable.patch +0261-workqueue-Prevent-deadlock-stall-on-RT.patch +0262-signals-Allow-rt-tasks-to-cache-one-sigqueue-struct.patch +0263-Add-localversion-for-RT-release.patch +0264-Linux-4.19.37-rt19-REBASE.patch