From fbc787c3fed74f9a310515aed1d2d274e2a5e14e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 4 May 2024 12:10:52 +0200 Subject: Merging debian version 6.1.82-1. Signed-off-by: Daniel Baumann --- .../0001-vduse-Remove-include-of-rwlock.h.patch | 8 +-- ...t-disable-preemption-in-ptrace_stop-on-PR.patch | 8 +-- ...der-task_struct-saved_state-in-wait_task_.patch | 8 +-- ...e-the-obsolte-u64_stats_fetch_-_irq-users.patch | 10 ++-- ...the-obsolte-u64_stats_fetch_-_irq-users-d.patch | 66 +++++++++++----------- ...the-obsolte-u64_stats_fetch_-_irq-users-n.patch | 30 +++++----- ...e-the-obsolte-u64_stats_fetch_-_irq-users.patch | 12 ++-- ...at-Remove-the-obsolete-fetch_irq-variants.patch | 8 +-- .../0009-net-Avoid-the-IPI-to-free-the.patch | 20 +++---- .../patches-rt/0010-x86-Allow-to-enable-RT.patch | 10 ++-- .../0011-x86-Enable-RT-also-on-32bit.patch | 10 ++-- ...-Use-a-dedicated-thread-for-timer-wakeups.patch | 14 ++--- ...Also-force-sched-priority-to-timersd-on-b.patch | 8 +-- ...timer-storm-since-introduction-of-timersd.patch | 10 ++-- ...ftirq-Wake-ktimers-thread-also-in-softirq.patch | 8 +-- .../0016-tpm_tis-fix-stall-after-iowrite-s.patch | 8 +-- ...e-bit-spinlocks-with-spinlock_t-for-PREEM.patch | 8 +-- ...lockdep-Remove-lockdep_init_map_crosslock.patch | 8 +-- .../0019-printk-Bring-back-the-RT-bits.patch | 8 +-- ...ntk-add-infrastucture-for-atomic-consoles.patch | 12 ++-- .../0021-serial-8250-implement-write_atomic.patch | 12 ++-- ...intk-avoid-preempt_disable-for-PREEMPT_RT.patch | 8 +-- ...e-preempt_disable-enable_rt-where-recomme.patch | 8 +-- ...n-t-disable-interrupts-on-PREEMPT_RT-duri.patch | 8 +-- ...n-t-check-for-atomic-context-on-PREEMPT_R.patch | 8 +-- ...i915-Disable-tracing-points-on-PREEMPT_RT.patch | 8 +-- ...ip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch | 8 +-- ...5-gt-Queue-and-wait-for-the-irq_work-item.patch | 8 +-- ...-Use-spin_lock_irq-instead-of-local_irq_d.patch | 8 +-- ...030-drm-i915-Drop-the-irqs_disabled-check.patch | 8 +-- ...0031-Revert-drm-i915-Depend-on-PREEMPT_RT.patch | 8 +-- ...032-sched-Add-support-for-lazy-preemption.patch | 34 +++++------ ...se-should_resched-in-idtentry_exit_cond_r.patch | 8 +-- .../0034-x86-Support-for-lazy-preemption.patch | 10 ++-- .../0035-entry-Fix-the-preempt-lazy-fallout.patch | 8 +-- .../0036-arm-Add-support-for-lazy-preemption.patch | 8 +-- ...7-powerpc-Add-support-for-lazy-preemption.patch | 10 ++-- .../0038-arch-arm64-Add-lazy-preempt-support.patch | 10 ++-- ...0039-arm-Disable-jump-label-on-PREEMPT_RT.patch | 8 +-- ...irq-in-translation-section-permission-fau.patch | 8 +-- ...tty-serial-omap-Make-the-locking-RT-aware.patch | 10 ++-- ...-serial-pl011-Make-the-locking-work-on-RT.patch | 10 ++-- .../patches-rt/0043-ARM-Allow-to-enable-RT.patch | 8 +-- .../patches-rt/0044-ARM64-Allow-to-enable-RT.patch | 10 ++-- .../0045-powerpc-traps-Use-PREEMPT_RT.patch | 10 ++-- ...ries-iommu-Use-a-locallock-instead-local_.patch | 10 ++-- ...-Disable-in-kernel-MPIC-emulation-for-PRE.patch | 8 +-- ...ckprotector-work-around-stack-guard-init-.patch | 8 +-- .../0049-POWERPC-Allow-to-enable-RT.patch | 8 +-- .../0050-sysfs-Add-sys-kernel-realtime-entry.patch | 8 +-- .../0051-Add-localversion-for-RT-release.patch | 8 +-- .../patches-rt/0052-Linux-6.1.46-rt13-REBASE.patch | 8 +-- ...don-t-disable-preempt-on-RT-in-io_mapping.patch | 8 +-- ...ase-Mitigate-indefinite-writer-starvation.patch | 8 +-- ...5-revert-softirq-Let-ksoftirqd-do-its-job.patch | 8 +-- ...s-locking-Annotate-debug_object_fill_pool.patch | 10 ++-- ...id-false-lockdep-splat-in-put_task_struct.patch | 12 ++-- ...oc-Use-write_seqlock_irqsave-instead-writ.patch | 10 ++-- ...59-bpf-Remove-in_atomic-from-bpf_link_put.patch | 20 +++---- ...s-Ensure-timer-ID-search-loop-limit-is-va.patch | 8 +-- ...i915-Do-not-disable-preemption-for-resets.patch | 8 +-- .../patches-rt/0062-Linux-6.1.69-rt21-REBASE.patch | 21 ------- .../patches-rt/0062-Linux-6.1.79-rt25-REBASE.patch | 21 +++++++ ...-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch | 43 ++++++++++++++ .../patches-rt/0064-Linux-6.1.82-rt27-REBASE.patch | 21 +++++++ debian/patches-rt/series | 4 +- 66 files changed, 422 insertions(+), 356 deletions(-) delete mode 100644 debian/patches-rt/0062-Linux-6.1.69-rt21-REBASE.patch create mode 100644 debian/patches-rt/0062-Linux-6.1.79-rt25-REBASE.patch create mode 100644 debian/patches-rt/0063-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch create mode 100644 debian/patches-rt/0064-Linux-6.1.82-rt27-REBASE.patch (limited to 'debian/patches-rt') diff --git a/debian/patches-rt/0001-vduse-Remove-include-of-rwlock.h.patch b/debian/patches-rt/0001-vduse-Remove-include-of-rwlock.h.patch index 891081a3a..e11997832 100644 --- a/debian/patches-rt/0001-vduse-Remove-include-of-rwlock.h.patch +++ b/debian/patches-rt/0001-vduse-Remove-include-of-rwlock.h.patch @@ -1,8 +1,8 @@ -From 52072a197524e62baa4ac9a5f33d15cd8b27fb17 Mon Sep 17 00:00:00 2001 +From cb00f3551d1076203c3d3e45bce547a22167e3d4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 16 Aug 2022 09:45:22 +0200 -Subject: [PATCH 01/62] vduse: Remove include of rwlock.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 01/64] vduse: Remove include of rwlock.h +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz rwlock.h should not be included directly. Instead linux/splinlock.h should be included. Including it directly will break the RT build. @@ -29,5 +29,5 @@ index 4e0e50e7ac15..173e979b84a9 100644 #define IOVA_START_PFN 1 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0002-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch b/debian/patches-rt/0002-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch index 05ec116ad..3d1c7e16c 100644 --- a/debian/patches-rt/0002-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch +++ b/debian/patches-rt/0002-signal-Don-t-disable-preemption-in-ptrace_stop-on-PR.patch @@ -1,9 +1,9 @@ -From d5541b6ef4eccee650abfe3095b9e7365773494c Mon Sep 17 00:00:00 2001 +From d30b64b197204eca145c59f542df714bf8a3bbd1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 22 Jun 2022 11:36:17 +0200 -Subject: [PATCH 02/62] signal: Don't disable preemption in ptrace_stop() on +Subject: [PATCH 02/64] signal: Don't disable preemption in ptrace_stop() on PREEMPT_RT. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Commit 53da1d9456fe7 ("fix ptrace slowness") @@ -62,5 +62,5 @@ index 5d45f5da2b36..58e919c7c936 100644 cgroup_leave_frozen(true); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0003-sched-Consider-task_struct-saved_state-in-wait_task_.patch b/debian/patches-rt/0003-sched-Consider-task_struct-saved_state-in-wait_task_.patch index 933385ab9..81cd51a2b 100644 --- a/debian/patches-rt/0003-sched-Consider-task_struct-saved_state-in-wait_task_.patch +++ b/debian/patches-rt/0003-sched-Consider-task_struct-saved_state-in-wait_task_.patch @@ -1,9 +1,9 @@ -From e4742fc784660e012dc23090a72614bf1f9a0ca1 Mon Sep 17 00:00:00 2001 +From e5c3cf2a67b2d4ff5b85ad7842ee1161378193b4 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 22 Jun 2022 12:27:05 +0200 -Subject: [PATCH 03/62] sched: Consider task_struct::saved_state in +Subject: [PATCH 03/64] sched: Consider task_struct::saved_state in wait_task_inactive(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Ptrace is using wait_task_inactive() to wait for the tracee to reach a certain task state. On PREEMPT_RT that state may be stored in @@ -148,5 +148,5 @@ index 18a4f8f28a25..6bd06122850a 100644 set_current_state(TASK_UNINTERRUPTIBLE); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0004-spi-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch b/debian/patches-rt/0004-spi-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch index 0f1b0f221..b986e74b4 100644 --- a/debian/patches-rt/0004-spi-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch +++ b/debian/patches-rt/0004-spi-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch @@ -1,8 +1,8 @@ -From 638117350cb3452dd5043156c7e394befe7d6eb9 Mon Sep 17 00:00:00 2001 +From beec00d274388a151165290731f4b39240fbab7a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Aug 2022 16:15:32 +0200 -Subject: [PATCH 04/62] spi: Remove the obsolte u64_stats_fetch_*_irq() users. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 04/64] spi: Remove the obsolte u64_stats_fetch_*_irq() users. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. @@ -19,7 +19,7 @@ Acked-by: Peter Zijlstra (Intel) 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c -index 5d046be8b2dd..716e6d6ecf98 100644 +index 19688f333e0b..f978e5eb7e7e 100644 --- a/drivers/spi/spi.c +++ b/drivers/spi/spi.c @@ -127,10 +127,10 @@ do { \ @@ -36,5 +36,5 @@ index 5d046be8b2dd..716e6d6ecf98 100644 ret += inc; \ } \ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0005-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-d.patch b/debian/patches-rt/0005-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-d.patch index a4d96ec61..b3dee4dd3 100644 --- a/debian/patches-rt/0005-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-d.patch +++ b/debian/patches-rt/0005-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-d.patch @@ -1,9 +1,9 @@ -From d1c3fb886c8b630c3a70f2f7192d53f545798283 Mon Sep 17 00:00:00 2001 +From 6c02703fb84be4f1f8163ba9070f40c61088cd47 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Aug 2022 16:15:44 +0200 -Subject: [PATCH 05/62] net: Remove the obsolte u64_stats_fetch_*_irq() users +Subject: [PATCH 05/64] net: Remove the obsolte u64_stats_fetch_*_irq() users (drivers). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. @@ -162,10 +162,10 @@ index 044b8afde69a..e296546f03cd 100644 stats->rx_dropped = rx_drops; stats->tx_dropped = tx_drops; diff --git a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c -index 4d9d7d1edb9b..697ce83eeae1 100644 +index 0eaaba3a18ee..4f6315e5b714 100644 --- a/drivers/net/ethernet/aquantia/atlantic/aq_ring.c +++ b/drivers/net/ethernet/aquantia/atlantic/aq_ring.c -@@ -957,7 +957,7 @@ unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data) +@@ -941,7 +941,7 @@ unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data) /* This data should mimic aq_ethtool_queue_rx_stat_names structure */ do { count = 0; @@ -174,7 +174,7 @@ index 4d9d7d1edb9b..697ce83eeae1 100644 data[count] = self->stats.rx.packets; data[++count] = self->stats.rx.jumbo_packets; data[++count] = self->stats.rx.lro_packets; -@@ -974,15 +974,15 @@ unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data) +@@ -958,15 +958,15 @@ unsigned int aq_ring_fill_stats_data(struct aq_ring_s *self, u64 *data) data[++count] = self->stats.rx.xdp_tx; data[++count] = self->stats.rx.xdp_invalid; data[++count] = self->stats.rx.xdp_redirect; @@ -724,10 +724,10 @@ index 107bcca7db8c..8f36fe90180f 100644 /* Once we successfully copy the stats in, update the data pointer */ *data += size; diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c -index b4157ff370a3..3b1f912c4c2b 100644 +index d8a7fb21b7b7..845c9518f4e4 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c -@@ -419,10 +419,10 @@ static void i40e_get_netdev_stats_struct_tx(struct i40e_ring *ring, +@@ -425,10 +425,10 @@ static void i40e_get_netdev_stats_struct_tx(struct i40e_ring *ring, unsigned int start; do { @@ -740,7 +740,7 @@ index b4157ff370a3..3b1f912c4c2b 100644 stats->tx_packets += packets; stats->tx_bytes += bytes; -@@ -472,10 +472,10 @@ static void i40e_get_netdev_stats_struct(struct net_device *netdev, +@@ -478,10 +478,10 @@ static void i40e_get_netdev_stats_struct(struct net_device *netdev, if (!ring) continue; do { @@ -753,7 +753,7 @@ index b4157ff370a3..3b1f912c4c2b 100644 stats->rx_packets += packets; stats->rx_bytes += bytes; -@@ -897,10 +897,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi) +@@ -903,10 +903,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi) continue; do { @@ -766,7 +766,7 @@ index b4157ff370a3..3b1f912c4c2b 100644 tx_b += bytes; tx_p += packets; tx_restart += p->tx_stats.restart_queue; -@@ -915,10 +915,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi) +@@ -921,10 +921,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi) continue; do { @@ -779,7 +779,7 @@ index b4157ff370a3..3b1f912c4c2b 100644 rx_b += bytes; rx_p += packets; rx_buf += p->rx_stats.alloc_buff_failed; -@@ -935,10 +935,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi) +@@ -941,10 +941,10 @@ static void i40e_update_vsi_stats(struct i40e_vsi *vsi) continue; do { @@ -824,7 +824,7 @@ index f4ac2b164b3e..892c6a4f03bb 100644 /* Once we successfully copy the stats in, update the data pointer */ *data += size; diff --git a/drivers/net/ethernet/intel/ice/ice_main.c b/drivers/net/ethernet/intel/ice/ice_main.c -index f0f39364819a..f8d722339e89 100644 +index 3117f65253b3..103a0ed66962 100644 --- a/drivers/net/ethernet/intel/ice/ice_main.c +++ b/drivers/net/ethernet/intel/ice/ice_main.c @@ -6419,10 +6419,10 @@ ice_fetch_u64_stats_per_ring(struct u64_stats_sync *syncp, @@ -911,7 +911,7 @@ index 45ce4ed16146..9824f7cfaca4 100644 packets += _packets; } diff --git a/drivers/net/ethernet/intel/igc/igc_ethtool.c b/drivers/net/ethernet/intel/igc/igc_ethtool.c -index 81897f7a90a9..dd8a9d27a167 100644 +index 2bee9cace598..f7284fa4324a 100644 --- a/drivers/net/ethernet/intel/igc/igc_ethtool.c +++ b/drivers/net/ethernet/intel/igc/igc_ethtool.c @@ -840,15 +840,15 @@ static void igc_ethtool_get_stats(struct net_device *netdev, @@ -951,7 +951,7 @@ index 81897f7a90a9..dd8a9d27a167 100644 } spin_unlock(&adapter->stats64_lock); diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c -index 4b6f882b380d..c8c5c9d96ba2 100644 +index e052f49cc08d..9f2851afbd81 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -4868,10 +4868,10 @@ void igc_update_stats(struct igc_adapter *adapter) @@ -981,7 +981,7 @@ index 4b6f882b380d..c8c5c9d96ba2 100644 packets += _packets; } diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c -index 0051aa676e19..1c22ff2dba9b 100644 +index f8e65e18284e..80e1003e9626 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -1335,10 +1335,10 @@ static void ixgbe_get_ethtool_stats(struct net_device *netdev, @@ -1011,10 +1011,10 @@ index 0051aa676e19..1c22ff2dba9b 100644 } diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c -index 9e0e13638c46..ec86b61a8db8 100644 +index 086cc2573033..f48de0bca8a4 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c -@@ -9051,10 +9051,10 @@ static void ixgbe_get_ring_stats64(struct rtnl_link_stats64 *stats, +@@ -9047,10 +9047,10 @@ static void ixgbe_get_ring_stats64(struct rtnl_link_stats64 *stats, if (ring) { do { @@ -1027,7 +1027,7 @@ index 9e0e13638c46..ec86b61a8db8 100644 stats->tx_packets += packets; stats->tx_bytes += bytes; } -@@ -9074,10 +9074,10 @@ static void ixgbe_get_stats64(struct net_device *netdev, +@@ -9070,10 +9070,10 @@ static void ixgbe_get_stats64(struct net_device *netdev, if (ring) { do { @@ -1153,10 +1153,10 @@ index eb4ebaa1c92f..327f03f80836 100644 es->skb_alloc_error += skb_alloc_error; es->refill_error += refill_error; diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c -index f936640cca4e..8c7470ab4985 100644 +index 2f80ee84c7ec..e2037c55a10f 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c -@@ -2008,7 +2008,7 @@ mvpp2_get_xdp_stats(struct mvpp2_port *port, struct mvpp2_pcpu_stats *xdp_stats) +@@ -2033,7 +2033,7 @@ mvpp2_get_xdp_stats(struct mvpp2_port *port, struct mvpp2_pcpu_stats *xdp_stats) cpu_stats = per_cpu_ptr(port->stats, cpu); do { @@ -1165,7 +1165,7 @@ index f936640cca4e..8c7470ab4985 100644 xdp_redirect = cpu_stats->xdp_redirect; xdp_pass = cpu_stats->xdp_pass; xdp_drop = cpu_stats->xdp_drop; -@@ -2016,7 +2016,7 @@ mvpp2_get_xdp_stats(struct mvpp2_port *port, struct mvpp2_pcpu_stats *xdp_stats) +@@ -2041,7 +2041,7 @@ mvpp2_get_xdp_stats(struct mvpp2_port *port, struct mvpp2_pcpu_stats *xdp_stats) xdp_xmit_err = cpu_stats->xdp_xmit_err; xdp_tx = cpu_stats->xdp_tx; xdp_tx_err = cpu_stats->xdp_tx_err; @@ -1174,7 +1174,7 @@ index f936640cca4e..8c7470ab4985 100644 xdp_stats->xdp_redirect += xdp_redirect; xdp_stats->xdp_pass += xdp_pass; -@@ -5115,12 +5115,12 @@ mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) +@@ -5140,12 +5140,12 @@ mvpp2_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) cpu_stats = per_cpu_ptr(port->stats, cpu); do { @@ -1459,7 +1459,7 @@ index d2c6a5dfdc0e..b7e24ae92525 100644 stats->rx_errors = priv->stats_rx.errors; stats->tx_errors = priv->stats_tx.errors; diff --git a/drivers/net/ethernet/ti/am65-cpsw-nuss.c b/drivers/net/ethernet/ti/am65-cpsw-nuss.c -index 9f2553799895..1085b0642c28 100644 +index 76fabeae512d..3069032be5b9 100644 --- a/drivers/net/ethernet/ti/am65-cpsw-nuss.c +++ b/drivers/net/ethernet/ti/am65-cpsw-nuss.c @@ -1376,12 +1376,12 @@ static void am65_cpsw_nuss_ndo_get_stats(struct net_device *dev, @@ -1553,10 +1553,10 @@ index 5ea9dc251dd9..c678876a7826 100644 static const struct net_device_ops axienet_netdev_ops = { diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c -index 0285894c892a..cf87d7ed3779 100644 +index 1b7405539984..453ff84b784a 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c -@@ -1264,12 +1264,12 @@ static void netvsc_get_vf_stats(struct net_device *net, +@@ -1268,12 +1268,12 @@ static void netvsc_get_vf_stats(struct net_device *net, unsigned int start; do { @@ -1571,7 +1571,7 @@ index 0285894c892a..cf87d7ed3779 100644 tot->rx_packets += rx_packets; tot->tx_packets += tx_packets; -@@ -1294,12 +1294,12 @@ static void netvsc_get_pcpu_stats(struct net_device *net, +@@ -1298,12 +1298,12 @@ static void netvsc_get_pcpu_stats(struct net_device *net, unsigned int start; do { @@ -1586,7 +1586,7 @@ index 0285894c892a..cf87d7ed3779 100644 this_tot->rx_packets = this_tot->vf_rx_packets; this_tot->tx_packets = this_tot->vf_tx_packets; this_tot->rx_bytes = this_tot->vf_rx_bytes; -@@ -1318,20 +1318,20 @@ static void netvsc_get_pcpu_stats(struct net_device *net, +@@ -1322,20 +1322,20 @@ static void netvsc_get_pcpu_stats(struct net_device *net, tx_stats = &nvchan->tx_stats; do { @@ -1611,7 +1611,7 @@ index 0285894c892a..cf87d7ed3779 100644 this_tot->rx_bytes += bytes; this_tot->rx_packets += packets; -@@ -1370,21 +1370,21 @@ static void netvsc_get_stats64(struct net_device *net, +@@ -1374,21 +1374,21 @@ static void netvsc_get_stats64(struct net_device *net, tx_stats = &nvchan->tx_stats; do { @@ -1637,7 +1637,7 @@ index 0285894c892a..cf87d7ed3779 100644 t->rx_bytes += bytes; t->rx_packets += packets; -@@ -1527,24 +1527,24 @@ static void netvsc_get_ethtool_stats(struct net_device *dev, +@@ -1531,24 +1531,24 @@ static void netvsc_get_ethtool_stats(struct net_device *dev, tx_stats = &nvdev->chan_table[j].tx_stats; do { @@ -1887,7 +1887,7 @@ index b095a4b4957b..18d99fda997c 100644 } diff --git a/drivers/net/veth.c b/drivers/net/veth.c -index 36c5a41f84e4..605f511a886c 100644 +index dd9f5f146192..a3d9032d911e 100644 --- a/drivers/net/veth.c +++ b/drivers/net/veth.c @@ -182,12 +182,12 @@ static void veth_get_ethtool_stats(struct net_device *dev, @@ -1937,7 +1937,7 @@ index 36c5a41f84e4..605f511a886c 100644 result->xdp_tx_err += xdp_tx_err; result->xdp_packets += packets; diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c -index 21d3461fb5d1..666622ae4b9d 100644 +index 45f1a871b7da..59a2299f00d9 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -2107,18 +2107,18 @@ static void virtnet_stats(struct net_device *dev, @@ -2083,5 +2083,5 @@ index dc404e05970c..14aec417fa06 100644 tot->rx_packets += rx_packets; tot->tx_packets += tx_packets; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0006-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-n.patch b/debian/patches-rt/0006-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-n.patch index ff493ddaf..b52606626 100644 --- a/debian/patches-rt/0006-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-n.patch +++ b/debian/patches-rt/0006-net-Remove-the-obsolte-u64_stats_fetch_-_irq-users-n.patch @@ -1,9 +1,9 @@ -From a0c8ef7e6160582c71c0d8b1786d8e45dcc02132 Mon Sep 17 00:00:00 2001 +From 09d6df4cd7bb30b5ebe0dff908a97f8fbd65d870 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Aug 2022 16:17:37 +0200 -Subject: [PATCH 06/62] net: Remove the obsolte u64_stats_fetch_*_irq() users +Subject: [PATCH 06/64] net: Remove the obsolte u64_stats_fetch_*_irq() users (net). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. @@ -53,10 +53,10 @@ index d3e511e1eba8..0fa52bcc296b 100644 stats->rx_packets += rxpackets; stats->rx_bytes += rxbytes; diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c -index db4f2641d1cd..7e2a9fb5786c 100644 +index 9765f9f9bf7f..f3e85f74af9d 100644 --- a/net/bridge/br_multicast.c +++ b/net/bridge/br_multicast.c -@@ -4899,9 +4899,9 @@ void br_multicast_get_stats(const struct net_bridge *br, +@@ -4909,9 +4909,9 @@ void br_multicast_get_stats(const struct net_bridge *br, unsigned int start; do { @@ -88,10 +88,10 @@ index 9ffd40b8270c..bc75fa1e4666 100644 u64_stats_add(&stats->rx_packets, rxpackets); u64_stats_add(&stats->rx_bytes, rxbytes); diff --git a/net/core/dev.c b/net/core/dev.c -index 0d5aa820fd83..070039f9296c 100644 +index 60619fe8af5f..41226d92755b 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10505,12 +10505,12 @@ void dev_fetch_sw_netstats(struct rtnl_link_stats64 *s, +@@ -10508,12 +10508,12 @@ void dev_fetch_sw_netstats(struct rtnl_link_stats64 *s, stats = per_cpu_ptr(netstats, cpu); do { @@ -227,10 +227,10 @@ index 5fe075bf479e..28ee63ec1d1d 100644 data[1] += tx_bytes; data[2] += rx_packets; diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c -index 5d379df90c82..312c730b725f 100644 +index 9408dc3bb42d..b4aaecb4b3ee 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c -@@ -1708,9 +1708,9 @@ u64 snmp_get_cpu_field64(void __percpu *mib, int cpu, int offt, +@@ -1732,9 +1732,9 @@ u64 snmp_get_cpu_field64(void __percpu *mib, int cpu, int offt, bhptr = per_cpu_ptr(mib, cpu); syncp = (struct u64_stats_sync *)(bhptr + syncp_offset); do { @@ -263,10 +263,10 @@ index 8370726ae7bf..487f8e98deaa 100644 counters.packets += packets; counters.bytes += bytes; diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c -index 49b71453dec3..c462e20ccc8d 100644 +index bd56015b2925..a87823b1976a 100644 --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -2397,9 +2397,9 @@ static inline u64 sta_get_tidstats_msdu(struct ieee80211_sta_rx_stats *rxstats, +@@ -2402,9 +2402,9 @@ static inline u64 sta_get_tidstats_msdu(struct ieee80211_sta_rx_stats *rxstats, u64 value; do { @@ -278,7 +278,7 @@ index 49b71453dec3..c462e20ccc8d 100644 return value; } -@@ -2465,9 +2465,9 @@ static inline u64 sta_get_stats_bytes(struct ieee80211_sta_rx_stats *rxstats) +@@ -2470,9 +2470,9 @@ static inline u64 sta_get_stats_bytes(struct ieee80211_sta_rx_stats *rxstats) u64 value; do { @@ -327,10 +327,10 @@ index 17a1b731a76b..2be696513629 100644 seq_printf(seq, "%3X %8LX %8LX %8LX %16LX %16LX\n", i, (u64)conns, (u64)inpkts, diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c -index 05fa5141af51..ab1888991ae5 100644 +index d3ba947f4376..0e20aa179fc6 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c -@@ -1692,10 +1692,10 @@ static int nft_dump_stats(struct sk_buff *skb, struct nft_stats __percpu *stats) +@@ -1695,10 +1695,10 @@ static int nft_dump_stats(struct sk_buff *skb, struct nft_stats __percpu *stats) for_each_possible_cpu(cpu) { cpu_stats = per_cpu_ptr(stats, cpu); do { @@ -389,5 +389,5 @@ index d4a2db0b2299..0a0e4c283f02 100644 masks_and_count[i].counter += counter; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0007-bpf-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch b/debian/patches-rt/0007-bpf-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch index 6b725886f..404775df6 100644 --- a/debian/patches-rt/0007-bpf-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch +++ b/debian/patches-rt/0007-bpf-Remove-the-obsolte-u64_stats_fetch_-_irq-users.patch @@ -1,8 +1,8 @@ -From b8cff7d0320e3b39f098d9562373e1c16c54c46c Mon Sep 17 00:00:00 2001 +From a21ab7737a503f49b04e501dbb2b15e4b336c1bc Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Aug 2022 16:17:57 +0200 -Subject: [PATCH 07/62] bpf: Remove the obsolte u64_stats_fetch_*_irq() users. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 07/64] bpf: Remove the obsolte u64_stats_fetch_*_irq() users. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. @@ -29,10 +29,10 @@ Acked-by: Peter Zijlstra (Intel) 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c -index 0c8b7733573e..c0915e2424f1 100644 +index 1e46a84694b8..f467e53e09ab 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c -@@ -2115,11 +2115,11 @@ static void bpf_prog_get_stats(const struct bpf_prog *prog, +@@ -2143,11 +2143,11 @@ static void bpf_prog_get_stats(const struct bpf_prog *prog, st = per_cpu_ptr(prog->stats, cpu); do { @@ -47,5 +47,5 @@ index 0c8b7733573e..c0915e2424f1 100644 cnt += tcnt; misses += tmisses; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0008-u64_stat-Remove-the-obsolete-fetch_irq-variants.patch b/debian/patches-rt/0008-u64_stat-Remove-the-obsolete-fetch_irq-variants.patch index 176dbf1e5..2fc76b5c4 100644 --- a/debian/patches-rt/0008-u64_stat-Remove-the-obsolete-fetch_irq-variants.patch +++ b/debian/patches-rt/0008-u64_stat-Remove-the-obsolete-fetch_irq-variants.patch @@ -1,8 +1,8 @@ -From b908a7b47d95003c498f2f575285f528148602d6 Mon Sep 17 00:00:00 2001 +From 002d437cbb1be0fef3366f4893bcb9c2b9e121f3 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 25 Aug 2022 16:43:46 +0200 -Subject: [PATCH 08/62] u64_stat: Remove the obsolete fetch_irq() variants. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 08/64] u64_stat: Remove the obsolete fetch_irq() variants. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Now that the 32bit UP oddity is gone and 32bit uses always a sequence count, there is no need for the fetch_irq() variants anymore. @@ -38,5 +38,5 @@ index 46040d66334a..ffe48e69b3f3 100644 - #endif /* _LINUX_U64_STATS_SYNC_H */ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0009-net-Avoid-the-IPI-to-free-the.patch b/debian/patches-rt/0009-net-Avoid-the-IPI-to-free-the.patch index 1f6687796..fea8be5fc 100644 --- a/debian/patches-rt/0009-net-Avoid-the-IPI-to-free-the.patch +++ b/debian/patches-rt/0009-net-Avoid-the-IPI-to-free-the.patch @@ -1,8 +1,8 @@ -From c910f301d71266e18f63407ec6c65d19ae90e779 Mon Sep 17 00:00:00 2001 +From cf980049b46f0e4ff30b373f992fdfd2671ee76c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 15 Aug 2022 17:29:50 +0200 -Subject: [PATCH 09/62] net: Avoid the IPI to free the -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 09/64] net: Avoid the IPI to free the +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz skb_attempt_defer_free() collects a skbs, which was allocated on a remote CPU, on a per-CPU list. These skbs are either freed on that @@ -41,10 +41,10 @@ index 0373e0935990..55d698367883 100644 static inline void input_queue_head_incr(struct softnet_data *sd) diff --git a/net/core/dev.c b/net/core/dev.c -index 070039f9296c..a3caa23be3cf 100644 +index 41226d92755b..d01dbab0d338 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4618,15 +4618,6 @@ static void rps_trigger_softirq(void *data) +@@ -4621,15 +4621,6 @@ static void rps_trigger_softirq(void *data) #endif /* CONFIG_RPS */ @@ -60,7 +60,7 @@ index 070039f9296c..a3caa23be3cf 100644 /* * Check if this softnet_data structure is another cpu one * If yes, queue it to our IPI list and return 1 -@@ -6684,6 +6675,30 @@ static void skb_defer_free_flush(struct softnet_data *sd) +@@ -6687,6 +6678,30 @@ static void skb_defer_free_flush(struct softnet_data *sd) } } @@ -91,7 +91,7 @@ index 070039f9296c..a3caa23be3cf 100644 static __latent_entropy void net_rx_action(struct softirq_action *h) { struct softnet_data *sd = this_cpu_ptr(&softnet_data); -@@ -11435,7 +11450,11 @@ static int __init net_dev_init(void) +@@ -11447,7 +11462,11 @@ static int __init net_dev_init(void) INIT_CSD(&sd->csd, rps_trigger_softirq, sd); sd->cpu = i; #endif @@ -104,10 +104,10 @@ index 070039f9296c..a3caa23be3cf 100644 init_gro_hash(&sd->backlog); diff --git a/net/core/skbuff.c b/net/core/skbuff.c -index 73b1e0e53534..a457a3445469 100644 +index d4bd10f8723d..02445cd294ab 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c -@@ -6680,6 +6680,11 @@ nodefer: __kfree_skb(skb); +@@ -6683,6 +6683,11 @@ nodefer: __kfree_skb(skb); /* Make sure to trigger NET_RX_SOFTIRQ on the remote CPU * if we are unlucky enough (this seems very unlikely). */ @@ -121,5 +121,5 @@ index 73b1e0e53534..a457a3445469 100644 + } } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0010-x86-Allow-to-enable-RT.patch b/debian/patches-rt/0010-x86-Allow-to-enable-RT.patch index e7681047e..a17305438 100644 --- a/debian/patches-rt/0010-x86-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0010-x86-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From ce04e41eb149fcd93a71b63a605423d7f18ec8b4 Mon Sep 17 00:00:00 2001 +From 69c13d9190be6be27c6cecb0142d0fbe7f7ad13e Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 7 Aug 2019 18:15:38 +0200 -Subject: [PATCH 10/62] x86: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 10/64] x86: Allow to enable RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Allow to select RT. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 4c9bfc4be58d..f7f81e3012cc 100644 +index 5caa023e9839..ae6e44362e75 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -27,6 +27,7 @@ config X86_64 @@ -25,5 +25,5 @@ index 4c9bfc4be58d..f7f81e3012cc 100644 select HAVE_ARCH_SOFT_DIRTY select MODULES_USE_ELF_RELA -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0011-x86-Enable-RT-also-on-32bit.patch b/debian/patches-rt/0011-x86-Enable-RT-also-on-32bit.patch index de093669b..e78f66bb4 100644 --- a/debian/patches-rt/0011-x86-Enable-RT-also-on-32bit.patch +++ b/debian/patches-rt/0011-x86-Enable-RT-also-on-32bit.patch @@ -1,8 +1,8 @@ -From 28dbe0fc30a2d3e519fac1ffe18fe7427f1f49b3 Mon Sep 17 00:00:00 2001 +From b52086d6204fe427c253bfd5d403675acf0241e2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 7 Nov 2019 17:49:20 +0100 -Subject: [PATCH 11/62] x86: Enable RT also on 32bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 11/64] x86: Enable RT also on 32bit +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner @@ -11,7 +11,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index f7f81e3012cc..c9bed9c69423 100644 +index ae6e44362e75..3f9c3e22df18 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -27,7 +27,6 @@ config X86_64 @@ -31,5 +31,5 @@ index f7f81e3012cc..c9bed9c69423 100644 select ARCH_USE_MEMTEST select ARCH_USE_QUEUED_RWLOCKS -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0012-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch b/debian/patches-rt/0012-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch index 720116187..0f057a180 100644 --- a/debian/patches-rt/0012-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch +++ b/debian/patches-rt/0012-softirq-Use-a-dedicated-thread-for-timer-wakeups.patch @@ -1,8 +1,8 @@ -From 454343a4f08e5de772024588aec2bd396177ee89 Mon Sep 17 00:00:00 2001 +From debe22b69f94f95a3cd10f6477386c2cd3942909 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 1 Dec 2021 17:41:09 +0100 -Subject: [PATCH 12/62] softirq: Use a dedicated thread for timer wakeups. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 12/64] softirq: Use a dedicated thread for timer wakeups. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz A timer/hrtimer softirq is raised in-IRQ context. With threaded interrupts enabled or on PREEMPT_RT this leads to waking the ksoftirqd @@ -195,10 +195,10 @@ index c8a6913c067d..ed6d7c41aa17 100644 } early_initcall(spawn_ksoftirqd); diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c -index 5561dabc9b22..c5d480d5da15 100644 +index 9bb88836c42e..11c704bfd4fb 100644 --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c -@@ -1805,7 +1805,7 @@ void hrtimer_interrupt(struct clock_event_device *dev) +@@ -1806,7 +1806,7 @@ void hrtimer_interrupt(struct clock_event_device *dev) if (!ktime_before(now, cpu_base->softirq_expires_next)) { cpu_base->softirq_expires_next = KTIME_MAX; cpu_base->softirq_activated = 1; @@ -207,7 +207,7 @@ index 5561dabc9b22..c5d480d5da15 100644 } __hrtimer_run_queues(cpu_base, now, flags, HRTIMER_ACTIVE_HARD); -@@ -1918,7 +1918,7 @@ void hrtimer_run_queues(void) +@@ -1919,7 +1919,7 @@ void hrtimer_run_queues(void) if (!ktime_before(now, cpu_base->softirq_expires_next)) { cpu_base->softirq_expires_next = KTIME_MAX; cpu_base->softirq_activated = 1; @@ -230,5 +230,5 @@ index 717fcb9fb14a..e6219da89933 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0013-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch b/debian/patches-rt/0013-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch index 9e062b97c..7ce63b553 100644 --- a/debian/patches-rt/0013-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch +++ b/debian/patches-rt/0013-rcutorture-Also-force-sched-priority-to-timersd-on-b.patch @@ -1,9 +1,9 @@ -From a10aa54ef224bbd46ca1777e4b9fe960360961cc Mon Sep 17 00:00:00 2001 +From 8e0831a7be2739b86ae2e8e3289eb0080029a7d0 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 5 Apr 2022 03:07:51 +0200 -Subject: [PATCH 13/62] rcutorture: Also force sched priority to timersd on +Subject: [PATCH 13/64] rcutorture: Also force sched priority to timersd on boosting test. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz ksoftirqd is statically boosted to the priority level right above the one of rcu_torture_boost() so that timers, which torture readers rely on, @@ -77,5 +77,5 @@ index ed6d7c41aa17..1892af494cdd 100644 static unsigned int local_pending_timers(void) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0014-tick-Fix-timer-storm-since-introduction-of-timersd.patch b/debian/patches-rt/0014-tick-Fix-timer-storm-since-introduction-of-timersd.patch index 11eeed939..d6f4c894e 100644 --- a/debian/patches-rt/0014-tick-Fix-timer-storm-since-introduction-of-timersd.patch +++ b/debian/patches-rt/0014-tick-Fix-timer-storm-since-introduction-of-timersd.patch @@ -1,8 +1,8 @@ -From ae3e63c4320c0c2d3865ba8ecff64a6d03948ce7 Mon Sep 17 00:00:00 2001 +From 4198b74f0e8708aae4d35f92853c006348b773b5 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Tue, 5 Apr 2022 03:07:52 +0200 -Subject: [PATCH 14/62] tick: Fix timer storm since introduction of timersd -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 14/64] tick: Fix timer storm since introduction of timersd +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz If timers are pending while the tick is reprogrammed on nohz_mode, the next expiry is not armed to fire now, it is delayed one jiffy forward @@ -99,7 +99,7 @@ index 1892af494cdd..ab1fe34326ba 100644 static void wake_timersd(void) { diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c -index 798e1841d286..b52e1861b913 100644 +index 8cfdc6b978d7..48fd460a5d0e 100644 --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c @@ -800,7 +800,7 @@ static void tick_nohz_restart(struct tick_sched *ts, ktime_t now) @@ -112,5 +112,5 @@ index 798e1841d286..b52e1861b913 100644 static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0015-softirq-Wake-ktimers-thread-also-in-softirq.patch b/debian/patches-rt/0015-softirq-Wake-ktimers-thread-also-in-softirq.patch index 3b938739e..640eed147 100644 --- a/debian/patches-rt/0015-softirq-Wake-ktimers-thread-also-in-softirq.patch +++ b/debian/patches-rt/0015-softirq-Wake-ktimers-thread-also-in-softirq.patch @@ -1,8 +1,8 @@ -From ca98adaa69af0a5f3bb28cccb6543ee3e0c4a23f Mon Sep 17 00:00:00 2001 +From 1e6a0fb8b73b90a3c400d8af10abf9c1071a4567 Mon Sep 17 00:00:00 2001 From: Junxiao Chang Date: Mon, 20 Feb 2023 09:12:20 +0100 -Subject: [PATCH 15/62] softirq: Wake ktimers thread also in softirq. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 15/64] softirq: Wake ktimers thread also in softirq. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz If the hrtimer is raised while a softirq is processed then it does not wake the corresponding ktimers thread. This is due to the optimisation in the @@ -46,5 +46,5 @@ index ab1fe34326ba..82f3e68fbe22 100644 tick_irq_exit(); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0016-tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/0016-tpm_tis-fix-stall-after-iowrite-s.patch index 4004bbf47..29264a385 100644 --- a/debian/patches-rt/0016-tpm_tis-fix-stall-after-iowrite-s.patch +++ b/debian/patches-rt/0016-tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,8 +1,8 @@ -From 87e5c70f401b5230b5125dedc88e10f54909a37e Mon Sep 17 00:00:00 2001 +From 407f71f0f259e2828165219b450e2789e5e4a67c Mon Sep 17 00:00:00 2001 From: Haris Okanovic Date: Tue, 15 Aug 2017 15:13:08 -0500 -Subject: [PATCH 16/62] tpm_tis: fix stall after iowrite*()s -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 16/64] tpm_tis: fix stall after iowrite*()s +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. @@ -78,5 +78,5 @@ index 0d084d6652c4..5d620322bdc2 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0017-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch b/debian/patches-rt/0017-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch index b3f1a71bc..2c347760a 100644 --- a/debian/patches-rt/0017-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch +++ b/debian/patches-rt/0017-zram-Replace-bit-spinlocks-with-spinlock_t-for-PREEM.patch @@ -1,9 +1,9 @@ -From 8397109d43ef57d5e91d738354b9c30f49cb2f95 Mon Sep 17 00:00:00 2001 +From 268265d6c93d82f682b52b96ca21e22c32a4b6db Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Thu, 31 Mar 2016 04:08:28 +0200 -Subject: [PATCH 17/62] zram: Replace bit spinlocks with spinlock_t for +Subject: [PATCH 17/64] zram: Replace bit spinlocks with spinlock_t for PREEMPT_RT. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz The bit spinlock disables preemption on PREEMPT_RT. With disabled preemption it is not allowed to acquire other sleeping locks which includes invoking @@ -96,5 +96,5 @@ index a2bda53020fd..ae7950b26db5 100644 ktime_t ac_time; #endif -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0018-locking-lockdep-Remove-lockdep_init_map_crosslock.patch b/debian/patches-rt/0018-locking-lockdep-Remove-lockdep_init_map_crosslock.patch index 3dcd8cb9b..e16e2a191 100644 --- a/debian/patches-rt/0018-locking-lockdep-Remove-lockdep_init_map_crosslock.patch +++ b/debian/patches-rt/0018-locking-lockdep-Remove-lockdep_init_map_crosslock.patch @@ -1,8 +1,8 @@ -From dd162e2589601c792a81a3c19ef4a87510ed6ce5 Mon Sep 17 00:00:00 2001 +From d5c2057ac0c5a85c418bc864c5a133b413f788d0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Mar 2022 17:44:57 +0100 -Subject: [PATCH 18/62] locking/lockdep: Remove lockdep_init_map_crosslock. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 18/64] locking/lockdep: Remove lockdep_init_map_crosslock. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz The cross-release bits have been removed, lockdep_init_map_crosslock() is a leftover. @@ -30,5 +30,5 @@ index 1f1099dac3f0..1023f349af71 100644 * To initialize a lockdep_map statically use this macro. * Note that _name must not be NULL. -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0019-printk-Bring-back-the-RT-bits.patch b/debian/patches-rt/0019-printk-Bring-back-the-RT-bits.patch index 969f44377..a4ec13e7c 100644 --- a/debian/patches-rt/0019-printk-Bring-back-the-RT-bits.patch +++ b/debian/patches-rt/0019-printk-Bring-back-the-RT-bits.patch @@ -1,8 +1,8 @@ -From dd4e52ae061806da556008ca819481befcff0fd3 Mon Sep 17 00:00:00 2001 +From 80a64a81eb9fe852da559924bbc3f11caf9270f0 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 19 Jul 2022 20:08:01 +0200 -Subject: [PATCH 19/62] printk: Bring back the RT bits. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 19/64] printk: Bring back the RT bits. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz This is a revert of the commits: | 07a22b61946f0 Revert "printk: add functions to prefer direct printing" @@ -1230,5 +1230,5 @@ index 1e8a49dc956e..7c977b945c92 100644 return; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0020-printk-add-infrastucture-for-atomic-consoles.patch b/debian/patches-rt/0020-printk-add-infrastucture-for-atomic-consoles.patch index b86b20007..ad6c3b44b 100644 --- a/debian/patches-rt/0020-printk-add-infrastucture-for-atomic-consoles.patch +++ b/debian/patches-rt/0020-printk-add-infrastucture-for-atomic-consoles.patch @@ -1,8 +1,8 @@ -From 18343f23a5f1d466a0c74806983066efba932d5d Mon Sep 17 00:00:00 2001 +From 6cd3219f279e419547136b8ce2af27b6ba8eb655 Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 4 Feb 2022 16:01:17 +0106 -Subject: [PATCH 20/62] printk: add infrastucture for atomic consoles -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 20/64] printk: add infrastucture for atomic consoles +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Many times it is not possible to see the console output on panic because printing threads cannot be scheduled and/or the @@ -78,10 +78,10 @@ index 143653090c48..8a813cbaf928 100644 CONSOLE_REPLAY_ALL, }; diff --git a/init/Kconfig b/init/Kconfig -index de255842f5d0..d45312780b3a 100644 +index ffb927bf6034..213550cdadd3 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -1582,6 +1582,10 @@ config PRINTK +@@ -1591,6 +1591,10 @@ config PRINTK very difficult to diagnose system problems, saying N here is strongly discouraged. @@ -604,5 +604,5 @@ index e9f9b66608a0..73b1727087c7 100644 seq = con->seq; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0021-serial-8250-implement-write_atomic.patch b/debian/patches-rt/0021-serial-8250-implement-write_atomic.patch index 6a5f5abe2..c2cad2d25 100644 --- a/debian/patches-rt/0021-serial-8250-implement-write_atomic.patch +++ b/debian/patches-rt/0021-serial-8250-implement-write_atomic.patch @@ -1,8 +1,8 @@ -From 08b8c0b589806331dc645a8ead6be51c174d93e0 Mon Sep 17 00:00:00 2001 +From 5db547ff160cfe4176d3d0b86f2584e8be3adcde Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 4 Feb 2022 16:01:17 +0106 -Subject: [PATCH 21/62] serial: 8250: implement write_atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 21/64] serial: 8250: implement write_atomic +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Implement a non-sleeping NMI-safe write_atomic() console function in order to support atomic console printing during a panic. @@ -266,7 +266,7 @@ index 81a5dab1a828..536f639ff56c 100644 } diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c -index b406cba10b0e..246c32c75a4c 100644 +index dca1abe36324..e9e0940772e8 100644 --- a/drivers/tty/serial/8250/8250_exar.c +++ b/drivers/tty/serial/8250/8250_exar.c @@ -189,6 +189,8 @@ static void xr17v35x_set_divisor(struct uart_port *p, unsigned int baud, @@ -370,7 +370,7 @@ index fb1d5ec0940e..3e7203909d6a 100644 static void mtk8250_set_flow_ctrl(struct uart_8250_port *up, int mode) diff --git a/drivers/tty/serial/8250/8250_omap.c b/drivers/tty/serial/8250/8250_omap.c -index 0b04d810b3e6..2b8ad5176399 100644 +index 037d613006f5..4346adb6c3b1 100644 --- a/drivers/tty/serial/8250/8250_omap.c +++ b/drivers/tty/serial/8250/8250_omap.c @@ -330,7 +330,7 @@ static void omap8250_restore_regs(struct uart_8250_port *up) @@ -934,5 +934,5 @@ index 79b328861c5f..35f44352e641 100644 int serial8250_console_exit(struct uart_port *port); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0022-printk-avoid-preempt_disable-for-PREEMPT_RT.patch b/debian/patches-rt/0022-printk-avoid-preempt_disable-for-PREEMPT_RT.patch index ff28f79d9..41bc40c42 100644 --- a/debian/patches-rt/0022-printk-avoid-preempt_disable-for-PREEMPT_RT.patch +++ b/debian/patches-rt/0022-printk-avoid-preempt_disable-for-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From a549c0dff2a1a3b11b40abc969358d8cb367871d Mon Sep 17 00:00:00 2001 +From 5dc5251687aaa4173533acee2d680f0d0bdd6f5a Mon Sep 17 00:00:00 2001 From: John Ogness Date: Fri, 4 Feb 2022 16:01:17 +0106 -Subject: [PATCH 22/62] printk: avoid preempt_disable() for PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 22/64] printk: avoid preempt_disable() for PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz During non-normal operation, printk() calls will attempt to write the messages directly to the consoles. This involves @@ -92,5 +92,5 @@ index 73b1727087c7..3d0ff49cca29 100644 handover = NULL; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0023-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch b/debian/patches-rt/0023-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch index dcee3a6dc..4243e9886 100644 --- a/debian/patches-rt/0023-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch +++ b/debian/patches-rt/0023-drm-i915-Use-preempt_disable-enable_rt-where-recomme.patch @@ -1,9 +1,9 @@ -From f99a0874dccc1ba9f9ead4473ba09603d10946b4 Mon Sep 17 00:00:00 2001 +From ad79e5884686fb7c38f8d9ad62d458e2db18b03a Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 08:09:11 +0100 -Subject: [PATCH 23/62] drm/i915: Use preempt_disable/enable_rt() where +Subject: [PATCH 23/64] drm/i915: Use preempt_disable/enable_rt() where recommended -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Mario Kleiner suggest in commit ad3543ede630f ("drm/intel: Push get_scanout_position() timestamping into kms driver.") @@ -58,5 +58,5 @@ index f93ffa6626a5..6e9d033cf808 100644 spin_unlock_irqrestore(&dev_priv->uncore.lock, irqflags); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0024-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch b/debian/patches-rt/0024-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch index c05066850..34879bb58 100644 --- a/debian/patches-rt/0024-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch +++ b/debian/patches-rt/0024-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-duri.patch @@ -1,9 +1,9 @@ -From 7540de1a42a1a7409b4367b67c76480f7e96d25b Mon Sep 17 00:00:00 2001 +From 437c59f6c122f1b800a1cc1267e5e11af8c7423a Mon Sep 17 00:00:00 2001 From: Mike Galbraith Date: Sat, 27 Feb 2016 09:01:42 +0100 -Subject: [PATCH 24/62] drm/i915: Don't disable interrupts on PREEMPT_RT during +Subject: [PATCH 24/64] drm/i915: Don't disable interrupts on PREEMPT_RT during atomic updates -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Commit 8d7849db3eab7 ("drm/i915: Make sprite updates atomic") @@ -87,5 +87,5 @@ index 6792a9056f46..43cedfef104f 100644 if (intel_vgpu_active(dev_priv)) return; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0025-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch b/debian/patches-rt/0025-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch index 2bbcdfed9..54e9c940a 100644 --- a/debian/patches-rt/0025-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch +++ b/debian/patches-rt/0025-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_R.patch @@ -1,8 +1,8 @@ -From d9970290d810087f44a37de7ae6f3638ecddd3a0 Mon Sep 17 00:00:00 2001 +From becf21c26becce8bfc9acb9024334c558db63c6d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 25 Oct 2021 15:05:18 +0200 -Subject: [PATCH 25/62] drm/i915: Don't check for atomic context on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 25/64] drm/i915: Don't check for atomic context on PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz The !in_atomic() check in _wait_for_atomic() triggers on PREEMPT_RT because the uncore::lock is a spinlock_t and does not disable @@ -32,5 +32,5 @@ index 6c14d13364bf..de58855e6926 100644 #else # define _WAIT_FOR_ATOMIC_CHECK(ATOMIC) do { } while (0) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0026-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch b/debian/patches-rt/0026-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch index bcd36cace..f4209e99b 100644 --- a/debian/patches-rt/0026-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch +++ b/debian/patches-rt/0026-drm-i915-Disable-tracing-points-on-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From 05b1ad300df55e576476a0dee533c90068480372 Mon Sep 17 00:00:00 2001 +From fea6039a50b9d5472d03bf6441239bc1d5a27648 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Thu, 6 Dec 2018 09:52:20 +0100 -Subject: [PATCH 26/62] drm/i915: Disable tracing points on PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 26/64] drm/i915: Disable tracing points on PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 @@ -47,5 +47,5 @@ index 37b5c9e9d260..1434485cb536 100644 #include #include -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0027-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/0027-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index 77fa1b420..ecfacaa5c 100644 --- a/debian/patches-rt/0027-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/debian/patches-rt/0027-drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -1,9 +1,9 @@ -From 1fcbddeff5b9a56382a6ba0aba49578f8cdf9aa4 Mon Sep 17 00:00:00 2001 +From 948f251047e7bb5a683af68abe5c219c47e8ef35 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 19 Dec 2018 10:47:02 +0100 -Subject: [PATCH 27/62] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with +Subject: [PATCH 27/64] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.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 @@ -31,5 +31,5 @@ index 1434485cb536..73f29d8008f0 100644 TP_PROTO(struct i915_request *rq), TP_ARGS(rq) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0028-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch b/debian/patches-rt/0028-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch index 61bd48e8b..9c7bbb1aa 100644 --- a/debian/patches-rt/0028-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch +++ b/debian/patches-rt/0028-drm-i915-gt-Queue-and-wait-for-the-irq_work-item.patch @@ -1,8 +1,8 @@ -From 6dfc680fe2808eaf10a9feed7e3116df60b6032f Mon Sep 17 00:00:00 2001 +From 4257df6e6a5b4da9a38a9d17f18f95f7ebc18c01 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 8 Sep 2021 17:18:00 +0200 -Subject: [PATCH 28/62] drm/i915/gt: Queue and wait for the irq_work item. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 28/64] drm/i915/gt: Queue and wait for the irq_work item. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Disabling interrupts and invoking the irq_work function directly breaks on PREEMPT_RT. @@ -44,5 +44,5 @@ index ecc990ec1b95..8d04b10681f0 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0029-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch b/debian/patches-rt/0029-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch index d7696f54a..95ce951a4 100644 --- a/debian/patches-rt/0029-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch +++ b/debian/patches-rt/0029-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_d.patch @@ -1,9 +1,9 @@ -From 6ca6d59038e0a61a7bb4904310525b1df57a2867 Mon Sep 17 00:00:00 2001 +From 340ffe2a83fe37ae1cb0995f401c6727bc65136c Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 8 Sep 2021 19:03:41 +0200 -Subject: [PATCH 29/62] drm/i915/gt: Use spin_lock_irq() instead of +Subject: [PATCH 29/64] drm/i915/gt: Use spin_lock_irq() instead of local_irq_disable() + spin_lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz execlists_dequeue() is invoked from a function which uses local_irq_disable() to disable interrupts so the spin_lock() behaves @@ -91,5 +91,5 @@ index f903ee1ce06e..f54059b63ea9 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0030-drm-i915-Drop-the-irqs_disabled-check.patch b/debian/patches-rt/0030-drm-i915-Drop-the-irqs_disabled-check.patch index 4d49e26f7..5a54c3573 100644 --- a/debian/patches-rt/0030-drm-i915-Drop-the-irqs_disabled-check.patch +++ b/debian/patches-rt/0030-drm-i915-Drop-the-irqs_disabled-check.patch @@ -1,8 +1,8 @@ -From 6779399c1acfc91f6e9b0bd4dc4abb4f3cb30c78 Mon Sep 17 00:00:00 2001 +From 101aee45e35bd2520f9d552871caebe6dc3d8288 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 1 Oct 2021 20:01:03 +0200 -Subject: [PATCH 30/62] drm/i915: Drop the irqs_disabled() check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 30/64] drm/i915: Drop the irqs_disabled() check +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz The !irqs_disabled() check triggers on PREEMPT_RT even with i915_sched_engine::lock acquired. The reason is the lock is transformed @@ -41,5 +41,5 @@ index 7ce126a01cbf..64a032dfaa90 100644 /* -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0031-Revert-drm-i915-Depend-on-PREEMPT_RT.patch b/debian/patches-rt/0031-Revert-drm-i915-Depend-on-PREEMPT_RT.patch index 9ef52335e..bded6893f 100644 --- a/debian/patches-rt/0031-Revert-drm-i915-Depend-on-PREEMPT_RT.patch +++ b/debian/patches-rt/0031-Revert-drm-i915-Depend-on-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From fe8c8e1f1ec5c61814ee0c4c90a2cef9d35ecad6 Mon Sep 17 00:00:00 2001 +From 5fc818d42a7885adfbba6a3e5a9e6a70a4a10848 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Mon, 21 Feb 2022 17:59:14 +0100 -Subject: [PATCH 31/62] Revert "drm/i915: Depend on !PREEMPT_RT." -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 31/64] Revert "drm/i915: Depend on !PREEMPT_RT." +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Once the known issues are addressed, it should be safe to enable the driver. @@ -25,5 +25,5 @@ index 6b10868ec72f..1fbdb7b4e6e1 100644 select INTERVAL_TREE # we need shmfs for the swappable backing store, and in particular -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0032-sched-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0032-sched-Add-support-for-lazy-preemption.patch index 54c21bbb9..59d1a3cba 100644 --- a/debian/patches-rt/0032-sched-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0032-sched-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 87194c420f8ef3b1a8b9b63ae640180e2414e8c4 Mon Sep 17 00:00:00 2001 +From 9ee683f4f85373204d8fd50d4ac8f6ab8154cf4b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 26 Oct 2012 18:50:54 +0100 -Subject: [PATCH 32/62] sched: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 32/64] sched: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -69,10 +69,10 @@ Signed-off-by: Thomas Gleixner 12 files changed, 260 insertions(+), 35 deletions(-) diff --git a/include/linux/preempt.h b/include/linux/preempt.h -index 8cfcc5d45451..9fc4c4bb320f 100644 +index 9aa6358a1a16..e9f0d08733f4 100644 --- a/include/linux/preempt.h +++ b/include/linux/preempt.h -@@ -207,6 +207,20 @@ extern void preempt_count_sub(int val); +@@ -208,6 +208,20 @@ extern void preempt_count_sub(int val); #define preempt_count_inc() preempt_count_add(1) #define preempt_count_dec() preempt_count_sub(1) @@ -93,7 +93,7 @@ index 8cfcc5d45451..9fc4c4bb320f 100644 #ifdef CONFIG_PREEMPT_COUNT #define preempt_disable() \ -@@ -215,6 +229,12 @@ do { \ +@@ -216,6 +230,12 @@ do { \ barrier(); \ } while (0) @@ -106,7 +106,7 @@ index 8cfcc5d45451..9fc4c4bb320f 100644 #define sched_preempt_enable_no_resched() \ do { \ barrier(); \ -@@ -246,6 +266,18 @@ do { \ +@@ -247,6 +267,18 @@ do { \ __preempt_schedule(); \ } while (0) @@ -125,7 +125,7 @@ index 8cfcc5d45451..9fc4c4bb320f 100644 #else /* !CONFIG_PREEMPTION */ #define preempt_enable() \ do { \ -@@ -253,6 +285,12 @@ do { \ +@@ -254,6 +286,12 @@ do { \ preempt_count_dec(); \ } while (0) @@ -138,7 +138,7 @@ index 8cfcc5d45451..9fc4c4bb320f 100644 #define preempt_enable_notrace() \ do { \ barrier(); \ -@@ -293,6 +331,9 @@ do { \ +@@ -294,6 +332,9 @@ do { \ #define preempt_enable_notrace() barrier() #define preemptible() 0 @@ -148,7 +148,7 @@ index 8cfcc5d45451..9fc4c4bb320f 100644 #endif /* CONFIG_PREEMPT_COUNT */ #ifdef MODULE -@@ -311,7 +352,7 @@ do { \ +@@ -312,7 +353,7 @@ do { \ } while (0) #define preempt_fold_need_resched() \ do { \ @@ -157,7 +157,7 @@ index 8cfcc5d45451..9fc4c4bb320f 100644 set_preempt_need_resched(); \ } while (0) -@@ -427,8 +468,15 @@ extern void migrate_enable(void); +@@ -428,8 +469,15 @@ extern void migrate_enable(void); #else @@ -557,10 +557,10 @@ index b62d53d7c264..f2577f511a41 100644 extern void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime); extern bool sched_rt_bandwidth_account(struct rt_rq *rt_rq); diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c -index 87eca95b57fb..462564d652be 100644 +index f667d6bdddda..3bc4f34507f0 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c -@@ -2616,11 +2616,19 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) +@@ -2644,11 +2644,19 @@ unsigned int tracing_gen_ctx_irq_test(unsigned int irqs_status) if (softirq_count() >> (SOFTIRQ_SHIFT + 1)) trace_flags |= TRACE_FLAG_BH_OFF; @@ -582,7 +582,7 @@ index 87eca95b57fb..462564d652be 100644 (min_t(unsigned int, migration_disable_value(), 0xf)) << 4; } -@@ -4212,15 +4220,17 @@ unsigned long trace_total_entries(struct trace_array *tr) +@@ -4240,15 +4248,17 @@ unsigned long trace_total_entries(struct trace_array *tr) static void print_lat_help_header(struct seq_file *m) { @@ -609,7 +609,7 @@ index 87eca95b57fb..462564d652be 100644 } static void print_event_info(struct array_buffer *buf, struct seq_file *m) -@@ -4254,14 +4264,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file +@@ -4282,14 +4292,16 @@ static void print_func_help_header_irq(struct array_buffer *buf, struct seq_file print_event_info(buf, m); @@ -647,7 +647,7 @@ index a6d2f99f847d..493c3f9cf01a 100644 return ret; } diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c -index 5cd4fb656306..3c227e2843ae 100644 +index bf1965b18099..133f15d3b886 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -442,6 +442,7 @@ int trace_print_lat_fmt(struct trace_seq *s, struct trace_entry *entry) @@ -710,5 +710,5 @@ index 5cd4fb656306..3c227e2843ae 100644 trace_seq_printf(s, "%x", entry->preempt_count >> 4); else -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0033-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch b/debian/patches-rt/0033-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch index 69ddd41b3..fee900917 100644 --- a/debian/patches-rt/0033-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch +++ b/debian/patches-rt/0033-x86-entry-Use-should_resched-in-idtentry_exit_cond_r.patch @@ -1,9 +1,9 @@ -From 37719a07083b68dad1449227e9fe66e8e6c9f2b6 Mon Sep 17 00:00:00 2001 +From 81c7a4f07d75acdc0e6b46fd76e1b99707fa13b2 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 30 Jun 2020 11:45:14 +0200 -Subject: [PATCH 33/62] x86/entry: Use should_resched() in +Subject: [PATCH 33/64] x86/entry: Use should_resched() in idtentry_exit_cond_resched() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz The TIF_NEED_RESCHED bit is inlined on x86 into the preemption counter. By using should_resched(0) instead of need_resched() the same check can @@ -32,5 +32,5 @@ index be61332c66b5..97ff5faad4fb 100644 } } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0034-x86-Support-for-lazy-preemption.patch b/debian/patches-rt/0034-x86-Support-for-lazy-preemption.patch index 511fe0a01..dea35b29d 100644 --- a/debian/patches-rt/0034-x86-Support-for-lazy-preemption.patch +++ b/debian/patches-rt/0034-x86-Support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 65ce5ba8ccb26e6de364e76228e645b2c02b921d Mon Sep 17 00:00:00 2001 +From 133aff59597e4e7d8eac1c793a6c5cd698f0d992 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 11:03:47 +0100 -Subject: [PATCH 34/62] x86: Support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 34/64] x86: Support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Implement the x86 pieces for lazy preempt. @@ -16,7 +16,7 @@ Signed-off-by: Thomas Gleixner 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index c9bed9c69423..f38bd8a5061e 100644 +index 3f9c3e22df18..cf6106b60b4a 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -251,6 +251,7 @@ config X86 @@ -154,5 +154,5 @@ index 97ff5faad4fb..c6301e520d47 100644 if (ti_work & _TIF_UPROBE) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0035-entry-Fix-the-preempt-lazy-fallout.patch b/debian/patches-rt/0035-entry-Fix-the-preempt-lazy-fallout.patch index 27139e9bb..7f0a5ed09 100644 --- a/debian/patches-rt/0035-entry-Fix-the-preempt-lazy-fallout.patch +++ b/debian/patches-rt/0035-entry-Fix-the-preempt-lazy-fallout.patch @@ -1,8 +1,8 @@ -From d37c604152cbded61a8e107918d3b9950725d897 Mon Sep 17 00:00:00 2001 +From ade991778b3eaf56b69da1366879a9ddf5a954c5 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 13 Jul 2021 07:52:52 +0200 -Subject: [PATCH 35/62] entry: Fix the preempt lazy fallout -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 35/64] entry: Fix the preempt lazy fallout +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Common code needs common defines.... @@ -45,5 +45,5 @@ index 93cc1ae12125..3dc3704a3cdb 100644 (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | _TIF_UPROBE | \ _TIF_NEED_RESCHED_MASK | _TIF_PATCH_PENDING | _TIF_NOTIFY_SIGNAL | \ -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0036-arm-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0036-arm-Add-support-for-lazy-preemption.patch index 8f76d13b0..366b095b1 100644 --- a/debian/patches-rt/0036-arm-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0036-arm-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From f242fbbb3f85d6b9c8c8fc06ddbc83b9ca5a0511 Mon Sep 17 00:00:00 2001 +From cbccb526ede406d92d41b95cdfa4cd0dcf14e57a Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 31 Oct 2012 12:04:11 +0100 -Subject: [PATCH 36/62] arm: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 36/64] arm: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Implement the arm pieces for lazy preempt. @@ -133,5 +133,5 @@ index e07f359254c3..b50a3248e79f 100644 } else { if (unlikely(!user_mode(regs))) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0037-powerpc-Add-support-for-lazy-preemption.patch b/debian/patches-rt/0037-powerpc-Add-support-for-lazy-preemption.patch index bf8022c6c..36cca8f0d 100644 --- a/debian/patches-rt/0037-powerpc-Add-support-for-lazy-preemption.patch +++ b/debian/patches-rt/0037-powerpc-Add-support-for-lazy-preemption.patch @@ -1,8 +1,8 @@ -From 65e31d7b980c1413f19fcb84234387f97b09588f Mon Sep 17 00:00:00 2001 +From 581914fafd635a7e25e01ce2a9ffc69f3a3cee3b Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Nov 2012 10:14:11 +0100 -Subject: [PATCH 37/62] powerpc: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 37/64] powerpc: Add support for lazy preemption +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Implement the powerpc pieces for lazy preempt. @@ -26,7 +26,7 @@ index 6050e6e10d32..0eff864d6ec3 100644 select HAVE_RELIABLE_STACKTRACE select HAVE_RSEQ diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h -index af58f1ed3952..520864de8bb2 100644 +index c4b798aa6ce8..923621486811 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h @@ -53,6 +53,8 @@ @@ -114,5 +114,5 @@ index cf770d86c03c..2c454731c250 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0038-arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/0038-arch-arm64-Add-lazy-preempt-support.patch index 4df0c8a40..026b4a4a7 100644 --- a/debian/patches-rt/0038-arch-arm64-Add-lazy-preempt-support.patch +++ b/debian/patches-rt/0038-arch-arm64-Add-lazy-preempt-support.patch @@ -1,8 +1,8 @@ -From 12a36ad989490f5ae3ed6a50d764385e8e27e024 Mon Sep 17 00:00:00 2001 +From 0342fd14e57f4452366cec8f8d16c74ff2d30259 Mon Sep 17 00:00:00 2001 From: Anders Roxell Date: Thu, 14 May 2015 17:52:17 +0200 -Subject: [PATCH 38/62] arch/arm64: Add lazy preempt support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 38/64] arch/arm64: Add lazy preempt support +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.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, @@ -22,7 +22,7 @@ Signed-off-by: Thomas Gleixner 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index ea70eb960565..6e16670a7f43 100644 +index c15f71501c6c..80664ed5478a 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -199,6 +199,7 @@ config ARM64 @@ -142,5 +142,5 @@ index 82f4572c8ddf..2a606c7bf025 100644 local_daif_restore(DAIF_PROCCTX_NOIRQ); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0039-arm-Disable-jump-label-on-PREEMPT_RT.patch b/debian/patches-rt/0039-arm-Disable-jump-label-on-PREEMPT_RT.patch index ac47159c4..3d88f5a16 100644 --- a/debian/patches-rt/0039-arm-Disable-jump-label-on-PREEMPT_RT.patch +++ b/debian/patches-rt/0039-arm-Disable-jump-label-on-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From f1c0950a69e46ee1d45192bfae026622da60bdc8 Mon Sep 17 00:00:00 2001 +From 260252300d2d37c75dd1f3828d29e515f6626b80 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Wed, 8 Jul 2015 17:14:48 +0200 -Subject: [PATCH 39/62] arm: Disable jump-label on PREEMPT_RT. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 39/64] arm: Disable jump-label on PREEMPT_RT. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz jump-labels are used to efficiently switch between two possible code paths. To achieve this, stop_machine() is used to keep the CPU in a @@ -38,5 +38,5 @@ index 717e596dc13b..f170f29e98ac 100644 select HAVE_ARCH_KGDB if !CPU_ENDIAN_BE32 && MMU select HAVE_ARCH_KASAN if MMU && !XIP_KERNEL -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0040-ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/0040-ARM-enable-irq-in-translation-section-permission-fau.patch index ee53f7bd6..a129defca 100644 --- a/debian/patches-rt/0040-ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/debian/patches-rt/0040-ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,12 +1,12 @@ -From 802d6978bf4ebdec28d2ba4e715c2e414d9c7d06 Mon Sep 17 00:00:00 2001 +From 3aa0c22dbd2b3f4b3bb9cb2fcebd8610c09856d9 Mon Sep 17 00:00:00 2001 From: "Yadi.hu" Date: Wed, 10 Dec 2014 10:32:09 +0800 -Subject: [PATCH 40/62] ARM: enable irq in translation/section permission fault +Subject: [PATCH 40/64] 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/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Probably happens on all ARM, with CONFIG_PREEMPT_RT @@ -93,5 +93,5 @@ index b0db85310331..77877dcb54ed 100644 return 0; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0041-tty-serial-omap-Make-the-locking-RT-aware.patch b/debian/patches-rt/0041-tty-serial-omap-Make-the-locking-RT-aware.patch index b719f7f3b..fd53852af 100644 --- a/debian/patches-rt/0041-tty-serial-omap-Make-the-locking-RT-aware.patch +++ b/debian/patches-rt/0041-tty-serial-omap-Make-the-locking-RT-aware.patch @@ -1,8 +1,8 @@ -From 2a89ee21ea5c408b560839cc06bd0c13580fb3a4 Mon Sep 17 00:00:00 2001 +From 28591afc686a2b0fd23cf004b0cbbb527fb70c50 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 28 Jul 2011 13:32:57 +0200 -Subject: [PATCH 41/62] tty/serial/omap: Make the locking RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 41/64] tty/serial/omap: Make the locking RT aware +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.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 @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c -index 7d0d2718ef59..aa216fdbcb1d 100644 +index beb7896ebf8a..ba5b843820c1 100644 --- a/drivers/tty/serial/omap-serial.c +++ b/drivers/tty/serial/omap-serial.c @@ -1241,13 +1241,10 @@ serial_omap_console_write(struct console *co, const char *s, @@ -45,5 +45,5 @@ index 7d0d2718ef59..aa216fdbcb1d 100644 static int __init -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0042-tty-serial-pl011-Make-the-locking-work-on-RT.patch b/debian/patches-rt/0042-tty-serial-pl011-Make-the-locking-work-on-RT.patch index c80dc32de..4170e5d3d 100644 --- a/debian/patches-rt/0042-tty-serial-pl011-Make-the-locking-work-on-RT.patch +++ b/debian/patches-rt/0042-tty-serial-pl011-Make-the-locking-work-on-RT.patch @@ -1,8 +1,8 @@ -From 1db3dc8a6af68447b52efbbf8dbb4d210d23d57b Mon Sep 17 00:00:00 2001 +From b678686111c2ee215cb28eca6ebf09576c8692d1 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Tue, 8 Jan 2013 21:36:51 +0100 -Subject: [PATCH 42/62] tty/serial/pl011: Make the locking work on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 42/64] tty/serial/pl011: Make the locking work on RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.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. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c -index c74eaf2552c3..38eb30b8491b 100644 +index 2f0f05259778..eee5141ecd3a 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2316,18 +2316,24 @@ pl011_console_write(struct console *co, const char *s, unsigned int count) @@ -56,5 +56,5 @@ index c74eaf2552c3..38eb30b8491b 100644 clk_disable(uap->clk); } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0043-ARM-Allow-to-enable-RT.patch b/debian/patches-rt/0043-ARM-Allow-to-enable-RT.patch index dd5a320a2..9e5eda3e1 100644 --- a/debian/patches-rt/0043-ARM-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0043-ARM-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From 47c9956482a592a16b58831ded27e3c0f62ec11d Mon Sep 17 00:00:00 2001 +From c2df4d40e1f0b2c2bbfb4cd7d3fbabd4add054ea Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:29 +0200 -Subject: [PATCH 43/62] ARM: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 43/64] ARM: Allow to enable RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Allow to select RT. @@ -33,5 +33,5 @@ index f170f29e98ac..d1f2e062ce0b 100644 select MMU_GATHER_RCU_TABLE_FREE if SMP && ARM_LPAE select HAVE_REGS_AND_STACK_ACCESS_API -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0044-ARM64-Allow-to-enable-RT.patch b/debian/patches-rt/0044-ARM64-Allow-to-enable-RT.patch index 478d2e7a8..9bedda3ab 100644 --- a/debian/patches-rt/0044-ARM64-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0044-ARM64-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From c71e1e0561e008bb2fe230ad7022c3e2483cd6c0 Mon Sep 17 00:00:00 2001 +From 43ead761d32a02c04025590169f0dfd3ab6b1d74 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:35 +0200 -Subject: [PATCH 44/62] ARM64: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 44/64] ARM64: Allow to enable RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Allow to select RT. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 1 insertion(+) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 6e16670a7f43..0c617e48177c 100644 +index 80664ed5478a..0470165e2d30 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -93,6 +93,7 @@ config ARM64 @@ -25,5 +25,5 @@ index 6e16670a7f43..0c617e48177c 100644 select ARCH_WANT_DEFAULT_BPF_JIT select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0045-powerpc-traps-Use-PREEMPT_RT.patch b/debian/patches-rt/0045-powerpc-traps-Use-PREEMPT_RT.patch index 76c18de22..e5a094ec8 100644 --- a/debian/patches-rt/0045-powerpc-traps-Use-PREEMPT_RT.patch +++ b/debian/patches-rt/0045-powerpc-traps-Use-PREEMPT_RT.patch @@ -1,8 +1,8 @@ -From 4d7273bd07600b933e6d25807cd96df04e435cbe Mon Sep 17 00:00:00 2001 +From 2e4ba312b94693d778d224c51a99e416866f6534 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 26 Jul 2019 11:30:49 +0200 -Subject: [PATCH 45/62] powerpc: traps: Use PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 45/64] powerpc: traps: Use PREEMPT_RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Add PREEMPT_RT to the backtrace if enabled. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c -index 3956f32682c6..8e15205e51ef 100644 +index 362b712386f6..ddf5b716394f 100644 --- a/arch/powerpc/kernel/traps.c +++ b/arch/powerpc/kernel/traps.c @@ -261,12 +261,17 @@ static char *get_mmu_str(void) @@ -36,5 +36,5 @@ index 3956f32682c6..8e15205e51ef 100644 IS_ENABLED(CONFIG_SMP) ? (" NR_CPUS=" __stringify(NR_CPUS)) : "", debug_pagealloc_enabled() ? " DEBUG_PAGEALLOC" : "", -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0046-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch b/debian/patches-rt/0046-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch index 9d6e8ab00..2ca129e1e 100644 --- a/debian/patches-rt/0046-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch +++ b/debian/patches-rt/0046-powerpc-pseries-iommu-Use-a-locallock-instead-local_.patch @@ -1,9 +1,9 @@ -From 1d20f49e62250211b43cbe18a087fdf19c313081 Mon Sep 17 00:00:00 2001 +From d9031d5c953c715f6d655322a79c9c62dc8af6ff Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:54 +0100 -Subject: [PATCH 46/62] powerpc/pseries/iommu: Use a locallock instead +Subject: [PATCH 46/64] powerpc/pseries/iommu: Use a locallock instead local_irq_save() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz The locallock protects the per-CPU variable tce_page. The function attempts to allocate memory while tce_page is protected (by disabling @@ -19,7 +19,7 @@ Signed-off-by: Thomas Gleixner 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/arch/powerpc/platforms/pseries/iommu.c b/arch/powerpc/platforms/pseries/iommu.c -index 97b026130c71..01b3d19be382 100644 +index 1e5f083cdb72..b55d2bc7e40f 100644 --- a/arch/powerpc/platforms/pseries/iommu.c +++ b/arch/powerpc/platforms/pseries/iommu.c @@ -24,6 +24,7 @@ @@ -114,5 +114,5 @@ index 97b026130c71..01b3d19be382 100644 } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0047-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/0047-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index 937a75d99..92167c769 100644 --- a/debian/patches-rt/0047-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/debian/patches-rt/0047-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -1,9 +1,9 @@ -From 34f52991170848510810b486dd6fe9a19cbe4c46 Mon Sep 17 00:00:00 2001 +From e87855d8892c053bc86348ae549824735b570e72 Mon Sep 17 00:00:00 2001 From: Bogdan Purcareata Date: Fri, 24 Apr 2015 15:53:13 +0000 -Subject: [PATCH 47/62] powerpc/kvm: Disable in-kernel MPIC emulation for +Subject: [PATCH 47/64] powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.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 @@ -42,5 +42,5 @@ index a9f57dad6d91..a0b528d4bb7c 100644 select HAVE_KVM_IRQFD select HAVE_KVM_IRQ_ROUTING -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0048-powerpc-stackprotector-work-around-stack-guard-init-.patch b/debian/patches-rt/0048-powerpc-stackprotector-work-around-stack-guard-init-.patch index df6dbe080..ad3e4e486 100644 --- a/debian/patches-rt/0048-powerpc-stackprotector-work-around-stack-guard-init-.patch +++ b/debian/patches-rt/0048-powerpc-stackprotector-work-around-stack-guard-init-.patch @@ -1,9 +1,9 @@ -From d2e9a96e5570459dd886f87bf81c7714fb0a2108 Mon Sep 17 00:00:00 2001 +From 6ebe002aae6beb7d1b527670eaf898fc11606ccc Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 26 Mar 2019 18:31:29 +0100 -Subject: [PATCH 48/62] powerpc/stackprotector: work around stack-guard init +Subject: [PATCH 48/64] powerpc/stackprotector: work around stack-guard init from atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz This is invoked from the secondary CPU in atomic context. On x86 we use tsc instead. On Power we XOR it against mftb() so lets use stack address @@ -33,5 +33,5 @@ index 1c8460e23583..b1653c160bab 100644 canary ^= LINUX_VERSION_CODE; canary &= CANARY_MASK; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0049-POWERPC-Allow-to-enable-RT.patch b/debian/patches-rt/0049-POWERPC-Allow-to-enable-RT.patch index 72ea26d09..d75ff5c19 100644 --- a/debian/patches-rt/0049-POWERPC-Allow-to-enable-RT.patch +++ b/debian/patches-rt/0049-POWERPC-Allow-to-enable-RT.patch @@ -1,8 +1,8 @@ -From 93941796079cb4515170adf454f9218adc89856d Mon Sep 17 00:00:00 2001 +From 4e62f0370afc6573ddd4db78250038169935adec Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 11 Oct 2019 13:14:41 +0200 -Subject: [PATCH 49/62] POWERPC: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 49/64] POWERPC: Allow to enable RT +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Allow to select RT. @@ -33,5 +33,5 @@ index 0eff864d6ec3..df697d3f68cd 100644 select HAVE_SETUP_PER_CPU_AREA if PPC64 select HAVE_SOFTIRQ_ON_OWN_STACK -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0050-sysfs-Add-sys-kernel-realtime-entry.patch b/debian/patches-rt/0050-sysfs-Add-sys-kernel-realtime-entry.patch index bebe5bd1b..551a06742 100644 --- a/debian/patches-rt/0050-sysfs-Add-sys-kernel-realtime-entry.patch +++ b/debian/patches-rt/0050-sysfs-Add-sys-kernel-realtime-entry.patch @@ -1,8 +1,8 @@ -From b2103f830327ab5d1e6f49134c22d3c5adfb52cc Mon Sep 17 00:00:00 2001 +From ad96823c0883412d14612da28496fd004affe29b Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Sat, 30 Jul 2011 21:55:53 -0500 -Subject: [PATCH 50/62] sysfs: Add /sys/kernel/realtime entry -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 50/64] sysfs: Add /sys/kernel/realtime entry +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. @@ -51,5 +51,5 @@ index 65dba9076f31..ab18048e2186 100644 NULL }; -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0051-Add-localversion-for-RT-release.patch b/debian/patches-rt/0051-Add-localversion-for-RT-release.patch index f2ecbea44..c1b44ffbd 100644 --- a/debian/patches-rt/0051-Add-localversion-for-RT-release.patch +++ b/debian/patches-rt/0051-Add-localversion-for-RT-release.patch @@ -1,8 +1,8 @@ -From 9c7d6e723acbbc184d1dd04811863378699134fb Mon Sep 17 00:00:00 2001 +From f1716f944ced619ad1133abb71131f86dbe7f971 Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Fri, 8 Jul 2011 20:25:16 +0200 -Subject: [PATCH 51/62] Add localversion for -RT release -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 51/64] Add localversion for -RT release +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Signed-off-by: Thomas Gleixner --- @@ -18,5 +18,5 @@ index 000000000000..045478966e9f @@ -0,0 +1 @@ +-rt7 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0052-Linux-6.1.46-rt13-REBASE.patch b/debian/patches-rt/0052-Linux-6.1.46-rt13-REBASE.patch index 3096368f3..0665c5c34 100644 --- a/debian/patches-rt/0052-Linux-6.1.46-rt13-REBASE.patch +++ b/debian/patches-rt/0052-Linux-6.1.46-rt13-REBASE.patch @@ -1,8 +1,8 @@ -From 3f783498b292a814f8f364bbfd0efbfc1be6d30f Mon Sep 17 00:00:00 2001 +From e6961b0e089121fbaa7987654cfaab710dea3b57 Mon Sep 17 00:00:00 2001 From: Clark Williams Date: Fri, 18 Aug 2023 10:45:35 -0500 -Subject: [PATCH 52/62] 'Linux 6.1.46-rt13 REBASE' -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 52/64] 'Linux 6.1.46-rt13 REBASE' +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Signed-off-by: Clark Williams --- @@ -17,5 +17,5 @@ index 045478966e9f..9f7d0bdbffb1 100644 --rt7 +-rt13 -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0053-io-mapping-don-t-disable-preempt-on-RT-in-io_mapping.patch b/debian/patches-rt/0053-io-mapping-don-t-disable-preempt-on-RT-in-io_mapping.patch index b4b695541..19e06dacf 100644 --- a/debian/patches-rt/0053-io-mapping-don-t-disable-preempt-on-RT-in-io_mapping.patch +++ b/debian/patches-rt/0053-io-mapping-don-t-disable-preempt-on-RT-in-io_mapping.patch @@ -1,9 +1,9 @@ -From 53c6a09e670e985d37ca05785a0155ab51b49cf4 Mon Sep 17 00:00:00 2001 +From 0e993c3a89f8f2098b4d23ca8b34c327850ee6fb Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 10 Mar 2023 17:29:05 +0100 -Subject: [PATCH 53/62] io-mapping: don't disable preempt on RT in +Subject: [PATCH 53/64] io-mapping: don't disable preempt on RT in io_mapping_map_atomic_wc(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz io_mapping_map_atomic_wc() disables preemption and pagefaults for historical reasons. The conversion to io_mapping_map_local_wc(), which @@ -89,5 +89,5 @@ index 66a774d2710e..b08532b8fba7 100644 static inline void __iomem * -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0054-locking-rwbase-Mitigate-indefinite-writer-starvation.patch b/debian/patches-rt/0054-locking-rwbase-Mitigate-indefinite-writer-starvation.patch index 1940c66d7..dfd8c1fc4 100644 --- a/debian/patches-rt/0054-locking-rwbase-Mitigate-indefinite-writer-starvation.patch +++ b/debian/patches-rt/0054-locking-rwbase-Mitigate-indefinite-writer-starvation.patch @@ -1,8 +1,8 @@ -From 8785dde5198dc91cbb518044e1c6d301ef9a9857 Mon Sep 17 00:00:00 2001 +From f4d3bd6d8f68cd12e5fd96173c999fa0e7a7554d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Tue, 21 Mar 2023 17:11:40 +0100 -Subject: [PATCH 54/62] locking/rwbase: Mitigate indefinite writer starvation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 54/64] locking/rwbase: Mitigate indefinite writer starvation +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz On PREEMPT_RT, rw_semaphore and rwlock_t locks are unfair to writers. Readers can indefinitely acquire the lock unless the writer fully acquired @@ -59,5 +59,5 @@ index c201aadb9301..25ec0239477c 100644 /* * Call into the slow lock path with the rtmutex->wait_lock -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0055-revert-softirq-Let-ksoftirqd-do-its-job.patch b/debian/patches-rt/0055-revert-softirq-Let-ksoftirqd-do-its-job.patch index c9ed7f6f6..fee45110a 100644 --- a/debian/patches-rt/0055-revert-softirq-Let-ksoftirqd-do-its-job.patch +++ b/debian/patches-rt/0055-revert-softirq-Let-ksoftirqd-do-its-job.patch @@ -1,8 +1,8 @@ -From fcdb9b29c6d58895a386ac23229564fad2c316b5 Mon Sep 17 00:00:00 2001 +From 79a793effc8b0bc24351f9109b369f20e5fbbe66 Mon Sep 17 00:00:00 2001 From: Paolo Abeni Date: Mon, 8 May 2023 08:17:44 +0200 -Subject: [PATCH 55/62] revert: "softirq: Let ksoftirqd do its job" -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 55/64] revert: "softirq: Let ksoftirqd do its job" +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz Due to the mentioned commit, when the ksoftirqd processes take charge of softirq processing, the system can experience high latencies. @@ -104,5 +104,5 @@ index 82f3e68fbe22..af9e879bbbf7 100644 local_irq_restore(flags); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0056-debugobjects-locking-Annotate-debug_object_fill_pool.patch b/debian/patches-rt/0056-debugobjects-locking-Annotate-debug_object_fill_pool.patch index 9528f771b..b0a54a674 100644 --- a/debian/patches-rt/0056-debugobjects-locking-Annotate-debug_object_fill_pool.patch +++ b/debian/patches-rt/0056-debugobjects-locking-Annotate-debug_object_fill_pool.patch @@ -1,9 +1,9 @@ -From c082e5d28e56252dca01b53c553bba5cd152fec1 Mon Sep 17 00:00:00 2001 +From 201921fdf63bbb21faa9b9d890231ab87be5840a Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Tue, 25 Apr 2023 17:03:13 +0200 -Subject: [PATCH 56/62] debugobjects,locking: Annotate debug_object_fill_pool() +Subject: [PATCH 56/64] debugobjects,locking: Annotate debug_object_fill_pool() wait type violation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz There is an explicit wait-type violation in debug_object_fill_pool() for PREEMPT_RT=n kernels which allows them to more easily fill the @@ -145,7 +145,7 @@ index 3b38303ed27b..a046e03c7ead 100644 } diff --git a/lib/debugobjects.c b/lib/debugobjects.c -index dacb80c22c4f..3c9e00e207dc 100644 +index 5dfa582dbadd..d42f2839a222 100644 --- a/lib/debugobjects.c +++ b/lib/debugobjects.c @@ -600,10 +600,21 @@ static void debug_objects_fill_pool(void) @@ -173,5 +173,5 @@ index dacb80c22c4f..3c9e00e207dc 100644 static void -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0057-sched-avoid-false-lockdep-splat-in-put_task_struct.patch b/debian/patches-rt/0057-sched-avoid-false-lockdep-splat-in-put_task_struct.patch index 9da36bc08..43201cddb 100644 --- a/debian/patches-rt/0057-sched-avoid-false-lockdep-splat-in-put_task_struct.patch +++ b/debian/patches-rt/0057-sched-avoid-false-lockdep-splat-in-put_task_struct.patch @@ -1,8 +1,8 @@ -From 5c27e6fdf46d68180a46fdf7944aa7e4668680c3 Mon Sep 17 00:00:00 2001 +From 6db82c40bca31549afa8f2520992a3a46f1cf89a Mon Sep 17 00:00:00 2001 From: Wander Lairson Costa Date: Wed, 14 Jun 2023 09:23:22 -0300 -Subject: [PATCH 57/62] sched: avoid false lockdep splat in put_task_struct() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 57/64] sched: avoid false lockdep splat in put_task_struct() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz In put_task_struct(), a spin_lock is indirectly acquired under the kernel stock. When running the kernel in real-time (RT) configuration, the @@ -30,7 +30,7 @@ Signed-off-by: Clark Williams 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/linux/sched/task.h b/include/linux/sched/task.h -index 7291fb6399d2..de7ebd2bf3ba 100644 +index aaa25ed1a8fe..a51c36397324 100644 --- a/include/linux/sched/task.h +++ b/include/linux/sched/task.h @@ -141,8 +141,12 @@ static inline void put_task_struct(struct task_struct *t) @@ -46,7 +46,7 @@ index 7291fb6399d2..de7ebd2bf3ba 100644 + } } - static inline void put_task_struct_many(struct task_struct *t, int nr) + DEFINE_FREE(put_task, struct task_struct *, if (_T) put_task_struct(_T)) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0058-mm-page_alloc-Use-write_seqlock_irqsave-instead-writ.patch b/debian/patches-rt/0058-mm-page_alloc-Use-write_seqlock_irqsave-instead-writ.patch index 68d9f5008..8677cb341 100644 --- a/debian/patches-rt/0058-mm-page_alloc-Use-write_seqlock_irqsave-instead-writ.patch +++ b/debian/patches-rt/0058-mm-page_alloc-Use-write_seqlock_irqsave-instead-writ.patch @@ -1,9 +1,9 @@ -From 9512a9467dec62e03f2df4f15af9a38332b8de58 Mon Sep 17 00:00:00 2001 +From 200a582d8a4adcbe8b8fca7e052a1027f656de5b Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Fri, 23 Jun 2023 22:15:17 +0200 -Subject: [PATCH 58/62] mm/page_alloc: Use write_seqlock_irqsave() instead +Subject: [PATCH 58/64] mm/page_alloc: Use write_seqlock_irqsave() instead write_seqlock() + local_irq_save(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz __build_all_zonelists() acquires zonelist_update_seq by first disabling interrupts via local_irq_save() and then acquiring the seqlock with @@ -53,7 +53,7 @@ Signed-off-by: Clark Williams 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 4583f8a42d91..835b69a64f4f 100644 +index c783806eefc9..49663e0dfea3 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -6588,19 +6588,17 @@ static void __build_all_zonelists(void *data) @@ -93,5 +93,5 @@ index 4583f8a42d91..835b69a64f4f 100644 static noinline void __init -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0059-bpf-Remove-in_atomic-from-bpf_link_put.patch b/debian/patches-rt/0059-bpf-Remove-in_atomic-from-bpf_link_put.patch index 8abf764af..759d06a9d 100644 --- a/debian/patches-rt/0059-bpf-Remove-in_atomic-from-bpf_link_put.patch +++ b/debian/patches-rt/0059-bpf-Remove-in_atomic-from-bpf_link_put.patch @@ -1,8 +1,8 @@ -From 05999b640eb04be872e5491a040701fcddc73349 Mon Sep 17 00:00:00 2001 +From e506df4b11ac1bdab837fcfd9d9882168de5441d Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Wed, 14 Jun 2023 10:34:30 +0200 -Subject: [PATCH 59/62] bpf: Remove in_atomic() from bpf_link_put(). -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 59/64] bpf: Remove in_atomic() from bpf_link_put(). +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz bpf_free_inode() is invoked as a RCU callback. Usually RCU callbacks are invoked within softirq context. By setting rcutree.use_softirq=0 boot @@ -35,10 +35,10 @@ Signed-off-by: Clark Williams 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c -index c0915e2424f1..f8ba6e0a5c08 100644 +index f467e53e09ab..78219335b0c9 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c -@@ -2732,28 +2732,31 @@ static void bpf_link_put_deferred(struct work_struct *work) +@@ -2760,28 +2760,31 @@ static void bpf_link_put_deferred(struct work_struct *work) bpf_link_free(link); } @@ -79,7 +79,7 @@ index c0915e2424f1..f8ba6e0a5c08 100644 return 0; } -@@ -4674,7 +4677,7 @@ static int link_update(union bpf_attr *attr) +@@ -4711,7 +4714,7 @@ static int link_update(union bpf_attr *attr) if (ret) bpf_prog_put(new_prog); out_put_link: @@ -88,7 +88,7 @@ index c0915e2424f1..f8ba6e0a5c08 100644 return ret; } -@@ -4697,7 +4700,7 @@ static int link_detach(union bpf_attr *attr) +@@ -4734,7 +4737,7 @@ static int link_detach(union bpf_attr *attr) else ret = -EOPNOTSUPP; @@ -97,7 +97,7 @@ index c0915e2424f1..f8ba6e0a5c08 100644 return ret; } -@@ -4767,7 +4770,7 @@ static int bpf_link_get_fd_by_id(const union bpf_attr *attr) +@@ -4804,7 +4807,7 @@ static int bpf_link_get_fd_by_id(const union bpf_attr *attr) fd = bpf_link_new_fd(link); if (fd < 0) @@ -106,7 +106,7 @@ index c0915e2424f1..f8ba6e0a5c08 100644 return fd; } -@@ -4844,7 +4847,7 @@ static int bpf_iter_create(union bpf_attr *attr) +@@ -4881,7 +4884,7 @@ static int bpf_iter_create(union bpf_attr *attr) return PTR_ERR(link); err = bpf_iter_new_fd(link); @@ -116,5 +116,5 @@ index c0915e2424f1..f8ba6e0a5c08 100644 return err; } -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0060-posix-timers-Ensure-timer-ID-search-loop-limit-is-va.patch b/debian/patches-rt/0060-posix-timers-Ensure-timer-ID-search-loop-limit-is-va.patch index 8b22f207c..496d1bf24 100644 --- a/debian/patches-rt/0060-posix-timers-Ensure-timer-ID-search-loop-limit-is-va.patch +++ b/debian/patches-rt/0060-posix-timers-Ensure-timer-ID-search-loop-limit-is-va.patch @@ -1,9 +1,9 @@ -From a0d2c56749857956cb8ef1ccf2d982e2c1770f08 Mon Sep 17 00:00:00 2001 +From 65faef025aab1266654039c8e238988cd7d9fbfb Mon Sep 17 00:00:00 2001 From: Thomas Gleixner Date: Thu, 1 Jun 2023 20:58:47 +0200 -Subject: [PATCH 60/62] posix-timers: Ensure timer ID search-loop limit is +Subject: [PATCH 60/64] posix-timers: Ensure timer ID search-loop limit is valid -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz posix_timer_add() tries to allocate a posix timer ID by starting from the cached ID which was stored by the last successful allocation. @@ -111,5 +111,5 @@ index ed3c4a954398..2d6cf93ca370 100644 static inline void unlock_timer(struct k_itimer *timr, unsigned long flags) -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0061-drm-i915-Do-not-disable-preemption-for-resets.patch b/debian/patches-rt/0061-drm-i915-Do-not-disable-preemption-for-resets.patch index db8400741..0670fcab7 100644 --- a/debian/patches-rt/0061-drm-i915-Do-not-disable-preemption-for-resets.patch +++ b/debian/patches-rt/0061-drm-i915-Do-not-disable-preemption-for-resets.patch @@ -1,8 +1,8 @@ -From 1d651fe6c67cb3b355cc228f75289657496520ff Mon Sep 17 00:00:00 2001 +From 8dd355f3dd91d5c6be93b2229a590e0d5cebcd37 Mon Sep 17 00:00:00 2001 From: Tvrtko Ursulin Date: Fri, 18 Aug 2023 22:45:25 -0400 -Subject: [PATCH 61/62] drm/i915: Do not disable preemption for resets -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz +Subject: [PATCH 61/64] drm/i915: Do not disable preemption for resets +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz [commit 40cd2835ced288789a685aa4aa7bc04b492dcd45 in linux-rt-devel] @@ -106,5 +106,5 @@ index 10b930eaa8cb..6108a449cd19 100644 intel_uncore_forcewake_put(gt->uncore, FORCEWAKE_ALL); -- -2.43.0 +2.44.0 diff --git a/debian/patches-rt/0062-Linux-6.1.69-rt21-REBASE.patch b/debian/patches-rt/0062-Linux-6.1.69-rt21-REBASE.patch deleted file mode 100644 index d5e736785..000000000 --- a/debian/patches-rt/0062-Linux-6.1.69-rt21-REBASE.patch +++ /dev/null @@ -1,21 +0,0 @@ -From 8aa6a280fc011cccf7cfcc0f5942e3ec6bdd73b4 Mon Sep 17 00:00:00 2001 -From: Clark Williams -Date: Thu, 28 Dec 2023 23:45:11 -0600 -Subject: [PATCH 62/62] Linux 6.1.69-rt21 REBASE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.69-rt21.tar.xz - -Signed-off-by: Clark Williams ---- - localversion-rt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/localversion-rt b/localversion-rt -index 9f7d0bdbffb1..6c6cde1c29e3 100644 ---- a/localversion-rt -+++ b/localversion-rt -@@ -1 +1 @@ ---rt13 -+-rt21 --- -2.43.0 - diff --git a/debian/patches-rt/0062-Linux-6.1.79-rt25-REBASE.patch b/debian/patches-rt/0062-Linux-6.1.79-rt25-REBASE.patch new file mode 100644 index 000000000..4fd408f84 --- /dev/null +++ b/debian/patches-rt/0062-Linux-6.1.79-rt25-REBASE.patch @@ -0,0 +1,21 @@ +From f0f9941d27021d858d145533d465f7b8c68115c5 Mon Sep 17 00:00:00 2001 +From: Clark Williams +Date: Tue, 27 Feb 2024 19:54:08 -0600 +Subject: [PATCH 62/64] Linux 6.1.79-rt25 REBASE +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz + +Signed-off-by: Clark Williams +--- + localversion-rt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/localversion-rt b/localversion-rt +index 9f7d0bdbffb1..c5b71f9a229d 100644 +--- a/localversion-rt ++++ b/localversion-rt +@@ -1 +1 @@ +--rt13 ++-rt25 +-- +2.44.0 + diff --git a/debian/patches-rt/0063-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch b/debian/patches-rt/0063-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch new file mode 100644 index 000000000..a621f83c1 --- /dev/null +++ b/debian/patches-rt/0063-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch @@ -0,0 +1,43 @@ +From 14bcb121d2c7101a9a10e6a00e88828b2e9ec99b Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior +Date: Tue, 23 Jan 2024 12:56:21 +0100 +Subject: [PATCH 63/64] arm: Disable FAST_GUP on PREEMPT_RT if HIGHPTE is also + enabled. +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz + +gup_pgd_range() is invoked with disabled interrupts and invokes +__kmap_local_page_prot() via pte_offset_map(), gup_p4d_range(). +With HIGHPTE enabled, __kmap_local_page_prot() invokes kmap_high_get() +which uses a spinlock_t via lock_kmap_any(). This leads to an +sleeping-while-atomic error on PREEMPT_RT because spinlock_t becomes a +sleeping lock and must not be acquired in atomic context. + +The loop in map_new_virtual() uses wait_queue_head_t for wake up which +also is using a spinlock_t. + +Limit HAVE_FAST_GUP additionaly to remain disabled on PREEMPT_RT with +HIGHPTE enabled. + +Signed-off-by: Sebastian Andrzej Siewior +(cherry picked from commit 02cf5a345530b4d3a94093f0b5c784701c2e7c6a) +Signed-off-by: Clark Williams +--- + arch/arm/Kconfig | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig +index d1f2e062ce0b..5d92aef787e3 100644 +--- a/arch/arm/Kconfig ++++ b/arch/arm/Kconfig +@@ -95,7 +95,7 @@ config ARM + select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE + select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU + select HAVE_EXIT_THREAD +- select HAVE_FAST_GUP if ARM_LPAE ++ select HAVE_FAST_GUP if ARM_LPAE && !(PREEMPT_RT && HIGHPTE) + select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL + select HAVE_FUNCTION_GRAPH_TRACER + select HAVE_FUNCTION_TRACER if !XIP_KERNEL +-- +2.44.0 + diff --git a/debian/patches-rt/0064-Linux-6.1.82-rt27-REBASE.patch b/debian/patches-rt/0064-Linux-6.1.82-rt27-REBASE.patch new file mode 100644 index 000000000..87445074b --- /dev/null +++ b/debian/patches-rt/0064-Linux-6.1.82-rt27-REBASE.patch @@ -0,0 +1,21 @@ +From c3c60b488c904971c9ff0bd40ac37d69a51c250b Mon Sep 17 00:00:00 2001 +From: Clark Williams +Date: Thu, 21 Mar 2024 11:02:35 -0500 +Subject: [PATCH 64/64] Linux 6.1.82-rt27 REBASE +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.1/older/patches-6.1.82-rt27.tar.xz + +Signed-off-by: Clark Williams +--- + localversion-rt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/localversion-rt b/localversion-rt +index c5b71f9a229d..be1e37b64ad0 100644 +--- a/localversion-rt ++++ b/localversion-rt +@@ -1 +1 @@ +--rt25 ++-rt27 +-- +2.44.0 + diff --git a/debian/patches-rt/series b/debian/patches-rt/series index a07ceae89..348374816 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -59,4 +59,6 @@ 0059-bpf-Remove-in_atomic-from-bpf_link_put.patch 0060-posix-timers-Ensure-timer-ID-search-loop-limit-is-va.patch 0061-drm-i915-Do-not-disable-preemption-for-resets.patch -0062-Linux-6.1.69-rt21-REBASE.patch +0062-Linux-6.1.79-rt25-REBASE.patch +0063-arm-Disable-FAST_GUP-on-PREEMPT_RT-if-HIGHPTE-is-als.patch +0064-Linux-6.1.82-rt27-REBASE.patch -- cgit v1.2.3