########################################################### # DELTA against a known Linus release ########################################################### ############################################################ # UPSTREAM merged ############################################################ # z3fold, 135f97fd0c398f20a544cc52c3f8a3cb925a8aef 0003-z3fold-remove-preempt-disabled-sections-for-RT.patch ############################################################ # POSTED by others ############################################################ # 2020-10-23 12:11 Peter Zijlstra [PATCH v4 00/19] sched: Migrate disable support # 20201023101158.088940906@infradead.org 0001-stop_machine-Add-function-and-caller-debug-info.patch 0002-sched-Fix-balance_callback.patch 0003-sched-hotplug-Ensure-only-per-cpu-kthreads-run-durin.patch 0004-sched-core-Wait-for-tasks-being-pushed-away-on-hotpl.patch 0005-workqueue-Manually-break-affinity-on-hotplug.patch 0006-sched-hotplug-Consolidate-task-migration-on-CPU-unpl.patch 0007-sched-Fix-hotplug-vs-CPU-bandwidth-control.patch 0008-sched-Massage-set_cpus_allowed.patch 0009-sched-Add-migrate_disable.patch 0010-sched-Fix-migrate_disable-vs-set_cpus_allowed_ptr.patch 0011-sched-core-Make-migrate-disable-and-CPU-hotplug-coop.patch 0012-sched-rt-Use-cpumask_any-_distribute.patch 0013-sched-rt-Use-the-full-cpumask-for-balancing.patch 0014-sched-lockdep-Annotate-pi_lock-recursion.patch 0015-sched-Fix-migrate_disable-vs-rt-dl-balancing.patch 0016-sched-proc-Print-accurate-cpumask-vs-migrate_disable.patch 0017-sched-Add-migrate_disable-tracepoints.patch 0018-sched-Deny-self-issued-__set_cpus_allowed_ptr-when-m.patch 0019-sched-Comment-affine_move_task.patch sched-Unlock-the-rq-in-affine_move_task-error-path.patch # tip 1293771e4353c148d5f6908fb32d1c1cfd653e47 sched-Fix-migration_cpu_stop-WARN.patch # tip d707faa64d03d26b529cc4aea59dab1b016d4d3 sched-core-Add-missing-completion-for-affine_move_ta.patch # 2020-11-03 10:27 Thomas Gleixner [patch V3 00/37] mm/highmem: Preemptible variant of kmap_atomic & friends # 20201103092712.714480842@linutronix.de 0001-mm-highmem-Un-EXPORT-__kmap_atomic_idx.patch 0002-highmem-Remove-unused-functions.patch 0003-fs-Remove-asm-kmap_types.h-includes.patch 0004-sh-highmem-Remove-all-traces-of-unused-cruft.patch 0005-asm-generic-Provide-kmap_size.h.patch 0006-highmem-Provide-generic-variant-of-kmap_atomic.patch 0007-highmem-Make-DEBUG_HIGHMEM-functional.patch 0008-x86-mm-highmem-Use-generic-kmap-atomic-implementatio.patch 0009-arc-mm-highmem-Use-generic-kmap-atomic-implementatio.patch 0010-ARM-highmem-Switch-to-generic-kmap-atomic.patch 0011-csky-mm-highmem-Switch-to-generic-kmap-atomic.patch 0012-microblaze-mm-highmem-Switch-to-generic-kmap-atomic.patch 0013-mips-mm-highmem-Switch-to-generic-kmap-atomic.patch 0014-nds32-mm-highmem-Switch-to-generic-kmap-atomic.patch 0015-powerpc-mm-highmem-Switch-to-generic-kmap-atomic.patch 0016-sparc-mm-highmem-Switch-to-generic-kmap-atomic.patch 0017-xtensa-mm-highmem-Switch-to-generic-kmap-atomic.patch 0018-highmem-Get-rid-of-kmap_types.h.patch 0019-mm-highmem-Remove-the-old-kmap_atomic-cruft.patch 0020-io-mapping-Cleanup-atomic-iomap.patch 0021-Documentation-io-mapping-Remove-outdated-blurb.patch 0022-highmem-High-implementation-details-and-document-API.patch 0023-sched-Make-migrate_disable-enable-independent-of-RT.patch 0024-sched-highmem-Store-local-kmaps-in-task-struct.patch 0025-mm-highmem-Provide-kmap_local.patch 0026-io-mapping-Provide-iomap_local-variant.patch 0027-x86-crashdump-32-Simplify-copy_oldmem_page.patch 0028-mips-crashdump-Simplify-copy_oldmem_page.patch 0029-ARM-mm-Replace-kmap_atomic_pfn.patch 0030-highmem-Remove-kmap_atomic_pfn.patch 0031-drm-ttm-Replace-kmap_atomic-usage.patch 0032-drm-vmgfx-Replace-kmap_atomic.patch 0033-highmem-Remove-kmap_atomic_prot.patch 0034-drm-qxl-Replace-io_mapping_map_atomic_wc.patch 0035-drm-nouveau-device-Replace-io_mapping_map_atomic_wc.patch 0036-drm-i915-Replace-io_mapping_map_atomic_wc.patch 0037-io-mapping-Remove-io_mapping_map_atomic_wc.patch # TIP 2a656cad337e0e1ca582f58847d7b0c7eeba4dc8 mm-highmem-Take-kmap_high_get-properly-into-account.patch # highmem-Don-t-disable-preemption-on-RT-in-kmap_atomi.patch # 87lfea7gw8.fsf@nanos.tec.linutronix.de timers-Move-clearing-of-base-timer_running-under-bas.patch ############################################################ # POSTED ############################################################ # 20201028141251.3608598-1-bigeasy@linutronix.de 0001-blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch 0002-blk-mq-Always-complete-remote-completions-requests-i.patch 0003-blk-mq-Use-llist_head-for-blk_cpu_done.patch block-mq-Disable-preemption-in-blk_mq_complete_reque.patch # 20201028181041.xyeothhkouc3p4md@linutronix.de lib-test_lockup-Minimum-fix-to-get-it-compiled-on-PR.patch # 20201103190937.hga67rqhvknki3tp@linutronix.de timers-Don-t-block-on-expiry_lock-for-TIMER_IRQSAFE.patch # 20201110113848.801379-1-bigeasy@linutronix.de 0001-kthread-Move-prio-affinite-change-into-the-newly-cre.patch 0002-genirq-Move-prio-assignment-into-the-newly-created-t.patch # 20201122201904.30940-1-valentin.schneider@arm.com notifier-Make-atomic_notifiers-use-raw_spinlock.patch # RCU # 20201215141649.796472-1-bigeasy@linutronix.de # rcu/dev 1edaf2221f8f193e78206dec914d15bf0932bb81+ 0001-rcu-Make-RCU_BOOST-default-on-CONFIG_PREEMPT_RT.patch 0002-rcu-Unconditionally-use-rcuc-threads-on-PREEMPT_RT.patch 0003-rcu-Enable-rcu_normal_after_boot-unconditionally-for.patch 0004-doc-Update-RCU-s-requirements-page-about-the-PREEMPT.patch 0005-doc-Use-CONFIG_PREEMPTION.patch # 20201216172205.gvpizdw4kzpn326q@linutronix.de tracing-Merge-irqflags-preemt-counter-add-RT-bits.patch ############################################################ # Ready for posting ############################################################ # John's printk series. 0001-printk-inline-log_output-log_store-in-vprintk_store.patch 0002-printk-remove-logbuf_lock-writer-protection-of-ringb.patch 0003-printk-use-seqcount_latch-for-clear_seq.patch 0004-printk-use-atomic64_t-for-devkmsg_user.seq.patch 0005-printk-add-syslog_lock.patch 0006-define-CONSOLE_LOG_MAX-in-printk.h.patch 0007-printk-track-limit-recursion.patch 0008-printk-invoke-dumper-using-a-copy-of-the-iterator.patch 0009-printk-remove-logbuf_lock.patch 0010-printk-remove-safe-buffers.patch 0011-printk-refactor-kmsg_dump_get_buffer.patch 0012-console-add-write_atomic-interface.patch 0013-serial-8250-implement-write_atomic.patch 0014-printk-relocate-printk_delay-and-vprintk_default.patch 0015-printk-combine-boot_delay_msec-into-printk_delay.patch 0016-printk-change-console_seq-to-atomic64_t.patch 0017-printk-introduce-kernel-sync-mode.patch 0018-printk-move-console-printing-to-kthreads.patch 0019-printk-remove-deferred-printing.patch 0020-printk-add-console-handover.patch 0021-printk-add-pr_flush.patch ############################################################ # Needs to address review feedback ############################################################ # This one would keep the raw-lock and IRQ on/off as the minimal duct tape. cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch # The alternative to remove unused code. # 20190816111817.834-1-bigeasy@linutronix.de | https://www.spinics.net/lists/cgroups/msg23051.html # UM, microblaze, ia64 fail to build with this patch (while compiling .S # files). Postpone until the orignal issue pops up. # percpu-include-irqflags.h-for-raw_local_irq_save.patch # 20190211113829.sqf6bdi4c4cdd3rp@linutronix.de | 20190821152158.GA12901@cmpxchg.org mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch # 20190211105835.16851-1-bigeasy@linutronix.de # drop… tpm-remove-tpm_dev_wq_lock.patch ############################################################ # Almost ready, needs final polishing ############################################################ shmem-Use-raw_spinlock_t-for-stat_lock.patch net--Move-lockdep-where-it-belongs.patch tcp-Remove-superfluous-BH-disable-around-listening_h.patch # SoftIRQ # TIP 9f112156f8da016df2dcbe77108e5b070aa58992 and later 0001-parisc-Remove-bogus-__IRQ_STAT-macro.patch 0002-sh-Get-rid-of-nmi_count.patch 0003-irqstat-Get-rid-of-nmi_count-and-__IRQ_STAT.patch 0004-um-irqstat-Get-rid-of-the-duplicated-declarations.patch 0005-ARM-irqstat-Get-rid-of-duplicated-declaration.patch 0006-arm64-irqstat-Get-rid-of-duplicated-declaration.patch 0007-asm-generic-irqstat-Add-optional-__nmi_count-member.patch 0008-sh-irqstat-Use-the-generic-irq_cpustat_t.patch 0009-irqstat-Move-declaration-into-asm-generic-hardirq.h.patch 0010-preempt-Cleanup-the-macro-maze-a-bit.patch 0011-softirq-Move-related-code-into-one-section.patch 0012-sh-irq-Add-missing-closing-parentheses-in-arch_show_.patch # TIP 7197688b2006357da75a014e0a76be89ca9c2d46 and later 0001-sched-cputime-Remove-symbol-exports-from-IRQ-time-ac.patch 0002-s390-vtime-Use-the-generic-IRQ-entry-accounting.patch 0003-sched-vtime-Consolidate-IRQ-time-accounting.patch 0004-irqtime-Move-irqtime-entry-accounting-after-irq-offs.patch 0005-irq-Call-tick_irq_enter-inside-HARDIRQ_OFFSET.patch # WIP softirq_Add_RT_specific_softirq_accounting.patch softirq_Move_various_protections_into_inline_helpers.patch softirq_Make_softirq_control_and_processing_RT_aware.patch tick_sched_Prevent_false_positive_softirq_pending_warnings_on_RT.patch rcu_Prevent_false_positive_softirq_warning_on_RT.patch softirq_Replace_barrier_with_cpu_relax_in_tasklet_unlock_wait_.patch tasklets_Use_static_inlines_for_stub_implementations.patch tasklets_Prevent_kill_unlock_wait_deadlock_on_RT.patch # irqtime-Use-irq_count-instead-of-preempt_count.patch # TIP 5f0c71278d6848b4809f83af90f28196e1505ab1 x86-fpu-Simplify-fpregs_-un-lock.patch # TIP cba08c5dc6dc1a906a0b5ddac9a9ac6c9a64f2e8 x86-fpu-Make-kernel-FPU-protection-RT-friendly.patch # RT-MUTEX 0001-locking-rtmutex-Remove-cruft.patch 0002-locking-rtmutex-Remove-output-from-deadlock-detector.patch 0003-locking-rtmutex-Move-rt_mutex_init-outside-of-CONFIG.patch 0004-locking-rtmutex-Remove-rt_mutex_timed_lock.patch 0005-locking-rtmutex-Handle-the-various-new-futex-race-co.patch 0006-futex-Fix-bug-on-when-a-requeued-RT-task-times-out.patch 0007-locking-rtmutex-Make-lock_killable-work.patch 0008-locking-spinlock-Split-the-lock-types-header.patch 0009-locking-rtmutex-Avoid-include-hell.patch 0010-lockdep-Reduce-header-files-in-debug_locks.h.patch 0011-locking-split-out-the-rbtree-definition.patch 0012-locking-rtmutex-Provide-rt_mutex_slowlock_locked.patch 0013-locking-rtmutex-export-lockdep-less-version-of-rt_mu.patch 0014-sched-Add-saved_state-for-tasks-blocked-on-sleeping-.patch 0015-locking-rtmutex-add-sleeping-lock-implementation.patch 0016-locking-rtmutex-Allow-rt_mutex_trylock-on-PREEMPT_RT.patch 0017-locking-rtmutex-add-mutex-implementation-based-on-rt.patch 0018-locking-rtmutex-add-rwsem-implementation-based-on-rt.patch 0019-locking-rtmutex-add-rwlock-implementation-based-on-r.patch 0020-locking-rtmutex-wire-up-RT-s-locking.patch 0021-locking-rtmutex-add-ww_mutex-addon-for-mutex-rt.patch 0022-locking-rtmutex-Use-custom-scheduling-function-for-s.patch ############################################################### # Stuff broken upstream and upstream wants something different ############################################################### # PTRACE/SIGNAL crap # https://lore.kernel.org/lkml/CADkTA4PBT374CY+UNb85WjQEaNCDodMZu=MgpG8aMYbAu2eOGA@mail.gmail.com/ signal-revert-ptrace-preempt-magic.patch ################################################## # REAL RT STUFF starts here ################################################## ############################################################ # PREEMPT NORT preempt-nort-rt-variants.patch mm-make-vmstat-rt-aware.patch mm-memcontrol-Disable-preemption-in-__mod_memcg_lruv.patch # seqcount 0024-xfrm-Use-sequence-counter-with-associated-spinlock.patch u64_stats-Disable-preemption-on-32bit-UP-SMP-with-RT.patch fs-dcache-use-swait_queue-instead-of-waitqueue.patch fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch net-Qdisc-use-a-seqlock-instead-seqcount.patch net-Properly-annotate-the-try-lock-for-the-seqlock.patch ##### # split changelog kconfig-disable-a-few-options-rt.patch # proper changelog mm-disable-sloub-rt.patch # Revisit ???? sched-disable-rt-group-sched-on-rt.patch # Post net_disable_NET_RX_BUSY_POLL.patch # proper changelog efi-Disable-runtime-services-on-RT.patch efi-Allow-efi-runtime.patch # local locks & migrate disable # Rework, write proper changelog and argument rt-local-irq-lock.patch # Move post local lock # Sigh # Check proper again. Crap.... oleg-signal-rt-fix.patch # MM page alloc # 0001-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch 0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch mm-page_alloc-Use-migrate_disable-in-drain_local_pag.patch mm-page_alloc-rt-friendly-per-cpu-pages.patch # MM SLxB mm-slub-Make-object_map_lock-a-raw_spinlock_t.patch slub-enable-irqs-for-no-wait.patch slub-disable-SLUB_CPU_PARTIAL.patch # MM mm-memcontrol-Provide-a-local_lock-for-per-CPU-memcg.patch mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch mm-memcontrol-do_not_disable_irq.patch # XXX mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch mm-zswap-Use-local-lock-to-protect-per-CPU-data.patch # KVM require constant freq TSC (smp function call -> cpufreq) # proper changelog x86-kvm-require-const-tsc-for-rt.patch # SIMPLE WAITQUEUE # Revisit wait.h-include-atomic.h.patch # SCHEDULER # PUSH IPI? sched-limit-nr-migrate.patch # Combine in series with delay put task sched-mmdrop-delayed.patch # Revisit, still needed. kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch # RT bulk - Revisit sched-might-sleep-do-not-account-rcu-depth.patch sched-disable-ttwu-queue.patch # A few of those will also just schedule ksoftirqd and schedule at some random # point. They may hold a spinlock_t so it is not always random, recheck all. softirq-preempt-fix-3-re.patch # Post towards end with x86 crap and skip the rest for now softirq-disable-softirq-stacks-for-rt.patch # Rewrite changelog and repost # 20170620.130840.472295224655944129.davem@davemloft.net net-core-use-local_bh_disable-in-netif_rx_ni.patch # RTMUTEX pid.h-include-atomic.h.patch ptrace-fix-ptrace-vs-tasklist_lock-race.patch ptrace-fix-ptrace_unfreeze_traced-race-with-rt-lock.patch # MIGRATE DISABLE AND PER CPU # Revisit add_cpu_light.patch ftrace-migrate-disable-tracing.patch locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch # RCU locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch # atomic BH is longer doable in current softirq implemention. rcutorture-Avoid-problematic-critical-section-nestin.patch # CPU get light mm-vmalloc-use-get-cpu-light.patch block-mq-drop-preempt-disable.patch md-raid5-percpu-handling-rt-aware.patch scsi-fcoe-rt-aware.patch sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch # CPU CHILL rt-introduce-cpu-chill.patch # FS LIVELOCK PREVENTION fs-namespace-use-cpu-chill-in-trylock-loops.patch # DEBUGOBJECTS # Post debugobjects-rt.patch # NETWORKING # Revisit skbufhead-raw-lock.patch net-Dequeue-in-dev_cpu_dead-without-the-lock.patch net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch # irqwork # Revisit irqwork-push_most_work_into_softirq_context.patch # crypto drivers # Revisit x86-crypto-reduce-preempt-disabled-regions.patch crypto-Reduce-preempt-disabled-regions-more-algos.patch crypto-limit-more-FPU-enabled-sections.patch crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch # RANDOM panic-disable-random-on-rt.patch # Check me .... x86-stackprot-no-random-on-rt.patch # Random push into ringbuffer random-make-it-work-on-rt.patch # NET # Revisit upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch # LOCKDEP # Lockdep together with lockdep branch .... lockdep-no-softirq-accounting-on-rt.patch lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch # Fix lockdep selftest - talk to Peter - including lockdep branch lockdep-disable-self-test.patch # I915 # Low prio drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch drm-i915-disable-tracing-on-RT.patch drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch drm-i915-gt-Only-disable-interrupts-for-the-timeline.patch # CGROUPS # Revisit and Post cpuset-Convert-callback_lock-to-raw_spinlock_t.patch ################################################################################ ################################################################################ # Enable X86-64 x86-Enable-RT.patch ################################################################################ ################################################################################ # KMAP/HIGHMEM mm-scatterlist-dont-disable-irqs-on-RT.patch # PREEMPT LAZY preempt-lazy-support.patch # 20200701083553.fuy42cllxvx3bkzp@linutronix.de x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch x86-preempt-lazy.patch arm-preempt-lazy-support.patch powerpc-preempt-lazy-support.patch arch-arm64-Add-lazy-preempt-support.patch jump-label-rt.patch # Skip until ARM or make it depend on ARM leds-trigger-disable-CPU-trigger-on-RT.patch # DRIVERS SERIAL drivers-tty-fix-omap-lock-crap.patch drivers-tty-pl011-irq-disable-madness.patch # misc ARM # arm-include-definition-for-cpumask_t.patch ARM-enable-irq-in-translation-section-permission-fau.patch genirq-update-irq_set_irqchip_state-documentation.patch KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch # Those two should vanish soon (not use PIT during bootup) # XXX check if needed, looks like not required. # at91_dont_enable_disable_clock.patch # clocksource-tclib-allow-higher-clockrates.patch # Other architectures x86-Enable-RT-also-on-32bit.patch ARM-Allow-to-enable-RT.patch ARM64-Allow-to-enable-RT.patch # PowerPC powerpc-traps.patch powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch powerpc-stackprotector-work-around-stack-guard-init-.patch powerpc-Avoid-recursive-header-includes.patch POWERPC-Allow-to-enable-RT.patch # DRIVERS # Postpone, disable drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch # Generic iowriteN_buffer() function .... tpm_tis-fix-stall-after-iowrite-s.patch # Postpone signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch signal-Prevent-double-free-of-user-struct.patch genirq-disable-irqpoll-on-rt.patch # SYSFS - RT indicator sysfs-realtime-entry.patch # Add RT to version localversion.patch