diff options
author | Salvatore Bonaccorso <carnil@debian.org> | 2020-06-24 17:01:02 +0200 |
---|---|---|
committer | Salvatore Bonaccorso <carnil@debian.org> | 2020-06-24 17:01:02 +0200 |
commit | 8aa17aa03eb31baf97cf4daf687441b796fff2f5 (patch) | |
tree | a276f7a67e32bbdeadc5b94e6059576ec3f4bbd5 | |
parent | b822c76e9759da4905cf931bcaba2e39b80d19f9 (diff) | |
parent | 997162f8cd684ee4abdb1e7707336177a1844de0 (diff) | |
download | kernel_replicant_linux-8aa17aa03eb31baf97cf4daf687441b796fff2f5.tar.gz kernel_replicant_linux-8aa17aa03eb31baf97cf4daf687441b796fff2f5.tar.bz2 kernel_replicant_linux-8aa17aa03eb31baf97cf4daf687441b796fff2f5.zip |
Merge tag 'debian/5.6.14-2'
Release linux (5.6.14-2).
267 files changed, 1496 insertions, 450 deletions
diff --git a/debian/changelog b/debian/changelog index 8a7cfdc49fa3..e98ab9bf5a17 100644 --- a/debian/changelog +++ b/debian/changelog @@ -59,6 +59,724 @@ linux (5.7~rc5-1~exp1) experimental; urgency=medium -- Ben Hutchings <benh@debian.org> Sun, 10 May 2020 23:42:53 +0100 +linux (5.6.14-2) unstable; urgency=medium + + [ Vagrant Cascadian ] + * [arm64] Add pwm-sun4i to fb-modules udeb. + + [ Salvatore Bonaccorso ] + * kernel/relay.c: handle alloc_percpu returning NULL in relay_open + (CVE-2019-19462) + * fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info() + (CVE-2020-10732) + * mm: Fix mremap not considering huge pmd devmap (CVE-2020-10757) + + [ Ben Hutchings ] + * [x86] Add support for mitigation of Special Register Buffer Data Sampling + (SRBDS) (CVE-2020-0543): + - x86/cpu: Add 'table' argument to cpu_matches() + - x86/speculation: Add Special Register Buffer Data Sampling (SRBDS) + mitigation + - x86/speculation: Add SRBDS vulnerability and mitigation documentation + - x86/speculation: Add Ivy Bridge to affected list + * [x86] speculation: Do not match steppings, to avoid an ABI change + + -- Ben Hutchings <benh@debian.org> Tue, 09 Jun 2020 18:50:00 +0100 + +linux (5.6.14-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.8 + - mm: check that mm is still valid in madvise() + - watchdog: reset last_hw_keepalive time at start + - scsi: lpfc: Fix kasan slab-out-of-bounds error in lpfc_unreg_login + - xfs: correctly acount for reclaimable slabs + - scsi: lpfc: Fix crash after handling a pci error + - scsi: lpfc: Fix crash in target side cable pulls hitting WAIT_FOR_UNREG + - scsi: libfc: If PRLI rejected, move rport to PLOGI state + - ceph: return ceph_mdsc_do_request() errors from __get_parent() + - ceph: don't skip updating wanted caps when cap is stale + - [armhf] pwm: imx27: Fix clock handling in pwm_imx27_apply() + - nvme-tcp: fix possible crash in write_zeroes processing + - scsi: iscsi: Report unbind session event when the target has been + removed + - [x86] ASoC: Intel: atom: Take the drv->lock mutex before calling + sst_send_slot_map() + - nvme: fix deadlock caused by ANA update wrong locking + - drm/amd/display: Update stream adjust in dc_stream_adjust_vmin_vmax + - dma-direct: fix data truncation in dma_direct_get_required_mask() + - kernel/gcov/fs.c: gcov_seq_next() should increase position index + - ipc/util.c: sysvipc_find_ipc() should increase position index + - block: fix busy device checking in blk_drop_partitions + - [s390x] cio: generate delayed uevent for vfio-ccw subchannels + - [s390x] cio: avoid duplicated 'ADD' uevents + - loop: Better discard support for block devices + - [powerpc*] Revert "powerpc/64: irq_work avoid interrupt when called with + hardware irqs enabled" + - [powerpc*] pseries: Fix MCE handling on pseries + - nvme: fix compat address handling in several ioctls + - pwm: renesas-tpu: Fix late Runtime PM enablement + - [armel, armhf, arm64] pwm: bcm2835: Dynamically allocate base + - scsi: lpfc: Fix erroneous cpu limit of 128 on I/O statistics + - scsi: lpfc: Fix lockdep error - register non-static key + - perf/core: Disable page faults when getting phys address + - drm/amd/display: Calculate scaling ratios on every medium/full update + - ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN MPWIN895CL tablet + - ALSA: usb-audio: Add Pioneer DJ DJM-250MK2 quirk + - xhci: Ensure link state is U3 after setting USB_SS_PORT_LS_U3 + - xhci: Wait until link state trainsits to U0 after setting + USB_SS_PORT_LS_U0 + - xhci: Finetune host initiated USB3 rootport link suspend and resume + - block: fix busy device checking in blk_drop_partitions again + - cxgb4: fix adapter crash due to wrong MC size + - cxgb4: fix large delays in PTP synchronization + - ipv4: Update fib_select_default to handle nexthop objects + - ipv6: fix restrict IPV6_ADDRFORM operation + - macsec: avoid to set wrong mtu + - macvlan: fix null dereference in macvlan_device_event() + - mlxsw: Fix some IS_ERR() vs NULL bugs + - [arm64] net: bcmgenet: correct per TX/RX ring statistics + - net/mlx4_en: avoid indirect call in TX completion + - net: netrom: Fix potential nr_neigh refcnt leak in nr_add_node + - net: openvswitch: ovs_ct_exit to be done under ovs_lock + - [armhf, arm64] net: stmmac: dwmac-meson8b: Add missing boundary to RGMII + TX clock array + - net/x25: Fix x25_neigh refcnt leak when receiving frame + - sched: etf: do not assume all sockets are full blown + - tcp: cache line align MAX_TCP_HEADER + - team: fix hang in team_mode_get() + - tipc: Fix potential tipc_aead refcnt leak in tipc_crypto_rcv + - tipc: Fix potential tipc_node refcnt leak in tipc_rcv + - vrf: Fix IPv6 with qdisc and xfrm + - net: dsa: b53: Lookup VID in ARL searches when VLAN is enabled + - net: dsa: b53: Fix valid setting for MDB entries + - net: dsa: b53: Fix ARL register definitions + - net: dsa: b53: Rework ARL bin logic + - net: dsa: b53: b53_arl_rw_op() needs to select IVL or SVL + - vxlan: use the correct nlattr array in NL_SET_ERR_MSG_ATTR + - geneve: use the correct nlattr array in NL_SET_ERR_MSG_ATTR + - xfrm: Always set XFRM_TRANSFORMED in xfrm{4,6}_output_finish + - vrf: Check skb for XFRM_TRANSFORMED flag + - net: ethernet: ixp4xx: Add error handling in ixp4xx_eth_probe() + - KEYS: Avoid false positive ENOMEM error on key read + - ALSA: hda: Remove ASUS ROG Zenith from the blacklist + - ALSA: usb-audio: Add static mapping table for ALC1220-VB-based mobos + - ALSA: usb-audio: Add connector notifier delegation + - mac80211: populate debugfs only after cfg80211 init + - libbpf: Only check mode flags in get_xdp_id + - iio: core: remove extra semi-colon from devm_iio_device_register() macro + - iio: imu: st_lsm6dsx: flush hw FIFO before resetting the device + - iio: st_sensors: rely on odr mask to know if odr can be set + - iio: adc: stm32-adc: fix sleep in atomic context + - iio: adc: ti-ads8344: properly byte swap value + - USB: sisusbvga: Change port variable from signed to unsigned + - USB: Add USB_QUIRK_DELAY_CTRL_MSG and USB_QUIRK_DELAY_INIT for Corsair + K70 RGB RAPIDFIRE + - USB: early: Handle AMD's spec-compliant identifiers, too + - USB: core: Fix free-while-in-use bug in the USB S-Glibrary + (CVE-2020-12464) + - USB: hub: Fix handling of connect changes during sleep + - USB: hub: Revert commit bd0e6c9614b9 ("usb: hub: try old enumeration + scheme first for high speed devices") + - tty: serial: owl: add "much needed" clk_prepare_enable() + - vmalloc: fix remap_vmalloc_range() bounds checks + - staging: gasket: Fix incongruency in handling of sysfs entries creation + - coredump: fix null pointer dereference on coredump + - mm/hugetlb: fix a addressing exception caused by huge_pte_offset + - mm/ksm: fix NULL pointer dereference when KSM zero page is enabled + - ALSA: usx2y: Fix potential NULL dereference + - ALSA: hda/realtek - Fix unexpected init_amp override + - ALSA: hda/realtek - Add new codec supported for ALC245 + - ALSA: hda/hdmi: Add module option to disable audio component binding + - ALSA: usb-audio: Fix usb audio refcnt leak when getting spdif + - ALSA: usb-audio: Filter out unsupported sample rates on Focusrite + devices + - tpm/tpm_tis: Free IRQ if probing fails + - tpm: fix wrong return value in tpm_pcr_extend + - tpm: ibmvtpm: retry on H_CLOSED in tpm_ibmvtpm_send() + - [s390x] KVM: Return last valid slot if approx index is out-of-bounds + - KVM: Check validity of resolved slot when searching memslots + - [x86] KVM: VMX: Enable machine check support for 32bit targets + - tty: hvc: fix buffer overflow during hvc_alloc(). + - tty: rocket, avoid OOB access + - usb-storage: Add unusual_devs entry for JMicron JMS566 + - signal: Avoid corrupting si_pid and si_uid in do_notify_parent + - drm/dp_mst: Zero assigned PBN when releasing VCPI slots + - audit: check the length of userspace generated audit records + - ASoC: dapm: fixup dapm kcontrol widget + - SUNRPC: Fix backchannel RPC soft lockups + - iwlwifi: pcie: actually release queue memory in TVQM + - iwlwifi: mvm: beacon statistics shouldn't go backwards + - iwlwifi: pcie: indicate correct RB size to device + - iwlwifi: mvm: limit maximum queue appropriately + - iwlwifi: mvm: Do not declare support for ACK Enabled Aggregation + - iwlwifi: mvm: fix inactive TID removal return value usage + - iwlwifi: fix WGDS check when WRDS is disabled + - cifs: fix uninitialised lease_key in open_shroot() + - [armhf] imx: provide v7_cpu_resume() only on ARM_CPU_SUSPEND=y + - [powerpc*] 8xx: Fix STRICT_KERNEL_RWX startup test failure + - [powerpc*] setup_64: Set cache-line-size based on cache-block-size + - [x86] staging: comedi: dt2815: fix writing hi byte of analog output + - [x86] staging: comedi: Fix comedi_device refcnt leak in comedi_open + - vt: don't hardcode the mem allocation upper bound + - vt: don't use kmalloc() for the unicode screen buffer + - [x86] staging: vt6656: Don't set RCR_MULTICAST or RCR_BROADCAST by + default. + - [x86] staging: vt6656: Fix calling conditions of vnt_set_bss_mode + - [x86] staging: vt6656: Fix drivers TBTT timing counter. + - [x86] staging: vt6656: Fix pairwise key entry save. + - [x86] staging: vt6656: Power save stop wake_up_count wrap around. + - [x86] mei: me: fix irq number stored in hw struct + - cdc-acm: close race betrween suspend() and acm_softint + - cdc-acm: introduce a cool down + - UAS: no use logging any details in case of ENODEV + - UAS: fix deadlock in error handling and PM flushing work + - fpga: dfl: pci: fix return value of cci_pci_sriov_configure + - [armhf, arm64] usb: dwc3: gadget: Fix request completion check + - usb: f_fs: Clear OS Extended descriptor counts to zero in + ffs_data_reset() + - [x86] usb: typec: tcpm: Ignore CC and vbus changes in PORT_RESET change + - [x86] usb: typec: altmode: Fix typec_altmode_get_partner sometimes + returning an invalid pointer + - xhci: Fix handling halted endpoint even if endpoint ring appears empty + - xhci: prevent bus suspend if a roothub port detected a over-current + condition + - xhci: Don't clear hub TT buffer on ep0 protocol stall + - serial: sh-sci: Make sure status register SCxSR is read in correct + sequence + - Revert "serial: uartps: Fix uartps_major handling" + - Revert "serial: uartps: Use the same dynamic major number for all ports" + - Revert "serial: uartps: Fix error path when alloc failed" + - Revert "serial: uartps: Do not allow use aliases >= MAX_UART_INSTANCES" + - Revert "serial: uartps: Change uart ID port allocation" + - Revert "serial: uartps: Move Port ID to device data structure" + - Revert "serial: uartps: Register own uart console and driver structures" + - [x86] drm/i915/gt: Update PMINTRMSK holding fw + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.9 + - ubifs: Fix ubifs_tnc_lookup() usage in do_kill_orphans() + - printk: queue wake_up_klogd irq_work only if per-CPU areas are ready + - [armhf] ASoC: stm32: sai: fix sai probe + - [armhf, arm64] usb: dwc3: gadget: Do link recovery for SS and SSP + - [armel, armhf] ARM: dts: bcm283x: Add cells encoding format to firmware + bus + - usb: gadget: udc: bdc: Remove unnecessary NULL checks in + bdc_req_complete + - usb: gadget: udc: atmel: Fix vbus disconnect handling + - afs: Make record checking use TASK_UNINTERRUPTIBLE when appropriate + - afs: Fix to actually set AFS_SERVER_FL_HAVE_EPOCH + - iio:ad7797: Use correct attribute_group + - iio: imu: st_lsm6dsx: fix read misalignment on untagged FIFO + - iio: imu: st_lsm6dsx: specify slave odr in slv_odr + - propagate_one(): mnt_set_mountpoint() needs mount_lock + - counter: 104-quad-8: Add lock guards - generic interface + - [s390x] ftrace: fix potential crashes when switching tracers + - ASoC: q6dsp6: q6afe-dai: add missing channels to MI2S DAIs + - iwlwifi: actually check allocated conf_tlv pointer + - ASoC: tas571x: disable regulators on failed probe + - [armhf, arm64] ASoC: meson: axg-card: fix codec-to-codec link setup + - ASoC: wm8960: Fix wrong clock after suspend & resume + - nfsd: memory corruption in nfsd4_lock() + - [armhf] dts: OMAP3: disable RNG on N950/N9 + - bpf: Forbid XADD on spilled pointers for unprivileged users + - brcmfmac: add stub for monitor interface xmit + - i2c: altera: use proper variable to hold errno + - clk: asm9260: fix __clk_hw_register_fixed_rate_with_accuracy typo + - rtw88: avoid unused function warnings + - hwmon: (drivetemp) Return -ENODATA for invalid temperatures + - rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket + - netfilter: nf_tables: reintroduce the NFT_SET_CONCAT flag + - [x86] efi: Don't remap text<->rodata gap read-only for mixed mode + - net/cxgb4: Check the return from t4_query_params properly + - tipc: fix incorrect increasing of link window + - xfs: acquire superblock freeze protection on eofblocks scans + - svcrdma: Fix trace point use-after-free race + - svcrdma: Fix leak of svc_rdma_recv_ctxt objects + - [armhf, arm64] net/mlx5e: Don't trigger IRQ multiple times on XSK wakeup + to avoid WQ overruns + - [armhf, arm64] net/mlx5e: Get the latest values from counters in + switchdev mode + - PCI: Avoid ASMedia XHCI USB PME# from D0 defect + - PCI: Add Zhaoxin Vendor ID + - PCI: Add ACS quirk for Zhaoxin multi-function devices + - PCI: Add ACS quirk for Zhaoxin Root/Downstream Ports + - PCI: Move Apex Edge TPU class quirk to fix BAR assignment + - ARM: dts: bcm283x: Disable dsi0 node + - cpumap: Avoid warning when CONFIG_DEBUG_PER_CPU_MAPS is enabled + - [s390x] pci: do not set affinity for floating irqs + - remoteproc: mtk_scp: use dma_addr_t for DMA API + - net/mlx5: Fix failing fw tracer allocation on s390 + - sched/core: Fix reset-on-fork from RT with uclamp + - perf/core: fix parent pid/tid in task exit events + - netfilter: nat: fix error handling upon registering inet hook + - PM: sleep: core: Switch back to async_schedule_dev() + - blk-iocost: Fix error on iocost_ioc_vrate_adj + - bpf: Fix handling of XADD on BTF memory + - [x86] bpf: Fix encoding for lower 8-bit registers in BPF_STX BPF_B + - [x86] bpf: x32: Fix incorrect encoding in BPF_LDX zero-extension + - [x86] bpf: x32: Fix clobbering of dst for BPF_JSET + - [x86] bpf, x32: Fix logic error in BPF_LDX zero-extension + - bpf: Propagate expected_attach_type when verifying freplace programs + - mm: shmem: disable interrupt when acquiring info->lock in + userfaultfd_copy path + - xfs: clear PF_MEMALLOC before exiting xfsaild thread + - libbpf: Initialize *nl_pid so gcc 10 is happy + - [armhf] net: fec: set GPR bit on suspend by DT configuration. + - [x86] hyperv: report value of misc_features + - signal: check sig before setting info in kill_pid_usb_asyncio + - afs: Fix length of dump of bad YFSFetchStatus record + - xfs: fix partially uninitialized structure in xfs_reflink_remap_extent + - ALSA: hda: Release resources at error in delayed probe + - ALSA: hda: Keep the controller initialization even if no codecs found + - ALSA: hda: Explicitly permit using autosuspend if runtime PM is + supported + - drm/amdgpu: fix wrong vram lost counter increment V2 + - scsi: target: fix PR IN / READ FULL STATUS for FC + - scsi: target: tcmu: reset_ring should reset TCMU_DEV_BIT_BROKEN + - objtool: Fix CONFIG_UBSAN_TRAP unreachable warnings + - objtool: Support Clang non-section symbols in ORC dump + - xen/xenbus: ensure xenbus_map_ring_valloc() returns proper grant status + - ALSA: hda: call runtime_allow() for all hda controllers + - net: stmmac: socfpga: Allow all RGMII modes + - mac80211: fix channel switch trigger from unknown mesh peer + - sched/isolation: Allow "isolcpus=" to skip unknown sub-parameters + - sched/vtime: Work around an unitialized variable warning + - [arm64] Delete the space separator in __emit_inst + - ext4: use matching invalidatepage in ext4_writepage + - ext4: increase wait time needed before reuse of deleted inode numbers + - ext4: convert BUG_ON's to WARN_ON's in mballoc.c + - irqchip/gic-v4.1: Add support for VPENDBASER's Dirty+Valid signaling + - blk-mq: Put driver tag in blk_mq_dispatch_rq_list() when no budget + - irqchip/meson-gpio: Fix HARDIRQ-safe -> HARDIRQ-unsafe lock order + - hwmon: (jc42) Fix name to have no illegal characters + - sfc: fix XDP-redirect in this driver + - taprio: do not use BIT() in TCA_TAPRIO_ATTR_FLAG_* definitions + - tipc: Add a missing case of TIPC_DIRECT_MSG type + - qed: Fix race condition between scheduling and destroying the slowpath + workqueue + - Crypto: chelsio - Fixes a hang issue during driver registration + - net: use indirect call wrappers for skb_copy_datagram_iter() + - qed: Fix use after free in qed_chain_free + - ext4: check for non-zero journal inum in ext4_calculate_overhead + - ASoC: soc-pcm: fix regression in soc_new_pcm() + - ASoC: soc-core: disable route checks for legacy devices + - [armhf] ASoC: stm32: spdifrx: fix regmap status check + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.10 + - Revert "ASoC: meson: axg-card: fix codec-to-codec link setup" + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.11 + - drm/scheduler: fix drm_sched_get_cleanup_job + - dma-buf: Fix SET_NAME ioctl uapi + - drm/amdgpu: invalidate L2 before SDMA IBs (v2) + - drm/edid: Fix off-by-one in DispID DTD pixel clock + - drm/amd/display: Fix green screen issue after suspend + - [x86] drm/i915/gem: Hold obj->vma.lock over for_each_ggtt_vma() + - [x86] drm/i915/gt: Check cacheline is valid before acquiring + - drm/qxl: qxl_release leak in qxl_draw_dirty_fb() + - drm/qxl: qxl_release leak in qxl_hw_surface_alloc() + - drm/qxl: qxl_release use after free + - NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION + - btrfs: fix transaction leak in btrfs_recover_relocation + - btrfs: fix block group leak when removing fails + - btrfs: fix partial loss of prealloc extent past i_size after fsync + - btrfs: transaction: Avoid deadlock due to bad initialization timing of + fs_info::journal_info + - mmc: cqhci: Avoid false "cqhci: CQE stuck on" by not open-coding timeout + loop + - [arm64] mmc: sdhci-xenon: fix annoying 1.8V regulator warning + - mmc: sdhci-pci: Fix eMMC driver strength for BYT-based controllers + - [arm64] mmc: sdhci-msm: Enable host capabilities pertains to R1b + response + - [armhf] mmc: meson-mx-sdio: Set MMC_CAP_WAIT_WHILE_BUSY + - [armhf] mmc: meson-mx-sdio: remove the broken ->card_busy() op + - ALSA: hda/realtek - Two front mics on a Lenovo ThinkCenter + - ALSA: usb-audio: Correct a typo of NuPrime DAC-10 USB ID + - ALSA: hda/hdmi: fix without unlocked before return + - ALSA: line6: Fix POD HD500 audio playback + - ALSA: pcm: oss: Place the plugin buffer overflow checks correctly + - [x86] i2c: amd-mp2-pci: Fix Oops in amd_mp2_pci_init() error handling + - [x86] hyperv: Suspend/resume the VP assist page for hibernation + - [x86] Drivers: hv: vmbus: Fix Suspend-to-Idle for Generation-2 VM + - dlmfs_file_write(): fix the bogosity in handling non-zero *ppos + - selinux: properly handle multiple messages in selinux_netlink_send() + - [amd64] IB/rdmavt: Always return ERR_PTR from rvt_create_mmap_info() + - PM: ACPI: Output correct message on target power state + - PM: hibernate: Freeze kernel threads in software_resume() + - dm writecache: fix data corruption when reloading the target + - dm multipath: use updated MPATHF_QUEUE_IO on mapping for bio-based mpath + - block: remove the bd_openers checks in blk_drop_partitions + - scsi: qla2xxx: set UNLOADING before waiting for session deletion + - scsi: qla2xxx: check UNLOADING before posting async work + - RDMA/mlx5: Set GRH fields in query QP on RoCE + - RDMA/uverbs: Fix a race with disassociate and exit_mmap() + - RDMA/mlx4: Initialize ib_spec on the stack + - RDMA/core: Prevent mixed use of FDs between shared ufiles + - RDMA/core: Fix overwriting of uobj in case of error + - RDMA/core: Fix race between destroy and release FD object + - RDMA/cm: Fix ordering of xa_alloc_cyclic() in ib_create_cm_id() + - RDMA/cm: Fix an error check in cm_alloc_id_priv() + - [arm64] dmaengine: hisilicon: Fix build error without PCI_MSI + - [x86,arm64] vfio: avoid possible overflow in vfio_iommu_type1_pin_pages + - [x86,arm64] vfio/type1: Fix VA->PA translation for PFNMAP VMAs in + vaddr_get_pfn() + - [arm64] iommu/qcom: Fix local_base status check + - dmaengine: fix channel index enumeration + - scsi: target/iblock: fix WRITE SAME zeroing + - iommu: Properly export iommu_group_get_for_dev() + - [amd64] iommu/vt-d: Use right Kconfig option name + - [amd64] iommu/amd: Fix legacy interrupt remapping for x2APIC-enabled + system + - [armhf] i2c: aspeed: Avoid i2c interrupt status clear race condition. + - [i386] ALSA: opti9xx: shut up gcc-10 range warning + - Fix use after free in get_tree_bdev() + - nvme: prevent double free in nvme_alloc_ns() error handling + - nfs: Fix potential posix_acl refcnt leak in nfs3_set_acl + - [x86] drm/i915: Use proper fault mask in interrupt postinstall too + - [arm64] vdso: Add -fasynchronous-unwind-tables to cflags + - io_uring: statx must grab the file table for valid fd + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.12 + - vhost: vsock: kick send_pkt worker once device is started + - [arm64,armhf] drm/bridge: analogix_dp: Split bind() into probe() and + real bind() + - [x86] ASoC: topology: Add missing memory checks + - [x86] ASoC: topology: Check return value of soc_tplg_create_tlv + - [x86] ASoC: topology: Check return value of soc_tplg_*_create + - [x86] ASoC: topology: Check soc_tplg_add_route return value + - [x86] ASoC: topology: Check return value of pcm_new_ver + - [x86] ASoC: topology: Check return value of soc_tplg_dai_config + - SUNRPC/cache: Fix unsafe traverse caused double-free in cache_purge + - scsi: sg: add sg_remove_request in sg_write (CVE-2020-12770) + - [armhf] ASoC: sgtl5000: Fix VAG power-on handling + - [x86] ASoC: topology: Fix endianness issue + - [arm64,armhf] usb: dwc3: gadget: Properly set maxpacket limit + - [x86] ASoC: codecs: hdac_hdmi: Fix incorrect use of list_for_each_entry + - wimax/i2400m: Fix potential urb refcnt leak + - [armhf] net: stmmac: fix enabling socfpga's ptp_ref_clock + - [arm64,armhf] net: stmmac: Fix sub-second increment + - cifs: protect updating server->dstaddr with a spinlock + - cifs: do not share tcons with DFS + - tracing: Fix memory leaks in trace_events_hist.c + - ftrace: Fix memory leak caused by not freeing entry in + unregister_ftrace_direct() + - mac80211: sta_info: Add lockdep condition for RCU list usage + - [arm64] net: bcmgenet: suppress warnings on failed Rx SKB allocations + - sctp: Fix SHUTDOWN CTSN Ack in the peer restart case + - drm/amdgpu: Fix oops when pp_funcs is unset in ACPI event + - ALSA: hda: Match both PCI ID and SSID for driver blacklist + - [x86] kvm: fix a missing-prototypes "vmread_error" + - [x86] platform: GPD pocket fan: Fix error message when temp-limits are + out of range + - ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late() + - mac80211: add ieee80211_is_any_nullfunc() + - cgroup, netclassid: remove double cond_resched + - mm/mremap: Add comment explaining the untagging behaviour of mremap() + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.13 + - [x86] thunderbolt: Check return value of tb_sw_read() in + usb4_switch_op() + - USB: serial: qcserial: Add DW5816e support + - drm/amdgpu: move kfd suspend after ip_suspend_phase1 + - drm/amdgpu: drop redundant cg/pg ungate on runpm enter + - vt: fix unicode console freeing with a common interface + - [arm64] tty: xilinx_uartps: Fix missing id assignment to the console + - ext4: don't set dioread_nolock by default for blocksize < pagesize + - ext4: disable dioread_nolock whenever delayed allocation is disabled + - nvme: refactor nvme_identify_ns_descs error handling + - nvme: fix possible hang when ns scanning fails during error recovery + - tracing/kprobes: Fix a double initialization typo + - [arm64,riscv64] net: macb: Fix runtime PM refcounting + - cxgb4: fix EOTID leak when disabling TC-MQPRIO offload + - devlink: Fix reporter's recovery condition + - devlink: fix return value after hitting end in region read + - fq_codel: fix TCA_FQ_CODEL_DROP_BATCH_SIZE sanity checks + - ipv6: Use global sernum for dst validation with nexthop objects + - neigh: send protocol value in neighbor create notification + - net: bridge: vlan: Add a schedule point during VLAN processing + - [arm64,armhf] net: dsa: Do not leave DSA master with NULL netdev_ops + - [arm64,armhf] net: dsa: Do not make user port errors fatal + - [arm64,riscv64] net: macb: fix an issue about leak related system + resources + - net: macsec: preserve ingress frame ordering + - net/mlx4_core: Fix use of ENOSPC around mlx4_counter_alloc() + - net: phy: marvell10g: fix temperature sensor on 2110 + - net_sched: sch_skbprio: add message validation to skbprio_change() + - net: stricter validation of untrusted gso packets + - net: usb: qmi_wwan: add support for DW5816e + - nfp: abm: fix a memory leak bug + - sch_choke: avoid potential panic in choke_reset() + - sch_sfq: validate silly quantum values + - tipc: fix partial topology connection closure + - tunnel: Propagate ECT(1) when decapsulating as recommended by RFC6040 + - bnxt_en: Fix VF anti-spoof filter setup. + - bnxt_en: Reduce BNXT_MSIX_VEC_MAX value to supported CQs per PF. + - bnxt_en: Improve AER slot reset. + - bnxt_en: Return error when allocating zero size context memory. + - bnxt_en: Fix VLAN acceleration handling in bnxt_fix_features(). + - net/mlx5: DR, On creation set CQ's arm_db member to right value + - net/mlx5: Fix forced completion access non initialized command entry + - net/mlx5: Fix command entry leak in Internal Error State + - net/mlx5e: Fix q counters on uplink representors + - [arm64,armhf] net: mvpp2: prevent buffer overflow in mvpp22_rss_ctx() + - [arm64,armhf] net: mvpp2: cls: Prevent buffer overflow in + mvpp2_ethtool_cls_rule_del() + - wireguard: queueing: cleanup ptr_ring in error path of packet_queue_init + - wireguard: receive: use tunnel helpers for decapsulating ECN markings + - wireguard: socket: remove errant restriction on looping to self + - wireguard: send/receive: cond_resched() when processing worker + ringbuffers + - HID: wacom: Read HID_DG_CONTACTMAX directly for non-generic devices + - sctp: Fix bundling of SHUTDOWN with COOKIE-ACK + - Revert "HID: wacom: generic: read the number of expected touches on a + per collection basis" + - HID: usbhid: Fix race between usbhid_close() and usbhid_stop() + - HID: wacom: Report 2nd-gen Intuos Pro S center button status over BT + - USB: uas: add quirk for LaCie 2Big Quadra + - [arm64,armhf] usb: chipidea: msm: Ensure proper controller reset using + role switch API + - USB: serial: garmin_gps: add sanity checking for data length + - tracing/boottime: Fix kprobe event API usage + - tracing/kprobes: Reject new event if loc is NULL + - tracing: Wait for preempt irq delay thread to finish + - tracing: Add a vmalloc_sync_mappings() for safe measure + - crypto: arch/lib - limit simd usage to 4k chunks + - [s390x] KVM: Remove false WARN_ON_ONCE for the PQAP instruction + - [x86] KVM: VMX: Explicitly clear RFLAGS.CF and RFLAGS.ZF in VM-Exit RSB + path + - [arm64,armhf] KVM: vgic: Fix limit condition when writing to + GICD_I[CS]ACTIVER + - [arm64] KVM: Fix 32bit PC wrap-around + - [arm64] hugetlb: avoid potential NULL dereference + - driver core: platform: Initialize dma_parms for platform devices + - [arm*] amba: Initialize dma_parms for amba devices + - [x86] mei: me: disable mei interface on LBG servers. + - ipc/mqueue.c: change __do_notify() to bypass check_kill_permission() + - epoll: atomically remove wait entry on wake up + - eventpoll: fix missing wakeup for ovflist in ep_poll_callback + - mm/page_alloc: fix watchdog soft lockups during set_zone_contiguous() + - mm: limit boost_watermark on small zones + - ceph: fix endianness bug when handling MDS session feature bits + - ceph: demote quotarealm lookup warning to a debug message + - coredump: fix crash when umh is disabled + - [riscv64] set max_pfn to the PFN of the last page + - batman-adv: fix batadv_nc_random_weight_tq + - batman-adv: Fix refcnt leak in batadv_show_throughput_override + - batman-adv: Fix refcnt leak in batadv_store_throughput_override + - batman-adv: Fix refcnt leak in batadv_v_ogm_process + - [x86] mm/cpa: Flush direct map alias during cpa + - [x86] entry/64: Fix unwind hints in register clearing code + - [x86] entry/64: Fix unwind hints in kernel exit path + - [x86] entry/64: Fix unwind hints in __switch_to_asm() + - [x86] entry/64: Fix unwind hints in rewind_stack_do_exit() + - [amd64] x86/unwind/orc: Don't skip the first frame for inactive tasks + - [amd64] x86/unwind/orc: Prevent unwinding before ORC initialization + - [amd64] x86/unwind/orc: Fix error path for bad ORC entry type + - [amd64] x86/unwind/orc: Fix premature unwind stoppage due to IRET frames + - [x86] KVM: Fixes posted interrupt check for IRQs delivery modes + - [x86] arch/x86/kvm/svm/sev.c: change flag passed to GUP fast in + sev_pin_memory() + - netfilter: nat: never update the UDP checksum when it's 0 + - netfilter: nf_osf: avoid passing pointer to local var + - [x86] kvm: ioapic: Restrict lazy EOI update to edge-triggered interrupts + - scripts/decodecode: fix trapping instruction formatting + - mm, memcg: fix error return value of mem_cgroup_css_alloc() + - bdi: move bdi_dev_name out of line + - bdi: add a ->dev_name field to struct backing_dev_info + - io_uring: don't use 'fd' for openat/openat2/statx + - fsnotify: replace inode pointer with an object id + - fanotify: merge duplicate events on parent and child + https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.6.14 + - [x86] KVM: nVMX: Consolidate nested MTF checks to helper function + - [x86] kvm: nVMX: reflect MTF VM-exits if injected by L1 + - xprtrdma: Clean up the post_send path + - xprtrdma: Fix trace point use-after-free race + - [x86] drm/i915/tgl: Add Wa_14010477008:tgl + - [x86] drm/i915/tgl: TBT AUX should use TC power well ops + - [x86] drm/i915/display: Load DP_TP_CTL/STATUS offset before use it + - shmem: fix possible deadlocks on shmlock_user_lock + - net: phy: microchip_t1: add lan87xx_phy_init to initialize the lan87xx + phy. + - [arm64,armhf] KVM: vgic: Synchronize the whole guest on + GIC{D,R}_I{S,C}ACTIVER read + - [arm64,armhf] KVM: vgic-v2: Only use the virtual state when userspace + accesses pending bits + - gpio: pca953x: Fix pca953x_gpio_set_config + - SUNRPC: Add "@len" parameter to gss_unwrap() + - SUNRPC: Fix GSS privacy computation of auth->au_ralign + - [x86] hv_netvsc: Fix netvsc_start_xmit's return type + - drop_monitor: work around gcc-10 stringop-overflow warning + - virtio-blk: handle block_device_operations callbacks after hot unplug + - net_sched: fix tcm_parent in tc filter dump + - [arm64,armhf] net: stmmac: gmac5+: fix potential integer overflow on 32 + bit multiply + - [amd64] iommu/amd: Fix race in increase_address_space()/fetch_pte() + - [amd64] iommu/amd: Update Device Table in increase_address_space() + - mmc: sdhci-acpi: Add SDHCI_QUIRK2_BROKEN_64_BIT_DMA for AMDI0040 + - [arm64] dpaa2-eth: properly handle buffer size restrictions + - mptcp: set correct vfs info for subflows + - net: fix a potential recursive NETDEV_FEAT_CHANGE + - netlabel: cope with NULL catmap (CVE-2020-10711) + - net: phy: fix aneg restart in phy_ethtool_set_eee + - [arm64] net: stmmac: fix num_por initialization + - pppoe: only process PADT targeted at local interfaces + - Revert "ipv6: add mtu lock check in __ip6_rt_update_pmtu" + - tcp: fix error recovery in tcp_zerocopy_receive() + - tcp: fix SO_RCVLOWAT hangs with fat skbs + - virtio_net: fix lockdep warning on 32 bit + - [arm64] dpaa2-eth: prevent array underflow in update_cls_rule() + - hinic: fix a bug of ndo_stop + - net: ipv4: really enforce backoff for redirects + - netprio_cgroup: Fix unlimited memory leak of v2 cgroups + - net: tcp: fix rx timestamp behavior for tcp_recvmsg + - nfp: abm: fix error return code in nfp_abm_vnic_alloc() + - r8169: re-establish support for RTL8401 chip version + - umh: fix memory leak on execve failure + - [arm64] net: broadcom: Select BROADCOM_PHY for BCMGENET + - [i386] dmaengine: pch_dma.c: Avoid data race between probe and irq + handler + - [x86] cpufreq: intel_pstate: Only mention the BIOS disabling turbo mode + once + - ALSA: hda/hdmi: fix race in monitor detection during probe + - drm/qxl: lost qxl_bo_kunmap_atomic_page in qxl_image_init_helper() + - fibmap: Warn and return an error in case of block > INT_MAX + - io_uring: use cond_resched() in io_ring_ctx_wait_and_kill() + - io_uring: check non-sync defer_list carefully + - ipc/util.c: sysvipc_find_ipc() incorrectly updates position index + - ALSA: hda/realtek - Fix S3 pop noise on Dell Wyse + - gfs2: Another gfs2_walk_metadata fix + - mmc: sdhci-pci-gli: Fix no irq handler from suspend + - [amd64] IB/hfi1: Fix another case where pq is left on waitlist + - ACPI: EC: PM: Avoid premature returns from acpi_s2idle_wake() + - [x86] pinctrl: sunrisepoint: Fix PAD lock register offset for SPT-H + - [x86] pinctrl: baytrail: Enable pin configuration setting for GPIO chip + - [arm64] pinctrl: qcom: fix wrong write in update_dual_edge + - [x86] pinctrl: cherryview: Add missing spinlock usage in + chv_gpio_irq_handler + - [arm64,armhf] drm/tegra: Fix SMMU support on Tegra124 and Tegra210 + - bpf: Fix error return code in map_lookup_and_delete_elem() + - ALSA: firewire-lib: fix 'function sizeof not defined' error of + tracepoints format + - cachefiles: Fix corruption of the return value in + cachefiles_read_or_alloc_pages() + - i40iw: Fix error handling in i40iw_manage_arp_cache() + - [x86] drm/i915/gt: Make timeslicing an explicit engine property + - [x86] drm/i915: Don't enable WaIncreaseLatencyIPCEnabled when IPC is + disabled + - bpf, sockmap: msg_pop_data can incorrecty set an sge length + - bpf, sockmap: bpf_tcp_ingress needs to subtract bytes from sg.size + - [x86] drm/i915/gem: Remove object_is_locked assertion from + unpin_from_display_plane + - mmc: sdhci-pci-gli: Fix can not access GL9750 after reboot from Windows + 10 + - mmc: core: Check request type before completing the request + - mmc: core: Fix recursive locking issue in CQE recovery path + - mmc: block: Fix request completion in the CQE timeout path + - gfs2: More gfs2_find_jhead fixes + - fork: prevent accidental access to clone3 features + - drm/amdgpu: force fbdev into vram + - NFS: Fix fscache super_cookie index_key from changing after umount + - NFS: Fix fscache super_cookie allocation + - NFSv4: Fix fscache cookie aux_data to ensure change_attr is included + - hwmon: (drivetemp) Fix SCT support if SCT data tables are not supported + - netfilter: conntrack: avoid gcc-10 zero-length-bounds warning + - [x86] drm/i915/gvt: Fix kernel oops for 3-level ppgtt guest + - [arm64] fix the flush_icache_range arguments in machine_kexec + - netfilter: conntrack: fix infinite loop on rmmod + - [x86] drm/i915: Mark concurrent submissions with a weak-dependency + - nfs: fix NULL deference in nfs4_get_valid_delegation + - SUNRPC: Signalled ASYNC tasks need to exit + - tracing: Wait for preempt irq delay thread to execute + - netfilter: flowtable: set NF_FLOW_TEARDOWN flag on entry expiration + - netfilter: nft_set_rbtree: Add missing expired checks + - RDMA/rxe: Always return ERR_PTR from rxe_create_mmap_info() + - IB/mlx4: Test return value of calls to ib_get_cached_pkey + - IB/core: Fix potential NULL pointer dereference in pkey cache + - RDMA/core: Fix double put of resource + - RDMA/iw_cxgb4: Fix incorrect function parameters + - [x86] ftrace: Have ftrace trampolines turn read-only at the end of + system boot up + - [x86] drm/i915: Handle idling during i915_gem_evict_something busy loops + - mm, memcg: fix inconsistent oom event behavior + - epoll: call final ep_events_available() check under the lock + - bpf: Fix bug in mmap() implementation for BPF array map + - NFSv3: fix rpc receive buffer size for MOUNT call + - pnp: Use list_for_each_entry() instead of open coding + - net/rds: Use ERR_PTR for rds_message_alloc_sgs() + - Stop the ad-hoc games with -Wno-maybe-initialized + - gcc-10: disable 'zero-length-bounds' warning for now + - gcc-10: disable 'array-bounds' warning for now + - gcc-10: disable 'stringop-overflow' warning for now + - gcc-10: disable 'restrict' warning for now + - gcc-10 warnings: fix low-hanging fruit + - gcc-10: mark more functions __init to avoid section mismatch warnings + - gcc-10: avoid shadowing standard library 'free()' in crypto + - bootconfig: Fix to remove bootconfig data from initrd while boot + - bootconfig: Fix to prevent warning message if no bootconfig option + - usb: usbfs: correct kernel->user page attribute mismatch + - USB: usbfs: fix mmap dma mismatch + - ALSA: hda/realtek - Limit int mic boost for Thinkpad T530 + - ALSA: hda/realtek - Add COEF workaround for ASUS ZenBook UX431DA + - ALSA: rawmidi: Fix racy buffer resize under concurrent accesses + - ALSA: usb-audio: Add control message quirk delay for Kingston HyperX + headset + - usb: core: hub: limit HUB_QUIRK_DISABLE_AUTOSUSPEND to USB5534B + - [arm64,armhf,riscv64] usb: host: xhci-plat: keep runtime active when + removing host + - USB: gadget: fix illegal array access in binding with UDC + (CVE-2020-13143) + - usb: xhci: Fix NULL pointer dereference when enqueuing trbs from urb sg + list + - [x86] Make the "Reducing compressed framebufer size" message be + DRM_INFO_ONCE() + - [armhf] dts: imx6dl-yapp4: Fix Ursa board Ethernet connection + - drm/amd/amdgpu: add raven1 part to the gfxoff quirk list + - [x86] drm/i915/tgl+: Fix interrupt handling for DP AUX transactions + - [powerpc*] vdso32: Fallback on getres syscall when clock is unknown + - cifs: fix leaked reference on requeued write + - [x86] KVM: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c + - [x86] Fix early boot crash on gcc-10, third try + - [amd64] x86/unwind/orc: Fix error handling in __unwind_start() + - exec: Move would_dump into flush_old_exec + - [arm64,armhf] clk: rockchip: fix incorrect configuration of rk3228 + aclk_gpu* clocks + - [arm64,armhf] dwc3: Remove check for HWO flag in + dwc3_gadget_ep_reclaim_trb_sg() + - fanotify: fix merging marks masks with FAN_ONDIR + - [arm64] dts: meson-g12b-ugoos-am6: fix usb vbus-supply + - Revert "ALSA: hda/realtek: Fix pop noise on ALC225" + - [armhf] clk: ti: clkctrl: Fix Bad of_node_put within clkctrl_get_name + - clk: Unlink clock if failed to prepare or enable + - [arm64] dts: rockchip: Replace RK805 PMIC node name with "pmic" on + rk3328 boards + - dt-bindings: dma: fsl-edma: fix ls1028a-edma compatible + - SUNRPC: Revert 241b1f419f0e ("SUNRPC: Remove xdr_buf_trim()") + - bpf: Fix sk_psock refcnt leak when receiving message + - RDMA/uverbs: Do not discard the IB_EVENT_DEVICE_FATAL event + - RDMA/uverbs: Move IB_EVENT_DEVICE_FATAL to destroy_uobj + - [x86] KVM: Fix off-by-one error in kvm_vcpu_ioctl_x86_setup_mce + - bpf: Enforce returning 0 for fentry/fexit progs + - bpf: Restrict bpf_trace_printk()'s %s usage and add %pks, %pus specifier + - Makefile: disallow data races on gcc-10 as well + + [ Ben Hutchings ] + * linux-libc-dev: Re-add "Provides: linux-kernel-headers" as several + source packages still have this in Build-Depends + + [ Luca Boccassi ] + * [cloud] Enable INFINIBAND configs for HyperV/Azure (Closes: #958300) + + [ Bastian Blank ] + * [cloud] Re-enable some FB drivers. + + [ Romain Perier ] + * Enable support for fsverity + + [ Salvatore Bonaccorso ] + * [rt] Update to 5.6.10-rt5 and re-enable + * Bump ABI to 2. + * xfs: add agf freeblocks verify in xfs_agf_verify (CVE-2020-12655) + + [ Domenico Andreoli ] + * [arm64] udeb: Add armada_37xx_wdt to kernel-image (Closes: #961086) + + -- Salvatore Bonaccorso <carnil@debian.org> Sat, 23 May 2020 16:29:21 +0200 + linux (5.6.7-1) unstable; urgency=medium * New upstream stable update: diff --git a/debian/config/config.cloud b/debian/config/config.cloud index db64df8d233f..9a0ef25e2a75 100644 --- a/debian/config/config.cloud +++ b/debian/config/config.cloud @@ -303,7 +303,96 @@ CONFIG_HYPERV=m ## ## file: drivers/infiniband/Kconfig ## -# CONFIG_INFINIBAND is not set +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_ON_DEMAND_PAGING=y +CONFIG_INFINIBAND_ADDR_TRANS=y + +## +## file: drivers/infiniband/hw/cxgb4/Kconfig +## +# CONFIG_INFINIBAND_CXGB4 is not set + +## +## file: drivers/infiniband/hw/hfi1/Kconfig +## +# CONFIG_INFINIBAND_HFI1 is not set + +## +## file: drivers/infiniband/hw/i40iw/Kconfig +## +# CONFIG_INFINIBAND_I40IW is not set + +## +## file: drivers/infiniband/hw/mlx4/Kconfig +## +CONFIG_MLX4_INFINIBAND=m + +## +## file: drivers/infiniband/hw/mlx5/Kconfig +## +CONFIG_MLX5_INFINIBAND=m + +## +## file: drivers/infiniband/hw/mthca/Kconfig +## +# CONFIG_INFINIBAND_MTHCA is not set +# CONFIG_INFINIBAND_MTHCA_DEBUG is not set + +## +## file: drivers/infiniband/hw/ocrdma/Kconfig +## +# CONFIG_INFINIBAND_OCRDMA is not set + +## +## file: drivers/infiniband/hw/qedr/Kconfig +## +# CONFIG_INFINIBAND_QEDR is not set + +## +## file: drivers/infiniband/hw/qib/Kconfig +## +# CONFIG_INFINIBAND_QIB is not set +# CONFIG_INFINIBAND_QIB_DCA is not set + +## +## file: drivers/infiniband/sw/rdmavt/Kconfig +## +# CONFIG_INFINIBAND_RDMAVT is not set + +## +## file: drivers/infiniband/sw/rxe/Kconfig +## +# CONFIG_RDMA_RXE is not set + +## +## file: drivers/infiniband/ulp/ipoib/Kconfig +## +# CONFIG_INFINIBAND_IPOIB is not set +# CONFIG_INFINIBAND_IPOIB_CM is not set +# CONFIG_INFINIBAND_IPOIB_DEBUG is not set +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set + +## +## file: drivers/infiniband/ulp/iser/Kconfig +## +# CONFIG_INFINIBAND_ISER is not set + +## +## file: drivers/infiniband/ulp/isert/Kconfig +## +# CONFIG_INFINIBAND_ISERT is not set + +## +## file: drivers/infiniband/ulp/srp/Kconfig +## +# CONFIG_INFINIBAND_SRP is not set + +## +## file: drivers/infiniband/ulp/srpt/Kconfig +## +# CONFIG_INFINIBAND_SRPT is not set ## ## file: drivers/input/Kconfig @@ -1209,7 +1298,45 @@ CONFIG_HYPERV_STORAGE=m ## ## file: drivers/video/fbdev/Kconfig ## -# CONFIG_FB is not set +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_UVESA is not set +# CONFIG_FB_VESA is not set +CONFIG_FB_EFI=y +# CONFIG_FB_N411 is not set +# CONFIG_FB_HGA is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_LE80578 is not set +# CONFIG_FB_CARILLO_RANCH is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_MB862XX is not set +CONFIG_FB_HYPERV=m +# CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SM712 is not set ## ## file: drivers/virt/Kconfig @@ -1510,6 +1637,11 @@ CONFIG_NET_MPLS_GSO=m # CONFIG_X25 is not set ## +## file: security/Kconfig +## +CONFIG_SECURITY_INFINIBAND=y + +## ## file: security/integrity/Kconfig ## # CONFIG_INTEGRITY is not set diff --git a/debian/installer/modules/arm64/kernel-image b/debian/installer/modules/arm64/kernel-image index c8c0bd9acdf3..092df564bf37 100644 --- a/debian/installer/modules/arm64/kernel-image +++ b/debian/installer/modules/arm64/kernel-image @@ -15,6 +15,9 @@ drivers/soc/** # Watchdog needed for reboot sunxi_wdt ? +# For Turris MOX (u-boot enables the watchdog) +armada_37xx_wdt ? + # SPI devices drivers/spi/** diff --git a/debian/patches-rt/0001-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0001-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index d7bf9295e1a6..2659f0194e32 100644 --- a/debian/patches-rt/0001-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0001-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 28 May 2018 15:24:20 +0200 Subject: [PATCH 1/4] Split IRQ-off and zone->lock while freeing pages from PCP list #1 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. diff --git a/debian/patches-rt/0001-bpf-Tighten-the-requirements-for-preallocated-hash-m.patch b/debian/patches-rt/0001-bpf-Tighten-the-requirements-for-preallocated-hash-m.patch index f03a86a85c59..3bb84ef2e849 100644 --- a/debian/patches-rt/0001-bpf-Tighten-the-requirements-for-preallocated-hash-m.patch +++ b/debian/patches-rt/0001-bpf-Tighten-the-requirements-for-preallocated-hash-m.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:32 +0100 Subject: [PATCH 01/22] bpf: Tighten the requirements for preallocated hash maps -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The assumption that only programs attached to perf NMI events can deadlock on memory allocators is wrong. Assume the following simplified callchain: @@ -52,7 +52,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c -@@ -8120,26 +8120,43 @@ static bool is_tracing_prog_type(enum bp +@@ -8189,26 +8189,43 @@ static bool is_tracing_prog_type(enum bp } } diff --git a/debian/patches-rt/0001-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch b/debian/patches-rt/0001-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch index 79bb927c9493..89c56ef80596 100644 --- a/debian/patches-rt/0001-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch +++ b/debian/patches-rt/0001-drm-vmwgfx-Drop-preempt_disable-in-vmw_fifo_ping_hos.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2020 18:57:11 +0100 Subject: [PATCH] drm/vmwgfx: Drop preempt_disable() in vmw_fifo_ping_host() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz vmw_fifo_ping_host() disables preemption around a test and a register write via vmw_write(). The write function acquires a spinlock_t typed diff --git a/debian/patches-rt/0001-locking-percpu-rwsem-lockdep-Make-percpu-rwsem-use-i.patch b/debian/patches-rt/0001-locking-percpu-rwsem-lockdep-Make-percpu-rwsem-use-i.patch index 1488235e17b1..3db1695c1f9c 100644 --- a/debian/patches-rt/0001-locking-percpu-rwsem-lockdep-Make-percpu-rwsem-use-i.patch +++ b/debian/patches-rt/0001-locking-percpu-rwsem-lockdep-Make-percpu-rwsem-use-i.patch @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 31 Jan 2020 16:07:04 +0100 Subject: [PATCH 1/7] locking/percpu-rwsem, lockdep: Make percpu-rwsem use its own lockdep_map -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As preparation for replacing the embedded rwsem, give percpu-rwsem its own lockdep_map. diff --git a/debian/patches-rt/0001-printk-rb-add-printk-ring-buffer-documentation.patch b/debian/patches-rt/0001-printk-rb-add-printk-ring-buffer-documentation.patch index 8b893c91e567..3d5ae34c29a8 100644 --- a/debian/patches-rt/0001-printk-rb-add-printk-ring-buffer-documentation.patch +++ b/debian/patches-rt/0001-printk-rb-add-printk-ring-buffer-documentation.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:39 +0100 Subject: [PATCH 01/25] printk-rb: add printk ring buffer documentation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The full documentation file for the printk ring buffer. diff --git a/debian/patches-rt/0001-workqueue-Don-t-assume-that-the-callback-has-interru.patch b/debian/patches-rt/0001-workqueue-Don-t-assume-that-the-callback-has-interru.patch index ae3da3485a8b..cfe545363bd5 100644 --- a/debian/patches-rt/0001-workqueue-Don-t-assume-that-the-callback-has-interru.patch +++ b/debian/patches-rt/0001-workqueue-Don-t-assume-that-the-callback-has-interru.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 11 Jun 2019 11:21:02 +0200 Subject: [PATCH 1/4] workqueue: Don't assume that the callback has interrupts disabled -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Due to the TIMER_IRQSAFE flag, the timer callback is invoked with disabled interrupts. On -RT the callback is invoked in softirq context diff --git a/debian/patches-rt/0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch b/debian/patches-rt/0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch index abb99170a97c..2f51db351f28 100644 --- a/debian/patches-rt/0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch +++ b/debian/patches-rt/0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 28 May 2018 15:24:21 +0200 Subject: [PATCH 2/4] Split IRQ-off and zone->lock while freeing pages from PCP list #2 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Split the IRQ-off section while accessing the PCP list from zone->lock while freeing pages. diff --git a/debian/patches-rt/0002-bpf-Enforce-preallocation-for-instrumentation-progra.patch b/debian/patches-rt/0002-bpf-Enforce-preallocation-for-instrumentation-progra.patch index f665d1e3cb09..b40b9980ae6e 100644 --- a/debian/patches-rt/0002-bpf-Enforce-preallocation-for-instrumentation-progra.patch +++ b/debian/patches-rt/0002-bpf-Enforce-preallocation-for-instrumentation-progra.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:33 +0100 Subject: [PATCH 02/22] bpf: Enforce preallocation for instrumentation programs on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Aside of the general unsafety of run-time map allocation for instrumentation type programs RT enabled kernels have another constraint: @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c -@@ -8145,16 +8145,21 @@ static int check_map_prog_compatibility( +@@ -8214,16 +8214,21 @@ static int check_map_prog_compatibility( * of the memory allocator or at a place where a recursion into the * memory allocator would see inconsistent state. * diff --git a/debian/patches-rt/0002-drm-vmwgfx-Remove-a-few-unused-functions.patch b/debian/patches-rt/0002-drm-vmwgfx-Remove-a-few-unused-functions.patch index c106a9c8fdbf..55494f06e0a5 100644 --- a/debian/patches-rt/0002-drm-vmwgfx-Remove-a-few-unused-functions.patch +++ b/debian/patches-rt/0002-drm-vmwgfx-Remove-a-few-unused-functions.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2020 19:04:23 +0100 Subject: [PATCH] drm/vmwgfx: Remove a few unused functions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz I noticed that there is a prototype for vmw_fifo_ping_host_locked() but no function. Then I looked further and noticed more functions which are diff --git a/debian/patches-rt/0002-locking-percpu-rwsem-Convert-to-bool.patch b/debian/patches-rt/0002-locking-percpu-rwsem-Convert-to-bool.patch index 069773797eba..279f0881cad0 100644 --- a/debian/patches-rt/0002-locking-percpu-rwsem-Convert-to-bool.patch +++ b/debian/patches-rt/0002-locking-percpu-rwsem-Convert-to-bool.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 31 Jan 2020 16:07:05 +0100 Subject: [PATCH 2/7] locking/percpu-rwsem: Convert to bool -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Use bool where possible. diff --git a/debian/patches-rt/0002-printk-rb-add-prb-locking-functions.patch b/debian/patches-rt/0002-printk-rb-add-prb-locking-functions.patch index 615134fe069e..31693b005880 100644 --- a/debian/patches-rt/0002-printk-rb-add-prb-locking-functions.patch +++ b/debian/patches-rt/0002-printk-rb-add-prb-locking-functions.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:40 +0100 Subject: [PATCH 02/25] printk-rb: add prb locking functions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add processor-reentrant spin locking functions. These allow restricting the number of possible contexts to 2, which can simplify diff --git a/debian/patches-rt/0002-sched-swait-Add-swait_event_lock_irq.patch b/debian/patches-rt/0002-sched-swait-Add-swait_event_lock_irq.patch index 4930d9fbb8fd..95aee8674177 100644 --- a/debian/patches-rt/0002-sched-swait-Add-swait_event_lock_irq.patch +++ b/debian/patches-rt/0002-sched-swait-Add-swait_event_lock_irq.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 22 May 2019 12:42:26 +0200 Subject: [PATCH 2/4] sched/swait: Add swait_event_lock_irq() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The swait_event_lock_irq() is inspired by wait_event_lock_irq(). This is required by the workqueue code once it switches to swait. diff --git a/debian/patches-rt/0003-bpf-Update-locking-comment-in-hashtab-code.patch b/debian/patches-rt/0003-bpf-Update-locking-comment-in-hashtab-code.patch index b568f4486fcc..d5b1a23072a4 100644 --- a/debian/patches-rt/0003-bpf-Update-locking-comment-in-hashtab-code.patch +++ b/debian/patches-rt/0003-bpf-Update-locking-comment-in-hashtab-code.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:34 +0100 Subject: [PATCH 03/22] bpf: Update locking comment in hashtab code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The comment where the bucket lock is acquired says: diff --git a/debian/patches-rt/0003-locking-percpu-rwsem-Move-__this_cpu_inc-into-the-sl.patch b/debian/patches-rt/0003-locking-percpu-rwsem-Move-__this_cpu_inc-into-the-sl.patch index 3a98662a6435..8022d89a3a9a 100644 --- a/debian/patches-rt/0003-locking-percpu-rwsem-Move-__this_cpu_inc-into-the-sl.patch +++ b/debian/patches-rt/0003-locking-percpu-rwsem-Move-__this_cpu_inc-into-the-sl.patch @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 31 Jan 2020 16:07:06 +0100 Subject: [PATCH 3/7] locking/percpu-rwsem: Move __this_cpu_inc() into the slowpath -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As preparation to rework __percpu_down_read() move the __this_cpu_inc() into it. diff --git a/debian/patches-rt/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch b/debian/patches-rt/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch index 430e60724323..e72dbecc7423 100644 --- a/debian/patches-rt/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 28 May 2018 15:24:22 +0200 Subject: [PATCH 3/4] mm/SLxB: change list_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The list_lock is used with used with IRQs off on RT. Make it a raw_spinlock_t otherwise the interrupts won't be disabled on -RT. The locking rules remain @@ -477,7 +477,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return x; } #endif /* CONFIG_SLUB_DEBUG || CONFIG_SYSFS */ -@@ -2876,7 +2876,7 @@ static void __slab_free(struct kmem_cach +@@ -2873,7 +2873,7 @@ static void __slab_free(struct kmem_cach do { if (unlikely(n)) { @@ -486,7 +486,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> n = NULL; } prior = page->freelist; -@@ -2908,7 +2908,7 @@ static void __slab_free(struct kmem_cach +@@ -2905,7 +2905,7 @@ static void __slab_free(struct kmem_cach * Otherwise the list_lock will synchronize with * other processors updating the list of slabs. */ @@ -495,7 +495,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } } -@@ -2949,7 +2949,7 @@ static void __slab_free(struct kmem_cach +@@ -2946,7 +2946,7 @@ static void __slab_free(struct kmem_cach add_partial(n, page, DEACTIVATE_TO_TAIL); stat(s, FREE_ADD_PARTIAL); } @@ -504,7 +504,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return; slab_empty: -@@ -2964,7 +2964,7 @@ static void __slab_free(struct kmem_cach +@@ -2961,7 +2961,7 @@ static void __slab_free(struct kmem_cach remove_full(s, n, page); } @@ -513,7 +513,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> stat(s, FREE_SLAB); discard_slab(s, page); } -@@ -3368,7 +3368,7 @@ static void +@@ -3362,7 +3362,7 @@ static void init_kmem_cache_node(struct kmem_cache_node *n) { n->nr_partial = 0; @@ -522,7 +522,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> INIT_LIST_HEAD(&n->partial); #ifdef CONFIG_SLUB_DEBUG atomic_long_set(&n->nr_slabs, 0); -@@ -3749,7 +3749,7 @@ static void free_partial(struct kmem_cac +@@ -3743,7 +3743,7 @@ static void free_partial(struct kmem_cac struct page *page, *h; BUG_ON(irqs_disabled()); @@ -531,7 +531,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> list_for_each_entry_safe(page, h, &n->partial, slab_list) { if (!page->inuse) { remove_partial(n, page); -@@ -3759,7 +3759,7 @@ static void free_partial(struct kmem_cac +@@ -3753,7 +3753,7 @@ static void free_partial(struct kmem_cac "Objects remaining in %s on __kmem_cache_shutdown()"); } } @@ -540,7 +540,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> list_for_each_entry_safe(page, h, &discard, slab_list) discard_slab(s, page); -@@ -4031,7 +4031,7 @@ int __kmem_cache_shrink(struct kmem_cach +@@ -4025,7 +4025,7 @@ int __kmem_cache_shrink(struct kmem_cach for (i = 0; i < SHRINK_PROMOTE_MAX; i++) INIT_LIST_HEAD(promote + i); @@ -549,7 +549,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Build lists of slabs to discard or promote. -@@ -4062,7 +4062,7 @@ int __kmem_cache_shrink(struct kmem_cach +@@ -4056,7 +4056,7 @@ int __kmem_cache_shrink(struct kmem_cach for (i = SHRINK_PROMOTE_MAX - 1; i >= 0; i--) list_splice(promote + i, &n->partial); @@ -558,7 +558,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* Release empty slabs */ list_for_each_entry_safe(page, t, &discard, slab_list) -@@ -4460,7 +4460,7 @@ static int validate_slab_node(struct kme +@@ -4454,7 +4454,7 @@ static int validate_slab_node(struct kme struct page *page; unsigned long flags; @@ -567,7 +567,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> list_for_each_entry(page, &n->partial, slab_list) { validate_slab(s, page); -@@ -4482,7 +4482,7 @@ static int validate_slab_node(struct kme +@@ -4476,7 +4476,7 @@ static int validate_slab_node(struct kme s->name, count, atomic_long_read(&n->nr_slabs)); out: @@ -576,7 +576,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return count; } -@@ -4661,12 +4661,12 @@ static int list_locations(struct kmem_ca +@@ -4655,12 +4655,12 @@ static int list_locations(struct kmem_ca if (!atomic_long_read(&n->nr_slabs)) continue; diff --git a/debian/patches-rt/0003-printk-rb-define-ring-buffer-struct-and-initializer.patch b/debian/patches-rt/0003-printk-rb-define-ring-buffer-struct-and-initializer.patch index 644cd19b4c57..f8eb4df5b9af 100644 --- a/debian/patches-rt/0003-printk-rb-define-ring-buffer-struct-and-initializer.patch +++ b/debian/patches-rt/0003-printk-rb-define-ring-buffer-struct-and-initializer.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:41 +0100 Subject: [PATCH 03/25] printk-rb: define ring buffer struct and initializer -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz See Documentation/printk-ringbuffer.txt for details about the initializer arguments. diff --git a/debian/patches-rt/0003-workqueue-Use-swait-for-wq_manager_wait.patch b/debian/patches-rt/0003-workqueue-Use-swait-for-wq_manager_wait.patch index 9c705688e479..c58b9adfa895 100644 --- a/debian/patches-rt/0003-workqueue-Use-swait-for-wq_manager_wait.patch +++ b/debian/patches-rt/0003-workqueue-Use-swait-for-wq_manager_wait.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 11 Jun 2019 11:21:09 +0200 Subject: [PATCH 3/4] workqueue: Use swait for wq_manager_wait -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In order for the workqueue code use raw_spinlock_t typed locking there must not be a spinlock_t typed lock be acquired. A wait_queue_head uses diff --git a/debian/patches-rt/0004-bpf-tracing-Remove-redundant-preempt_disable-in-__bp.patch b/debian/patches-rt/0004-bpf-tracing-Remove-redundant-preempt_disable-in-__bp.patch index f3057a9a3bb1..36973fed5bc7 100644 --- a/debian/patches-rt/0004-bpf-tracing-Remove-redundant-preempt_disable-in-__bp.patch +++ b/debian/patches-rt/0004-bpf-tracing-Remove-redundant-preempt_disable-in-__bp.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:35 +0100 Subject: [PATCH 04/22] bpf/tracing: Remove redundant preempt_disable() in __bpf_trace_run() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz __bpf_trace_run() disables preemption around the BPF_PROG_RUN() invocation. diff --git a/debian/patches-rt/0004-locking-percpu-rwsem-Extract-__percpu_down_read_tryl.patch b/debian/patches-rt/0004-locking-percpu-rwsem-Extract-__percpu_down_read_tryl.patch index 3d7132d003b6..a873625f9873 100644 --- a/debian/patches-rt/0004-locking-percpu-rwsem-Extract-__percpu_down_read_tryl.patch +++ b/debian/patches-rt/0004-locking-percpu-rwsem-Extract-__percpu_down_read_tryl.patch @@ -2,7 +2,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 31 Jan 2020 16:07:07 +0100 Subject: [PATCH 4/7] locking/percpu-rwsem: Extract __percpu_down_read_trylock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In preparation for removing the embedded rwsem and building a custom lock, extract the read-trylock primitive. diff --git a/debian/patches-rt/0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch b/debian/patches-rt/0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch index 59fbd252d399..d58a0853eb7b 100644 --- a/debian/patches-rt/0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +++ b/debian/patches-rt/0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 21 Jun 2018 17:29:19 +0200 Subject: [PATCH 4/4] mm/SLUB: delay giving back empty slubs to IRQ enabled regions -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz __free_slab() is invoked with disabled interrupts which increases the irq-off time while __free_pages() is doing the work. @@ -169,15 +169,15 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return p; } -@@ -3169,6 +3224,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca +@@ -3166,6 +3221,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca void **p) { struct kmem_cache_cpu *c; + LIST_HEAD(to_free); int i; - if (IS_ENABLED(CONFIG_PREEMPT_RT) && IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP)) -@@ -3204,7 +3260,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca + /* memcg and kmem_cache debug support */ +@@ -3198,7 +3254,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca * of re-populating per CPU c->freelist */ p[i] = ___slab_alloc(s, flags, NUMA_NO_NODE, @@ -186,7 +186,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (unlikely(!p[i])) goto error; -@@ -3219,6 +3275,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca +@@ -3213,6 +3269,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca } c->tid = next_tid(c->tid); local_irq_enable(); @@ -194,7 +194,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* Clear memory outside IRQ disabled fastpath loop */ if (unlikely(slab_want_init_on_alloc(flags, s))) { -@@ -3233,6 +3290,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca +@@ -3227,6 +3284,7 @@ int kmem_cache_alloc_bulk(struct kmem_ca return i; error: local_irq_enable(); @@ -202,7 +202,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> slab_post_alloc_hook(s, flags, i, p); __kmem_cache_free_bulk(s, i, p); return 0; -@@ -4269,6 +4327,12 @@ void __init kmem_cache_init(void) +@@ -4263,6 +4321,12 @@ void __init kmem_cache_init(void) { static __initdata struct kmem_cache boot_kmem_cache, boot_kmem_cache_node; diff --git a/debian/patches-rt/0004-printk-rb-add-writer-interface.patch b/debian/patches-rt/0004-printk-rb-add-writer-interface.patch index dcc0e099023b..cd156d68e82a 100644 --- a/debian/patches-rt/0004-printk-rb-add-writer-interface.patch +++ b/debian/patches-rt/0004-printk-rb-add-writer-interface.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:42 +0100 Subject: [PATCH 04/25] printk-rb: add writer interface -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add the writer functions prb_reserve() and prb_commit(). These make use of processor-reentrant spin locks to limit the number of possible diff --git a/debian/patches-rt/0004-workqueue-Convert-the-locks-to-raw-type.patch b/debian/patches-rt/0004-workqueue-Convert-the-locks-to-raw-type.patch index a02d2a39dd16..05af31a30a0b 100644 --- a/debian/patches-rt/0004-workqueue-Convert-the-locks-to-raw-type.patch +++ b/debian/patches-rt/0004-workqueue-Convert-the-locks-to-raw-type.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 22 May 2019 12:43:56 +0200 Subject: [PATCH 4/4] workqueue: Convert the locks to raw type -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz After all the workqueue and the timer rework, we can finally make the worker_pool lock raw. diff --git a/debian/patches-rt/0005-bpf-trace-Remove-EXPORT-from-trace_call_bpf.patch b/debian/patches-rt/0005-bpf-trace-Remove-EXPORT-from-trace_call_bpf.patch index e2be4976a7b1..277b0ed95ff5 100644 --- a/debian/patches-rt/0005-bpf-trace-Remove-EXPORT-from-trace_call_bpf.patch +++ b/debian/patches-rt/0005-bpf-trace-Remove-EXPORT-from-trace_call_bpf.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:36 +0100 Subject: [PATCH 05/22] bpf/trace: Remove EXPORT from trace_call_bpf() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz All callers are built in. No point to export this. diff --git a/debian/patches-rt/0005-locking-percpu-rwsem-Remove-the-embedded-rwsem.patch b/debian/patches-rt/0005-locking-percpu-rwsem-Remove-the-embedded-rwsem.patch index 733c5e395f5b..d94b609f87f3 100644 --- a/debian/patches-rt/0005-locking-percpu-rwsem-Remove-the-embedded-rwsem.patch +++ b/debian/patches-rt/0005-locking-percpu-rwsem-Remove-the-embedded-rwsem.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Fri, 31 Jan 2020 16:07:08 +0100 Subject: [PATCH 5/7] locking/percpu-rwsem: Remove the embedded rwsem -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The filesystem freezer uses percpu-rwsem in a way that is effectively write_non_owner() and achieves this with a few horrible hacks that diff --git a/debian/patches-rt/0005-printk-rb-add-basic-non-blocking-reading-interface.patch b/debian/patches-rt/0005-printk-rb-add-basic-non-blocking-reading-interface.patch index ed38d95c108e..992b2fb33398 100644 --- a/debian/patches-rt/0005-printk-rb-add-basic-non-blocking-reading-interface.patch +++ b/debian/patches-rt/0005-printk-rb-add-basic-non-blocking-reading-interface.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:43 +0100 Subject: [PATCH 05/25] printk-rb: add basic non-blocking reading interface -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add reader iterator static declaration/initializer, dynamic initializer, and functions to iterate and retrieve ring buffer data. diff --git a/debian/patches-rt/0005.5-bpf-disable-preemption-for-bpf-progs-attached-to-upr.patch b/debian/patches-rt/0005.5-bpf-disable-preemption-for-bpf-progs-attached-to-upr.patch index 4babc6450f17..843b65891515 100644 --- a/debian/patches-rt/0005.5-bpf-disable-preemption-for-bpf-progs-attached-to-upr.patch +++ b/debian/patches-rt/0005.5-bpf-disable-preemption-for-bpf-progs-attached-to-upr.patch @@ -1,7 +1,7 @@ From: Alexei Starovoitov <ast@kernel.org> Date: Mon, 24 Feb 2020 11:27:15 -0800 Subject: [PATCH] bpf: disable preemption for bpf progs attached to uprobe -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz trace_call_bpf() no longer disables preemption on its own. All callers of this function has to do it explicitly. diff --git a/debian/patches-rt/0006-bpf-trace-Remove-redundant-preempt_disable-from-trac.patch b/debian/patches-rt/0006-bpf-trace-Remove-redundant-preempt_disable-from-trac.patch index 21d7fa442696..8148a98340b6 100644 --- a/debian/patches-rt/0006-bpf-trace-Remove-redundant-preempt_disable-from-trac.patch +++ b/debian/patches-rt/0006-bpf-trace-Remove-redundant-preempt_disable-from-trac.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:37 +0100 Subject: [PATCH 06/22] bpf/trace: Remove redundant preempt_disable from trace_call_bpf() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Similar to __bpf_trace_run this is redundant because __bpf_trace_run() is invoked from a trace point via __DO_TRACE() which already disables diff --git a/debian/patches-rt/0006-locking-percpu-rwsem-Fold-__percpu_up_read.patch b/debian/patches-rt/0006-locking-percpu-rwsem-Fold-__percpu_up_read.patch index 897181c2ec07..aff40c6e6e59 100644 --- a/debian/patches-rt/0006-locking-percpu-rwsem-Fold-__percpu_up_read.patch +++ b/debian/patches-rt/0006-locking-percpu-rwsem-Fold-__percpu_up_read.patch @@ -1,7 +1,7 @@ From: Davidlohr Bueso <dave@stgolabs.net> Date: Fri, 31 Jan 2020 16:07:09 +0100 Subject: [PATCH 6/7] locking/percpu-rwsem: Fold __percpu_up_read() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Now that __percpu_up_read() is only ever used from percpu_up_read() merge them, it's a small function. diff --git a/debian/patches-rt/0006-printk-rb-add-blocking-reader-support.patch b/debian/patches-rt/0006-printk-rb-add-blocking-reader-support.patch index b932e97812cb..154df9149a0c 100644 --- a/debian/patches-rt/0006-printk-rb-add-blocking-reader-support.patch +++ b/debian/patches-rt/0006-printk-rb-add-blocking-reader-support.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:44 +0100 Subject: [PATCH 06/25] printk-rb: add blocking reader support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add a blocking read function for readers. An irq_work function is used to signal the wait queue so that write notification can diff --git a/debian/patches-rt/0007-locking-percpu-rwsem-Add-might_sleep-for-writer-lock.patch b/debian/patches-rt/0007-locking-percpu-rwsem-Add-might_sleep-for-writer-lock.patch index ae219050762a..4808756c82b1 100644 --- a/debian/patches-rt/0007-locking-percpu-rwsem-Add-might_sleep-for-writer-lock.patch +++ b/debian/patches-rt/0007-locking-percpu-rwsem-Add-might_sleep-for-writer-lock.patch @@ -2,7 +2,7 @@ From: Davidlohr Bueso <dave@stgolabs.net> Date: Fri, 31 Jan 2020 16:07:10 +0100 Subject: [PATCH 7/7] locking/percpu-rwsem: Add might_sleep() for writer locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz We are missing this annotation in percpu_down_write(). Correct this. diff --git a/debian/patches-rt/0007-perf-bpf-Remove-preempt-disable-around-BPF-invocatio.patch b/debian/patches-rt/0007-perf-bpf-Remove-preempt-disable-around-BPF-invocatio.patch index 98a6d3168252..bbbf2691b120 100644 --- a/debian/patches-rt/0007-perf-bpf-Remove-preempt-disable-around-BPF-invocatio.patch +++ b/debian/patches-rt/0007-perf-bpf-Remove-preempt-disable-around-BPF-invocatio.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:38 +0100 Subject: [PATCH 07/22] perf/bpf: Remove preempt disable around BPF invocation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The BPF invocation from the perf event overflow handler does not require to disable preemption because this is called from NMI or at least hard @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/events/core.c +++ b/kernel/events/core.c -@@ -9206,7 +9206,6 @@ static void bpf_overflow_handler(struct +@@ -9202,7 +9202,6 @@ static void bpf_overflow_handler(struct int ret = 0; ctx.regs = perf_arch_bpf_user_pt_regs(regs); @@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (unlikely(__this_cpu_inc_return(bpf_prog_active) != 1)) goto out; rcu_read_lock(); -@@ -9214,7 +9213,6 @@ static void bpf_overflow_handler(struct +@@ -9210,7 +9209,6 @@ static void bpf_overflow_handler(struct rcu_read_unlock(); out: __this_cpu_dec(bpf_prog_active); diff --git a/debian/patches-rt/0007-printk-rb-add-functionality-required-by-printk.patch b/debian/patches-rt/0007-printk-rb-add-functionality-required-by-printk.patch index 7e530c565d51..454935eeccbe 100644 --- a/debian/patches-rt/0007-printk-rb-add-functionality-required-by-printk.patch +++ b/debian/patches-rt/0007-printk-rb-add-functionality-required-by-printk.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:45 +0100 Subject: [PATCH 07/25] printk-rb: add functionality required by printk -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The printk subsystem needs to be able to query the size of the ring buffer, seek to specific entries within the ring buffer, and track diff --git a/debian/patches-rt/0008-bpf-Remove-recursion-prevention-from-rcu-free-callba.patch b/debian/patches-rt/0008-bpf-Remove-recursion-prevention-from-rcu-free-callba.patch index e13b402f882f..71ef61fd1cd2 100644 --- a/debian/patches-rt/0008-bpf-Remove-recursion-prevention-from-rcu-free-callba.patch +++ b/debian/patches-rt/0008-bpf-Remove-recursion-prevention-from-rcu-free-callba.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:39 +0100 Subject: [PATCH 08/22] bpf: Remove recursion prevention from rcu free callback -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz If an element is freed via RCU then recursion into BPF instrumentation functions is not a concern. The element is already detached from the map diff --git a/debian/patches-rt/0008-printk-add-ring-buffer-and-kthread.patch b/debian/patches-rt/0008-printk-add-ring-buffer-and-kthread.patch index 7f5d827e5c4f..1206dcd34d73 100644 --- a/debian/patches-rt/0008-printk-add-ring-buffer-and-kthread.patch +++ b/debian/patches-rt/0008-printk-add-ring-buffer-and-kthread.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:46 +0100 Subject: [PATCH 08/25] printk: add ring buffer and kthread -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The printk ring buffer provides an NMI-safe interface for writing messages to a ring buffer. Using such a buffer for alleviates printk @@ -48,7 +48,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> DECLARE_WAIT_QUEUE_HEAD(log_wait); /* the next printk record to read by syslog(READ) or /proc/kmsg */ static u64 syslog_seq; -@@ -780,6 +787,10 @@ static ssize_t msg_print_ext_body(char * +@@ -792,6 +799,10 @@ static ssize_t msg_print_ext_body(char * return p - buf; } @@ -59,7 +59,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* /dev/kmsg - userspace message inject/listen interface */ struct devkmsg_user { u64 seq; -@@ -1620,6 +1631,34 @@ SYSCALL_DEFINE3(syslog, int, type, char +@@ -1648,6 +1659,34 @@ SYSCALL_DEFINE3(syslog, int, type, char return do_syslog(type, buf, len, SYSLOG_FROM_READER); } @@ -94,7 +94,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Special console_lock variants that help to reduce the risk of soft-lockups. * They allow to pass console_lock to another printk() call using a busy wait. -@@ -2974,6 +3013,72 @@ void wake_up_klogd(void) +@@ -3005,6 +3044,72 @@ void wake_up_klogd(void) preempt_enable(); } @@ -166,4 +166,4 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> + void defer_console_output(void) { - preempt_disable(); + if (!printk_percpu_data_ready()) diff --git a/debian/patches-rt/0009-bpf-Dont-iterate-over-possible-CPUs-with-interrupts-.patch b/debian/patches-rt/0009-bpf-Dont-iterate-over-possible-CPUs-with-interrupts-.patch index 919dc0605abf..bc5975dc4ff6 100644 --- a/debian/patches-rt/0009-bpf-Dont-iterate-over-possible-CPUs-with-interrupts-.patch +++ b/debian/patches-rt/0009-bpf-Dont-iterate-over-possible-CPUs-with-interrupts-.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:40 +0100 Subject: [PATCH 09/22] bpf: Dont iterate over possible CPUs with interrupts disabled -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz pcpu_freelist_populate() is disabling interrupts and then iterates over the possible CPUs. The reason why this disables interrupts is to silence diff --git a/debian/patches-rt/0009-printk-remove-exclusive-console-hack.patch b/debian/patches-rt/0009-printk-remove-exclusive-console-hack.patch index 7a88d116bf40..fc75c2bdc583 100644 --- a/debian/patches-rt/0009-printk-remove-exclusive-console-hack.patch +++ b/debian/patches-rt/0009-printk-remove-exclusive-console-hack.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:47 +0100 Subject: [PATCH 09/25] printk: remove exclusive console hack -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In order to support printing the printk log history when new consoles are registered, a global exclusive_console variable is @@ -41,7 +41,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* the next printk record to read after the last 'clear' command */ static u64 clear_seq; -@@ -1815,8 +1809,6 @@ static void call_console_drivers(const c +@@ -1843,8 +1837,6 @@ static void call_console_drivers(const c return; for_each_console(con) { @@ -50,7 +50,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (!(con->flags & CON_ENABLED)) continue; if (!con->write) -@@ -2109,7 +2101,6 @@ static u64 syslog_seq; +@@ -2137,7 +2129,6 @@ static u64 syslog_seq; static u32 syslog_idx; static u64 console_seq; static u32 console_idx; @@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> static u64 log_first_seq; static u32 log_first_idx; static u64 log_next_seq; -@@ -2478,12 +2469,6 @@ void console_unlock(void) +@@ -2506,12 +2497,6 @@ void console_unlock(void) goto skip; } @@ -71,7 +71,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> len += msg_print_text(msg, console_msg_format & MSG_FORMAT_SYSLOG, printk_time, text + len, sizeof(text) - len); -@@ -2809,17 +2794,6 @@ void register_console(struct console *ne +@@ -2837,17 +2822,6 @@ void register_console(struct console *ne * for us. */ logbuf_lock_irqsave(flags); @@ -89,7 +89,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> console_seq = syslog_seq; console_idx = syslog_idx; logbuf_unlock_irqrestore(flags); -@@ -2833,6 +2807,10 @@ void register_console(struct console *ne +@@ -2861,6 +2835,10 @@ void register_console(struct console *ne * boot consoles, real consoles, etc - this is to ensure that end * users know there might be something in the kernel's log buffer that * went to the bootconsole (that they do not see on the real console) diff --git a/debian/patches-rt/0010-bpf-Provide-bpf_prog_run_pin_on_cpu-helper.patch b/debian/patches-rt/0010-bpf-Provide-bpf_prog_run_pin_on_cpu-helper.patch index a01cbb454c50..cb53641d9fd0 100644 --- a/debian/patches-rt/0010-bpf-Provide-bpf_prog_run_pin_on_cpu-helper.patch +++ b/debian/patches-rt/0010-bpf-Provide-bpf_prog_run_pin_on_cpu-helper.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 19:41:53 +0100 Subject: [PATCH V4 10/22] bpf: Provide bpf_prog_run_pin_on_cpu() helper -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz BPF programs require to run on one CPU to completion as they use per CPU storage, but according to Alexei they don't need reentrancy protection as diff --git a/debian/patches-rt/0010-printk-redirect-emit-store-to-new-ringbuffer.patch b/debian/patches-rt/0010-printk-redirect-emit-store-to-new-ringbuffer.patch index 2cdf25490d6b..59813e2d4629 100644 --- a/debian/patches-rt/0010-printk-redirect-emit-store-to-new-ringbuffer.patch +++ b/debian/patches-rt/0010-printk-redirect-emit-store-to-new-ringbuffer.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:48 +0100 Subject: [PATCH 10/25] printk: redirect emit/store to new ringbuffer -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz vprintk_emit and vprintk_store are the main functions that all printk variants eventually go through. Change these to store the message in @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -517,90 +517,6 @@ static u32 log_next(u32 idx) +@@ -529,90 +529,6 @@ static u32 log_next(u32 idx) return idx + msg->len; } @@ -117,7 +117,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* insert record into the buffer, discard old ones, update heads */ static int log_store(u32 caller_id, int facility, int level, enum log_flags flags, u64 ts_nsec, -@@ -608,57 +524,39 @@ static int log_store(u32 caller_id, int +@@ -620,57 +536,39 @@ static int log_store(u32 caller_id, int const char *text, u16 text_len) { struct printk_log *msg; @@ -188,7 +188,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return msg->text_len; } -@@ -1729,70 +1627,6 @@ static int console_lock_spinning_disable +@@ -1757,70 +1655,6 @@ static int console_lock_spinning_disable return 1; } @@ -259,7 +259,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Call the console drivers, asking them to write out * log_buf[start] to log_buf[end - 1]. -@@ -1813,7 +1647,7 @@ static void call_console_drivers(const c +@@ -1841,7 +1675,7 @@ static void call_console_drivers(const c continue; if (!con->write) continue; @@ -268,7 +268,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> !(con->flags & CON_ANYTIME)) continue; if (con->flags & CON_EXTENDED) -@@ -1843,6 +1677,8 @@ static inline u32 printk_caller_id(void) +@@ -1871,6 +1705,8 @@ static inline u32 printk_caller_id(void) 0x80000000 + raw_smp_processor_id(); } @@ -277,7 +277,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Continuation lines are buffered, and not committed to the record buffer * until the line is complete, or a race forces it. The line fragments -@@ -1898,56 +1734,45 @@ static bool cont_add(u32 caller_id, int +@@ -1926,56 +1762,45 @@ static bool cont_add(u32 caller_id, int return true; } @@ -365,7 +365,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (text_len && text[text_len-1] == '\n') { text_len--; lflags |= LOG_NEWLINE; -@@ -1978,58 +1803,10 @@ int vprintk_store(int facility, int leve +@@ -2006,58 +1831,10 @@ int vprintk_store(int facility, int leve if (dict) lflags |= LOG_NEWLINE; @@ -427,7 +427,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return printed_len; } EXPORT_SYMBOL(vprintk_emit); -@@ -2494,7 +2271,7 @@ void console_unlock(void) +@@ -2522,7 +2299,7 @@ void console_unlock(void) console_lock_spinning_enable(); stop_critical_timings(); /* don't trace print latency */ diff --git a/debian/patches-rt/0011-bpf-Replace-cant_sleep-with-cant_migrate.patch b/debian/patches-rt/0011-bpf-Replace-cant_sleep-with-cant_migrate.patch index ac5570d6d32c..7bc7a9a79428 100644 --- a/debian/patches-rt/0011-bpf-Replace-cant_sleep-with-cant_migrate.patch +++ b/debian/patches-rt/0011-bpf-Replace-cant_sleep-with-cant_migrate.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:42 +0100 Subject: [PATCH 11/22] bpf: Replace cant_sleep() with cant_migrate() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As already discussed in the previous change which introduced BPF_RUN_PROG_PIN_ON_CPU() BPF only requires to disable migration to diff --git a/debian/patches-rt/0011-printk_safe-remove-printk-safe-code.patch b/debian/patches-rt/0011-printk_safe-remove-printk-safe-code.patch index 65bdeb9c89b8..76ec49ecec19 100644 --- a/debian/patches-rt/0011-printk_safe-remove-printk-safe-code.patch +++ b/debian/patches-rt/0011-printk_safe-remove-printk-safe-code.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:49 +0100 Subject: [PATCH 11/25] printk_safe: remove printk safe code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz vprintk variants are now NMI-safe so there is no longer a need for the "safe" calls. @@ -14,17 +14,16 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> arch/powerpc/kernel/traps.c | 1 arch/powerpc/kernel/watchdog.c | 5 include/linux/hardirq.h | 2 - include/linux/printk.h | 27 -- - init/main.c | 1 + include/linux/printk.h | 21 -- kernel/kexec_core.c | 1 kernel/panic.c | 3 kernel/printk/Makefile | 1 - kernel/printk/internal.h | 30 -- - kernel/printk/printk.c | 13 - - kernel/printk/printk_safe.c | 415 ----------------------------------------- + kernel/printk/internal.h | 35 --- + kernel/printk/printk.c | 47 ---- + kernel/printk/printk_safe.c | 406 ----------------------------------------- kernel/trace/trace.c | 2 lib/nmi_backtrace.c | 6 - 13 files changed, 7 insertions(+), 500 deletions(-) + 12 files changed, 7 insertions(+), 523 deletions(-) delete mode 100644 kernel/printk/printk_safe.c --- a/arch/powerpc/kernel/traps.c @@ -90,25 +89,19 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #ifdef CONFIG_PRINTK asmlinkage __printf(5, 0) int vprintk_emit(int facility, int level, -@@ -202,9 +190,6 @@ void __init setup_log_buf(int early); +@@ -202,8 +190,6 @@ void __init setup_log_buf(int early); void dump_stack_print_info(const char *log_lvl); void show_regs_print_info(const char *log_lvl); extern asmlinkage void dump_stack(void) __cold; --extern void printk_safe_init(void); -extern void printk_safe_flush(void); -extern void printk_safe_flush_on_panic(void); #else static inline __printf(1, 0) int vprintk(const char *s, va_list args) -@@ -268,18 +253,6 @@ static inline void show_regs_print_info( - static inline void dump_stack(void) +@@ -268,13 +254,6 @@ static inline void dump_stack(void) { } -- --static inline void printk_safe_init(void) --{ --} -- + -static inline void printk_safe_flush(void) -{ -} @@ -119,16 +112,6 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #endif extern int kptr_restrict; ---- a/init/main.c -+++ b/init/main.c -@@ -907,7 +907,6 @@ asmlinkage __visible void __init start_k - boot_init_stack_canary(); - - time_init(); -- printk_safe_init(); - perf_event_init(); - profile_init(); - call_function_init(); --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -978,7 +978,6 @@ void crash_kexec(struct pt_regs *regs) @@ -167,13 +150,16 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> obj-$(CONFIG_A11Y_BRAILLE_CONSOLE) += braille.o --- a/kernel/printk/internal.h +++ b/kernel/printk/internal.h -@@ -20,32 +20,6 @@ int vprintk_store(int facility, int leve +@@ -20,35 +20,6 @@ int vprintk_store(int facility, int leve __printf(1, 0) int vprintk_default(const char *fmt, va_list args); __printf(1, 0) int vprintk_deferred(const char *fmt, va_list args); __printf(1, 0) int vprintk_func(const char *fmt, va_list args); -void __printk_safe_enter(void); -void __printk_safe_exit(void); - +-void printk_safe_init(void); +-bool printk_percpu_data_ready(void); +- -#define printk_safe_enter_irqsave(flags) \ - do { \ - local_irq_save(flags); \ @@ -200,7 +186,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> void defer_console_output(void); -@@ -58,10 +32,10 @@ void defer_console_output(void); +@@ -61,12 +32,10 @@ void defer_console_output(void); * semaphore and some of console functions (console_unlock()/etc.), so * printk-safe must preserve the existing local IRQ guarantees. */ @@ -212,10 +198,60 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #define printk_safe_enter_irq() local_irq_disable() #define printk_safe_exit_irq() local_irq_enable() - +-static inline void printk_safe_init(void) { } +-static inline bool printk_percpu_data_ready(void) { return false; } -#endif /* CONFIG_PRINTK */ --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -1736,13 +1736,6 @@ static bool cont_add(u32 caller_id, int +@@ -461,18 +461,6 @@ static char __log_buf[__LOG_BUF_LEN] __a + static char *log_buf = __log_buf; + static u32 log_buf_len = __LOG_BUF_LEN; + +-/* +- * We cannot access per-CPU data (e.g. per-CPU flush irq_work) before +- * per_cpu_areas are initialised. This variable is set to true when +- * it's safe to access per-CPU data. +- */ +-static bool __printk_percpu_data_ready __read_mostly; +- +-bool printk_percpu_data_ready(void) +-{ +- return __printk_percpu_data_ready; +-} +- + /* Return log buffer address */ + char *log_buf_addr_get(void) + { +@@ -1061,28 +1049,12 @@ static void __init log_buf_add_cpu(void) + static inline void log_buf_add_cpu(void) {} + #endif /* CONFIG_SMP */ + +-static void __init set_percpu_data_ready(void) +-{ +- printk_safe_init(); +- /* Make sure we set this flag only after printk_safe() init is done */ +- barrier(); +- __printk_percpu_data_ready = true; +-} +- + void __init setup_log_buf(int early) + { + unsigned long flags; + char *new_log_buf; + unsigned int free; + +- /* +- * Some archs call setup_log_buf() multiple times - first is very +- * early, e.g. from setup_arch(), and second - when percpu_areas +- * are initialised. +- */ +- if (!early) +- set_percpu_data_ready(); +- + if (log_buf != __log_buf) + return; + +@@ -1764,13 +1736,6 @@ static bool cont_add(u32 caller_id, int } #endif /* 0 */ @@ -229,7 +265,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* ring buffer used as memory allocator for temporary sprint buffers */ DECLARE_STATIC_PRINTKRB(sprint_rb, ilog2(PRINTK_RECORD_MAX + sizeof(struct prb_entry) + -@@ -1811,6 +1804,11 @@ asmlinkage int vprintk_emit(int facility +@@ -1839,6 +1804,11 @@ asmlinkage int vprintk_emit(int facility } EXPORT_SYMBOL(vprintk_emit); @@ -241,7 +277,27 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> asmlinkage int vprintk(const char *fmt, va_list args) { return vprintk_func(fmt, args); -@@ -3212,5 +3210,4 @@ void kmsg_dump_rewind(struct kmsg_dumper +@@ -2788,9 +2758,6 @@ static DEFINE_PER_CPU(struct irq_work, w + + void wake_up_klogd(void) + { +- if (!printk_percpu_data_ready()) +- return; +- + preempt_disable(); + if (waitqueue_active(&log_wait)) { + this_cpu_or(printk_pending, PRINTK_PENDING_WAKEUP); +@@ -2868,9 +2835,6 @@ late_initcall(init_printk_kthread); + + void defer_console_output(void) + { +- if (!printk_percpu_data_ready()) +- return; +- + preempt_disable(); + __this_cpu_or(printk_pending, PRINTK_PENDING_OUTPUT); + irq_work_queue(this_cpu_ptr(&wake_up_klogd_work)); +@@ -3246,5 +3210,4 @@ void kmsg_dump_rewind(struct kmsg_dumper logbuf_unlock_irqrestore(flags); } EXPORT_SYMBOL_GPL(kmsg_dump_rewind); @@ -249,7 +305,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #endif --- a/kernel/printk/printk_safe.c +++ /dev/null -@@ -1,415 +0,0 @@ +@@ -1,406 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/* - * printk_safe.c - Safe printk for printk-deadlock-prone contexts @@ -279,7 +335,6 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> - * There are situations when we want to make sure that all buffers - * were handled or when IRQs are blocked. - */ --static int printk_safe_irq_ready __read_mostly; - -#define SAFE_LOG_BUF_LEN ((1 << CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT) - \ - sizeof(atomic_t) - \ @@ -303,7 +358,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -/* Get flushed in a more safe context. */ -static void queue_flush_work(struct printk_safe_seq_buf *s) -{ -- if (printk_safe_irq_ready) +- if (printk_percpu_data_ready()) - irq_work_queue(&s->work); -} - @@ -654,14 +709,6 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> -#endif - } - -- /* -- * In the highly unlikely event that a NMI were to trigger at -- * this moment. Make sure IRQ work is set up before this -- * variable is set. -- */ -- barrier(); -- printk_safe_irq_ready = 1; -- - /* Flush pending messages that did not have scheduled IRQ works. */ - printk_safe_flush(); -} diff --git a/debian/patches-rt/0012-bpf-Use-bpf_prog_run_pin_on_cpu-at-simple-call-sites.patch b/debian/patches-rt/0012-bpf-Use-bpf_prog_run_pin_on_cpu-at-simple-call-sites.patch index 4aa518872ebc..c3abf04c334a 100644 --- a/debian/patches-rt/0012-bpf-Use-bpf_prog_run_pin_on_cpu-at-simple-call-sites.patch +++ b/debian/patches-rt/0012-bpf-Use-bpf_prog_run_pin_on_cpu-at-simple-call-sites.patch @@ -2,7 +2,7 @@ From: David Miller <davem@davemloft.net> Date: Mon, 24 Feb 2020 15:01:43 +0100 Subject: [PATCH 12/22] bpf: Use bpf_prog_run_pin_on_cpu() at simple call sites. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz All of these cases are strictly of the form: diff --git a/debian/patches-rt/0012-printk-minimize-console-locking-implementation.patch b/debian/patches-rt/0012-printk-minimize-console-locking-implementation.patch index c933ae854130..6a11dfae9eaf 100644 --- a/debian/patches-rt/0012-printk-minimize-console-locking-implementation.patch +++ b/debian/patches-rt/0012-printk-minimize-console-locking-implementation.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:50 +0100 Subject: [PATCH 12/25] printk: minimize console locking implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Since printing of the printk buffer is now handled by the printk kthread, minimize the console locking functions to just handle diff --git a/debian/patches-rt/0013-bpf-tests-Use-migrate-disable-instead-of-preempt-dis.patch b/debian/patches-rt/0013-bpf-tests-Use-migrate-disable-instead-of-preempt-dis.patch index 6eb0d12242ab..5c78fae8da0e 100644 --- a/debian/patches-rt/0013-bpf-tests-Use-migrate-disable-instead-of-preempt-dis.patch +++ b/debian/patches-rt/0013-bpf-tests-Use-migrate-disable-instead-of-preempt-dis.patch @@ -2,7 +2,7 @@ From: David Miller <davem@davemloft.net> Date: Mon, 24 Feb 2020 15:01:44 +0100 Subject: [PATCH 13/22] bpf/tests: Use migrate disable instead of preempt disable -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Replace the preemption disable/enable with migrate_disable/enable() to reflect the actual requirement and to allow PREEMPT_RT to substitute it diff --git a/debian/patches-rt/0013-printk-track-seq-per-console.patch b/debian/patches-rt/0013-printk-track-seq-per-console.patch index bcd4928c876b..96f5fb4cf749 100644 --- a/debian/patches-rt/0013-printk-track-seq-per-console.patch +++ b/debian/patches-rt/0013-printk-track-seq-per-console.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:51 +0100 Subject: [PATCH 13/25] printk: track seq per console -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Allow each console to track which seq record was last printed. This simplifies identifying dropped records. diff --git a/debian/patches-rt/0014-bpf-Use-migrate_disable-enabe-in-trampoline-code.patch b/debian/patches-rt/0014-bpf-Use-migrate_disable-enabe-in-trampoline-code.patch index 70e4a0791d25..b340bf027dae 100644 --- a/debian/patches-rt/0014-bpf-Use-migrate_disable-enabe-in-trampoline-code.patch +++ b/debian/patches-rt/0014-bpf-Use-migrate_disable-enabe-in-trampoline-code.patch @@ -1,7 +1,7 @@ From: David Miller <davem@davemloft.net> Date: Mon, 24 Feb 2020 15:01:45 +0100 Subject: [PATCH 14/22] bpf: Use migrate_disable/enabe() in trampoline code. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Instead of preemption disable/enable to reflect the purpose. This allows PREEMPT_RT to substitute it with an actual migration disable diff --git a/debian/patches-rt/0014-printk-do-boot_delay_msec-inside-printk_delay.patch b/debian/patches-rt/0014-printk-do-boot_delay_msec-inside-printk_delay.patch index 642ede0652fa..155cfc64a004 100644 --- a/debian/patches-rt/0014-printk-do-boot_delay_msec-inside-printk_delay.patch +++ b/debian/patches-rt/0014-printk-do-boot_delay_msec-inside-printk_delay.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:52 +0100 Subject: [PATCH 14/25] printk: do boot_delay_msec inside printk_delay -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Both functions needed to be called one after the other, so just integrate boot_delay_msec into printk_delay for simplification. diff --git a/debian/patches-rt/0015-bpf-Use-migrate_disable-enable-in-array-macros-and-c.patch b/debian/patches-rt/0015-bpf-Use-migrate_disable-enable-in-array-macros-and-c.patch index 748cb8931dba..4ee2bfbbde0b 100644 --- a/debian/patches-rt/0015-bpf-Use-migrate_disable-enable-in-array-macros-and-c.patch +++ b/debian/patches-rt/0015-bpf-Use-migrate_disable-enable-in-array-macros-and-c.patch @@ -2,7 +2,7 @@ From: David Miller <davem@davemloft.net> Date: Mon, 24 Feb 2020 15:01:46 +0100 Subject: [PATCH 15/22] bpf: Use migrate_disable/enable in array macros and cgroup/lirc code. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Replace the preemption disable/enable with migrate_disable/enable() to reflect the actual requirement and to allow PREEMPT_RT to substitute it diff --git a/debian/patches-rt/0015-printk-print-history-for-new-consoles.patch b/debian/patches-rt/0015-printk-print-history-for-new-consoles.patch index 434bcb731576..282d44cbb1ef 100644 --- a/debian/patches-rt/0015-printk-print-history-for-new-consoles.patch +++ b/debian/patches-rt/0015-printk-print-history-for-new-consoles.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:53 +0100 Subject: [PATCH 15/25] printk: print history for new consoles -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz When new consoles register, they currently print how many messages they have missed. However, many (or all) of those messages may still diff --git a/debian/patches-rt/0016-bpf-Provide-recursion-prevention-helpers.patch b/debian/patches-rt/0016-bpf-Provide-recursion-prevention-helpers.patch index 99068f4ffccc..a254fea2797a 100644 --- a/debian/patches-rt/0016-bpf-Provide-recursion-prevention-helpers.patch +++ b/debian/patches-rt/0016-bpf-Provide-recursion-prevention-helpers.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:47 +0100 Subject: [PATCH 16/22] bpf: Provide recursion prevention helpers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The places which need to prevent the execution of trace type BPF programs to prevent deadlocks on the hash bucket lock do this open coded. diff --git a/debian/patches-rt/0016-printk-implement-CON_PRINTBUFFER.patch b/debian/patches-rt/0016-printk-implement-CON_PRINTBUFFER.patch index 8fa12eb80bad..938c9ece4e1c 100644 --- a/debian/patches-rt/0016-printk-implement-CON_PRINTBUFFER.patch +++ b/debian/patches-rt/0016-printk-implement-CON_PRINTBUFFER.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:54 +0100 Subject: [PATCH 16/25] printk: implement CON_PRINTBUFFER -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz If the CON_PRINTBUFFER flag is not set, do not replay the history for that console. diff --git a/debian/patches-rt/0017-bpf-Use-recursion-prevention-helpers-in-hashtab-code.patch b/debian/patches-rt/0017-bpf-Use-recursion-prevention-helpers-in-hashtab-code.patch index 309171a7e03c..0e96501ab1ee 100644 --- a/debian/patches-rt/0017-bpf-Use-recursion-prevention-helpers-in-hashtab-code.patch +++ b/debian/patches-rt/0017-bpf-Use-recursion-prevention-helpers-in-hashtab-code.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:48 +0100 Subject: [PATCH 17/22] bpf: Use recursion prevention helpers in hashtab code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The required protection is that the caller cannot be migrated to a different CPU as these places take either a hash bucket lock or might diff --git a/debian/patches-rt/0017-printk-add-processor-number-to-output.patch b/debian/patches-rt/0017-printk-add-processor-number-to-output.patch index 899e9f7cb579..0faa537690c9 100644 --- a/debian/patches-rt/0017-printk-add-processor-number-to-output.patch +++ b/debian/patches-rt/0017-printk-add-processor-number-to-output.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:55 +0100 Subject: [PATCH 17/25] printk: add processor number to output -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz It can be difficult to sort printk out if multiple processors are printing simultaneously. Add the processor number to the printk diff --git a/debian/patches-rt/0018-bpf-Replace-open-coded-recursion-prevention-in-sys_b.patch b/debian/patches-rt/0018-bpf-Replace-open-coded-recursion-prevention-in-sys_b.patch index a5939b7fc23c..3fa3c37fa643 100644 --- a/debian/patches-rt/0018-bpf-Replace-open-coded-recursion-prevention-in-sys_b.patch +++ b/debian/patches-rt/0018-bpf-Replace-open-coded-recursion-prevention-in-sys_b.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:49 +0100 Subject: [PATCH 18/22] bpf: Replace open coded recursion prevention in sys_bpf() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The required protection is that the caller cannot be migrated to a different CPU as these functions end up in places which take either a hash @@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> maybe_wait_bpf_programs(map); return err; -@@ -1138,13 +1131,11 @@ static int map_delete_elem(union bpf_att +@@ -1136,13 +1129,11 @@ static int map_delete_elem(union bpf_att goto out; } @@ -83,7 +83,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> maybe_wait_bpf_programs(map); out: kfree(key); -@@ -1256,13 +1247,11 @@ int generic_map_delete_batch(struct bpf_ +@@ -1254,13 +1245,11 @@ int generic_map_delete_batch(struct bpf_ break; } diff --git a/debian/patches-rt/0018-console-add-write_atomic-interface.patch b/debian/patches-rt/0018-console-add-write_atomic-interface.patch index c65c87b58622..6f8fc136b394 100644 --- a/debian/patches-rt/0018-console-add-write_atomic-interface.patch +++ b/debian/patches-rt/0018-console-add-write_atomic-interface.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:56 +0100 Subject: [PATCH 18/25] console: add write_atomic interface -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add a write_atomic callback to the console. This is an optional function for console drivers. The function must be atomic (including diff --git a/debian/patches-rt/0019-bpf-Factor-out-hashtab-bucket-lock-operations.patch b/debian/patches-rt/0019-bpf-Factor-out-hashtab-bucket-lock-operations.patch index ee5076c225a4..8785c4b2749c 100644 --- a/debian/patches-rt/0019-bpf-Factor-out-hashtab-bucket-lock-operations.patch +++ b/debian/patches-rt/0019-bpf-Factor-out-hashtab-bucket-lock-operations.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:50 +0100 Subject: [PATCH 19/22] bpf: Factor out hashtab bucket lock operations -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As a preparation for making the BPF locking RT friendly, factor out the hash bucket lock operations into inline functions. This allows to do the diff --git a/debian/patches-rt/0019-printk-introduce-emergency-messages.patch b/debian/patches-rt/0019-printk-introduce-emergency-messages.patch index 2f2d3fae5e0b..4476c73fefc0 100644 --- a/debian/patches-rt/0019-printk-introduce-emergency-messages.patch +++ b/debian/patches-rt/0019-printk-introduce-emergency-messages.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:57 +0100 Subject: [PATCH 19/25] printk: introduce emergency messages -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Console messages are generally either critical or non-critical. Critical messages are messages such as crashes or sysrq output. diff --git a/debian/patches-rt/0020-bpf-Prepare-hashtab-locking-for-PREEMPT_RT.patch b/debian/patches-rt/0020-bpf-Prepare-hashtab-locking-for-PREEMPT_RT.patch index 9d1af4c883f3..d39a99c946f2 100644 --- a/debian/patches-rt/0020-bpf-Prepare-hashtab-locking-for-PREEMPT_RT.patch +++ b/debian/patches-rt/0020-bpf-Prepare-hashtab-locking-for-PREEMPT_RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:51 +0100 Subject: [PATCH 20/22] bpf: Prepare hashtab locking for PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz PREEMPT_RT forbids certain operations like memory allocations (even with GFP_ATOMIC) from atomic contexts. This is required because even with diff --git a/debian/patches-rt/0020-serial-8250-implement-write_atomic.patch b/debian/patches-rt/0020-serial-8250-implement-write_atomic.patch index ddb12d000ec1..4ebaf25f44d4 100644 --- a/debian/patches-rt/0020-serial-8250-implement-write_atomic.patch +++ b/debian/patches-rt/0020-serial-8250-implement-write_atomic.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:58 +0100 Subject: [PATCH 20/25] serial: 8250: implement write_atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Implement a non-sleeping NMI-safe write_atomic console function in order to support emergency printk messages. diff --git a/debian/patches-rt/0021-bpf-lpm-Make-locking-RT-friendly.patch b/debian/patches-rt/0021-bpf-lpm-Make-locking-RT-friendly.patch index 449f96510772..194126707686 100644 --- a/debian/patches-rt/0021-bpf-lpm-Make-locking-RT-friendly.patch +++ b/debian/patches-rt/0021-bpf-lpm-Make-locking-RT-friendly.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 24 Feb 2020 15:01:52 +0100 Subject: [PATCH 21/22] bpf, lpm: Make locking RT friendly -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The LPM trie map cannot be used in contexts like perf, kprobes and tracing as this map type dynamically allocates memory. diff --git a/debian/patches-rt/0021-printk-implement-KERN_CONT.patch b/debian/patches-rt/0021-printk-implement-KERN_CONT.patch index f2d5d5368c5a..bce309b85fab 100644 --- a/debian/patches-rt/0021-printk-implement-KERN_CONT.patch +++ b/debian/patches-rt/0021-printk-implement-KERN_CONT.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:29:59 +0100 Subject: [PATCH 21/25] printk: implement KERN_CONT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Implement KERN_CONT based on the printing CPU rather than on the printing task. As long as the KERN_CONT messages are coming from the diff --git a/debian/patches-rt/0022-bpf-stackmap-Dont-trylock-mmap_sem-with-PREEMPT_RT-a.patch b/debian/patches-rt/0022-bpf-stackmap-Dont-trylock-mmap_sem-with-PREEMPT_RT-a.patch index 1157198d91fb..85daf1e4e1b5 100644 --- a/debian/patches-rt/0022-bpf-stackmap-Dont-trylock-mmap_sem-with-PREEMPT_RT-a.patch +++ b/debian/patches-rt/0022-bpf-stackmap-Dont-trylock-mmap_sem-with-PREEMPT_RT-a.patch @@ -2,7 +2,7 @@ From: David Miller <davem@davemloft.net> Date: Mon, 24 Feb 2020 15:01:53 +0100 Subject: [PATCH 22/22] bpf/stackmap: Dont trylock mmap_sem with PREEMPT_RT and interrupts disabled -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In a RT kernel down_read_trylock() cannot be used from NMI context and up_read_non_owner() is another problematic issue. diff --git a/debian/patches-rt/0022-printk-implement-dev-kmsg.patch b/debian/patches-rt/0022-printk-implement-dev-kmsg.patch index 7dfa8c35a214..2b795690fb1d 100644 --- a/debian/patches-rt/0022-printk-implement-dev-kmsg.patch +++ b/debian/patches-rt/0022-printk-implement-dev-kmsg.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:30:00 +0100 Subject: [PATCH 22/25] printk: implement /dev/kmsg -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Since printk messages are now logged to a new ring buffer, update the /dev/kmsg functions to pull the messages from there. diff --git a/debian/patches-rt/0023-printk-implement-syslog.patch b/debian/patches-rt/0023-printk-implement-syslog.patch index bb7081acdc64..17b45c9da137 100644 --- a/debian/patches-rt/0023-printk-implement-syslog.patch +++ b/debian/patches-rt/0023-printk-implement-syslog.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:30:01 +0100 Subject: [PATCH 23/25] printk: implement syslog -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Since printk messages are now logged to a new ring buffer, update the syslog functions to pull the messages from there. diff --git a/debian/patches-rt/0024-printk-implement-kmsg_dump.patch b/debian/patches-rt/0024-printk-implement-kmsg_dump.patch index aa0393464f89..c7695d513a6f 100644 --- a/debian/patches-rt/0024-printk-implement-kmsg_dump.patch +++ b/debian/patches-rt/0024-printk-implement-kmsg_dump.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:30:02 +0100 Subject: [PATCH 24/25] printk: implement kmsg_dump -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Since printk messages are now logged to a new ring buffer, update the kmsg_dump functions to pull the messages from there. diff --git a/debian/patches-rt/0025-printk-remove-unused-code.patch b/debian/patches-rt/0025-printk-remove-unused-code.patch index 11fcf57c41bd..59aef3f1ddc5 100644 --- a/debian/patches-rt/0025-printk-remove-unused-code.patch +++ b/debian/patches-rt/0025-printk-remove-unused-code.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 12 Feb 2019 15:30:03 +0100 Subject: [PATCH 25/25] printk: remove unused code -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Code relating to the safe context and anything dealing with the previous log buffer implementation is no longer in use. Remove it. diff --git a/debian/patches-rt/ARM-Allow-to-enable-RT.patch b/debian/patches-rt/ARM-Allow-to-enable-RT.patch index 39b1da640ade..926e5075d15a 100644 --- a/debian/patches-rt/ARM-Allow-to-enable-RT.patch +++ b/debian/patches-rt/ARM-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Oct 2019 13:14:29 +0200 Subject: [PATCH] ARM: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Allow to select RT. diff --git a/debian/patches-rt/ARM-enable-irq-in-translation-section-permission-fau.patch b/debian/patches-rt/ARM-enable-irq-in-translation-section-permission-fau.patch index ea51729f89d7..fb0a6435dc3f 100644 --- a/debian/patches-rt/ARM-enable-irq-in-translation-section-permission-fau.patch +++ b/debian/patches-rt/ARM-enable-irq-in-translation-section-permission-fau.patch @@ -1,7 +1,7 @@ From: "Yadi.hu" <yadi.hu@windriver.com> Date: Wed, 10 Dec 2014 10:32:09 +0800 Subject: ARM: enable irq in translation/section permission fault handlers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Probably happens on all ARM, with CONFIG_PREEMPT_RT diff --git a/debian/patches-rt/ARM64-Allow-to-enable-RT.patch b/debian/patches-rt/ARM64-Allow-to-enable-RT.patch index 490283f59e5b..d558df8dcc05 100644 --- a/debian/patches-rt/ARM64-Allow-to-enable-RT.patch +++ b/debian/patches-rt/ARM64-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Oct 2019 13:14:35 +0200 Subject: [PATCH] ARM64: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Allow to select RT. diff --git a/debian/patches-rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/debian/patches-rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index 7c9ca69ebcbd..e926b8decc3b 100644 --- a/debian/patches-rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/debian/patches-rt/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -1,7 +1,7 @@ From: Josh Cartwright <joshc@ni.com> Date: Thu, 11 Feb 2016 11:54:01 -0600 Subject: KVM: arm/arm64: downgrade preempt_disable()d region to migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz kvm_arch_vcpu_ioctl_run() disables the use of preemption when updating the vgic and timer states to prevent the calling task from migrating to diff --git a/debian/patches-rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/debian/patches-rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch index c0f9ef4814fa..2556bbcf30ba 100644 --- a/debian/patches-rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +++ b/debian/patches-rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -5,7 +5,7 @@ Cc: Anna Schumaker <anna.schumaker@netapp.com>, linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, tglx@linutronix.de Subject: NFSv4: replace seqcount_t with a seqlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The raw_write_seqcount_begin() in nfs4_reclaim_open_state() causes a preempt_disable() on -RT. The spin_lock()/spin_unlock() in that section does diff --git a/debian/patches-rt/POWERPC-Allow-to-enable-RT.patch b/debian/patches-rt/POWERPC-Allow-to-enable-RT.patch index 461c43f9fa61..bf13d5c35024 100644 --- a/debian/patches-rt/POWERPC-Allow-to-enable-RT.patch +++ b/debian/patches-rt/POWERPC-Allow-to-enable-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 11 Oct 2019 13:14:41 +0200 Subject: [PATCH] POWERPC: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Allow to select RT. diff --git a/debian/patches-rt/Revert-rt-Improve-the-serial-console-PASS_LIMIT.patch b/debian/patches-rt/Revert-rt-Improve-the-serial-console-PASS_LIMIT.patch new file mode 100644 index 000000000000..1ed0ce3bf82b --- /dev/null +++ b/debian/patches-rt/Revert-rt-Improve-the-serial-console-PASS_LIMIT.patch @@ -0,0 +1,35 @@ +From e9238e71d20c836b81afde8de19074249c1934e1 Mon Sep 17 00:00:00 2001 +From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Date: Thu, 23 Apr 2020 18:17:16 +0200 +Subject: [PATCH] Revert "rt: Improve the serial console PASS_LIMIT" +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz + +There is no need to loop for longer. The message of too much work was +removed in commit + 9d7c249a1ef9b ("serial: 8250: drop the printk from serial8250_interrupt()") + +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + drivers/tty/serial/8250/8250_core.c | 11 +---------- + 1 file changed, 1 insertion(+), 10 deletions(-) + +--- a/drivers/tty/serial/8250/8250_core.c ++++ b/drivers/tty/serial/8250/8250_core.c +@@ -55,16 +55,7 @@ static struct uart_driver serial8250_reg + + static unsigned int skip_txen_test; /* force skip of txen test at init time */ + +-/* +- * On -rt we can have a more delays, and legitimately +- * so - so don't drop work spuriously and spam the +- * syslog: +- */ +-#ifdef CONFIG_PREEMPT_RT +-# define PASS_LIMIT 1000000 +-#else +-# define PASS_LIMIT 512 +-#endif ++#define PASS_LIMIT 512 + + #include <asm/serial.h> + /* diff --git a/debian/patches-rt/Use-CONFIG_PREEMPTION.patch b/debian/patches-rt/Use-CONFIG_PREEMPTION.patch index 793066c6e6e6..62000190f416 100644 --- a/debian/patches-rt/Use-CONFIG_PREEMPTION.patch +++ b/debian/patches-rt/Use-CONFIG_PREEMPTION.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 26 Jul 2019 11:30:49 +0200 Subject: [PATCH] Use CONFIG_PREEMPTION -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Thisi is an all-in-one patch of the current `PREEMPTION' branch. diff --git a/debian/patches-rt/add_migrate_disable.patch b/debian/patches-rt/add_migrate_disable.patch index 29e66cd469af..a2133ba6892e 100644 --- a/debian/patches-rt/add_migrate_disable.patch +++ b/debian/patches-rt/add_migrate_disable.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 27 May 2017 19:02:06 +0200 Subject: kernel/sched/core: add migrate_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz [bristot@redhat.com: rt: Increase/decrease the nr of migratory tasks when enabling/disabling migration Link: https://lkml.kernel.org/r/e981d271cbeca975bca710e2fbcc6078c09741b0.1498482127.git.bristot@redhat.com @@ -378,7 +378,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1483,7 +1483,7 @@ static inline bool is_cpu_allowed(struct +@@ -1478,7 +1478,7 @@ static inline bool is_cpu_allowed(struct if (!cpumask_test_cpu(cpu, p->cpus_ptr)) return false; @@ -387,7 +387,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return cpu_online(cpu); return cpu_active(cpu); -@@ -1607,9 +1607,18 @@ static int migration_cpu_stop(void *data +@@ -1602,9 +1602,18 @@ static int migration_cpu_stop(void *data void set_cpus_allowed_common(struct task_struct *p, const struct cpumask *new_mask) { cpumask_copy(&p->cpus_mask, new_mask); @@ -407,7 +407,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask) { struct rq *rq = task_rq(p); -@@ -1698,7 +1707,8 @@ static int __set_cpus_allowed_ptr(struct +@@ -1693,7 +1702,8 @@ static int __set_cpus_allowed_ptr(struct } /* Can the task run on the task's current CPU? If so, we're done */ @@ -417,7 +417,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> goto out; if (task_running(rq, p) || p->state == TASK_WAKING) { -@@ -4029,6 +4039,8 @@ pick_next_task(struct rq *rq, struct tas +@@ -4023,6 +4033,8 @@ pick_next_task(struct rq *rq, struct tas BUG(); } @@ -426,7 +426,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * __schedule() is the main scheduler function. * -@@ -4099,6 +4111,9 @@ static void __sched notrace __schedule(b +@@ -4093,6 +4105,9 @@ static void __sched notrace __schedule(b rq_lock(rq, &rf); smp_mb__after_spinlock(); @@ -436,7 +436,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* Promote REQ to ACT */ rq->clock_update_flags <<= 1; update_rq_clock(rq); -@@ -6347,6 +6362,7 @@ static void migrate_tasks(struct rq *dea +@@ -6341,6 +6356,7 @@ static void migrate_tasks(struct rq *dea break; next = __pick_migrate_task(rq); @@ -444,7 +444,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * Rules for changing task_struct::cpus_mask are holding -@@ -8049,3 +8065,164 @@ const u32 sched_prio_to_wmult[40] = { +@@ -8043,3 +8059,164 @@ const u32 sched_prio_to_wmult[40] = { }; #undef CREATE_TRACE_POINTS @@ -624,7 +624,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #undef __PN --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h -@@ -999,6 +999,10 @@ struct rq { +@@ -1005,6 +1005,10 @@ struct rq { /* Must be inspected within a rcu lock section */ struct cpuidle_state *idle_state; #endif diff --git a/debian/patches-rt/arch-arm64-Add-lazy-preempt-support.patch b/debian/patches-rt/arch-arm64-Add-lazy-preempt-support.patch index 00bea1a1b79c..28ec016a799e 100644 --- a/debian/patches-rt/arch-arm64-Add-lazy-preempt-support.patch +++ b/debian/patches-rt/arch-arm64-Add-lazy-preempt-support.patch @@ -1,7 +1,7 @@ From: Anders Roxell <anders.roxell@linaro.org> Date: Thu, 14 May 2015 17:52:17 +0200 Subject: arch/arm64: Add lazy preempt support -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz arm64 is missing support for PREEMPT_RT. The main feature which is lacking is support for lazy preemption. The arch-specific entry code, diff --git a/debian/patches-rt/arm-enable-highmem-for-rt.patch b/debian/patches-rt/arm-enable-highmem-for-rt.patch index 663fdbb687a8..ed9eb6f0ec10 100644 --- a/debian/patches-rt/arm-enable-highmem-for-rt.patch +++ b/debian/patches-rt/arm-enable-highmem-for-rt.patch @@ -1,7 +1,7 @@ Subject: arm: Enable highmem for rt From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 13 Feb 2013 11:03:11 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz fixup highmem for ARM. diff --git a/debian/patches-rt/arm-highmem-flush-tlb-on-unmap.patch b/debian/patches-rt/arm-highmem-flush-tlb-on-unmap.patch index 281e5f5ccb87..2cb4d41e4f16 100644 --- a/debian/patches-rt/arm-highmem-flush-tlb-on-unmap.patch +++ b/debian/patches-rt/arm-highmem-flush-tlb-on-unmap.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Mar 2013 21:37:27 +0100 Subject: arm/highmem: Flush tlb on unmap -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The tlb should be flushed on unmap and thus make the mapping entry invalid. This is only done in the non-debug case which does not look diff --git a/debian/patches-rt/arm-include-definition-for-cpumask_t.patch b/debian/patches-rt/arm-include-definition-for-cpumask_t.patch index ce7d72a28ef1..b40606b978b7 100644 --- a/debian/patches-rt/arm-include-definition-for-cpumask_t.patch +++ b/debian/patches-rt/arm-include-definition-for-cpumask_t.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 22 Dec 2016 17:28:33 +0100 Subject: [PATCH] arm: include definition for cpumask_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz This definition gets pulled in by other files. With the (later) split of RCU and spinlock.h it won't compile anymore. diff --git a/debian/patches-rt/arm-preempt-lazy-support.patch b/debian/patches-rt/arm-preempt-lazy-support.patch index 3ac17a3da0bc..4ee6d5f29b41 100644 --- a/debian/patches-rt/arm-preempt-lazy-support.patch +++ b/debian/patches-rt/arm-preempt-lazy-support.patch @@ -1,7 +1,7 @@ Subject: arm: Add support for lazy preemption From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 31 Oct 2012 12:04:11 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Implement the arm pieces for lazy preempt. diff --git a/debian/patches-rt/arm-remove-printk_nmi_.patch b/debian/patches-rt/arm-remove-printk_nmi_.patch index 64796bf8e7ec..e9d212a53726 100644 --- a/debian/patches-rt/arm-remove-printk_nmi_.patch +++ b/debian/patches-rt/arm-remove-printk_nmi_.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 15 Feb 2019 14:34:20 +0100 Subject: [PATCH] arm: remove printk_nmi_.*() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz It is no longer provided by the printk core code. diff --git a/debian/patches-rt/arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch b/debian/patches-rt/arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch index ccc565b25bd5..32a9554061bd 100644 --- a/debian/patches-rt/arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch +++ b/debian/patches-rt/arm64-fpsimd-use-preemp_disable-in-addition-to-local.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 25 Jul 2018 14:02:38 +0200 Subject: [PATCH] arm64: fpsimd: Delay freeing memory in fpsimd_flush_thread() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz fpsimd_flush_thread() invokes kfree() via sve_free() within a preempt disabled section which is not working on -RT. diff --git a/debian/patches-rt/at91_dont_enable_disable_clock.patch b/debian/patches-rt/at91_dont_enable_disable_clock.patch index e8bd33499939..dd7f009f4d9f 100644 --- a/debian/patches-rt/at91_dont_enable_disable_clock.patch +++ b/debian/patches-rt/at91_dont_enable_disable_clock.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 09 Mar 2016 10:51:06 +0100 Subject: arm: at91: do not disable/enable clocks in a row -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Currently the driver will disable the clock and enable it one line later if it is switching from periodic mode into one shot. diff --git a/debian/patches-rt/block-mq-don-t-complete-requests-via-IPI.patch b/debian/patches-rt/block-mq-don-t-complete-requests-via-IPI.patch index 61ae417f2c18..7aeea6d409f5 100644 --- a/debian/patches-rt/block-mq-don-t-complete-requests-via-IPI.patch +++ b/debian/patches-rt/block-mq-don-t-complete-requests-via-IPI.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 29 Jan 2015 15:10:08 +0100 Subject: block/mq: don't complete requests via IPI -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The IPI runs in hardirq context and there are sleeping locks. Assume caches are shared and complete them on the local CPU. diff --git a/debian/patches-rt/block-mq-drop-preempt-disable.patch b/debian/patches-rt/block-mq-drop-preempt-disable.patch index 2f2877a304e7..ec5ba01c6c29 100644 --- a/debian/patches-rt/block-mq-drop-preempt-disable.patch +++ b/debian/patches-rt/block-mq-drop-preempt-disable.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: block/mq: do not invoke preempt_disable() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz preempt_disable() and get_cpu() don't play well together with the sleeping locks it tries to allocate later. @@ -32,7 +32,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } static void hctx_unlock(struct blk_mq_hw_ctx *hctx, int srcu_idx) -@@ -1454,14 +1454,14 @@ static void __blk_mq_delay_run_hw_queue( +@@ -1456,14 +1456,14 @@ static void __blk_mq_delay_run_hw_queue( return; if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { diff --git a/debian/patches-rt/block-use-cpu-chill.patch b/debian/patches-rt/block-use-cpu-chill.patch index 8f377dfa8b4b..6b1efda1b468 100644 --- a/debian/patches-rt/block-use-cpu-chill.patch +++ b/debian/patches-rt/block-use-cpu-chill.patch @@ -1,7 +1,7 @@ Subject: block: Use cpu_chill() for retry loops From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 20 Dec 2012 18:28:26 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Steven also observed a live lock when there was a @@ -28,7 +28,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #include "blk.h" -@@ -115,7 +116,7 @@ static void ioc_release_fn(struct work_s +@@ -116,7 +117,7 @@ static void ioc_release_fn(struct work_s spin_unlock(&q->queue_lock); } else { spin_unlock_irqrestore(&ioc->lock, flags); diff --git a/debian/patches-rt/cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch b/debian/patches-rt/cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch index e3b54f25e329..491c190f3e6d 100644 --- a/debian/patches-rt/cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch +++ b/debian/patches-rt/cgroup-use-irqsave-in-cgroup_rstat_flush_locked.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 3 Jul 2018 18:19:48 +0200 Subject: [PATCH] cgroup: use irqsave in cgroup_rstat_flush_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock either with spin_lock_irq() or spin_lock_irqsave(). diff --git a/debian/patches-rt/clocksource-tclib-allow-higher-clockrates.patch b/debian/patches-rt/clocksource-tclib-allow-higher-clockrates.patch index 7e115d75f469..2713bc2ac574 100644 --- a/debian/patches-rt/clocksource-tclib-allow-higher-clockrates.patch +++ b/debian/patches-rt/clocksource-tclib-allow-higher-clockrates.patch @@ -1,7 +1,7 @@ From: Benedikt Spranger <b.spranger@linutronix.de> Date: Mon, 8 Mar 2010 18:57:04 +0100 Subject: clocksource: TCLIB: Allow higher clock rates for clock events -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As default the TCLIB uses the 32KiHz base clock rate for clock events. Add a compile time selection to allow higher clock resulution. diff --git a/debian/patches-rt/completion-use-simple-wait-queues.patch b/debian/patches-rt/completion-use-simple-wait-queues.patch index 1b2485935502..6179ce809e77 100644 --- a/debian/patches-rt/completion-use-simple-wait-queues.patch +++ b/debian/patches-rt/completion-use-simple-wait-queues.patch @@ -1,7 +1,7 @@ Subject: completion: Use simple wait queues From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 11 Jan 2013 11:23:51 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Completions have no long lasting callbacks and therefor do not need the complex waitqueue variant. Use simple waitqueues which reduces the @@ -51,7 +51,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> default: --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c -@@ -1703,7 +1703,7 @@ static void ffs_data_put(struct ffs_data +@@ -1704,7 +1704,7 @@ static void ffs_data_put(struct ffs_data pr_info("%s(): freeing\n", __func__); ffs_data_clear(ffs); BUG_ON(waitqueue_active(&ffs->ev.waitq) || diff --git a/debian/patches-rt/cond-resched-lock-rt-tweak.patch b/debian/patches-rt/cond-resched-lock-rt-tweak.patch index 0187eb386305..8e4dc13522da 100644 --- a/debian/patches-rt/cond-resched-lock-rt-tweak.patch +++ b/debian/patches-rt/cond-resched-lock-rt-tweak.patch @@ -1,7 +1,7 @@ Subject: sched: Use the proper LOCK_OFFSET for cond_resched() From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 22:51:33 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz RT does not increment preempt count when a 'sleeping' spinlock is locked. Update PREEMPT_LOCK_OFFSET for that case. diff --git a/debian/patches-rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/debian/patches-rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch index 1b41e234131d..2a8125a72b14 100644 --- a/debian/patches-rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch +++ b/debian/patches-rt/connector-cn_proc-Protect-send_msg-with-a-local-lock.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sun, 16 Oct 2016 05:11:54 +0200 Subject: [PATCH] connector/cn_proc: Protect send_msg() with a local lock on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931 |in_atomic(): 1, irqs_disabled(): 0, pid: 31807, name: sleep diff --git a/debian/patches-rt/cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/debian/patches-rt/cpuset-Convert-callback_lock-to-raw_spinlock_t.patch index f941a1b15f21..a86e84bd5609 100644 --- a/debian/patches-rt/cpuset-Convert-callback_lock-to-raw_spinlock_t.patch +++ b/debian/patches-rt/cpuset-Convert-callback_lock-to-raw_spinlock_t.patch @@ -1,7 +1,7 @@ From: Mike Galbraith <efault@gmx.de> Date: Sun, 8 Jan 2017 09:32:25 +0100 Subject: [PATCH] cpuset: Convert callback_lock to raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The two commits below add up to a cpuset might_sleep() splat for RT: diff --git a/debian/patches-rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch b/debian/patches-rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch index fbdf952b9c4a..c80561d87b34 100644 --- a/debian/patches-rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch +++ b/debian/patches-rt/crypto-Reduce-preempt-disabled-regions-more-algos.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Feb 2014 17:24:04 +0100 Subject: crypto: Reduce preempt disabled regions, more algos -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Don Estabrook reported | kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100() diff --git a/debian/patches-rt/crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch b/debian/patches-rt/crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch index 564a6a3796a9..1e023e5920b6 100644 --- a/debian/patches-rt/crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch +++ b/debian/patches-rt/crypto-cryptd-add-a-lock-instead-preempt_disable-loc.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 18:52:00 +0200 Subject: [PATCH] crypto: cryptd - add a lock instead preempt_disable/local_bh_disable -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz cryptd has a per-CPU lock which protected with local_bh_disable() and preempt_disable(). diff --git a/debian/patches-rt/crypto-limit-more-FPU-enabled-sections.patch b/debian/patches-rt/crypto-limit-more-FPU-enabled-sections.patch index 2f281613776c..89ef289c05b9 100644 --- a/debian/patches-rt/crypto-limit-more-FPU-enabled-sections.patch +++ b/debian/patches-rt/crypto-limit-more-FPU-enabled-sections.patch @@ -4,7 +4,7 @@ Subject: [PATCH] crypto: limit more FPU-enabled sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Those crypto drivers use SSE/AVX/… for their crypto work and in order to do so in kernel they need to enable the "FPU" in kernel mode which diff --git a/debian/patches-rt/debugobjects-rt.patch b/debian/patches-rt/debugobjects-rt.patch index e95722089e7a..0f5c1dc2eaae 100644 --- a/debian/patches-rt/debugobjects-rt.patch +++ b/debian/patches-rt/debugobjects-rt.patch @@ -1,7 +1,7 @@ Subject: debugobjects: Make RT aware From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 21:41:35 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Avoid filling the pool / allocating memory with irqs off(). diff --git a/debian/patches-rt/dma-buf-Use-seqlock_t-instread-disabling-preemption.patch b/debian/patches-rt/dma-buf-Use-seqlock_t-instread-disabling-preemption.patch index 0c670cd4cda2..05eb640617d0 100644 --- a/debian/patches-rt/dma-buf-Use-seqlock_t-instread-disabling-preemption.patch +++ b/debian/patches-rt/dma-buf-Use-seqlock_t-instread-disabling-preemption.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Aug 2019 16:38:43 +0200 Subject: [PATCH] dma-buf: Use seqlock_t instread disabling preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz "dma reservation" disables preemption while acquiring the write access for "seqcount". diff --git a/debian/patches-rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/debian/patches-rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch index c8bd79ec540a..6e92b7961932 100644 --- a/debian/patches-rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch +++ b/debian/patches-rt/drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Thu, 31 Mar 2016 04:08:28 +0200 Subject: [PATCH] drivers/block/zram: Replace bit spinlocks with rtmutex for -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz They're nondeterministic, and lead to ___might_sleep() splats in -rt. OTOH, they're a lot less wasteful than an rtmutex per page. diff --git a/debian/patches-rt/drivers-tty-fix-omap-lock-crap.patch b/debian/patches-rt/drivers-tty-fix-omap-lock-crap.patch index 395fd9a786d0..523023d9947e 100644 --- a/debian/patches-rt/drivers-tty-fix-omap-lock-crap.patch +++ b/debian/patches-rt/drivers-tty-fix-omap-lock-crap.patch @@ -1,7 +1,7 @@ Subject: tty/serial/omap: Make the locking RT aware From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 28 Jul 2011 13:32:57 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and diff --git a/debian/patches-rt/drivers-tty-pl011-irq-disable-madness.patch b/debian/patches-rt/drivers-tty-pl011-irq-disable-madness.patch index 0db32830a1bb..ebb76c162348 100644 --- a/debian/patches-rt/drivers-tty-pl011-irq-disable-madness.patch +++ b/debian/patches-rt/drivers-tty-pl011-irq-disable-madness.patch @@ -1,7 +1,7 @@ Subject: tty/serial/pl011: Make the locking work on RT From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 08 Jan 2013 21:36:51 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The lock is a sleeping lock and local_irq_save() is not the optimsation we are looking for. Redo it to make it work on -RT and non-RT. diff --git a/debian/patches-rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/debian/patches-rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch index 4914f48413f2..bbbcbdcf5731 100644 --- a/debian/patches-rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch +++ b/debian/patches-rt/drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch @@ -2,7 +2,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Thu, 20 Oct 2016 11:15:22 +0200 Subject: [PATCH] drivers/zram: Don't disable preemption in zcomp_stream_get/put() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In v4.7, the driver switched to percpu compression streams, disabling preemption via get/put_cpu_ptr(). Use a per-zcomp_strm lock here. We diff --git a/debian/patches-rt/drm-i915-disable-tracing-on-RT.patch b/debian/patches-rt/drm-i915-disable-tracing-on-RT.patch index b51b9b654891..7d70c9cd346c 100644 --- a/debian/patches-rt/drm-i915-disable-tracing-on-RT.patch +++ b/debian/patches-rt/drm-i915-disable-tracing-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 6 Dec 2018 09:52:20 +0100 Subject: [PATCH] drm/i915: disable tracing on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Luca Abeni reported this: | BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003 diff --git a/debian/patches-rt/drm-i915-gt-use-a-LOCAL_IRQ_LOCK-in-__timeline_mark_.patch b/debian/patches-rt/drm-i915-gt-use-a-LOCAL_IRQ_LOCK-in-__timeline_mark_.patch index a9da12495173..27f545cee39c 100644 --- a/debian/patches-rt/drm-i915-gt-use-a-LOCAL_IRQ_LOCK-in-__timeline_mark_.patch +++ b/debian/patches-rt/drm-i915-gt-use-a-LOCAL_IRQ_LOCK-in-__timeline_mark_.patch @@ -1,7 +1,7 @@ From: Mike Galbraith <efault@gmx.de> Date: Fri, 7 Feb 2020 07:11:06 +0100 Subject: [PATCH] drm/i915/gt: use a LOCAL_IRQ_LOCK in __timeline_mark_lock() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Quoting drm/i915/gt: Mark up the nested engine-pm timeline lock as irqsafe diff --git a/debian/patches-rt/drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch b/debian/patches-rt/drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch index bbfd948300b1..d1f805260066 100644 --- a/debian/patches-rt/drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch +++ b/debian/patches-rt/drm-i915-skip-DRM_I915_LOW_LEVEL_TRACEPOINTS-with-NO.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 19 Dec 2018 10:47:02 +0100 Subject: [PATCH] drm/i915: skip DRM_I915_LOW_LEVEL_TRACEPOINTS with NOTRACE -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The order of the header files is important. If this header file is included after tracepoint.h was included then the NOTRACE here becomes a diff --git a/debian/patches-rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch b/debian/patches-rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch index 27cc7c8b9ec9..1932ed06c474 100644 --- a/debian/patches-rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch +++ b/debian/patches-rt/drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch @@ -1,7 +1,7 @@ Subject: drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end() From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sat, 27 Feb 2016 09:01:42 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz [ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918 diff --git a/debian/patches-rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch b/debian/patches-rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch index 208910948602..7a683401309f 100644 --- a/debian/patches-rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch +++ b/debian/patches-rt/drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch @@ -1,7 +1,7 @@ Subject: drm,radeon,i915: Use preempt_disable/enable_rt() where recommended From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Sat, 27 Feb 2016 08:09:11 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz DRM folks identified the spots, so use them. diff --git a/debian/patches-rt/efi-Allow-efi-runtime.patch b/debian/patches-rt/efi-Allow-efi-runtime.patch index 05915105c4f1..1fd9f420784a 100644 --- a/debian/patches-rt/efi-Allow-efi-runtime.patch +++ b/debian/patches-rt/efi-Allow-efi-runtime.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 15:06:10 +0200 Subject: [PATCH] efi: Allow efi=runtime -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In case the command line option "efi=noruntime" is default at built-time, the user could overwrite its state by `efi=runtime' and allow it again. diff --git a/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch b/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch index 758cf5c097b8..fa79d299b40f 100644 --- a/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch +++ b/debian/patches-rt/efi-Disable-runtime-services-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 26 Jul 2018 15:03:16 +0200 Subject: [PATCH] efi: Disable runtime services on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Based on meassurements the EFI functions get_variable / get_next_variable take up to 2us which looks okay. diff --git a/debian/patches-rt/fs-buffer-Make-BH_Uptodate_Lock-bit_spin_lock-a-regu.patch b/debian/patches-rt/fs-buffer-Make-BH_Uptodate_Lock-bit_spin_lock-a-regu.patch index 2e0dd9d1d4c0..aae0a82b22fc 100644 --- a/debian/patches-rt/fs-buffer-Make-BH_Uptodate_Lock-bit_spin_lock-a-regu.patch +++ b/debian/patches-rt/fs-buffer-Make-BH_Uptodate_Lock-bit_spin_lock-a-regu.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 15 Nov 2019 18:54:20 +0100 Subject: [PATCH] fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Bit spinlocks are problematic if PREEMPT_RT is enabled, because they disable preemption, which is undesired for latency reasons and breaks when @@ -103,7 +103,7 @@ after return; } EXPORT_SYMBOL(end_buffer_async_write); -@@ -3385,6 +3379,7 @@ struct buffer_head *alloc_buffer_head(gf +@@ -3396,6 +3390,7 @@ struct buffer_head *alloc_buffer_head(gf struct buffer_head *ret = kmem_cache_zalloc(bh_cachep, gfp_flags); if (ret) { INIT_LIST_HEAD(&ret->b_assoc_buffers); diff --git a/debian/patches-rt/fs-dcache-Include-swait.h-header.patch b/debian/patches-rt/fs-dcache-Include-swait.h-header.patch index 1951b70edb0c..c6e7758045e1 100644 --- a/debian/patches-rt/fs-dcache-Include-swait.h-header.patch +++ b/debian/patches-rt/fs-dcache-Include-swait.h-header.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 16 Apr 2020 12:42:15 +0200 Subject: [PATCH] fs/dcache: Include swait.h header -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Include the swait.h header so it compiles even if not all patches are applied. diff --git a/debian/patches-rt/fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-in.patch b/debian/patches-rt/fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-in.patch index 07a7a5ea026c..f7739e41740f 100644 --- a/debian/patches-rt/fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-in.patch +++ b/debian/patches-rt/fs-dcache-bring-back-explicit-INIT_HLIST_BL_HEAD-in.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 13 Sep 2017 12:32:34 +0200 Subject: [PATCH] fs/dcache: bring back explicit INIT_HLIST_BL_HEAD init -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Commit 3d375d78593c ("mm: update callers to use HASH_ZERO flag") removed INIT_HLIST_BL_HEAD and uses the ZERO flag instead for the init. However diff --git a/debian/patches-rt/fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch b/debian/patches-rt/fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch index 7ab0f010e583..8eb701bba50c 100644 --- a/debian/patches-rt/fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch +++ b/debian/patches-rt/fs-dcache-disable-preemption-on-i_dir_seq-s-write-si.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 20 Oct 2017 11:29:53 +0200 Subject: [PATCH] fs/dcache: disable preemption on i_dir_seq's write side -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz i_dir_seq is an opencoded seqcounter. Based on the code it looks like we could have two writers in parallel despite the fact that the d_lock is diff --git a/debian/patches-rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/debian/patches-rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch index 5634b04b8a44..d43630d95cae 100644 --- a/debian/patches-rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/debian/patches-rt/fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Sep 2016 14:35:49 +0200 Subject: [PATCH] fs/dcache: use swait_queue instead of waitqueue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz __d_lookup_done() invokes wake_up_all() while holding a hlist_bl_lock() which disables preemption. As a workaround convert it to swait. @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/fs/afs/dir_silly.c +++ b/fs/afs/dir_silly.c -@@ -202,7 +202,7 @@ int afs_silly_iput(struct dentry *dentry +@@ -210,7 +210,7 @@ int afs_silly_iput(struct dentry *dentry struct dentry *alias; int ret; @@ -164,7 +164,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> spin_lock(&dentry->d_lock); --- a/fs/proc/base.c +++ b/fs/proc/base.c -@@ -1983,7 +1983,7 @@ bool proc_fill_cache(struct file *file, +@@ -1995,7 +1995,7 @@ bool proc_fill_cache(struct file *file, child = d_hash_and_lookup(dir, &qname); if (!child) { diff --git a/debian/patches-rt/fs-epoll-make-nesting-accounting-safe-for-rt-kernel.patch b/debian/patches-rt/fs-epoll-make-nesting-accounting-safe-for-rt-kernel.patch index 628e8a4bb9b2..e524f9f37974 100644 --- a/debian/patches-rt/fs-epoll-make-nesting-accounting-safe-for-rt-kernel.patch +++ b/debian/patches-rt/fs-epoll-make-nesting-accounting-safe-for-rt-kernel.patch @@ -2,7 +2,7 @@ From: Jason Baron <jbaron@akamai.com> Subject: [PATCH] fs/epoll: make nesting accounting safe for -rt kernel Date: Fri, 17 Jan 2020 14:16:47 -0500 Message-Id: <1579288607-11868-1-git-send-email-jbaron@akamai.com> -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Davidlohr Bueso pointed out that when CONFIG_DEBUG_LOCK_ALLOC is set ep_poll_safewake() can take several non-raw spinlocks after disabling diff --git a/debian/patches-rt/fs-namespace-use-cpu-chill-in-trylock-loops.patch b/debian/patches-rt/fs-namespace-use-cpu-chill-in-trylock-loops.patch index 69aa277e006c..fb68e5040b9f 100644 --- a/debian/patches-rt/fs-namespace-use-cpu-chill-in-trylock-loops.patch +++ b/debian/patches-rt/fs-namespace-use-cpu-chill-in-trylock-loops.patch @@ -1,7 +1,7 @@ Subject: fs: namespace: Use cpu_chill() in trylock loops From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 07 Mar 2012 21:00:34 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system diff --git a/debian/patches-rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch b/debian/patches-rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch index c384cfe13acb..938d1539fedb 100644 --- a/debian/patches-rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch +++ b/debian/patches-rt/fs-nfs-turn-rmdir_sem-into-a-semaphore.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 15 Sep 2016 10:51:27 +0200 Subject: [PATCH] fs/nfs: turn rmdir_sem into a semaphore -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The RW semaphore had a reader side which used the _non_owner version because it most likely took the reader lock in one thread and released it diff --git a/debian/patches-rt/fscache-initialize-cookie-hash-table-raw-spinlocks.patch b/debian/patches-rt/fscache-initialize-cookie-hash-table-raw-spinlocks.patch index 05876ca537d7..0e50c679e4ac 100644 --- a/debian/patches-rt/fscache-initialize-cookie-hash-table-raw-spinlocks.patch +++ b/debian/patches-rt/fscache-initialize-cookie-hash-table-raw-spinlocks.patch @@ -1,7 +1,7 @@ From: Clark Williams <williams@redhat.com> Date: Tue, 3 Jul 2018 13:34:30 -0500 Subject: [PATCH] fscache: initialize cookie hash table raw spinlocks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The fscache cookie mechanism uses a hash table of hlist_bl_head structures. The PREEMPT_RT patcheset adds a raw spinlock to this structure and so on PREEMPT_RT diff --git a/debian/patches-rt/ftrace-migrate-disable-tracing.patch b/debian/patches-rt/ftrace-migrate-disable-tracing.patch index b18d9eff2544..fe977f3dd77e 100644 --- a/debian/patches-rt/ftrace-migrate-disable-tracing.patch +++ b/debian/patches-rt/ftrace-migrate-disable-tracing.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 21:56:42 +0200 Subject: trace: Add migrate-disabled counter to tracing output -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- diff --git a/debian/patches-rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch b/debian/patches-rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch index 770d8fbc7014..92b55d2d455e 100644 --- a/debian/patches-rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch +++ b/debian/patches-rt/futex-Ensure-lock-unlock-symetry-versus-pi_lock-and-.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 1 Mar 2013 11:17:42 +0100 Subject: futex: Ensure lock/unlock symetry versus pi_lock and hash bucket lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In exit_pi_state_list() we have the following locking construct: diff --git a/debian/patches-rt/futex-requeue-pi-fix.patch b/debian/patches-rt/futex-requeue-pi-fix.patch index ba6251fba813..8825dc481970 100644 --- a/debian/patches-rt/futex-requeue-pi-fix.patch +++ b/debian/patches-rt/futex-requeue-pi-fix.patch @@ -1,7 +1,7 @@ From: Steven Rostedt <rostedt@goodmis.org> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: futex: Fix bug on when a requeued RT task times out -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Requeue with timeout causes a bug with PREEMPT_RT. diff --git a/debian/patches-rt/futex-workaround-migrate_disable-enable-in-different.patch b/debian/patches-rt/futex-workaround-migrate_disable-enable-in-different.patch index a84f005c5fc2..ec0b49216537 100644 --- a/debian/patches-rt/futex-workaround-migrate_disable-enable-in-different.patch +++ b/debian/patches-rt/futex-workaround-migrate_disable-enable-in-different.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 8 Mar 2017 14:23:35 +0100 Subject: [PATCH] futex: workaround migrate_disable/enable in different context -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz migrate_enable() invokes __schedule() and it expects a preempt count of one. Holding a raw_spinlock_t with disabled interrupts should not allow scheduling. diff --git a/debian/patches-rt/genirq-disable-irqpoll-on-rt.patch b/debian/patches-rt/genirq-disable-irqpoll-on-rt.patch index d0902a885b8a..fe63389b4f43 100644 --- a/debian/patches-rt/genirq-disable-irqpoll-on-rt.patch +++ b/debian/patches-rt/genirq-disable-irqpoll-on-rt.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:57 -0500 Subject: genirq: Disable irqpoll on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Creates long latencies for no value diff --git a/debian/patches-rt/genirq-update-irq_set_irqchip_state-documentation.patch b/debian/patches-rt/genirq-update-irq_set_irqchip_state-documentation.patch index c33e8632c6da..000432293763 100644 --- a/debian/patches-rt/genirq-update-irq_set_irqchip_state-documentation.patch +++ b/debian/patches-rt/genirq-update-irq_set_irqchip_state-documentation.patch @@ -1,7 +1,7 @@ From: Josh Cartwright <joshc@ni.com> Date: Thu, 11 Feb 2016 11:54:00 -0600 Subject: genirq: update irq_set_irqchip_state documentation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz On -rt kernels, the use of migrate_disable()/migrate_enable() is sufficient to guarantee a task isn't moved to another CPU. Update the diff --git a/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch b/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch index 40cd120c471c..b6920841c433 100644 --- a/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch +++ b/debian/patches-rt/hrtimer-Allow-raw-wakeups-during-boot.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 9 Aug 2019 15:25:21 +0200 Subject: [PATCH] hrtimer: Allow raw wakeups during boot -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz There are a few wake-up timers during the early boot which are essencial for the system to make progress. At this stage there are no softirq spawn for the diff --git a/debian/patches-rt/irqwork-push_most_work_into_softirq_context.patch b/debian/patches-rt/irqwork-push_most_work_into_softirq_context.patch index 6c2b34d98bbd..d2935d7749fe 100644 --- a/debian/patches-rt/irqwork-push_most_work_into_softirq_context.patch +++ b/debian/patches-rt/irqwork-push_most_work_into_softirq_context.patch @@ -1,7 +1,7 @@ Subject: irqwork: push most work into softirq context From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 23 Jun 2015 15:32:51 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Initially we defered all irqwork into softirq because we didn't want the latency spikes if perf or another user was busy and delayed the RT task. diff --git a/debian/patches-rt/jump-label-rt.patch b/debian/patches-rt/jump-label-rt.patch index d43c0381b3e2..224fdf4558d6 100644 --- a/debian/patches-rt/jump-label-rt.patch +++ b/debian/patches-rt/jump-label-rt.patch @@ -1,7 +1,7 @@ Subject: jump-label: disable if stop_machine() is used From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 08 Jul 2015 17:14:48 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Some architectures are using stop_machine() while switching the opcode which leads to latency spikes. diff --git a/debian/patches-rt/kconfig-disable-a-few-options-rt.patch b/debian/patches-rt/kconfig-disable-a-few-options-rt.patch index 108798c9adbe..9c81c099e21a 100644 --- a/debian/patches-rt/kconfig-disable-a-few-options-rt.patch +++ b/debian/patches-rt/kconfig-disable-a-few-options-rt.patch @@ -1,7 +1,7 @@ Subject: kconfig: Disable config options which are not RT compatible From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 24 Jul 2011 12:11:43 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Disable stuff which is known to have issues on RT diff --git a/debian/patches-rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch b/debian/patches-rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch index 5c0ce9259f6a..d735e3dd0372 100644 --- a/debian/patches-rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch +++ b/debian/patches-rt/kernel-sched-move-stack-kprobe-clean-up-to-__put_tas.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 21 Nov 2016 19:31:08 +0100 Subject: [PATCH] kernel/sched: move stack + kprobe clean up to __put_task_struct() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz There is no need to free the stack before the task struct (except for reasons mentioned in commit 68f24b08ee89 ("sched/core: Free the stack early if @@ -55,7 +55,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> security_task_free(tsk); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -3249,15 +3249,6 @@ static struct rq *finish_task_switch(str +@@ -3244,15 +3244,6 @@ static struct rq *finish_task_switch(str if (prev->sched_class->task_dead) prev->sched_class->task_dead(prev); diff --git a/debian/patches-rt/leds-trigger-disable-CPU-trigger-on-RT.patch b/debian/patches-rt/leds-trigger-disable-CPU-trigger-on-RT.patch index 5e1559348902..5554134ab5f4 100644 --- a/debian/patches-rt/leds-trigger-disable-CPU-trigger-on-RT.patch +++ b/debian/patches-rt/leds-trigger-disable-CPU-trigger-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 23 Jan 2014 14:45:59 +0100 Subject: leds: trigger: disable CPU trigger on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz as it triggers: |CPU: 0 PID: 0 Comm: swapper Not tainted 3.12.8-rt10 #141 diff --git a/debian/patches-rt/list_bl.h-make-list-head-locking-RT-safe.patch b/debian/patches-rt/list_bl.h-make-list-head-locking-RT-safe.patch index f00394089a5f..2950f197d8d9 100644 --- a/debian/patches-rt/list_bl.h-make-list-head-locking-RT-safe.patch +++ b/debian/patches-rt/list_bl.h-make-list-head-locking-RT-safe.patch @@ -1,7 +1,7 @@ From: Paul Gortmaker <paul.gortmaker@windriver.com> Date: Fri, 21 Jun 2013 15:07:25 -0400 Subject: list_bl: Make list head locking RT safe -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As per changes in include/linux/jbd_common.h for avoiding the bit_spin_locks on RT ("fs: jbd/jbd2: Make state lock and journal diff --git a/debian/patches-rt/localversion.patch b/debian/patches-rt/localversion.patch index 456e442b9d08..5bc6a7e2638c 100644 --- a/debian/patches-rt/localversion.patch +++ b/debian/patches-rt/localversion.patch @@ -1,7 +1,7 @@ Subject: Add localversion for -RT release From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 08 Jul 2011 20:25:16 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- @@ -11,4 +11,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt3 ++-rt5 diff --git a/debian/patches-rt/lockdep-disable-self-test.patch b/debian/patches-rt/lockdep-disable-self-test.patch index 8301f350f153..41b711bbc543 100644 --- a/debian/patches-rt/lockdep-disable-self-test.patch +++ b/debian/patches-rt/lockdep-disable-self-test.patch @@ -4,7 +4,7 @@ Subject: [PATCH] lockdep: disable self-test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The self-test wasn't always 100% accurate for RT. We disabled a few tests which failed because they had a different semantic for RT. Some @@ -18,7 +18,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug -@@ -1220,7 +1220,7 @@ config DEBUG_ATOMIC_SLEEP +@@ -1222,7 +1222,7 @@ config DEBUG_ATOMIC_SLEEP config DEBUG_LOCKING_API_SELFTESTS bool "Locking API boot-time self-tests" diff --git a/debian/patches-rt/lockdep-no-softirq-accounting-on-rt.patch b/debian/patches-rt/lockdep-no-softirq-accounting-on-rt.patch index 821e2a0b2f34..04750d3ff5d7 100644 --- a/debian/patches-rt/lockdep-no-softirq-accounting-on-rt.patch +++ b/debian/patches-rt/lockdep-no-softirq-accounting-on-rt.patch @@ -1,7 +1,7 @@ Subject: lockdep: Make it RT aware From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 17 Jul 2011 18:51:23 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz teach lockdep that we don't really do softirqs on -RT. @@ -52,7 +52,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> defined(CONFIG_PREEMPT_TRACER) --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c -@@ -4407,6 +4407,7 @@ static void check_flags(unsigned long fl +@@ -4411,6 +4411,7 @@ static void check_flags(unsigned long fl } } @@ -60,7 +60,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * We dont accurately track softirq state in e.g. * hardirq contexts (such as on 4KSTACKS), so only -@@ -4421,6 +4422,7 @@ static void check_flags(unsigned long fl +@@ -4425,6 +4426,7 @@ static void check_flags(unsigned long fl DEBUG_LOCKS_WARN_ON(!current->softirqs_enabled); } } diff --git a/debian/patches-rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/debian/patches-rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch index 8032f6814bf8..c2bd596e0743 100644 --- a/debian/patches-rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch +++ b/debian/patches-rt/lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch @@ -1,7 +1,7 @@ From: Josh Cartwright <josh.cartwright@ni.com> Date: Wed, 28 Jan 2015 13:08:45 -0600 Subject: lockdep: selftest: fix warnings due to missing PREEMPT_RT conditionals -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz "lockdep: Selftest: Only do hardirq context test for raw spinlock" disabled the execution of certain tests with PREEMPT_RT, but did diff --git a/debian/patches-rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch b/debian/patches-rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch index 9ab35430632f..4a5f86efdb25 100644 --- a/debian/patches-rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch +++ b/debian/patches-rt/lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch @@ -1,7 +1,7 @@ Subject: lockdep: selftest: Only do hardirq context test for raw spinlock From: Yong Zhang <yong.zhang0@gmail.com> Date: Mon, 16 Apr 2012 15:01:56 +0800 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz From: Yong Zhang <yong.zhang@windriver.com> diff --git a/debian/patches-rt/locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch b/debian/patches-rt/locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch index d65d71df9fe2..d3aa329cb73b 100644 --- a/debian/patches-rt/locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch +++ b/debian/patches-rt/locking-Make-spinlock_t-and-rwlock_t-a-RCU-section-o.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 19 Nov 2019 09:25:04 +0100 Subject: [PATCH] locking: Make spinlock_t and rwlock_t a RCU section on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz On !RT a locked spinlock_t and rwlock_t disables preemption which implies a RCU read section. There is code that relies on that behaviour. diff --git a/debian/patches-rt/locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch b/debian/patches-rt/locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch index b88229fdc3b1..fa236a0bf7b8 100644 --- a/debian/patches-rt/locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch +++ b/debian/patches-rt/locking-don-t-check-for-__LINUX_SPINLOCK_TYPES_H-on-.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 4 Aug 2017 17:40:42 +0200 Subject: [PATCH 1/2] locking: don't check for __LINUX_SPINLOCK_TYPES_H on -RT archs -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Upstream uses arch_spinlock_t within spinlock_t and requests that spinlock_types.h header file is included first. diff --git a/debian/patches-rt/locking-rt-mutex-Flush-block-plug-on-__down_read.patch b/debian/patches-rt/locking-rt-mutex-Flush-block-plug-on-__down_read.patch index fa0447e54fee..5503b73f2116 100644 --- a/debian/patches-rt/locking-rt-mutex-Flush-block-plug-on-__down_read.patch +++ b/debian/patches-rt/locking-rt-mutex-Flush-block-plug-on-__down_read.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Fri, 4 Jan 2019 15:33:21 -0500 Subject: [PATCH] locking/rt-mutex: Flush block plug on __down_read() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz __down_read() bypasses the rtmutex frontend to call rt_mutex_slowlock_locked() directly, and thus it needs to call diff --git a/debian/patches-rt/locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch b/debian/patches-rt/locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch index ac0d2cb2f7bf..ff147c067fc7 100644 --- a/debian/patches-rt/locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch +++ b/debian/patches-rt/locking-rt-mutex-fix-deadlock-in-device-mapper-block.patch @@ -1,7 +1,7 @@ From: Mikulas Patocka <mpatocka@redhat.com> Date: Mon, 13 Nov 2017 12:56:53 -0500 Subject: [PATCH] locking/rt-mutex: fix deadlock in device mapper / block-IO -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz When some block device driver creates a bio and submits it to another block device driver, the bio is added to current->bio_list (in order to diff --git a/debian/patches-rt/locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch b/debian/patches-rt/locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch index 7ce52b94126a..f8def3458990 100644 --- a/debian/patches-rt/locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch +++ b/debian/patches-rt/locking-rtmutex-Clean-pi_blocked_on-in-the-error-cas.patch @@ -1,7 +1,7 @@ From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 30 Sep 2019 18:15:44 +0200 Subject: [PATCH] locking/rtmutex: Clean ->pi_blocked_on in the error case -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The function rt_mutex_wait_proxy_lock() cleans ->pi_blocked_on in case of failure (timeout, signal). The same cleanup is required in diff --git a/debian/patches-rt/md-disable-bcache.patch b/debian/patches-rt/md-disable-bcache.patch index 9c8f7eb59f25..ac0e256eea75 100644 --- a/debian/patches-rt/md-disable-bcache.patch +++ b/debian/patches-rt/md-disable-bcache.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 29 Aug 2013 11:48:57 +0200 Subject: md: disable bcache -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz It uses anon semaphores |drivers/md/bcache/request.c: In function ‘cached_dev_write_complete’: diff --git a/debian/patches-rt/md-raid5-percpu-handling-rt-aware.patch b/debian/patches-rt/md-raid5-percpu-handling-rt-aware.patch index fa7114f1e6cd..8187ad9c18ba 100644 --- a/debian/patches-rt/md-raid5-percpu-handling-rt-aware.patch +++ b/debian/patches-rt/md-raid5-percpu-handling-rt-aware.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 6 Apr 2010 16:51:31 +0200 Subject: md: raid5: Make raid5_percpu handling RT aware -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz __raid_run_ops() disables preemption with get_cpu() around the access to the raid5_percpu variables. That causes scheduling while atomic diff --git a/debian/patches-rt/mips-disable-highmem-on-rt.patch b/debian/patches-rt/mips-disable-highmem-on-rt.patch index 97271c95474e..17b54e7fe696 100644 --- a/debian/patches-rt/mips-disable-highmem-on-rt.patch +++ b/debian/patches-rt/mips-disable-highmem-on-rt.patch @@ -1,7 +1,7 @@ Subject: mips: Disable highmem on RT From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:10:12 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The current highmem handling on -RT is not compatible and needs fixups. diff --git a/debian/patches-rt/mm-Don-t-warn-about-atomic-memory-allocations-during.patch b/debian/patches-rt/mm-Don-t-warn-about-atomic-memory-allocations-during.patch new file mode 100644 index 000000000000..abec9cbe42aa --- /dev/null +++ b/debian/patches-rt/mm-Don-t-warn-about-atomic-memory-allocations-during.patch @@ -0,0 +1,53 @@ +From: Liwei Song <liwei.song@windriver.com> +Date: Mon, 4 May 2020 15:58:22 +0200 +Subject: [PATCH] mm: Don't warn about atomic memory allocations during suspend +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz + +The ACPI code allocates larger amount of memory during resume. This +triggers a warning because the allocation happens with disabled +interrupts. +At this stage only one CPU is active so there should be no lock +contention. If SLUB needs to call into the buddy allocator for more +memory then it should not enable interrupts. + +Limit the check to system state with more CPUs and scheduling and only +enable interrupts in SLUB at this stage. + +Signed-off-by: Liwei Song <liwei.song@windriver.com> +[bigeasy: commit description, allocate_slab() hunk] +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + mm/slub.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -1655,7 +1655,7 @@ static struct page *allocate_slab(struct + enableirqs = true; + + #ifdef CONFIG_PREEMPT_RT +- if (system_state > SYSTEM_BOOTING) ++ if (system_state > SYSTEM_BOOTING && system_state < SYSTEM_SUSPEND) + enableirqs = true; + #endif + if (enableirqs) +@@ -2768,7 +2768,8 @@ static __always_inline void *slab_alloc_ + unsigned long tid; + + if (IS_ENABLED(CONFIG_PREEMPT_RT) && IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP)) +- WARN_ON_ONCE(!preemptible() && system_state >= SYSTEM_SCHEDULING); ++ WARN_ON_ONCE(!preemptible() && ++ (system_state > SYSTEM_BOOTING && system_state < SYSTEM_SUSPEND)); + + s = slab_pre_alloc_hook(s, gfpflags); + if (!s) +@@ -3233,7 +3234,8 @@ int kmem_cache_alloc_bulk(struct kmem_ca + int i; + + if (IS_ENABLED(CONFIG_PREEMPT_RT) && IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP)) +- WARN_ON_ONCE(!preemptible() && system_state >= SYSTEM_SCHEDULING); ++ WARN_ON_ONCE(!preemptible() && ++ (system_state > SYSTEM_BOOTING && system_state < SYSTEM_SUSPEND)); + + /* memcg and kmem_cache debug support */ + s = slab_pre_alloc_hook(s, flags); diff --git a/debian/patches-rt/mm-Warn-on-memory-allocation-in-non-preemptible-cont.patch b/debian/patches-rt/mm-Warn-on-memory-allocation-in-non-preemptible-cont.patch index 908a5e5fa0b2..e416eb0c39bf 100644 --- a/debian/patches-rt/mm-Warn-on-memory-allocation-in-non-preemptible-cont.patch +++ b/debian/patches-rt/mm-Warn-on-memory-allocation-in-non-preemptible-cont.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 6 Mar 2020 15:59:06 +0100 Subject: [PATCH] mm: Warn on memory allocation in non-preemptible context on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The memory allocation via kmalloc(, GFP_ATOMIC) in atomic context (disabled preemption or interrupts) is not allowed on RT because the @@ -22,7 +22,7 @@ Reviewed-by: Daniel Bristot de Oliveira <bristot@redhat.com> --- a/mm/slub.c +++ b/mm/slub.c -@@ -2707,6 +2707,9 @@ static __always_inline void *slab_alloc_ +@@ -2767,6 +2767,9 @@ static __always_inline void *slab_alloc_ struct page *page; unsigned long tid; @@ -32,8 +32,8 @@ Reviewed-by: Daniel Bristot de Oliveira <bristot@redhat.com> s = slab_pre_alloc_hook(s, gfpflags); if (!s) return NULL; -@@ -3168,6 +3171,9 @@ int kmem_cache_alloc_bulk(struct kmem_ca - struct kmem_cache_cpu *c; +@@ -3229,6 +3232,9 @@ int kmem_cache_alloc_bulk(struct kmem_ca + LIST_HEAD(to_free); int i; + if (IS_ENABLED(CONFIG_PREEMPT_RT) && IS_ENABLED(CONFIG_DEBUG_ATOMIC_SLEEP)) diff --git a/debian/patches-rt/mm-compaction-Disable-compact_unevictable_allowed-on.patch b/debian/patches-rt/mm-compaction-Disable-compact_unevictable_allowed-on.patch index 0e029ae92a51..4e40e6b2a724 100644 --- a/debian/patches-rt/mm-compaction-Disable-compact_unevictable_allowed-on.patch +++ b/debian/patches-rt/mm-compaction-Disable-compact_unevictable_allowed-on.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 8 Nov 2019 12:55:47 +0100 Subject: [PATCH] mm/compaction: Disable compact_unevictable_allowed on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Since commit 5bbe3547aa3ba ("mm: allow compaction of unevictable pages") diff --git a/debian/patches-rt/mm-compaction-Really-limit-compact_unevictable_allow.patch b/debian/patches-rt/mm-compaction-Really-limit-compact_unevictable_allow.patch index e0bc0a1f4d18..140afdf1871c 100644 --- a/debian/patches-rt/mm-compaction-Really-limit-compact_unevictable_allow.patch +++ b/debian/patches-rt/mm-compaction-Really-limit-compact_unevictable_allow.patch @@ -5,7 +5,7 @@ Subject: [PATCH] =?UTF-8?q?mm/compaction:=20Really=20limit=20compact=5Fune?= 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/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The proc file `compact_unevictable_allowed' should allow 0 and 1 only, the `extra*' attribues have been set properly but without diff --git a/debian/patches-rt/mm-convert-swap-to-percpu-locked.patch b/debian/patches-rt/mm-convert-swap-to-percpu-locked.patch index 3f620fe41410..a3191f78cba6 100644 --- a/debian/patches-rt/mm-convert-swap-to-percpu-locked.patch +++ b/debian/patches-rt/mm-convert-swap-to-percpu-locked.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:51 -0500 Subject: mm/swap: Convert to percpu locked -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Replace global locks (get_cpu + local_irq_save) with "local_locks()". Currently there is one of for "rotate" and one for "swap". diff --git a/debian/patches-rt/mm-disable-sloub-rt.patch b/debian/patches-rt/mm-disable-sloub-rt.patch index 6b1bd06fc271..47124e912678 100644 --- a/debian/patches-rt/mm-disable-sloub-rt.patch +++ b/debian/patches-rt/mm-disable-sloub-rt.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:44:03 -0500 Subject: mm: Allow only SLUB on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Memory allocation disables interrupts as part of the allocation and freeing process. For -RT it is important that this section remain short and don't diff --git a/debian/patches-rt/mm-enable-slub.patch b/debian/patches-rt/mm-enable-slub.patch index fed25d469d2c..3d96a077e149 100644 --- a/debian/patches-rt/mm-enable-slub.patch +++ b/debian/patches-rt/mm-enable-slub.patch @@ -1,7 +1,7 @@ Subject: mm: Enable SLUB for RT From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 25 Oct 2012 10:32:35 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Avoid the memory allocation in IRQ section @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/mm/slub.c +++ b/mm/slub.c -@@ -3775,6 +3775,11 @@ static void list_slab_objects(struct kme +@@ -3766,6 +3766,11 @@ static void list_slab_objects(struct kme const char *text) { #ifdef CONFIG_SLUB_DEBUG @@ -26,7 +26,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> void *addr = page_address(page); void *p; unsigned long *map; -@@ -3794,6 +3799,7 @@ static void list_slab_objects(struct kme +@@ -3785,6 +3790,7 @@ static void list_slab_objects(struct kme slab_unlock(page); #endif diff --git a/debian/patches-rt/mm-make-vmstat-rt-aware.patch b/debian/patches-rt/mm-make-vmstat-rt-aware.patch index 711f7b11b3c9..8d417d8b8100 100644 --- a/debian/patches-rt/mm-make-vmstat-rt-aware.patch +++ b/debian/patches-rt/mm-make-vmstat-rt-aware.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:30:13 -0500 Subject: mm/vmstat: Protect per cpu variables with preempt disable on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Disable preemption on -RT for the vmstat code. On vanila the code runs in IRQ-off regions while on -RT it is not. "preempt_disable" ensures that the diff --git a/debian/patches-rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch b/debian/patches-rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch index b6365c9feccf..ad210f4c8897 100644 --- a/debian/patches-rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch +++ b/debian/patches-rt/mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -1,7 +1,7 @@ From: Yang Shi <yang.shi@windriver.com> Subject: mm/memcontrol: Don't call schedule_work_on in preemption disabled context Date: Wed, 30 Oct 2013 11:48:33 -0700 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The following trace is triggered when running ltp oom test cases: diff --git a/debian/patches-rt/mm-memcontrol-do_not_disable_irq.patch b/debian/patches-rt/mm-memcontrol-do_not_disable_irq.patch index 565c864474cd..38f68927bf1c 100644 --- a/debian/patches-rt/mm-memcontrol-do_not_disable_irq.patch +++ b/debian/patches-rt/mm-memcontrol-do_not_disable_irq.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Subject: mm/memcontrol: Replace local_irq_disable with local locks Date: Wed, 28 Jan 2015 17:14:16 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz There are a few local_irq_disable() which then take sleeping locks. This patch converts them local locks. @@ -32,7 +32,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* Whether legacy memory+swap accounting is active */ static bool do_memsw_account(void) { -@@ -5422,12 +5425,12 @@ static int mem_cgroup_move_account(struc +@@ -5425,12 +5428,12 @@ static int mem_cgroup_move_account(struc ret = 0; @@ -47,7 +47,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> out_unlock: unlock_page(page); out: -@@ -6491,10 +6494,10 @@ void mem_cgroup_commit_charge(struct pag +@@ -6494,10 +6497,10 @@ void mem_cgroup_commit_charge(struct pag commit_charge(page, memcg, lrucare); @@ -60,7 +60,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (do_memsw_account() && PageSwapCache(page)) { swp_entry_t entry = { .val = page_private(page) }; -@@ -6563,7 +6566,7 @@ static void uncharge_batch(const struct +@@ -6566,7 +6569,7 @@ static void uncharge_batch(const struct memcg_oom_recover(ug->memcg); } @@ -69,7 +69,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> __mod_memcg_state(ug->memcg, MEMCG_RSS, -ug->nr_anon); __mod_memcg_state(ug->memcg, MEMCG_CACHE, -ug->nr_file); __mod_memcg_state(ug->memcg, MEMCG_RSS_HUGE, -ug->nr_huge); -@@ -6571,7 +6574,7 @@ static void uncharge_batch(const struct +@@ -6574,7 +6577,7 @@ static void uncharge_batch(const struct __count_memcg_events(ug->memcg, PGPGOUT, ug->pgpgout); __this_cpu_add(ug->memcg->vmstats_percpu->nr_page_events, nr_pages); memcg_check_events(ug->memcg, ug->dummy_page); @@ -78,7 +78,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> if (!mem_cgroup_is_root(ug->memcg)) css_put_many(&ug->memcg->css, nr_pages); -@@ -6732,11 +6735,11 @@ void mem_cgroup_migrate(struct page *old +@@ -6735,11 +6738,11 @@ void mem_cgroup_migrate(struct page *old commit_charge(newpage, memcg, false); @@ -92,7 +92,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } DEFINE_STATIC_KEY_FALSE(memcg_sockets_enabled_key); -@@ -6918,6 +6921,7 @@ void mem_cgroup_swapout(struct page *pag +@@ -6921,6 +6924,7 @@ void mem_cgroup_swapout(struct page *pag struct mem_cgroup *memcg, *swap_memcg; unsigned int nr_entries; unsigned short oldid; @@ -100,7 +100,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> VM_BUG_ON_PAGE(PageLRU(page), page); VM_BUG_ON_PAGE(page_count(page), page); -@@ -6963,10 +6967,14 @@ void mem_cgroup_swapout(struct page *pag +@@ -6966,10 +6970,14 @@ void mem_cgroup_swapout(struct page *pag * important here to have the interrupts disabled because it is the * only synchronisation we have for updating the per-CPU variables. */ diff --git a/debian/patches-rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch b/debian/patches-rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch index cd74323a0fb5..5f97e8403788 100644 --- a/debian/patches-rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch +++ b/debian/patches-rt/mm-page_alloc-rt-friendly-per-cpu-pages.patch @@ -1,7 +1,7 @@ From: Ingo Molnar <mingo@elte.hu> Date: Fri, 3 Jul 2009 08:29:37 -0500 Subject: mm: page_alloc: rt-friendly per-cpu pages -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz rt-friendly per-cpu pages: convert the irqs-off per-cpu locking method into a preemptible, explicit-per-cpu-locks method. diff --git a/debian/patches-rt/mm-rt-kmap-atomic-scheduling.patch b/debian/patches-rt/mm-rt-kmap-atomic-scheduling.patch index cd51ba78c980..88cddf4b6a21 100644 --- a/debian/patches-rt/mm-rt-kmap-atomic-scheduling.patch +++ b/debian/patches-rt/mm-rt-kmap-atomic-scheduling.patch @@ -1,7 +1,7 @@ Subject: mm, rt: kmap_atomic scheduling From: Peter Zijlstra <peterz@infradead.org> Date: Thu, 28 Jul 2011 10:43:51 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In fact, with migrate_disable() existing one could play games with kmap_atomic. You could save/restore the kmap_atomic slots on context diff --git a/debian/patches-rt/mm-scatterlist-dont-disable-irqs-on-RT.patch b/debian/patches-rt/mm-scatterlist-dont-disable-irqs-on-RT.patch index fd82e36367bd..e7f081f661b1 100644 --- a/debian/patches-rt/mm-scatterlist-dont-disable-irqs-on-RT.patch +++ b/debian/patches-rt/mm-scatterlist-dont-disable-irqs-on-RT.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 3 Jul 2009 08:44:34 -0500 Subject: mm/scatterlist: Do not disable irqs on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz For -RT it is enough to keep pagefault disabled (which is currently handled by kmap_atomic()). diff --git a/debian/patches-rt/mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch b/debian/patches-rt/mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch new file mode 100644 index 000000000000..b8fefe0666ee --- /dev/null +++ b/debian/patches-rt/mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch @@ -0,0 +1,54 @@ +From: Kevin Hao <haokexin@gmail.com> +Date: Mon, 4 May 2020 11:34:07 +0800 +Subject: [PATCH] mm: slub: Always flush the delayed empty slubs in flush_all() +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz + +After commit f0b231101c94 ("mm/SLUB: delay giving back empty slubs to +IRQ enabled regions"), when the free_slab() is invoked with the IRQ +disabled, the empty slubs are moved to a per-CPU list and will be +freed after IRQ enabled later. But in the current codes, there is +a check to see if there really has the cpu slub on a specific cpu +before flushing the delayed empty slubs, this may cause a reference +of already released kmem_cache in a scenario like below: + cpu 0 cpu 1 + kmem_cache_destroy() + flush_all() + --->IPI flush_cpu_slab() + flush_slab() + deactivate_slab() + discard_slab() + free_slab() + c->page = NULL; + for_each_online_cpu(cpu) + if (!has_cpu_slab(1, s)) + continue + this skip to flush the delayed + empty slub released by cpu1 + kmem_cache_free(kmem_cache, s) + + kmalloc() + __slab_alloc() + free_delayed() + __free_slab() + reference to released kmem_cache + +Fixes: f0b231101c94 ("mm/SLUB: delay giving back empty slubs to IRQ enabled regions") +Signed-off-by: Kevin Hao <haokexin@gmail.com> +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +Cc: stable-rt@vger.kernel.org +--- + mm/slub.c | 3 --- + 1 file changed, 3 deletions(-) + +--- a/mm/slub.c ++++ b/mm/slub.c +@@ -2394,9 +2394,6 @@ static void flush_all(struct kmem_cache + for_each_online_cpu(cpu) { + struct slub_free_list *f; + +- if (!has_cpu_slab(cpu, s)) +- continue; +- + f = &per_cpu(slub_free_list, cpu); + raw_spin_lock_irq(&f->lock); + list_splice_init(&f->list, &tofree); diff --git a/debian/patches-rt/mm-vmalloc-use-get-cpu-light.patch b/debian/patches-rt/mm-vmalloc-use-get-cpu-light.patch index 57e994876365..43316ddd192d 100644 --- a/debian/patches-rt/mm-vmalloc-use-get-cpu-light.patch +++ b/debian/patches-rt/mm-vmalloc-use-get-cpu-light.patch @@ -1,7 +1,7 @@ Subject: mm/vmalloc: Another preempt disable region which sucks From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 12 Jul 2011 11:39:36 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Avoid the preempt disable version of get_cpu_var(). The inner-lock should provide enough serialisation. @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/mm/vmalloc.c +++ b/mm/vmalloc.c -@@ -1501,7 +1501,7 @@ static void *new_vmap_block(unsigned int +@@ -1502,7 +1502,7 @@ static void *new_vmap_block(unsigned int struct vmap_block *vb; struct vmap_area *va; unsigned long vb_idx; @@ -22,7 +22,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> void *vaddr; node = numa_node_id(); -@@ -1544,11 +1544,12 @@ static void *new_vmap_block(unsigned int +@@ -1545,11 +1545,12 @@ static void *new_vmap_block(unsigned int BUG_ON(err); radix_tree_preload_end(); @@ -37,7 +37,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return vaddr; } -@@ -1617,6 +1618,7 @@ static void *vb_alloc(unsigned long size +@@ -1618,6 +1619,7 @@ static void *vb_alloc(unsigned long size struct vmap_block *vb; void *vaddr = NULL; unsigned int order; @@ -45,7 +45,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> BUG_ON(offset_in_page(size)); BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); -@@ -1631,7 +1633,8 @@ static void *vb_alloc(unsigned long size +@@ -1632,7 +1634,8 @@ static void *vb_alloc(unsigned long size order = get_order(size); rcu_read_lock(); @@ -55,7 +55,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> list_for_each_entry_rcu(vb, &vbq->free, free_list) { unsigned long pages_off; -@@ -1654,7 +1657,7 @@ static void *vb_alloc(unsigned long size +@@ -1655,7 +1658,7 @@ static void *vb_alloc(unsigned long size break; } diff --git a/debian/patches-rt/mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch b/debian/patches-rt/mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch index 8e2601bc1593..f0e9b797ae1a 100644 --- a/debian/patches-rt/mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch +++ b/debian/patches-rt/mm-workingset-replace-IRQ-off-check-with-a-lockdep-a.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Feb 2019 10:40:46 +0100 Subject: [PATCH] mm: workingset: replace IRQ-off check with a lockdep assert. -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Commit diff --git a/debian/patches-rt/mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch b/debian/patches-rt/mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch index 091a659542a2..6b4b71d2678f 100644 --- a/debian/patches-rt/mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch +++ b/debian/patches-rt/mm-zswap-Do-not-disable-preemption-in-zswap_frontswa.patch @@ -2,7 +2,7 @@ From: "Luis Claudio R. Goncalves" <lclaudio@uudg.org> Date: Tue, 25 Jun 2019 11:28:04 -0300 Subject: [PATCH] mm/zswap: Do not disable preemption in zswap_frontswap_store() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Zswap causes "BUG: scheduling while atomic" by blocking on a rt_spin_lock() with preemption disabled. The preemption is disabled by get_cpu_var() in diff --git a/debian/patches-rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch b/debian/patches-rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch index 2f630141fc07..6f11cb48e7b2 100644 --- a/debian/patches-rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch +++ b/debian/patches-rt/mm_zsmalloc_copy_with_get_cpu_var_and_locking.patch @@ -1,7 +1,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Tue, 22 Mar 2016 11:16:09 +0100 Subject: [PATCH] mm/zsmalloc: copy with get_cpu_var() and locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz get_cpu_var() disables preemption and triggers a might_sleep() splat later. This is replaced with get_locked_var(). diff --git a/debian/patches-rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch b/debian/patches-rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch index 1adb4ff08394..2c0f1f85d977 100644 --- a/debian/patches-rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch +++ b/debian/patches-rt/net-Qdisc-use-a-seqlock-instead-seqcount.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 14 Sep 2016 17:36:35 +0200 Subject: [PATCH] net/Qdisc: use a seqlock instead seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The seqcount disables preemption on -RT while it is held which can't remove. Also we don't want the reader to spin for ages if the writer is diff --git a/debian/patches-rt/net-core-use-local_bh_disable-in-netif_rx_ni.patch b/debian/patches-rt/net-core-use-local_bh_disable-in-netif_rx_ni.patch index 5400aba82ca5..c1d522d29a3e 100644 --- a/debian/patches-rt/net-core-use-local_bh_disable-in-netif_rx_ni.patch +++ b/debian/patches-rt/net-core-use-local_bh_disable-in-netif_rx_ni.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 16 Jun 2017 19:03:16 +0200 Subject: [PATCH] net/core: use local_bh_disable() in netif_rx_ni() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz In 2004 netif_rx_ni() gained a preempt_disable() section around netif_rx() and its do_softirq() + testing for it. The do_softirq() part @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4750,11 +4750,9 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4751,11 +4751,9 @@ int netif_rx_ni(struct sk_buff *skb) trace_netif_rx_ni_entry(skb); diff --git a/debian/patches-rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/debian/patches-rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch index c6693acbf89c..475ad3c675e6 100644 --- a/debian/patches-rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch +++ b/debian/patches-rt/net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 30 Mar 2016 13:36:29 +0200 Subject: [PATCH] net: dev: always take qdisc's busylock in __dev_xmit_skb() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The root-lock is dropped before dev_hard_start_xmit() is invoked and after setting the __QDISC___STATE_RUNNING bit. If this task is now pushed away diff --git a/debian/patches-rt/net-make-devnet_rename_seq-a-mutex.patch b/debian/patches-rt/net-make-devnet_rename_seq-a-mutex.patch index 5b21f3be1034..d4ed917226cc 100644 --- a/debian/patches-rt/net-make-devnet_rename_seq-a-mutex.patch +++ b/debian/patches-rt/net-make-devnet_rename_seq-a-mutex.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 20 Mar 2013 18:06:20 +0100 Subject: net: Add a mutex around devnet_rename_seq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz On RT write_seqcount_begin() disables preemption and device_rename() allocates memory with GFP_KERNEL and grabs later the sysfs_mutex diff --git a/debian/patches-rt/net-use-cpu-chill.patch b/debian/patches-rt/net-use-cpu-chill.patch index 36e5bb3cfe73..1bfd2ff17b81 100644 --- a/debian/patches-rt/net-use-cpu-chill.patch +++ b/debian/patches-rt/net-use-cpu-chill.patch @@ -1,7 +1,7 @@ Subject: net: Use cpu_chill() instead of cpu_relax() From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 07 Mar 2012 21:10:04 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Use cpu_chill() instead of cpu_relax() to let the system diff --git a/debian/patches-rt/net_disable_NET_RX_BUSY_POLL.patch b/debian/patches-rt/net_disable_NET_RX_BUSY_POLL.patch index 76ae41154db3..ee50a69e5a9b 100644 --- a/debian/patches-rt/net_disable_NET_RX_BUSY_POLL.patch +++ b/debian/patches-rt/net_disable_NET_RX_BUSY_POLL.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 27 May 2017 19:02:06 +0200 Subject: net/core: disable NET_RX_BUSY_POLL on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz napi_busy_loop() disables preemption and performs a NAPI poll. We can't acquire sleeping locks with disabled preemption so we would have to work around this diff --git a/debian/patches-rt/oleg-signal-rt-fix.patch b/debian/patches-rt/oleg-signal-rt-fix.patch index 9618ded4b262..6680292ca410 100644 --- a/debian/patches-rt/oleg-signal-rt-fix.patch +++ b/debian/patches-rt/oleg-signal-rt-fix.patch @@ -1,7 +1,7 @@ From: Oleg Nesterov <oleg@redhat.com> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: signal/x86: Delay calling signals in atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz On x86_64 we must disable preemption before we enable interrupts for stack faults, int3 and debugging, because the current task is using diff --git a/debian/patches-rt/panic-disable-random-on-rt.patch b/debian/patches-rt/panic-disable-random-on-rt.patch index 51497b547759..12549b5c9554 100644 --- a/debian/patches-rt/panic-disable-random-on-rt.patch +++ b/debian/patches-rt/panic-disable-random-on-rt.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 14 Jul 2015 14:26:34 +0200 Subject: panic: skip get_random_bytes for RT_FULL in init_oops_id -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Disable on -RT. If this is invoked from irq-context we will have problems to acquire the sleeping lock. diff --git a/debian/patches-rt/pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/debian/patches-rt/pci-switchtec-Don-t-use-completion-s-wait-queue.patch index b6551e08efc9..53dd205931c8 100644 --- a/debian/patches-rt/pci-switchtec-Don-t-use-completion-s-wait-queue.patch +++ b/debian/patches-rt/pci-switchtec-Don-t-use-completion-s-wait-queue.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 4 Oct 2017 10:24:23 +0200 Subject: [PATCH] pci/switchtec: Don't use completion's wait queue -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The poll callback is using completion's wait_queue_head_t member and puts it in poll_wait() so the poll() caller gets a wakeup after command @@ -19,11 +19,9 @@ Cc: Kurt Schwemmer <kurt.schwemmer@microsemi.com> Cc: Logan Gunthorpe <logang@deltatee.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - drivers/pci/switch/switchtec.c | 22 +++++++++++++--------- + drivers/pci/switch/switchtec.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) -diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c -index 81dc7ac01381..d4c94e73f7d6 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c @@ -52,10 +52,11 @@ struct switchtec_user { @@ -39,7 +37,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 u32 cmd; u32 status; u32 return_code; -@@ -77,7 +78,7 @@ static struct switchtec_user *stuser_create(struct switchtec_dev *stdev) +@@ -77,7 +78,7 @@ static struct switchtec_user *stuser_cre stuser->stdev = stdev; kref_init(&stuser->kref); INIT_LIST_HEAD(&stuser->list); @@ -48,7 +46,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 stuser->event_cnt = atomic_read(&stdev->event_cnt); dev_dbg(&stdev->dev, "%s: %p\n", __func__, stuser); -@@ -175,7 +176,7 @@ static int mrpc_queue_cmd(struct switchtec_user *stuser) +@@ -175,7 +176,7 @@ static int mrpc_queue_cmd(struct switcht kref_get(&stuser->kref); stuser->read_len = sizeof(stuser->data); stuser_set_state(stuser, MRPC_QUEUED); @@ -57,7 +55,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 list_add_tail(&stuser->list, &stdev->mrpc_queue); mrpc_cmd_submit(stdev); -@@ -222,7 +223,8 @@ static void mrpc_complete_cmd(struct switchtec_dev *stdev) +@@ -222,7 +223,8 @@ static void mrpc_complete_cmd(struct swi memcpy_fromio(stuser->data, &stdev->mmio_mrpc->output_data, stuser->read_len); out: @@ -67,7 +65,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 list_del_init(&stuser->list); stuser_put(stuser); stdev->mrpc_busy = 0; -@@ -529,10 +531,11 @@ static ssize_t switchtec_dev_read(struct file *filp, char __user *data, +@@ -529,10 +531,11 @@ static ssize_t switchtec_dev_read(struct mutex_unlock(&stdev->mrpc_mutex); if (filp->f_flags & O_NONBLOCK) { @@ -81,7 +79,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 if (rc < 0) return rc; } -@@ -580,7 +583,7 @@ static __poll_t switchtec_dev_poll(struct file *filp, poll_table *wait) +@@ -580,7 +583,7 @@ static __poll_t switchtec_dev_poll(struc struct switchtec_dev *stdev = stuser->stdev; __poll_t ret = 0; @@ -90,7 +88,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 poll_wait(filp, &stdev->event_wq, wait); if (lock_mutex_and_test_alive(stdev)) -@@ -588,7 +591,7 @@ static __poll_t switchtec_dev_poll(struct file *filp, poll_table *wait) +@@ -588,7 +591,7 @@ static __poll_t switchtec_dev_poll(struc mutex_unlock(&stdev->mrpc_mutex); @@ -99,7 +97,7 @@ index 81dc7ac01381..d4c94e73f7d6 100644 ret |= EPOLLIN | EPOLLRDNORM; if (stuser->event_cnt != atomic_read(&stdev->event_cnt)) -@@ -1272,7 +1275,8 @@ static void stdev_kill(struct switchtec_dev *stdev) +@@ -1272,7 +1275,8 @@ static void stdev_kill(struct switchtec_ /* Wake up and kill any users waiting on an MRPC request */ list_for_each_entry_safe(stuser, tmpuser, &stdev->mrpc_queue, list) { diff --git a/debian/patches-rt/pid.h-include-atomic.h.patch b/debian/patches-rt/pid.h-include-atomic.h.patch index e2f1365efe51..81ce2adbd923 100644 --- a/debian/patches-rt/pid.h-include-atomic.h.patch +++ b/debian/patches-rt/pid.h-include-atomic.h.patch @@ -1,7 +1,7 @@ From: Grygorii Strashko <Grygorii.Strashko@linaro.org> Date: Tue, 21 Jul 2015 19:43:56 +0300 Subject: pid.h: include atomic.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz This patch fixes build error: CC kernel/pid_namespace.o diff --git a/debian/patches-rt/posix-timers-expiry-lock.patch b/debian/patches-rt/posix-timers-expiry-lock.patch index 74415344ccbd..8a473a721a77 100644 --- a/debian/patches-rt/posix-timers-expiry-lock.patch +++ b/debian/patches-rt/posix-timers-expiry-lock.patch @@ -4,7 +4,7 @@ Subject: [PATCH] posix-timers: Add expiry lock 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/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz If a about to be removed posix timer is active then the code will retry the delete operation until it succeeds / the timer callback completes. diff --git a/debian/patches-rt/posix-timers-thread-posix-cpu-timers-on-rt.patch b/debian/patches-rt/posix-timers-thread-posix-cpu-timers-on-rt.patch index b55ad729acca..aafe9206848c 100644 --- a/debian/patches-rt/posix-timers-thread-posix-cpu-timers-on-rt.patch +++ b/debian/patches-rt/posix-timers-thread-posix-cpu-timers-on-rt.patch @@ -1,7 +1,7 @@ From: John Stultz <johnstul@us.ibm.com> Date: Fri, 3 Jul 2009 08:29:58 -0500 Subject: posix-timers: Thread posix-cpu-timers on -rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz posix-cpu-timer code takes non -rt safe locks in hard irq context. Move it to a thread. diff --git a/debian/patches-rt/power-disable-highmem-on-rt.patch b/debian/patches-rt/power-disable-highmem-on-rt.patch index e991b74e40b8..066153bbced6 100644 --- a/debian/patches-rt/power-disable-highmem-on-rt.patch +++ b/debian/patches-rt/power-disable-highmem-on-rt.patch @@ -1,7 +1,7 @@ Subject: powerpc: Disable highmem on RT From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:08:34 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The current highmem handling on -RT is not compatible and needs fixups. diff --git a/debian/patches-rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/debian/patches-rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch index 72471f025bf3..0856650814fa 100644 --- a/debian/patches-rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch +++ b/debian/patches-rt/powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch @@ -1,7 +1,7 @@ From: Bogdan Purcareata <bogdan.purcareata@freescale.com> Date: Fri, 24 Apr 2015 15:53:13 +0000 Subject: powerpc/kvm: Disable in-kernel MPIC emulation for PREEMPT_RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz While converting the openpic emulation code to use a raw_spinlock_t enables guests to run on RT, there's still a performance issue. For interrupts sent in diff --git a/debian/patches-rt/powerpc-preempt-lazy-support.patch b/debian/patches-rt/powerpc-preempt-lazy-support.patch index c69d4bd61b46..410932fca8c5 100644 --- a/debian/patches-rt/powerpc-preempt-lazy-support.patch +++ b/debian/patches-rt/powerpc-preempt-lazy-support.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 1 Nov 2012 10:14:11 +0100 Subject: powerpc: Add support for lazy preemption -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Implement the powerpc pieces for lazy preempt. diff --git a/debian/patches-rt/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch b/debian/patches-rt/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch index 24eadf97795c..ac4ec8cc31b4 100644 --- a/debian/patches-rt/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch +++ b/debian/patches-rt/powerpc-pseries-iommu-Use-a-locallock-instead-local_ir.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Mar 2019 18:31:54 +0100 Subject: [PATCH] powerpc/pseries/iommu: Use a locallock instead local_irq_save() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The locallock protects the per-CPU variable tce_page. The function attempts to allocate memory while tce_page is protected (by disabling diff --git a/debian/patches-rt/powerpc-stackprotector-work-around-stack-guard-init-.patch b/debian/patches-rt/powerpc-stackprotector-work-around-stack-guard-init-.patch index 10b5d0209016..d7d33410da13 100644 --- a/debian/patches-rt/powerpc-stackprotector-work-around-stack-guard-init-.patch +++ b/debian/patches-rt/powerpc-stackprotector-work-around-stack-guard-init-.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Tue, 26 Mar 2019 18:31:29 +0100 Subject: [PATCH ] powerpc/stackprotector: work around stack-guard init from atomic -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.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 diff --git a/debian/patches-rt/preempt-lazy-support.patch b/debian/patches-rt/preempt-lazy-support.patch index 44b2f784ba8a..04423235a3f5 100644 --- a/debian/patches-rt/preempt-lazy-support.patch +++ b/debian/patches-rt/preempt-lazy-support.patch @@ -1,7 +1,7 @@ Subject: sched: Add support for lazy preemption From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 26 Oct 2012 18:50:54 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz It has become an obsession to mitigate the determinism vs. throughput loss of RT. Looking at the mainline semantics of preemption points @@ -283,7 +283,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> void resched_cpu(int cpu) { struct rq *rq = cpu_rq(cpu); -@@ -2998,6 +3040,9 @@ int sched_fork(unsigned long clone_flags +@@ -2993,6 +3035,9 @@ int sched_fork(unsigned long clone_flags p->on_cpu = 0; #endif init_task_preempt_count(p); @@ -293,7 +293,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #ifdef CONFIG_SMP plist_node_init(&p->pushable_tasks, MAX_PRIO); RB_CLEAR_NODE(&p->pushable_dl_tasks); -@@ -4141,6 +4186,7 @@ static void __sched notrace __schedule(b +@@ -4135,6 +4180,7 @@ static void __sched notrace __schedule(b next = pick_next_task(rq, prev, &rf); clear_tsk_need_resched(prev); @@ -301,7 +301,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> clear_preempt_need_resched(); if (likely(prev != next)) { -@@ -4335,6 +4381,30 @@ static void __sched notrace preempt_sche +@@ -4329,6 +4375,30 @@ static void __sched notrace preempt_sche } while (need_resched()); } @@ -332,7 +332,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #ifdef CONFIG_PREEMPTION /* * This is the entry point to schedule() from in-kernel preemption -@@ -4348,7 +4418,8 @@ asmlinkage __visible void __sched notrac +@@ -4342,7 +4412,8 @@ asmlinkage __visible void __sched notrac */ if (likely(!preemptible())) return; @@ -342,7 +342,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> preempt_schedule_common(); } NOKPROBE_SYMBOL(preempt_schedule); -@@ -4375,6 +4446,9 @@ asmlinkage __visible void __sched notrac +@@ -4369,6 +4440,9 @@ asmlinkage __visible void __sched notrac if (likely(!preemptible())) return; @@ -352,7 +352,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> do { /* * Because the function tracer can trace preempt_count_sub() -@@ -6164,7 +6238,9 @@ void init_idle(struct task_struct *idle, +@@ -6158,7 +6232,9 @@ void init_idle(struct task_struct *idle, /* Set the preempt count _outside_ the spinlocks! */ init_idle_preempt_count(idle, cpu); @@ -363,7 +363,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * The idle tasks have their own, simple scheduling class: */ -@@ -8114,6 +8190,7 @@ void migrate_disable(void) +@@ -8108,6 +8184,7 @@ void migrate_disable(void) if (++current->migrate_disable == 1) { this_rq()->nr_pinned++; @@ -371,7 +371,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #ifdef CONFIG_SCHED_DEBUG WARN_ON_ONCE(current->pinned_on_cpu >= 0); current->pinned_on_cpu = smp_processor_id(); -@@ -8195,6 +8272,7 @@ void migrate_enable(void) +@@ -8189,6 +8266,7 @@ void migrate_enable(void) } out: @@ -381,7 +381,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> EXPORT_SYMBOL(migrate_enable); --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -4153,7 +4153,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq +@@ -4160,7 +4160,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq ideal_runtime = sched_slice(cfs_rq, curr); delta_exec = curr->sum_exec_runtime - curr->prev_sum_exec_runtime; if (delta_exec > ideal_runtime) { @@ -390,7 +390,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * The current task ran long enough, ensure it doesn't get * re-elected due to buddy favours. -@@ -4177,7 +4177,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq +@@ -4184,7 +4184,7 @@ check_preempt_tick(struct cfs_rq *cfs_rq return; if (delta > ideal_runtime) @@ -399,7 +399,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } static void -@@ -4320,7 +4320,7 @@ entity_tick(struct cfs_rq *cfs_rq, struc +@@ -4327,7 +4327,7 @@ entity_tick(struct cfs_rq *cfs_rq, struc * validating it and just reschedule. */ if (queued) { @@ -408,7 +408,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return; } /* -@@ -4445,7 +4445,7 @@ static void __account_cfs_rq_runtime(str +@@ -4452,7 +4452,7 @@ static void __account_cfs_rq_runtime(str * hierarchy can be throttled */ if (!assign_cfs_rq_runtime(cfs_rq) && likely(cfs_rq->curr)) @@ -417,7 +417,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } static __always_inline -@@ -5158,7 +5158,7 @@ static void hrtick_start_fair(struct rq +@@ -5176,7 +5176,7 @@ static void hrtick_start_fair(struct rq if (delta < 0) { if (rq->curr == p) @@ -426,7 +426,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return; } hrtick_start(rq, delta); -@@ -6662,7 +6662,7 @@ static void check_preempt_wakeup(struct +@@ -6680,7 +6680,7 @@ static void check_preempt_wakeup(struct return; preempt: @@ -435,7 +435,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * Only set the backward buddy when the current task is still * on the rq. This can happen when a wakeup gets interleaved -@@ -10360,7 +10360,7 @@ static void task_fork_fair(struct task_s +@@ -10379,7 +10379,7 @@ static void task_fork_fair(struct task_s * 'current' within the tree based on its new key value. */ swap(curr->vruntime, se->vruntime); @@ -444,7 +444,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } se->vruntime -= cfs_rq->min_vruntime; -@@ -10387,7 +10387,7 @@ prio_changed_fair(struct rq *rq, struct +@@ -10406,7 +10406,7 @@ prio_changed_fair(struct rq *rq, struct */ if (rq->curr == p) { if (p->prio > oldprio) @@ -467,7 +467,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h -@@ -1867,6 +1867,15 @@ extern void reweight_task(struct task_st +@@ -1873,6 +1873,15 @@ extern void reweight_task(struct task_st extern void resched_curr(struct rq *rq); extern void resched_cpu(int cpu); diff --git a/debian/patches-rt/preempt-nort-rt-variants.patch b/debian/patches-rt/preempt-nort-rt-variants.patch index 0c6e86b5b296..382e0614b4c0 100644 --- a/debian/patches-rt/preempt-nort-rt-variants.patch +++ b/debian/patches-rt/preempt-nort-rt-variants.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 24 Jul 2009 12:38:56 +0200 Subject: preempt: Provide preempt_*_(no)rt variants -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz RT needs a few preempt_disable/enable points which are not necessary otherwise. Implement variants to avoid #ifdeffery. diff --git a/debian/patches-rt/printk-console-must-not-schedule-for-drivers.patch b/debian/patches-rt/printk-console-must-not-schedule-for-drivers.patch index 0cc68c306bd6..cf4f61991d63 100644 --- a/debian/patches-rt/printk-console-must-not-schedule-for-drivers.patch +++ b/debian/patches-rt/printk-console-must-not-schedule-for-drivers.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Mon, 6 Apr 2020 23:22:17 +0200 Subject: [PATCH] printk: console must not schedule for drivers -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Even though the printk kthread is always preemptible, it is still not allowed to call cond_resched() from within console drivers. The @@ -35,7 +35,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c -@@ -3028,6 +3028,7 @@ static int printk_kthread_func(void *dat +@@ -3059,6 +3059,7 @@ static int printk_kthread_func(void *dat &len, printk_time); console_lock(); diff --git a/debian/patches-rt/printk-devkmsg-llseek-reset-clear-if-it-is-lost.patch b/debian/patches-rt/printk-devkmsg-llseek-reset-clear-if-it-is-lost.patch index 1e5567109035..99e6814f683e 100644 --- a/debian/patches-rt/printk-devkmsg-llseek-reset-clear-if-it-is-lost.patch +++ b/debian/patches-rt/printk-devkmsg-llseek-reset-clear-if-it-is-lost.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Fri, 22 Feb 2019 23:02:44 +0100 Subject: [PATCH] printk: devkmsg: llseek: reset clear if it is lost -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz SEEK_DATA will seek to the last clear record. If this clear record is no longer in the ring buffer, devkmsg_llseek() will go into an diff --git a/debian/patches-rt/printk-devkmsg-read-Return-EPIPE-when-the-first-mess.patch b/debian/patches-rt/printk-devkmsg-read-Return-EPIPE-when-the-first-mess.patch index c7255c202623..74f0eea111e2 100644 --- a/debian/patches-rt/printk-devkmsg-read-Return-EPIPE-when-the-first-mess.patch +++ b/debian/patches-rt/printk-devkmsg-read-Return-EPIPE-when-the-first-mess.patch @@ -2,7 +2,7 @@ From: He Zhe <zhe.he@windriver.com> Date: Tue, 24 Sep 2019 15:26:39 +0800 Subject: [PATCH] printk: devkmsg: read: Return EPIPE when the first message user-space wants has gone -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz When user-space wants to read the first message, that is when user->seq is 0, and that message has gone, it currently automatically resets diff --git a/debian/patches-rt/printk-hack-out-emergency-loglevel-usage.patch b/debian/patches-rt/printk-hack-out-emergency-loglevel-usage.patch index e8ea9afe2df5..789e8408946c 100644 --- a/debian/patches-rt/printk-hack-out-emergency-loglevel-usage.patch +++ b/debian/patches-rt/printk-hack-out-emergency-loglevel-usage.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Tue, 3 Dec 2019 09:14:57 +0100 Subject: [PATCH] printk: hack out emergency loglevel usage -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Instead of using an emergency loglevel to determine if atomic messages should be printed, use oops_in_progress. This conforms diff --git a/debian/patches-rt/printk-handle-iterating-while-buffer-changing.patch b/debian/patches-rt/printk-handle-iterating-while-buffer-changing.patch index 62b93cfaafbe..cd3237990534 100644 --- a/debian/patches-rt/printk-handle-iterating-while-buffer-changing.patch +++ b/debian/patches-rt/printk-handle-iterating-while-buffer-changing.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Mon, 7 Oct 2019 16:20:39 +0200 Subject: [PATCH] printk: handle iterating while buffer changing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The syslog and kmsg_dump readers are provided buffers to fill. Both try to maximize the provided buffer usage by calculating the diff --git a/debian/patches-rt/printk-kmsg_dump-remove-mutex-usage.patch b/debian/patches-rt/printk-kmsg_dump-remove-mutex-usage.patch index 87f72d8c1d59..c9ed72c6996e 100644 --- a/debian/patches-rt/printk-kmsg_dump-remove-mutex-usage.patch +++ b/debian/patches-rt/printk-kmsg_dump-remove-mutex-usage.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Wed, 24 Apr 2019 16:36:04 +0200 Subject: [PATCH] printk: kmsg_dump: remove mutex usage -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The kmsg dumper can be called from any context, but the dumping helpers were using a mutex to synchronize the iterator against diff --git a/debian/patches-rt/printk-only-allow-kernel-to-emergency-message.patch b/debian/patches-rt/printk-only-allow-kernel-to-emergency-message.patch index 7ade2d1f7dc4..9fcb40aacbfb 100644 --- a/debian/patches-rt/printk-only-allow-kernel-to-emergency-message.patch +++ b/debian/patches-rt/printk-only-allow-kernel-to-emergency-message.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Sun, 17 Feb 2019 03:11:20 +0100 Subject: [PATCH] printk: only allow kernel to emergency message -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Emergency messages exist as a mechanism for the kernel to communicate critical information to users. It is not meant for diff --git a/debian/patches-rt/printk-print-rate-limitted-message-as-info.patch b/debian/patches-rt/printk-print-rate-limitted-message-as-info.patch index e0ec7222a463..95357d0287c2 100644 --- a/debian/patches-rt/printk-print-rate-limitted-message-as-info.patch +++ b/debian/patches-rt/printk-print-rate-limitted-message-as-info.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 22 Feb 2019 12:47:13 +0100 Subject: [PATCH] printk: print "rate-limitted" message as info -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz If messages which are injected via kmsg are dropped then they don't need to be printed as warnings. This is to avoid latency spikes if the diff --git a/debian/patches-rt/printk-set-deferred-to-default-loglevel-enforce-mask.patch b/debian/patches-rt/printk-set-deferred-to-default-loglevel-enforce-mask.patch index 0b7b35bd6a2a..d9661d23ea1e 100644 --- a/debian/patches-rt/printk-set-deferred-to-default-loglevel-enforce-mask.patch +++ b/debian/patches-rt/printk-set-deferred-to-default-loglevel-enforce-mask.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Thu, 14 Feb 2019 23:13:30 +0100 Subject: [PATCH] printk: set deferred to default loglevel, enforce mask -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz All messages printed via vpritnk_deferred() were being automatically treated as emergency messages. diff --git a/debian/patches-rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch b/debian/patches-rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch index d470456b2685..887ef5defd37 100644 --- a/debian/patches-rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch +++ b/debian/patches-rt/ptrace-fix-ptrace-vs-tasklist_lock-race.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 29 Aug 2013 18:21:04 +0200 Subject: ptrace: fix ptrace vs tasklist_lock race -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz As explained by Alexander Fyodorov <halcy@yandex.ru>: @@ -116,7 +116,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> spin_unlock_irq(&task->sighand->siglock); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1895,6 +1895,18 @@ int migrate_swap(struct task_struct *cur +@@ -1890,6 +1890,18 @@ int migrate_swap(struct task_struct *cur } #endif /* CONFIG_NUMA_BALANCING */ @@ -135,7 +135,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * wait_task_inactive - wait for a thread to unschedule. * -@@ -1939,7 +1951,7 @@ unsigned long wait_task_inactive(struct +@@ -1934,7 +1946,7 @@ unsigned long wait_task_inactive(struct * is actually now running somewhere else! */ while (task_running(rq, p)) { @@ -144,7 +144,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> return 0; cpu_relax(); } -@@ -1954,7 +1966,8 @@ unsigned long wait_task_inactive(struct +@@ -1949,7 +1961,8 @@ unsigned long wait_task_inactive(struct running = task_running(rq, p); queued = task_on_rq_queued(p); ncsw = 0; diff --git a/debian/patches-rt/radix-tree-use-local-locks.patch b/debian/patches-rt/radix-tree-use-local-locks.patch index 54ec51cbd7b4..3e884feaa456 100644 --- a/debian/patches-rt/radix-tree-use-local-locks.patch +++ b/debian/patches-rt/radix-tree-use-local-locks.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 25 Jan 2017 16:34:27 +0100 Subject: [PATCH] radix-tree: use local locks -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The preload functionality uses per-CPU variables and preempt-disable to ensure that it does not switch CPUs during its usage. This patch adds diff --git a/debian/patches-rt/random-make-it-work-on-rt.patch b/debian/patches-rt/random-make-it-work-on-rt.patch index 98841ee9a2a7..8e04cca82e01 100644 --- a/debian/patches-rt/random-make-it-work-on-rt.patch +++ b/debian/patches-rt/random-make-it-work-on-rt.patch @@ -1,7 +1,7 @@ Subject: random: Make it work on rt From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 21 Aug 2012 20:38:50 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Delegate the random insertion to the forced threaded interrupt handler. Store the return IP of the hard interrupt handler in the irq @@ -94,7 +94,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #include <asm/mshyperv.h> #include <linux/delay.h> -@@ -1205,6 +1206,8 @@ static void vmbus_isr(void) +@@ -1233,6 +1234,8 @@ static void vmbus_isr(void) void *page_addr = hv_cpu->synic_event_page; struct hv_message *msg; union hv_synic_event_flags *event; @@ -103,7 +103,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> bool handled = false; if (unlikely(page_addr == NULL)) -@@ -1249,7 +1252,7 @@ static void vmbus_isr(void) +@@ -1277,7 +1280,7 @@ static void vmbus_isr(void) tasklet_schedule(&hv_cpu->msg_dpc); } diff --git a/debian/patches-rt/rcu-Use-a-raw_spinlock_t-for-kfree-batching.patch b/debian/patches-rt/rcu-Use-a-raw_spinlock_t-for-kfree-batching.patch index 80bb9a773a1e..a1eccb24d815 100644 --- a/debian/patches-rt/rcu-Use-a-raw_spinlock_t-for-kfree-batching.patch +++ b/debian/patches-rt/rcu-Use-a-raw_spinlock_t-for-kfree-batching.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 14 Feb 2020 18:51:43 +0100 Subject: [PATCH] rcu: Use a raw_spinlock_t for kfree batching -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- @@ -100,7 +100,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } } -@@ -3768,7 +3768,7 @@ static void __init kfree_rcu_batch_init( +@@ -3780,7 +3780,7 @@ static void __init kfree_rcu_batch_init( for_each_possible_cpu(cpu) { struct kfree_rcu_cpu *krcp = per_cpu_ptr(&krc, cpu); diff --git a/debian/patches-rt/rcu-Use-rcuc-threads-on-PREEMPT_RT-as-we-did.patch b/debian/patches-rt/rcu-Use-rcuc-threads-on-PREEMPT_RT-as-we-did.patch index 5f5f81e727a4..5bf219b6f451 100644 --- a/debian/patches-rt/rcu-Use-rcuc-threads-on-PREEMPT_RT-as-we-did.patch +++ b/debian/patches-rt/rcu-Use-rcuc-threads-on-PREEMPT_RT-as-we-did.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Wed, 11 Sep 2019 17:57:28 +0100 Subject: [PATCH] rcu: Use rcuc threads on PREEMPT_RT as we did -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz While switching to the reworked RCU-thread code, it has been forgotten to enable the thread processing on -RT. diff --git a/debian/patches-rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/debian/patches-rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch index a5fa9e80d9ca..af51823c3f0f 100644 --- a/debian/patches-rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch +++ b/debian/patches-rt/rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch @@ -1,7 +1,7 @@ From: Julia Cartwright <julia@ni.com> Date: Wed, 12 Oct 2016 11:21:14 -0500 Subject: [PATCH] rcu: enable rcu_normal_after_boot by default for RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The forcing of an expedited grace period is an expensive and very RT-application unfriendly operation, as it forcibly preempts all running diff --git a/debian/patches-rt/rcu-make-RCU_BOOST-default-on-RT.patch b/debian/patches-rt/rcu-make-RCU_BOOST-default-on-RT.patch index ec281a3fdf62..7fde92729b19 100644 --- a/debian/patches-rt/rcu-make-RCU_BOOST-default-on-RT.patch +++ b/debian/patches-rt/rcu-make-RCU_BOOST-default-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Fri, 21 Mar 2014 20:19:05 +0100 Subject: rcu: make RCU_BOOST default on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Since it is no longer invoked from the softirq people run into OOM more often if the priority of the RCU thread is too low. Making boosting diff --git a/debian/patches-rt/rcutorture-Avoid-problematic-critical-section-nestin.patch b/debian/patches-rt/rcutorture-Avoid-problematic-critical-section-nestin.patch index a3d248558df9..ddad99f25c48 100644 --- a/debian/patches-rt/rcutorture-Avoid-problematic-critical-section-nestin.patch +++ b/debian/patches-rt/rcutorture-Avoid-problematic-critical-section-nestin.patch @@ -2,7 +2,7 @@ From: Scott Wood <swood@redhat.com> Date: Wed, 11 Sep 2019 17:57:29 +0100 Subject: [PATCH] rcutorture: Avoid problematic critical section nesting on RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz rcutorture was generating some nesting scenarios that are not reasonable. Constrain the state selection to avoid them. diff --git a/debian/patches-rt/rt-introduce-cpu-chill.patch b/debian/patches-rt/rt-introduce-cpu-chill.patch index 462b3527ccd3..23254649cc40 100644 --- a/debian/patches-rt/rt-introduce-cpu-chill.patch +++ b/debian/patches-rt/rt-introduce-cpu-chill.patch @@ -1,7 +1,7 @@ Subject: rt: Introduce cpu_chill() From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 07 Mar 2012 20:51:03 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Retry loops on RT might loop forever when the modifying side was preempted. Add cpu_chill() to replace cpu_relax(). cpu_chill() diff --git a/debian/patches-rt/rt-local-irq-lock.patch b/debian/patches-rt/rt-local-irq-lock.patch index a250e57586a3..83a6eeac1703 100644 --- a/debian/patches-rt/rt-local-irq-lock.patch +++ b/debian/patches-rt/rt-local-irq-lock.patch @@ -1,7 +1,7 @@ Subject: rt: Add local irq locks From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 20 Jun 2011 09:03:47 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Introduce locallock. For !RT this maps to preempt_disable()/ local_irq_disable() so there is not much that changes. For RT this will diff --git a/debian/patches-rt/rt-serial-warn-fix.patch b/debian/patches-rt/rt-serial-warn-fix.patch index 966a75d3f5e4..59aa6d0e84fe 100644 --- a/debian/patches-rt/rt-serial-warn-fix.patch +++ b/debian/patches-rt/rt-serial-warn-fix.patch @@ -1,7 +1,7 @@ Subject: rt: Improve the serial console PASS_LIMIT From: Ingo Molnar <mingo@elte.hu> Date: Wed Dec 14 13:05:54 CET 2011 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Beyond the warning: diff --git a/debian/patches-rt/rtmutex-Make-lock_killable-work.patch b/debian/patches-rt/rtmutex-Make-lock_killable-work.patch index e8bd21a4f9ed..d923331cae48 100644 --- a/debian/patches-rt/rtmutex-Make-lock_killable-work.patch +++ b/debian/patches-rt/rtmutex-Make-lock_killable-work.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 1 Apr 2017 12:50:59 +0200 Subject: [PATCH] rtmutex: Make lock_killable work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Locking an rt mutex killable does not work because signal handling is restricted to TASK_INTERRUPTIBLE. diff --git a/debian/patches-rt/rtmutex-Provide-rt_mutex_slowlock_locked.patch b/debian/patches-rt/rtmutex-Provide-rt_mutex_slowlock_locked.patch index ea1d940c158a..0b2b0b01446f 100644 --- a/debian/patches-rt/rtmutex-Provide-rt_mutex_slowlock_locked.patch +++ b/debian/patches-rt/rtmutex-Provide-rt_mutex_slowlock_locked.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 16:14:22 +0200 Subject: rtmutex: Provide rt_mutex_slowlock_locked() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz This is the inner-part of rt_mutex_slowlock(), required for rwsem-rt. diff --git a/debian/patches-rt/rtmutex-add-mutex-implementation-based-on-rtmutex.patch b/debian/patches-rt/rtmutex-add-mutex-implementation-based-on-rtmutex.patch index b7efd5dc0d0d..b33aa7bad2c0 100644 --- a/debian/patches-rt/rtmutex-add-mutex-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/rtmutex-add-mutex-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:17:03 +0200 Subject: rtmutex: add mutex implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/debian/patches-rt/rtmutex-add-rwlock-implementation-based-on-rtmutex.patch b/debian/patches-rt/rtmutex-add-rwlock-implementation-based-on-rtmutex.patch index 8888934d74d2..3c94bc08a243 100644 --- a/debian/patches-rt/rtmutex-add-rwlock-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/rtmutex-add-rwlock-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:18:06 +0200 Subject: rtmutex: add rwlock implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The implementation is bias-based, similar to the rwsem implementation. diff --git a/debian/patches-rt/rtmutex-add-rwsem-implementation-based-on-rtmutex.patch b/debian/patches-rt/rtmutex-add-rwsem-implementation-based-on-rtmutex.patch index f196694841b7..5e13118efeba 100644 --- a/debian/patches-rt/rtmutex-add-rwsem-implementation-based-on-rtmutex.patch +++ b/debian/patches-rt/rtmutex-add-rwsem-implementation-based-on-rtmutex.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:28:34 +0200 Subject: rtmutex: add rwsem implementation based on rtmutex -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The RT specific R/W semaphore implementation restricts the number of readers to one because a writer cannot block on multiple readers and inherit its diff --git a/debian/patches-rt/rtmutex-add-sleeping-lock-implementation.patch b/debian/patches-rt/rtmutex-add-sleeping-lock-implementation.patch index 7c67a4e6d8be..d6842e20fc8f 100644 --- a/debian/patches-rt/rtmutex-add-sleeping-lock-implementation.patch +++ b/debian/patches-rt/rtmutex-add-sleeping-lock-implementation.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:11:19 +0200 Subject: rtmutex: add sleeping lock implementation -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/debian/patches-rt/rtmutex-add-ww_mutex-addon-for-mutex-rt.patch b/debian/patches-rt/rtmutex-add-ww_mutex-addon-for-mutex-rt.patch index 00a69dbd8767..444d38240e51 100644 --- a/debian/patches-rt/rtmutex-add-ww_mutex-addon-for-mutex-rt.patch +++ b/debian/patches-rt/rtmutex-add-ww_mutex-addon-for-mutex-rt.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 12 Oct 2017 17:34:38 +0200 Subject: rtmutex: add ww_mutex addon for mutex-rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- diff --git a/debian/patches-rt/rtmutex-avoid-include-hell.patch b/debian/patches-rt/rtmutex-avoid-include-hell.patch index ac9b04786cec..7ded842e42c6 100644 --- a/debian/patches-rt/rtmutex-avoid-include-hell.patch +++ b/debian/patches-rt/rtmutex-avoid-include-hell.patch @@ -1,7 +1,7 @@ Subject: rtmutex: Avoid include hell From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 20:06:39 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Include only the required raw types. This avoids pulling in the complete spinlock header which in turn requires rtmutex.h at some point. diff --git a/debian/patches-rt/rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch b/debian/patches-rt/rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch index 30b1a6caf9e0..8ec8e3dfbe2b 100644 --- a/debian/patches-rt/rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch +++ b/debian/patches-rt/rtmutex-export-lockdep-less-version-of-rt_mutex-s-lo.patch @@ -2,7 +2,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 16:36:39 +0200 Subject: rtmutex: export lockdep-less version of rt_mutex's lock, trylock and unlock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Required for lock implementation ontop of rtmutex. diff --git a/debian/patches-rt/rtmutex-futex-prepare-rt.patch b/debian/patches-rt/rtmutex-futex-prepare-rt.patch index 45cc9ca5d91c..4437cbba9f63 100644 --- a/debian/patches-rt/rtmutex-futex-prepare-rt.patch +++ b/debian/patches-rt/rtmutex-futex-prepare-rt.patch @@ -1,7 +1,7 @@ Subject: rtmutex: Handle the various new futex race conditions From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 10 Jun 2011 11:04:15 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz RT opens a few new interesting race conditions in the rtmutex/futex combo due to futex hash bucket lock being a 'sleeping' spinlock and diff --git a/debian/patches-rt/rtmutex-lock-killable.patch b/debian/patches-rt/rtmutex-lock-killable.patch index b83d44b5b074..6c20df0483a1 100644 --- a/debian/patches-rt/rtmutex-lock-killable.patch +++ b/debian/patches-rt/rtmutex-lock-killable.patch @@ -1,7 +1,7 @@ Subject: rtmutex: Add rtmutex_lock_killable() From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 09 Jun 2011 11:43:52 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add "killable" type to rtmutex. We need this since rtmutex are used as "normal" mutexes which do use this type. diff --git a/debian/patches-rt/rtmutex-trylock-is-okay-on-RT.patch b/debian/patches-rt/rtmutex-trylock-is-okay-on-RT.patch index 207ed3a03c6d..55492572c16b 100644 --- a/debian/patches-rt/rtmutex-trylock-is-okay-on-RT.patch +++ b/debian/patches-rt/rtmutex-trylock-is-okay-on-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed 02 Dec 2015 11:34:07 +0100 Subject: rtmutex: trylock is okay on -RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz non-RT kernel could deadlock on rt_mutex_trylock() in softirq context. On -RT we don't run softirqs in IRQ context but in thread context so it is diff --git a/debian/patches-rt/rtmutex-wire-up-RT-s-locking.patch b/debian/patches-rt/rtmutex-wire-up-RT-s-locking.patch index e2ad46437cb1..928f2e568e38 100644 --- a/debian/patches-rt/rtmutex-wire-up-RT-s-locking.patch +++ b/debian/patches-rt/rtmutex-wire-up-RT-s-locking.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 12 Oct 2017 17:31:14 +0200 Subject: rtmutex: wire up RT's locking -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> diff --git a/debian/patches-rt/rtmutex_dont_include_rcu.patch b/debian/patches-rt/rtmutex_dont_include_rcu.patch index c961a4365a03..ac842cedce49 100644 --- a/debian/patches-rt/rtmutex_dont_include_rcu.patch +++ b/debian/patches-rt/rtmutex_dont_include_rcu.patch @@ -1,6 +1,6 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Subject: rbtree: don't include the rcu header -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The RCU header pulls in spinlock.h and fails due not yet defined types: diff --git a/debian/patches-rt/sched-Provide-cant_migrate.patch b/debian/patches-rt/sched-Provide-cant_migrate.patch index b4f551ef9750..878ac1d52a83 100644 --- a/debian/patches-rt/sched-Provide-cant_migrate.patch +++ b/debian/patches-rt/sched-Provide-cant_migrate.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 14 Feb 2020 14:39:19 +0100 Subject: [PATCH] sched: Provide cant_migrate() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Some code pathes rely on preempt_disable() to prevent migration on a non RT enabled kernel. These preempt_disable/enable() pairs are substituted by diff --git a/debian/patches-rt/sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch b/debian/patches-rt/sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch index 976941f980c5..fe11b3562208 100644 --- a/debian/patches-rt/sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch +++ b/debian/patches-rt/sched-__set_cpus_allowed_ptr-Check-cpus_mask-not-cpu.patch @@ -2,7 +2,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 27 Jul 2019 00:56:32 -0500 Subject: [PATCH] sched: __set_cpus_allowed_ptr(): Check cpus_mask, not cpus_ptr -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz This function is concerned with the long-term cpu mask, not the transitory mask the task might have while migrate disabled. Before @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1649,7 +1649,7 @@ static int __set_cpus_allowed_ptr(struct +@@ -1644,7 +1644,7 @@ static int __set_cpus_allowed_ptr(struct goto out; } diff --git a/debian/patches-rt/sched-disable-rt-group-sched-on-rt.patch b/debian/patches-rt/sched-disable-rt-group-sched-on-rt.patch index 60034c0218f4..981f4c318429 100644 --- a/debian/patches-rt/sched-disable-rt-group-sched-on-rt.patch +++ b/debian/patches-rt/sched-disable-rt-group-sched-on-rt.patch @@ -1,7 +1,7 @@ Subject: sched: Disable CONFIG_RT_GROUP_SCHED on RT From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 17:03:52 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Carsten reported problems when running: diff --git a/debian/patches-rt/sched-disable-ttwu-queue.patch b/debian/patches-rt/sched-disable-ttwu-queue.patch index 2e29d5157e85..4865f41fef6a 100644 --- a/debian/patches-rt/sched-disable-ttwu-queue.patch +++ b/debian/patches-rt/sched-disable-ttwu-queue.patch @@ -1,7 +1,7 @@ Subject: sched: Disable TTWU_QUEUE on RT From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 13 Sep 2011 16:42:35 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The queued remote wakeup mechanism can introduce rather large latencies if the number of migrated tasks is high. Disable it for RT. diff --git a/debian/patches-rt/sched-limit-nr-migrate.patch b/debian/patches-rt/sched-limit-nr-migrate.patch index 59cd691d9581..fe07fe890c79 100644 --- a/debian/patches-rt/sched-limit-nr-migrate.patch +++ b/debian/patches-rt/sched-limit-nr-migrate.patch @@ -1,7 +1,7 @@ Subject: sched: Limit the number of task migrations per batch From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 06 Jun 2011 12:12:51 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Put an upper limit on the number of tasks which are migrated per batch to avoid large latencies. diff --git a/debian/patches-rt/sched-might-sleep-do-not-account-rcu-depth.patch b/debian/patches-rt/sched-might-sleep-do-not-account-rcu-depth.patch index eadf89216a73..e4ef48624306 100644 --- a/debian/patches-rt/sched-might-sleep-do-not-account-rcu-depth.patch +++ b/debian/patches-rt/sched-might-sleep-do-not-account-rcu-depth.patch @@ -1,7 +1,7 @@ Subject: sched: Do not account rcu_preempt_depth on RT in might_sleep() From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 07 Jun 2011 09:19:06 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz RT changes the rcu_preempt_depth semantics, so we cannot check for it in might_sleep(). @@ -37,7 +37,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* Internal to kernel */ --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -6774,7 +6774,7 @@ void __init sched_init(void) +@@ -6768,7 +6768,7 @@ void __init sched_init(void) #ifdef CONFIG_DEBUG_ATOMIC_SLEEP static inline int preempt_count_equals(int preempt_offset) { diff --git a/debian/patches-rt/sched-migrate_enable-Remove-__schedule-call.patch b/debian/patches-rt/sched-migrate_enable-Remove-__schedule-call.patch index 5e170b1b52cf..5de5170bf02f 100644 --- a/debian/patches-rt/sched-migrate_enable-Remove-__schedule-call.patch +++ b/debian/patches-rt/sched-migrate_enable-Remove-__schedule-call.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Fri, 24 Jan 2020 06:11:47 -0500 Subject: [PATCH] sched: migrate_enable: Remove __schedule() call -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz We can rely on preempt_enable() to schedule. Besides simplifying the code, this potentially allows sequences such as the following to be @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -8192,7 +8192,6 @@ void migrate_enable(void) +@@ -8186,7 +8186,6 @@ void migrate_enable(void) stop_one_cpu_nowait(task_cpu(p), migration_cpu_stop, arg, work); diff --git a/debian/patches-rt/sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch b/debian/patches-rt/sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch index ba3173a102d2..101967588530 100644 --- a/debian/patches-rt/sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch +++ b/debian/patches-rt/sched-migrate_enable-Use-per-cpu-cpu_stop_work.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Fri, 24 Jan 2020 06:11:46 -0500 Subject: [PATCH] sched: migrate_enable: Use per-cpu cpu_stop_work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Commit e6c287b1512d ("sched: migrate_enable: Use stop_one_cpu_nowait()") adds a busy wait to deal with an edge case where the migrated thread @@ -27,7 +27,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -8133,6 +8133,9 @@ static void migrate_disabled_sched(struc +@@ -8127,6 +8127,9 @@ static void migrate_disabled_sched(struc p->migrate_disable_scheduled = 1; } @@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> void migrate_enable(void) { struct task_struct *p = current; -@@ -8171,22 +8174,25 @@ void migrate_enable(void) +@@ -8165,22 +8168,25 @@ void migrate_enable(void) WARN_ON(smp_processor_id() != cpu); if (!is_cpu_allowed(p, cpu)) { diff --git a/debian/patches-rt/sched-migrate_enable-Use-stop_one_cpu_nowait.patch b/debian/patches-rt/sched-migrate_enable-Use-stop_one_cpu_nowait.patch index 743a449c5547..22a8246d6b81 100644 --- a/debian/patches-rt/sched-migrate_enable-Use-stop_one_cpu_nowait.patch +++ b/debian/patches-rt/sched-migrate_enable-Use-stop_one_cpu_nowait.patch @@ -1,7 +1,7 @@ From: Scott Wood <swood@redhat.com> Date: Sat, 12 Oct 2019 01:52:14 -0500 Subject: [PATCH] sched: migrate_enable: Use stop_one_cpu_nowait() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz migrate_enable() can be called with current->state != TASK_RUNNING. Avoid clobbering the existing state by using stop_one_cpu_nowait(). @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> int stop_one_cpu(unsigned int cpu, cpu_stop_fn_t fn, void *arg); --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -1532,6 +1532,7 @@ static struct rq *move_queued_task(struc +@@ -1527,6 +1527,7 @@ static struct rq *move_queued_task(struc struct migration_arg { struct task_struct *task; int dest_cpu; @@ -39,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> }; /* -@@ -1567,6 +1568,11 @@ static int migration_cpu_stop(void *data +@@ -1562,6 +1563,11 @@ static int migration_cpu_stop(void *data struct task_struct *p = arg->task; struct rq *rq = this_rq(); struct rq_flags rf; @@ -51,7 +51,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> /* * The original target CPU might have gone down and we might -@@ -1589,9 +1595,9 @@ static int migration_cpu_stop(void *data +@@ -1584,9 +1590,9 @@ static int migration_cpu_stop(void *data */ if (task_rq(p) == rq) { if (task_on_rq_queued(p)) @@ -63,7 +63,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> } rq_unlock(rq, &rf); raw_spin_unlock(&p->pi_lock); -@@ -8165,7 +8171,8 @@ void migrate_enable(void) +@@ -8159,7 +8165,8 @@ void migrate_enable(void) WARN_ON(smp_processor_id() != cpu); if (!is_cpu_allowed(p, cpu)) { @@ -73,7 +73,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> struct rq_flags rf; rq = task_rq_lock(p, &rf); -@@ -8173,13 +8180,13 @@ void migrate_enable(void) +@@ -8167,13 +8174,13 @@ void migrate_enable(void) arg.dest_cpu = select_fallback_rq(cpu, p); task_rq_unlock(rq, p, &rf); diff --git a/debian/patches-rt/sched-mmdrop-delayed.patch b/debian/patches-rt/sched-mmdrop-delayed.patch index d162eafe8086..56e9603bc76d 100644 --- a/debian/patches-rt/sched-mmdrop-delayed.patch +++ b/debian/patches-rt/sched-mmdrop-delayed.patch @@ -1,7 +1,7 @@ Subject: sched: Move mmdrop to RCU on RT From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 06 Jun 2011 12:20:33 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Takes sleeping locks and calls into the memory allocator, so nothing we want to do in task switch and oder atomic contexts. @@ -78,7 +78,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> struct mm_struct *mm; --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -3237,9 +3237,13 @@ static struct rq *finish_task_switch(str +@@ -3232,9 +3232,13 @@ static struct rq *finish_task_switch(str * provided by mmdrop(), * - a sync_core for SYNC_CORE. */ @@ -93,7 +93,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } if (unlikely(prev_state == TASK_DEAD)) { if (prev->sched_class->task_dead) -@@ -6181,6 +6185,8 @@ void sched_setnuma(struct task_struct *p +@@ -6175,6 +6179,8 @@ void sched_setnuma(struct task_struct *p #endif /* CONFIG_NUMA_BALANCING */ #ifdef CONFIG_HOTPLUG_CPU @@ -102,7 +102,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * Ensure that the idle task is using init_mm right before its CPU goes * offline. -@@ -6196,7 +6202,11 @@ void idle_task_exit(void) +@@ -6190,7 +6196,11 @@ void idle_task_exit(void) current->active_mm = &init_mm; finish_arch_post_lock_switch(); } @@ -115,7 +115,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } /* -@@ -6502,6 +6512,10 @@ int sched_cpu_dying(unsigned int cpu) +@@ -6496,6 +6506,10 @@ int sched_cpu_dying(unsigned int cpu) update_max_interval(); nohz_balance_exit_idle(rq); hrtick_clear(rq); diff --git a/debian/patches-rt/sched-rt-Provide-migrate_disable-enable-inlines.patch b/debian/patches-rt/sched-rt-Provide-migrate_disable-enable-inlines.patch index 249cde595287..eec99272e0d4 100644 --- a/debian/patches-rt/sched-rt-Provide-migrate_disable-enable-inlines.patch +++ b/debian/patches-rt/sched-rt-Provide-migrate_disable-enable-inlines.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 8 Feb 2020 20:48:29 +0100 Subject: [PATCH] sched/rt: Provide migrate_disable/enable() inlines -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Code which solely needs to prevent migration of a task uses preempt_disable()/enable() pairs. This is the only reliable way to do so diff --git a/debian/patches-rt/sched-rt-mutex-wakeup.patch b/debian/patches-rt/sched-rt-mutex-wakeup.patch index 44f8385d461d..f3d6b07a24bd 100644 --- a/debian/patches-rt/sched-rt-mutex-wakeup.patch +++ b/debian/patches-rt/sched-rt-mutex-wakeup.patch @@ -1,7 +1,7 @@ Subject: sched: Add saved_state for tasks blocked on sleeping locks From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 25 Jun 2011 09:21:04 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Spinlocks are state preserving in !RT. RT changes the state when a task gets blocked on a lock. So we need to remember the state before @@ -37,7 +37,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #ifdef CONFIG_SMP --- a/kernel/sched/core.c +++ b/kernel/sched/core.c -@@ -2519,6 +2519,8 @@ try_to_wake_up(struct task_struct *p, un +@@ -2514,6 +2514,8 @@ try_to_wake_up(struct task_struct *p, un int cpu, success = 0; preempt_disable(); @@ -46,7 +46,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> if (p == current) { /* * We're waking current, this means 'p->on_rq' and 'task_cpu(p) -@@ -2541,7 +2543,7 @@ try_to_wake_up(struct task_struct *p, un +@@ -2536,7 +2538,7 @@ try_to_wake_up(struct task_struct *p, un trace_sched_wakeup(p); goto out; } @@ -55,7 +55,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * If we are going to wake up a thread waiting for CONDITION we * need to ensure that CONDITION=1 done by the caller can not be -@@ -2550,8 +2552,27 @@ try_to_wake_up(struct task_struct *p, un +@@ -2545,8 +2547,27 @@ try_to_wake_up(struct task_struct *p, un */ raw_spin_lock_irqsave(&p->pi_lock, flags); smp_mb__after_spinlock(); @@ -85,7 +85,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> trace_sched_waking(p); -@@ -2643,9 +2664,12 @@ try_to_wake_up(struct task_struct *p, un +@@ -2638,9 +2659,12 @@ try_to_wake_up(struct task_struct *p, un ttwu_queue(p, cpu, wake_flags); unlock: raw_spin_unlock_irqrestore(&p->pi_lock, flags); @@ -98,7 +98,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> preempt_enable(); return success; -@@ -2668,6 +2692,18 @@ int wake_up_process(struct task_struct * +@@ -2663,6 +2687,18 @@ int wake_up_process(struct task_struct * } EXPORT_SYMBOL(wake_up_process); @@ -119,7 +119,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return try_to_wake_up(p, state, 0); --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h -@@ -1644,6 +1644,7 @@ static inline int task_on_rq_migrating(s +@@ -1650,6 +1650,7 @@ static inline int task_on_rq_migrating(s #define WF_SYNC 0x01 /* Waker goes to sleep after wakeup */ #define WF_FORK 0x02 /* Child wakeup after fork */ #define WF_MIGRATED 0x4 /* Internal use, task got migrated */ diff --git a/debian/patches-rt/scsi-fcoe-rt-aware.patch b/debian/patches-rt/scsi-fcoe-rt-aware.patch index 278e62d6bd53..b42945e9e43d 100644 --- a/debian/patches-rt/scsi-fcoe-rt-aware.patch +++ b/debian/patches-rt/scsi-fcoe-rt-aware.patch @@ -1,7 +1,7 @@ Subject: scsi/fcoe: Make RT aware. From: Thomas Gleixner <tglx@linutronix.de> Date: Sat, 12 Nov 2011 14:00:48 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Do not disable preemption while taking sleeping locks. All user look safe for migrate_diable() only. diff --git a/debian/patches-rt/seqlock-prevent-rt-starvation.patch b/debian/patches-rt/seqlock-prevent-rt-starvation.patch index 15a6153960f5..305cfa13319a 100644 --- a/debian/patches-rt/seqlock-prevent-rt-starvation.patch +++ b/debian/patches-rt/seqlock-prevent-rt-starvation.patch @@ -1,7 +1,7 @@ Subject: seqlock: Prevent rt starvation From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 22 Feb 2012 12:03:30 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz If a low prio writer gets preempted while holding the seqlock write locked, a high prio reader spins forever on RT. diff --git a/debian/patches-rt/serial-8250-export-symbols-which-are-used-by-symbols.patch b/debian/patches-rt/serial-8250-export-symbols-which-are-used-by-symbols.patch index b873a5e6fc68..3ed3baf6d230 100644 --- a/debian/patches-rt/serial-8250-export-symbols-which-are-used-by-symbols.patch +++ b/debian/patches-rt/serial-8250-export-symbols-which-are-used-by-symbols.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 16 Feb 2019 09:02:00 +0100 Subject: [PATCH] serial: 8250: export symbols which are used by symbols -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- diff --git a/debian/patches-rt/serial-8250-fsl-ingenic-mtk-fix-atomic-console.patch b/debian/patches-rt/serial-8250-fsl-ingenic-mtk-fix-atomic-console.patch index d785cf74d30a..29df9145f5b7 100644 --- a/debian/patches-rt/serial-8250-fsl-ingenic-mtk-fix-atomic-console.patch +++ b/debian/patches-rt/serial-8250-fsl-ingenic-mtk-fix-atomic-console.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Fri, 10 Jan 2020 16:45:32 +0106 Subject: [PATCH] serial: 8250: fsl/ingenic/mtk: fix atomic console -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz A few 8250 implementations have their own IER access. If the port is a console, wrap the accesses with console_atomic_lock. diff --git a/debian/patches-rt/serial-8250-only-atomic-lock-for-console.patch b/debian/patches-rt/serial-8250-only-atomic-lock-for-console.patch index 1ab3b1e7c2ae..d0867db062f1 100644 --- a/debian/patches-rt/serial-8250-only-atomic-lock-for-console.patch +++ b/debian/patches-rt/serial-8250-only-atomic-lock-for-console.patch @@ -1,7 +1,7 @@ From: John Ogness <john.ogness@linutronix.de> Date: Fri, 10 Jan 2020 16:45:31 +0106 Subject: [PATCH] serial: 8250: only atomic lock for console -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The atomic console implementation requires that IER is synchronized between atomic and non-atomic usage. However, it was implemented such diff --git a/debian/patches-rt/serial-8250-remove-that-trylock-in-serial8250_consol.patch b/debian/patches-rt/serial-8250-remove-that-trylock-in-serial8250_consol.patch index 2cd63c060444..d80a5dfdb6fb 100644 --- a/debian/patches-rt/serial-8250-remove-that-trylock-in-serial8250_consol.patch +++ b/debian/patches-rt/serial-8250-remove-that-trylock-in-serial8250_consol.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 14 Feb 2019 17:38:24 +0100 Subject: [PATCH] serial: 8250: remove that trylock in serial8250_console_write_atomic() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz This does not work as rtmutex in NMI context. As per John, it is not needed. diff --git a/debian/patches-rt/series b/debian/patches-rt/series index 4551322aad22..b78a5694f9b2 100644 --- a/debian/patches-rt/series +++ b/debian/patches-rt/series @@ -154,7 +154,6 @@ tpm-remove-tpm_dev_wq_lock.patch # Almost ready, needs final polishing ############################################################ rcu-Use-a-raw_spinlock_t-for-kfree-batching.patch -mm-Warn-on-memory-allocation-in-non-preemptible-cont.patch ############################################################### # Stuff broken upstream and upstream wants something different @@ -242,6 +241,7 @@ oleg-signal-rt-fix.patch 0002-Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch 0003-mm-SLxB-change-list_lock-to-raw_spinlock_t.patch 0004-mm-SLUB-delay-giving-back-empty-slubs-to-IRQ-enabled.patch +mm-slub-Always-flush-the-delayed-empty-slubs-in-flus.patch mm-page_alloc-rt-friendly-per-cpu-pages.patch # MM SWAP @@ -251,6 +251,8 @@ mm-convert-swap-to-percpu-locked.patch mm-enable-slub.patch slub-enable-irqs-for-no-wait.patch slub-disable-SLUB_CPU_PARTIAL.patch +mm-Warn-on-memory-allocation-in-non-preemptible-cont.patch +mm-Don-t-warn-about-atomic-memory-allocations-during.patch # MM mm-memcontrol-Don-t-call-schedule_work_on-in-preempt.patch @@ -355,8 +357,9 @@ srcu-replace-local_irqsave-with-a-locallock.patch rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch rcutorture-Avoid-problematic-critical-section-nestin.patch -# Can this be more pretty? Revisit with current RT +# Drop rt-serial-warn-fix.patch +Revert-rt-Improve-the-serial-console-PASS_LIMIT.patch # CPU get light # akpm diff --git a/debian/patches-rt/signal-Prevent-double-free-of-user-struct.patch b/debian/patches-rt/signal-Prevent-double-free-of-user-struct.patch index 69cbac14ef7d..b4d303615c70 100644 --- a/debian/patches-rt/signal-Prevent-double-free-of-user-struct.patch +++ b/debian/patches-rt/signal-Prevent-double-free-of-user-struct.patch @@ -1,7 +1,7 @@ From: Matt Fleming <matt@codeblueprint.co.uk> Date: Tue, 7 Apr 2020 10:54:13 +0100 Subject: [PATCH] signal: Prevent double-free of user struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The way user struct reference counting works changed significantly with, diff --git a/debian/patches-rt/signal-revert-ptrace-preempt-magic.patch b/debian/patches-rt/signal-revert-ptrace-preempt-magic.patch index 7df3394260ed..2fd6da54e9f8 100644 --- a/debian/patches-rt/signal-revert-ptrace-preempt-magic.patch +++ b/debian/patches-rt/signal-revert-ptrace-preempt-magic.patch @@ -1,7 +1,7 @@ Subject: signal: Revert ptrace preempt magic From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 21 Sep 2011 19:57:12 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Upstream commit '53da1d9456fe7f8 fix ptrace slowness' is nothing more than a bandaid around the ptrace design trainwreck. It's not a @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/kernel/signal.c +++ b/kernel/signal.c -@@ -2202,16 +2202,8 @@ static void ptrace_stop(int exit_code, i +@@ -2206,16 +2206,8 @@ static void ptrace_stop(int exit_code, i if (gstop_done && ptrace_reparented(current)) do_notify_parent_cldstop(current, false, why); diff --git a/debian/patches-rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch b/debian/patches-rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch index ae773a70cce1..d23f2d60bdad 100644 --- a/debian/patches-rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch +++ b/debian/patches-rt/signals-allow-rt-tasks-to-cache-one-sigqueue-struct.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 3 Jul 2009 08:44:56 -0500 Subject: signals: Allow rt tasks to cache one sigqueue struct -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz To avoid allocation allow rt tasks to cache one sigqueue struct in task struct. diff --git a/debian/patches-rt/skbufhead-raw-lock.patch b/debian/patches-rt/skbufhead-raw-lock.patch index 701081394b61..398b1b17a863 100644 --- a/debian/patches-rt/skbufhead-raw-lock.patch +++ b/debian/patches-rt/skbufhead-raw-lock.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Tue, 12 Jul 2011 15:38:34 +0200 Subject: net: Use skbufhead with raw lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Use the rps lock as rawlock so we can keep irq-off regions. It looks low latency. However we can't kfree() from this context therefore we defer this @@ -66,7 +66,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #endif } -@@ -5502,7 +5502,7 @@ static void flush_backlog(struct work_st +@@ -5503,7 +5503,7 @@ static void flush_backlog(struct work_st skb_queue_walk_safe(&sd->input_pkt_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->input_pkt_queue); @@ -75,7 +75,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> input_queue_head_incr(sd); } } -@@ -5512,11 +5512,14 @@ static void flush_backlog(struct work_st +@@ -5513,11 +5513,14 @@ static void flush_backlog(struct work_st skb_queue_walk_safe(&sd->process_queue, skb, tmp) { if (skb->dev->reg_state == NETREG_UNREGISTERING) { __skb_unlink(skb, &sd->process_queue); @@ -91,7 +91,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } static void flush_all_backlogs(void) -@@ -6137,7 +6140,9 @@ static int process_backlog(struct napi_s +@@ -6138,7 +6141,9 @@ static int process_backlog(struct napi_s while (again) { struct sk_buff *skb; @@ -101,7 +101,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> rcu_read_lock(); __netif_receive_skb(skb); rcu_read_unlock(); -@@ -6145,9 +6150,9 @@ static int process_backlog(struct napi_s +@@ -6146,9 +6151,9 @@ static int process_backlog(struct napi_s if (++work >= quota) return work; @@ -112,7 +112,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> rps_lock(sd); if (skb_queue_empty(&sd->input_pkt_queue)) { /* -@@ -6629,13 +6634,21 @@ static __latent_entropy void net_rx_acti +@@ -6630,13 +6635,21 @@ static __latent_entropy void net_rx_acti unsigned long time_limit = jiffies + usecs_to_jiffies(netdev_budget_usecs); int budget = netdev_budget; @@ -134,7 +134,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> for (;;) { struct napi_struct *n; -@@ -10185,10 +10198,13 @@ static int dev_cpu_dead(unsigned int old +@@ -10186,10 +10199,13 @@ static int dev_cpu_dead(unsigned int old netif_rx_ni(skb); input_queue_head_incr(oldsd); } @@ -149,7 +149,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return 0; } -@@ -10501,8 +10517,9 @@ static int __init net_dev_init(void) +@@ -10502,8 +10518,9 @@ static int __init net_dev_init(void) INIT_WORK(flush, flush_backlog); diff --git a/debian/patches-rt/slub-disable-SLUB_CPU_PARTIAL.patch b/debian/patches-rt/slub-disable-SLUB_CPU_PARTIAL.patch index d548156b58b2..ccc74e97803c 100644 --- a/debian/patches-rt/slub-disable-SLUB_CPU_PARTIAL.patch +++ b/debian/patches-rt/slub-disable-SLUB_CPU_PARTIAL.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 15 Apr 2015 19:00:47 +0200 Subject: slub: Disable SLUB_CPU_PARTIAL -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 87, name: rcuop/7 diff --git a/debian/patches-rt/slub-enable-irqs-for-no-wait.patch b/debian/patches-rt/slub-enable-irqs-for-no-wait.patch index 24ba6b3db0c4..6bae07749646 100644 --- a/debian/patches-rt/slub-enable-irqs-for-no-wait.patch +++ b/debian/patches-rt/slub-enable-irqs-for-no-wait.patch @@ -1,7 +1,7 @@ Subject: slub: Enable irqs for __GFP_WAIT From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 09 Jan 2013 12:08:15 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz SYSTEM_RUNNING might be too late for enabling interrupts. Allocations with GFP_WAIT can happen before that. So use this as an indicator. diff --git a/debian/patches-rt/softirq-Add-preemptible-softirq.patch b/debian/patches-rt/softirq-Add-preemptible-softirq.patch index e9b24950e855..2d38c8525ee6 100644 --- a/debian/patches-rt/softirq-Add-preemptible-softirq.patch +++ b/debian/patches-rt/softirq-Add-preemptible-softirq.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 20 May 2019 13:09:08 +0200 Subject: [PATCH] softirq: Add preemptible softirq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add preemptible softirq for RT's needs. By removing the softirq count from the preempt counter, the softirq becomes preemptible. A per-CPU diff --git a/debian/patches-rt/softirq-Avoid-a-cancel-dead-lock-in-tasklet-handling.patch b/debian/patches-rt/softirq-Avoid-a-cancel-dead-lock-in-tasklet-handling.patch index c952baf7c47c..7eb8bd10b127 100644 --- a/debian/patches-rt/softirq-Avoid-a-cancel-dead-lock-in-tasklet-handling.patch +++ b/debian/patches-rt/softirq-Avoid-a-cancel-dead-lock-in-tasklet-handling.patch @@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Sat, 22 Jun 2019 00:09:22 +0200 Subject: [PATCH] softirq: Avoid a cancel dead-lock in tasklet handling due to preemptible-softirq -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz A pending / active tasklet which is preempted by a task on the same CPU will spin indefinitely because the tasklet makes no progress. diff --git a/debian/patches-rt/softirq-disable-softirq-stacks-for-rt.patch b/debian/patches-rt/softirq-disable-softirq-stacks-for-rt.patch index 84ae614cbd2a..2167b907f6cb 100644 --- a/debian/patches-rt/softirq-disable-softirq-stacks-for-rt.patch +++ b/debian/patches-rt/softirq-disable-softirq-stacks-for-rt.patch @@ -1,7 +1,7 @@ Subject: softirq: Disable softirq stacks for RT From: Thomas Gleixner <tglx@linutronix.de> Date: Mon, 18 Jul 2011 13:59:17 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Disable extra stacks for softirqs. We want to preempt softirqs and having them on special IRQ-stack does not make this easier. diff --git a/debian/patches-rt/softirq-preempt-fix-3-re.patch b/debian/patches-rt/softirq-preempt-fix-3-re.patch index 236183d9e201..3edfba4c4135 100644 --- a/debian/patches-rt/softirq-preempt-fix-3-re.patch +++ b/debian/patches-rt/softirq-preempt-fix-3-re.patch @@ -1,7 +1,7 @@ Subject: softirq: Check preemption after reenabling interrupts From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 13 Nov 2011 17:17:09 +0100 (CET) -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz raise_softirq_irqoff() disables interrupts and wakes the softirq daemon, but after reenabling interrupts there is no preemption check, @@ -120,7 +120,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } EXPORT_SYMBOL(__dev_kfree_skb_irq); -@@ -4477,6 +4479,7 @@ static int enqueue_to_backlog(struct sk_ +@@ -4478,6 +4480,7 @@ static int enqueue_to_backlog(struct sk_ rps_unlock(sd); local_irq_restore(flags); @@ -128,7 +128,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> atomic_long_inc(&skb->dev->rx_dropped); kfree_skb(skb); -@@ -6099,12 +6102,14 @@ static void net_rps_action_and_irq_enabl +@@ -6100,12 +6103,14 @@ static void net_rps_action_and_irq_enabl sd->rps_ipi_list = NULL; local_irq_enable(); @@ -143,7 +143,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } static bool sd_has_rps_ipi_waiting(struct softnet_data *sd) -@@ -6182,6 +6187,7 @@ void __napi_schedule(struct napi_struct +@@ -6183,6 +6188,7 @@ void __napi_schedule(struct napi_struct local_irq_save(flags); ____napi_schedule(this_cpu_ptr(&softnet_data), n); local_irq_restore(flags); @@ -151,7 +151,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } EXPORT_SYMBOL(__napi_schedule); -@@ -10167,6 +10173,7 @@ static int dev_cpu_dead(unsigned int old +@@ -10168,6 +10174,7 @@ static int dev_cpu_dead(unsigned int old raise_softirq_irqoff(NET_TX_SOFTIRQ); local_irq_enable(); diff --git a/debian/patches-rt/spinlock-types-separate-raw.patch b/debian/patches-rt/spinlock-types-separate-raw.patch index 74e238b06a6d..b4862ba3ab80 100644 --- a/debian/patches-rt/spinlock-types-separate-raw.patch +++ b/debian/patches-rt/spinlock-types-separate-raw.patch @@ -1,7 +1,7 @@ Subject: spinlock: Split the lock types header From: Thomas Gleixner <tglx@linutronix.de> Date: Wed, 29 Jun 2011 19:34:01 +0200 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Split raw_spinlock into its own file and the remaining spinlock_t into its own non-RT header. The non-RT header will be replaced later by sleeping diff --git a/debian/patches-rt/squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch b/debian/patches-rt/squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch index 00d8d540f071..b0ad92aea99b 100644 --- a/debian/patches-rt/squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch +++ b/debian/patches-rt/squashfs-make-use-of-local-lock-in-multi_cpu-decompr.patch @@ -2,7 +2,7 @@ From: Julia Cartwright <julia@ni.com> Date: Mon, 7 May 2018 08:58:57 -0500 Subject: [PATCH] squashfs: make use of local lock in multi_cpu decompressor -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Currently, the squashfs multi_cpu decompressor makes use of get_cpu_ptr()/put_cpu_ptr(), which unconditionally disable preemption diff --git a/debian/patches-rt/srcu-replace-local_irqsave-with-a-locallock.patch b/debian/patches-rt/srcu-replace-local_irqsave-with-a-locallock.patch index 2bbf33f3d530..4a68b5c723d7 100644 --- a/debian/patches-rt/srcu-replace-local_irqsave-with-a-locallock.patch +++ b/debian/patches-rt/srcu-replace-local_irqsave-with-a-locallock.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 12 Oct 2017 18:37:12 +0200 Subject: [PATCH] srcu: replace local_irqsave() with a locallock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz There are two instances which disable interrupts in order to become a stable this_cpu_ptr() pointer. The restore part is coupled with diff --git a/debian/patches-rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/debian/patches-rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch index c54081cfd71a..91fa8947fb9d 100644 --- a/debian/patches-rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch +++ b/debian/patches-rt/sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch @@ -1,7 +1,7 @@ From: Mike Galbraith <umgwanakikbuti@gmail.com> Date: Wed, 18 Feb 2015 16:05:28 +0100 Subject: sunrpc: Make svc_xprt_do_enqueue() use get_cpu_light() -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:915 |in_atomic(): 1, irqs_disabled(): 0, pid: 3194, name: rpc.nfsd diff --git a/debian/patches-rt/sysfs-realtime-entry.patch b/debian/patches-rt/sysfs-realtime-entry.patch index b034a340c563..469414cb6bbb 100644 --- a/debian/patches-rt/sysfs-realtime-entry.patch +++ b/debian/patches-rt/sysfs-realtime-entry.patch @@ -1,7 +1,7 @@ Subject: sysfs: Add /sys/kernel/realtime entry From: Clark Williams <williams@redhat.com> Date: Sat Jul 30 21:55:53 2011 -0500 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Add a /sys/kernel entry to indicate that the kernel is a realtime kernel. diff --git a/debian/patches-rt/thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch b/debian/patches-rt/thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch index ab3de0065c6d..e9174659215a 100644 --- a/debian/patches-rt/thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch +++ b/debian/patches-rt/thermal-x86_pkg_temp-make-pkg_temp_lock-a-raw-spinlo.patch @@ -1,7 +1,7 @@ From: Clark Williams <williams@redhat.com> Date: Mon, 15 Jul 2019 15:25:00 -0500 Subject: [PATCH] thermal/x86_pkg_temp: Make pkg_temp_lock a raw_spinlock_t -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The spinlock pkg_temp_lock has the potential of being taken in atomic context because it can be acquired from the thermal IRQ vector. diff --git a/debian/patches-rt/time-Properly-initialize-nohz_full_kick_work.patch b/debian/patches-rt/time-Properly-initialize-nohz_full_kick_work.patch index 89a5da2b1641..17ec8e07f26b 100644 --- a/debian/patches-rt/time-Properly-initialize-nohz_full_kick_work.patch +++ b/debian/patches-rt/time-Properly-initialize-nohz_full_kick_work.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 16 Apr 2020 11:37:51 +0200 Subject: [PATCH] time: Properly initialize nohz_full_kick_work -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz The ->flags member is of atomic_t type, use the proper initialisation method. diff --git a/debian/patches-rt/timekeeping-split-jiffies-lock.patch b/debian/patches-rt/timekeeping-split-jiffies-lock.patch index c193c945c5cb..7ab9b556cf4d 100644 --- a/debian/patches-rt/timekeeping-split-jiffies-lock.patch +++ b/debian/patches-rt/timekeeping-split-jiffies-lock.patch @@ -1,7 +1,7 @@ Subject: timekeeping: Split jiffies seqlock From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 14 Feb 2013 22:36:59 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Replace jiffies_lock seqlock with a simple seqcounter and a rawlock so it can be taken in atomic context on RT. diff --git a/debian/patches-rt/tpm-remove-tpm_dev_wq_lock.patch b/debian/patches-rt/tpm-remove-tpm_dev_wq_lock.patch index edc0d8a7920a..8c40eb4a0afa 100644 --- a/debian/patches-rt/tpm-remove-tpm_dev_wq_lock.patch +++ b/debian/patches-rt/tpm-remove-tpm_dev_wq_lock.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Feb 2019 11:33:11 +0100 Subject: [PATCH] tpm: remove tpm_dev_wq_lock -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Added in commit diff --git a/debian/patches-rt/tpm_tis-fix-stall-after-iowrite-s.patch b/debian/patches-rt/tpm_tis-fix-stall-after-iowrite-s.patch index edf486ab4106..4e46a1bffd31 100644 --- a/debian/patches-rt/tpm_tis-fix-stall-after-iowrite-s.patch +++ b/debian/patches-rt/tpm_tis-fix-stall-after-iowrite-s.patch @@ -1,7 +1,7 @@ From: Haris Okanovic <haris.okanovic@ni.com> Date: Tue, 15 Aug 2017 15:13:08 -0500 Subject: [PATCH] tpm_tis: fix stall after iowrite*()s -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz ioread8() operations to TPM MMIO addresses can stall the cpu when immediately following a sequence of iowrite*()'s to the same region. diff --git a/debian/patches-rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch b/debian/patches-rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch index 2e0932a53353..c1bd3648e954 100644 --- a/debian/patches-rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch +++ b/debian/patches-rt/upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch @@ -1,7 +1,7 @@ Subject: net: Remove preemption disabling in netif_rx() From: Priyanka Jain <Priyanka.Jain@freescale.com> Date: Thu, 17 May 2012 09:35:11 +0530 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz 1)enqueue_to_backlog() (called from netif_rx) should be bind to a particluar CPU. This can be achieved by @@ -38,7 +38,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4698,7 +4698,7 @@ static int netif_rx_internal(struct sk_b +@@ -4699,7 +4699,7 @@ static int netif_rx_internal(struct sk_b struct rps_dev_flow voidflow, *rflow = &voidflow; int cpu; @@ -47,7 +47,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> rcu_read_lock(); cpu = get_rps_cpu(skb->dev, skb, &rflow); -@@ -4708,14 +4708,14 @@ static int netif_rx_internal(struct sk_b +@@ -4709,14 +4709,14 @@ static int netif_rx_internal(struct sk_b ret = enqueue_to_backlog(skb, cpu, &rflow->last_qtail); rcu_read_unlock(); diff --git a/debian/patches-rt/userfaultfd-Use-a-seqlock-instead-of-seqcount.patch b/debian/patches-rt/userfaultfd-Use-a-seqlock-instead-of-seqcount.patch index 22927c91eb92..ec85ccde2556 100644 --- a/debian/patches-rt/userfaultfd-Use-a-seqlock-instead-of-seqcount.patch +++ b/debian/patches-rt/userfaultfd-Use-a-seqlock-instead-of-seqcount.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 18 Dec 2019 12:25:09 +0100 Subject: [PATCH] userfaultfd: Use a seqlock instead of seqcount -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz On RT write_seqcount_begin() disables preemption which leads to warning in add_wait_queue() while the spinlock_t is acquired. diff --git a/debian/patches-rt/wait.h-include-atomic.h.patch b/debian/patches-rt/wait.h-include-atomic.h.patch index 3f7dfb9393bf..bb3f80d6cf65 100644 --- a/debian/patches-rt/wait.h-include-atomic.h.patch +++ b/debian/patches-rt/wait.h-include-atomic.h.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 28 Oct 2013 12:19:57 +0100 Subject: wait.h: include atomic.h -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz | CC init/main.o |In file included from include/linux/mmzone.h:9:0, diff --git a/debian/patches-rt/x86-Disable-HAVE_ARCH_JUMP_LABEL.patch b/debian/patches-rt/x86-Disable-HAVE_ARCH_JUMP_LABEL.patch index 25d351a3d9e8..f0160e976755 100644 --- a/debian/patches-rt/x86-Disable-HAVE_ARCH_JUMP_LABEL.patch +++ b/debian/patches-rt/x86-Disable-HAVE_ARCH_JUMP_LABEL.patch @@ -4,7 +4,7 @@ Subject: [PATCH] x86: Disable HAVE_ARCH_JUMP_LABEL 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/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz __text_poke() does: | local_irq_save(flags); diff --git a/debian/patches-rt/x86-Enable-RT-also-on-32bit.patch b/debian/patches-rt/x86-Enable-RT-also-on-32bit.patch index c01bc0f3c1a4..875420bea503 100644 --- a/debian/patches-rt/x86-Enable-RT-also-on-32bit.patch +++ b/debian/patches-rt/x86-Enable-RT-also-on-32bit.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Thu, 7 Nov 2019 17:49:20 +0100 Subject: [PATCH] x86: Enable RT also on 32bit -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- diff --git a/debian/patches-rt/x86-Enable-RT.patch b/debian/patches-rt/x86-Enable-RT.patch index db20e28bd88c..35c8a98285c0 100644 --- a/debian/patches-rt/x86-Enable-RT.patch +++ b/debian/patches-rt/x86-Enable-RT.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Wed, 7 Aug 2019 18:15:38 +0200 Subject: [PATCH] x86: Allow to enable RT -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Allow to select RT. diff --git a/debian/patches-rt/x86-crypto-reduce-preempt-disabled-regions.patch b/debian/patches-rt/x86-crypto-reduce-preempt-disabled-regions.patch index 99202fd0ad51..376fe4aa5cc6 100644 --- a/debian/patches-rt/x86-crypto-reduce-preempt-disabled-regions.patch +++ b/debian/patches-rt/x86-crypto-reduce-preempt-disabled-regions.patch @@ -1,7 +1,7 @@ Subject: x86: crypto: Reduce preempt disabled regions From: Peter Zijlstra <peterz@infradead.org> Date: Mon, 14 Nov 2011 18:19:27 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Restrict the preempt disabled regions to the actual floating point operations and enable preemption for the administrative actions. diff --git a/debian/patches-rt/x86-highmem-add-a-already-used-pte-check.patch b/debian/patches-rt/x86-highmem-add-a-already-used-pte-check.patch index bea0beb9e3d3..0e7de07f52ed 100644 --- a/debian/patches-rt/x86-highmem-add-a-already-used-pte-check.patch +++ b/debian/patches-rt/x86-highmem-add-a-already-used-pte-check.patch @@ -1,7 +1,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Date: Mon, 11 Mar 2013 17:09:55 +0100 Subject: x86/highmem: Add a "already used pte" check -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz This is a copy from kmap_atomic_prot(). diff --git a/debian/patches-rt/x86-kvm-require-const-tsc-for-rt.patch b/debian/patches-rt/x86-kvm-require-const-tsc-for-rt.patch index 431bc97eb62e..6f6e3210ed54 100644 --- a/debian/patches-rt/x86-kvm-require-const-tsc-for-rt.patch +++ b/debian/patches-rt/x86-kvm-require-const-tsc-for-rt.patch @@ -1,7 +1,7 @@ Subject: x86: kvm Require const tsc for RT From: Thomas Gleixner <tglx@linutronix.de> Date: Sun, 06 Nov 2011 12:26:18 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Non constant TSC is a nightmare on bare metal already, but with virtualization it becomes a complete disaster because the workarounds diff --git a/debian/patches-rt/x86-preempt-lazy.patch b/debian/patches-rt/x86-preempt-lazy.patch index 99a4fedf6c8b..26ffc1ead407 100644 --- a/debian/patches-rt/x86-preempt-lazy.patch +++ b/debian/patches-rt/x86-preempt-lazy.patch @@ -1,7 +1,7 @@ Subject: x86: Support for lazy preemption From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 01 Nov 2012 11:03:47 +0100 -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz Implement the x86 pieces for lazy preempt. diff --git a/debian/patches-rt/x86-stackprot-no-random-on-rt.patch b/debian/patches-rt/x86-stackprot-no-random-on-rt.patch index 1bee0dd9a536..4dd6360d90df 100644 --- a/debian/patches-rt/x86-stackprot-no-random-on-rt.patch +++ b/debian/patches-rt/x86-stackprot-no-random-on-rt.patch @@ -1,7 +1,7 @@ From: Thomas Gleixner <tglx@linutronix.de> Date: Thu, 16 Dec 2010 14:25:18 +0100 Subject: x86: stackprotector: Avoid random pool on rt -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.4-rt3.tar.xz +Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.6/older/patches-5.6.10-rt5.tar.xz CPU bringup calls into the random pool to initialize the stack canary. During boot that works nicely even on RT as the might sleep diff --git a/debian/templates/control.libc-dev.in b/debian/templates/control.libc-dev.in index e66513ea9221..c62fa3c3f334 100644 --- a/debian/templates/control.libc-dev.in +++ b/debian/templates/control.libc-dev.in @@ -1,6 +1,9 @@ Package: linux-libc-dev Section: devel Depends: ${misc:Depends} +# Remove this Provides when nothing Depends/Build-Depends/B-D-Arch on it. +# See bug #959462. +Provides: linux-kernel-headers Multi-Arch: same Description: Linux support headers for userspace development This package provides userspaces headers from the Linux kernel. These headers |