mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-11 13:27:06 +09:00
Merge tag 'debian/5.2.9-2'
Release linux (5.2.9-2). * Drop ABI reference files * Refresh intel-iommu patches
This commit is contained in:
238
debian/changelog
vendored
238
debian/changelog
vendored
@@ -16,6 +16,244 @@ linux (5.3~rc5-1~exp1) UNRELEASED; urgency=medium
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Mon, 05 Aug 2019 12:40:36 +0100
|
||||
|
||||
linux (5.2.9-2) unstable; urgency=medium
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* Partially revert "net: socket: implement 64-bit timestamps"
|
||||
(fixes build/test regressions for glibc, qemu, suricata)
|
||||
* [x86] intel-iommu: Exclude integrated GPUs by default (Closes: #935270):
|
||||
- intel-iommu: Add option to exclude integrated GPU only
|
||||
- intel-iommu: Add Kconfig option to exclude iGPU by default
|
||||
- Enable INTEL_IOMMU_DEFAULT_ON_INTGPU_OFF instead of
|
||||
INTEL_IOMMU_DEFAULT_ON
|
||||
|
||||
[ Thomas W ]
|
||||
* [x86] Add various laptop modules. (Closes: #932086)
|
||||
CONFIG_ACER_WIRELESS
|
||||
CONFIG_LG_LAPTOP
|
||||
CONFIG_SURFACE3_WMI
|
||||
CONFIG_INTEL_WMI_THUNDERBOLT
|
||||
CONFIG_PEAQ_WMI
|
||||
CONFIG_TOSHIBA_WMI
|
||||
CONFIG_SURFACE_3_BUTTON
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Wed, 21 Aug 2019 13:48:11 +0100
|
||||
|
||||
linux (5.2.9-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.2.8
|
||||
- scsi: fcoe: Embed fc_rport_priv in fcoe_rport structure
|
||||
- libnvdimm/bus: Prepare the nd_ioctl() path to be re-entrant
|
||||
- libnvdimm/bus: Fix wait_nvdimm_bus_probe_idle() ABBA deadlock
|
||||
- ALSA: usb-audio: Sanity checks for each pipe and EP types
|
||||
- ALSA: usb-audio: Fix gpf in snd_usb_pipe_sanity_check
|
||||
- HID: wacom: fix bit shift for Cintiq Companion 2
|
||||
- HID: Add quirk for HP X1200 PIXART OEM mouse
|
||||
- atm: iphase: Fix Spectre v1 vulnerability (CVE-2017-5753)
|
||||
- bnx2x: Disable multi-cos feature.
|
||||
- drivers/net/ethernet/marvell/mvmdio.c: Fix non OF case (Closes: #908712)
|
||||
- ife: error out when nla attributes are empty
|
||||
- ip6_gre: reload ipv6h in prepare_ip6gre_xmit_ipv6
|
||||
- ip6_tunnel: fix possible use-after-free on xmit
|
||||
- ipip: validate header length in ipip_tunnel_xmit
|
||||
- [armhf,arm64] mvpp2: fix panic on module removal
|
||||
- [armhf,arm64] mvpp2: refactor MTU change code
|
||||
- net: bridge: delete local fdb on device init failure
|
||||
- net: bridge: mcast: don't delete permanent entries when fast leave is
|
||||
enabled
|
||||
- net: bridge: move default pvid init/deinit to NETDEV_REGISTER/UNREGISTER
|
||||
- net: fix ifindex collision during namespace removal
|
||||
- net/mlx5e: always initialize frag->last_in_page
|
||||
- net/mlx5: Use reversed order when unregister devices
|
||||
- net: phy: fixed_phy: print gpio error only if gpio node is present
|
||||
- net: phy: mscc: initialize stats array
|
||||
- net: sched: Fix a possible null-pointer dereference in dequeue_func()
|
||||
- net sched: update vlan action for batched events operations
|
||||
- net: sched: use temporary variable for actions indexes
|
||||
- net/smc: do not schedule tx_work in SMC_CLOSED state
|
||||
- [armhf,arm64] net: stmmac: Use netif_tx_napi_add() for TX polling
|
||||
function
|
||||
- tipc: compat: allow tipc commands without arguments
|
||||
- tipc: fix unitilized skb list crash
|
||||
- tun: mark small packets as owned by the tap sock
|
||||
- net/mlx5: Fix modify_cq_in alignment
|
||||
- net/mlx5e: Prevent encap flow counter update async to user query
|
||||
- r8169: don't use MSI before RTL8168d
|
||||
- net: fix bpf_xdp_adjust_head regression for generic-XDP
|
||||
- [x86] hv_sock: Fix hang when a connection is closed
|
||||
- net: phy: fix race in genphy_update_link
|
||||
- net/smc: avoid fallback in case of non-blocking connect
|
||||
- rocker: fix memory leaks of fib_work on two error return paths
|
||||
- net/mlx5: Add missing RDMA_RX capabilities
|
||||
- net/mlx5e: Fix matching of speed to PRM link modes
|
||||
- compat_ioctl: pppoe: fix PPPOEIOCSFWD handling
|
||||
- [x86] drm/i915/vbt: Fix VBT parsing for the PSR section
|
||||
- Revert "mac80211: set NETIF_F_LLTX when using intermediate tx queues"
|
||||
- [armhf,arm64] spi: bcm2835: Fix 3-wire mode if DMA is enabled
|
||||
https://www.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.2.9
|
||||
- Revert "PCI: Add missing link delays required by the PCIe spec"
|
||||
- [arm64] iio: cros_ec_accel_legacy: Fix incorrect channel setting
|
||||
- [x86] iio: imu: mpu6050: add missing available scan masks
|
||||
- [x86] crypto: ccp - Fix oops by properly managing allocated structures
|
||||
- [x86] crypto: ccp - Add support for valid authsize values less than 16
|
||||
- [x86] crypto: ccp - Ignore tag length when decrypting GCM ciphertext
|
||||
- driver core: platform: return -ENXIO for missing GpioInt
|
||||
- usb: usbfs: fix double-free of usb memory upon submiturb error
|
||||
- Revert "USB: rio500: simplify locking"
|
||||
- usb: iowarrior: fix deadlock on disconnect
|
||||
- sound: fix a memory leak bug
|
||||
- [arm64,mips/octeon] mmc: cavium: Set the correct dma max segment size for
|
||||
mmc_host
|
||||
- [arm64,mips/octeon] mmc: cavium: Add the missing dma unmap when the dma
|
||||
has finished.
|
||||
- loop: set PF_MEMALLOC_NOIO for the worker thread
|
||||
- bdev: Fixup error handling in blkdev_get() (Closes: #934378)
|
||||
- Input: usbtouchscreen - initialize PM mutex before using it
|
||||
- Input: elantech - enable SMBus on new (2018+) systems
|
||||
- [x86] Input: synaptics - enable RMI mode for HP Spectre X360
|
||||
- [x86] mm: Check for pfn instead of page in vmalloc_sync_one()
|
||||
- [x86] mm: Sync also unmappings in vmalloc_sync_all()
|
||||
- mm/vmalloc: Sync unmappings in __purge_vmap_area_lazy()
|
||||
- [s390x] perf annotate: Fix s390 gap between kernel end and module start
|
||||
- perf db-export: Fix thread__exec_comm()
|
||||
- [s390x] perf record: Fix module size on s390
|
||||
- [x86] purgatory: Do not use __builtin_memcpy and __builtin_memset
|
||||
- [x86] purgatory: Use CFLAGS_REMOVE rather than reset KBUILD_CFLAGS
|
||||
- genirq/affinity: Create affinity mask for single vector
|
||||
- gfs2: gfs2_walk_metadata fix
|
||||
- usb: yurex: Fix use-after-free in yurex_delete
|
||||
- usb: typec: ucsi: ccg: Fix uninitilized symbol error
|
||||
- usb: typec: tcpm: free log buf memory when remove debug file
|
||||
- usb: typec: tcpm: remove tcpm dir if no children
|
||||
- usb: typec: tcpm: Add NULL check before dereferencing config
|
||||
- usb: typec: tcpm: Ignore unsupported/unknown alternate mode requests
|
||||
- [armhf] can: flexcan: fix stop mode acknowledgment
|
||||
- [armhf] can: flexcan: fix an use-after-free in flexcan_setup_stop_mode()
|
||||
- can: peak_usb: fix potential double kfree_skb()
|
||||
- [powerpc*] fix off by one in max_zone_pfn initialization for ZONE_DMA
|
||||
- netfilter: nfnetlink: avoid deadlock due to synchronous request_module
|
||||
- netfilter: Fix rpfilter dropping vrf packets by mistake
|
||||
- netfilter: nf_tables: fix module autoload for redir
|
||||
- netfilter: conntrack: always store window size un-scaled
|
||||
- netfilter: nft_hash: fix symhash with modulus one
|
||||
- rq-qos: don't reset has_sleepers on spurious wakeups
|
||||
- rq-qos: set ourself TASK_UNINTERRUPTIBLE after we schedule
|
||||
- rq-qos: use a mb for got_token
|
||||
- netfilter: nf_tables: Support auto-loading for inet nat
|
||||
- drm/amd/display: No audio endpoint for Dell MST display
|
||||
- drm/amd/display: Clock does not lower in Updateplanes
|
||||
- drm/amd/display: Wait for backlight programming completion in set
|
||||
backlight level
|
||||
- drm/amd/display: fix DMCU hang when going into Modern Standby
|
||||
- drm/amd/display: use encoder's engine id to find matched free audio
|
||||
device
|
||||
- drm/amd/display: put back front end initialization sequence
|
||||
- drm/amd/display: allocate 4 ddc engines for RV2
|
||||
- drm/amd/display: Fix dc_create failure handling and 666 color depths
|
||||
- drm/amd/display: Only enable audio if speaker allocation exists
|
||||
- drm/amd/display: Increase size of audios array
|
||||
- nl80211: fix NL80211_HE_MAX_CAPABILITY_LEN
|
||||
- mac80211: fix possible memory leak in ieee80211_assign_beacon
|
||||
- mac80211: don't warn about CW params when not using them
|
||||
- allocate_flower_entry: should check for null deref
|
||||
- hwmon: (nct6775) Fix register address and added missed tolerance for
|
||||
nct6106
|
||||
- [armhf] dts: imx6ul: fix clock frequency property name of I2C buses
|
||||
- [powerpc*] papr_scm: Force a scm-unbind if initial scm-bind fails
|
||||
- [arm64] Force SSBS on context switch
|
||||
- [arm64] entry: SP Alignment Fault doesn't write to FAR_EL1
|
||||
- [x86] iommu/vt-d: Check if domain->pgd was allocated
|
||||
- [arm64] drm/msm/dpu: Correct dpu encoder spinlock initialization
|
||||
- [ppc64] cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init()
|
||||
- [s390x] qdio: add sanity checks to the fast-requeue path
|
||||
- ALSA: compress: Fix regression on compressed capture streams
|
||||
- ALSA: compress: Prevent bypasses of set_params
|
||||
- ALSA: compress: Don't allow paritial drain operations on capture streams
|
||||
- ALSA: compress: Be more restrictive about when a drain is allowed
|
||||
- perf script: Fix off by one in brstackinsn IPC computation
|
||||
- perf tools: Fix proper buffer size for feature processing
|
||||
- perf stat: Fix segfault for event group in repeat mode
|
||||
- perf session: Fix loading of compressed data split across adjacent
|
||||
records
|
||||
- perf probe: Avoid calling freeing routine multiple times for same pointer
|
||||
- drbd: dynamically allocate shash descriptor
|
||||
- ACPI/IORT: Fix off-by-one check in iort_dev_find_its_id()
|
||||
- nvme: ignore subnqn for ADATA SX6000LNP
|
||||
- nvme: fix memory leak caused by incorrect subsystem free
|
||||
- scsi: megaraid_sas: fix panic on loading firmware crashdump
|
||||
- scsi: ibmvfc: fix WARN_ON during event pool release
|
||||
- scsi: scsi_dh_alua: always use a 2 second delay before retrying RTPG
|
||||
- test_firmware: fix a memory leak bug
|
||||
- tty/ldsem, locking/rwsem: Add missing ACQUIRE to read_failed sleep loop
|
||||
- [x86] perf/intel: Fix SLOTS PEBS event constraint
|
||||
- [x86] perf/intel: Fix invalid Bit 13 for Icelake MSR_OFFCORE_RSP_x
|
||||
register
|
||||
- [x86] perf: Apply more accurate check on hypervisor platform
|
||||
- perf/core: Fix creating kernel counters for PMUs that override event->cpu
|
||||
- [s390x] dma: provide proper ARCH_ZONE_DMA_BITS value
|
||||
- HID: sony: Fix race condition between rumble and device remove.
|
||||
- ALSA: usb-audio: fix a memory leak bug
|
||||
- [x86] KVM/nSVM: properly map nested VMCB
|
||||
- can: peak_usb: pcan_usb_pro: Fix info-leaks to USB devices
|
||||
- can: peak_usb: pcan_usb_fd: Fix info-leaks to USB devices
|
||||
- hwmon: (nct7802) Fix wrong detection of in4 presence
|
||||
- hwmon: (lm75) Fixup tmp75b clr_mask
|
||||
- [x86] drm/i915: Fix wrong escape clock divisor init for GLK
|
||||
- ALSA: firewire: fix a memory leak bug
|
||||
- ALSA: hiface: fix multiple memory leak bugs
|
||||
- ALSA: hda - Don't override global PCM hw info flag
|
||||
- [x86] ALSA: hda - Workaround for crackled sound on AMD controller
|
||||
(1022:1457)
|
||||
- mac80211: don't WARN on short WMM parameters from AP
|
||||
- dax: dax_layout_busy_page() should not unmap cow pages
|
||||
- SMB3: Fix deadlock in validate negotiate hits reconnect
|
||||
- smb3: send CAP_DFS capability during session setup
|
||||
- NFSv4: Fix delegation state recovery
|
||||
- NFSv4: Check the return value of update_open_stateid()
|
||||
- NFSv4: Fix an Oops in nfs4_do_setattr
|
||||
- [x86] KVM: Fix leak vCPU's VMCS value into other pCPU
|
||||
- [armhf,arm64] KVM: Sync ICH_VMCR_EL2 back when about to block
|
||||
- mwifiex: fix 802.11n/WPA detection
|
||||
- iwlwifi: don't unmap as page memory that was mapped as single
|
||||
- iwlwifi: mvm: fix an out-of-bound access
|
||||
- iwlwifi: mvm: fix a use-after-free bug in iwl_mvm_tx_tso_segment
|
||||
- iwlwifi: mvm: don't send GEO_TX_POWER_LIMIT on version < 41
|
||||
- iwlwifi: mvm: fix version check for GEO_TX_POWER_LIMIT support
|
||||
|
||||
[ Salvatore Bonaccorso ]
|
||||
* Enable Realtek 802.11ac wireless chips support (Closes: #933963)
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* [armel] fb-modules: Remove xgifb, which was removed upstream (fixes FTBFS)
|
||||
* tracefs: Fix potential null dereference in default_file_open()
|
||||
(Closes: #934304)
|
||||
* [arm64] hwrandom: Re-enable HW_RANDOM_OMAP as module (Closes: #931707)
|
||||
* ptp: Change CAVIUM_PTP from built-in to modular (Closes: #934848)
|
||||
* bug script: Check whether /e/n/interfaces exists (Closes: #934824)
|
||||
* bug script: Include network configuration from /e/n/interfaces.d
|
||||
* bug script: Check for unreadable /e/n/interfaces files
|
||||
* [x86] iommu: Enable INTEL_IOMMU_DEFAULT_ON (Closes: #934309)
|
||||
* HID: Enable HID_BIGBEN_FF, HID_MACALLY, HID_GFRM, HID_GT683R,
|
||||
HID_VIEWSONIC, HID_MALTRON, HID_U2FZERO as modules (Closes: #934091)
|
||||
* usbip: network: Fix unaligned member access (Closes: #925766)
|
||||
* libbpf: Fix cross-build
|
||||
* [rt] Update to 5.2.9-rt3:
|
||||
- i2c: exynos5: Remove IRQF_ONESHOT
|
||||
- i2c: hix5hd2: Remove IRQF_ONESHOT
|
||||
- sched/deadline: Ensure inactive_timer runs in hardirq context
|
||||
- thermal/x86_pkg_temp: make pkg_temp_lock a raw spinlock
|
||||
- dma-buf: Use seqlock_t instread disabling preemption
|
||||
- KVM: arm/arm64: Let the timer expire in hardirq context on RT
|
||||
- x86: preempt: Check preemption level before looking at lazy-preempt
|
||||
- arm64: preempt: Fixup lazy preempt
|
||||
- arm64: preempt: Check preemption level before looking at lazy-preempt
|
||||
|
||||
[ Alper Nebi Yasak ]
|
||||
* [arm64] udeb: Add pl330 to kernel-image
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Sun, 18 Aug 2019 22:54:21 +0100
|
||||
|
||||
linux (5.2.7-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
|
||||
2
debian/config/arm64/config
vendored
2
debian/config/arm64/config
vendored
@@ -114,7 +114,7 @@ CONFIG_TEGRA_ACONNECT=y
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM_BCM2835=m
|
||||
# CONFIG_HW_RANDOM_OMAP is not set
|
||||
CONFIG_HW_RANDOM_OMAP=m
|
||||
CONFIG_HW_RANDOM_HISI=m
|
||||
CONFIG_HW_RANDOM_XGENE=m
|
||||
CONFIG_HW_RANDOM_MESON=m
|
||||
|
||||
25
debian/config/config
vendored
25
debian/config/config
vendored
@@ -831,10 +831,12 @@ CONFIG_HID_ASUS=m
|
||||
CONFIG_HID_AUREAL=m
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_BETOP_FF=m
|
||||
CONFIG_HID_BIGBEN_FF=m
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_CORSAIR=m
|
||||
CONFIG_HID_COUGAR=m
|
||||
CONFIG_HID_MACALLY=m
|
||||
CONFIG_HID_PRODIKEYS=m
|
||||
CONFIG_HID_CMEDIA=m
|
||||
CONFIG_HID_CP2112=m
|
||||
@@ -847,14 +849,15 @@ CONFIG_HID_ELECOM=m
|
||||
CONFIG_HID_ELO=m
|
||||
CONFIG_HID_EZKEY=y
|
||||
CONFIG_HID_GEMBIRD=m
|
||||
# CONFIG_HID_GFRM is not set
|
||||
CONFIG_HID_GFRM=m
|
||||
CONFIG_HID_HOLTEK=m
|
||||
CONFIG_HOLTEK_FF=y
|
||||
# CONFIG_HID_GT683R is not set
|
||||
CONFIG_HID_GT683R=m
|
||||
CONFIG_HID_KEYTOUCH=m
|
||||
CONFIG_HID_KYE=m
|
||||
CONFIG_HID_UCLOGIC=m
|
||||
CONFIG_HID_WALTOP=m
|
||||
CONFIG_HID_VIEWSONIC=m
|
||||
CONFIG_HID_GYRATION=m
|
||||
CONFIG_HID_ICADE=m
|
||||
CONFIG_HID_ITE=m
|
||||
@@ -871,6 +874,7 @@ CONFIG_LOGIRUMBLEPAD2_FF=y
|
||||
CONFIG_LOGIG940_FF=y
|
||||
CONFIG_LOGIWHEELS_FF=y
|
||||
CONFIG_HID_MAGICMOUSE=m
|
||||
CONFIG_HID_MALTRON=m
|
||||
CONFIG_HID_MAYFLASH=m
|
||||
CONFIG_HID_REDRAGON=m
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
@@ -912,6 +916,7 @@ CONFIG_HID_THINGM=m
|
||||
CONFIG_HID_THRUSTMASTER=m
|
||||
CONFIG_THRUSTMASTER_FF=y
|
||||
CONFIG_HID_UDRAW_PS3=m
|
||||
CONFIG_HID_U2FZERO=m
|
||||
CONFIG_HID_WACOM=m
|
||||
CONFIG_HID_WIIMOTE=m
|
||||
CONFIG_HID_XINMO=m
|
||||
@@ -3224,7 +3229,7 @@ CONFIG_NET_VENDOR_CAVIUM=y
|
||||
# CONFIG_THUNDER_NIC_VF is not set
|
||||
# CONFIG_THUNDER_NIC_BGX is not set
|
||||
# CONFIG_THUNDER_NIC_RGX is not set
|
||||
CONFIG_CAVIUM_PTP=y
|
||||
CONFIG_CAVIUM_PTP=m
|
||||
CONFIG_LIQUIDIO=m
|
||||
CONFIG_LIQUIDIO_VF=m
|
||||
|
||||
@@ -4119,6 +4124,13 @@ CONFIG_RTL8821AE=m
|
||||
CONFIG_RTL8192CU=m
|
||||
# CONFIG_RTLWIFI_DEBUG is not set
|
||||
|
||||
##
|
||||
## file: drivers/net/wireless/realtek/rtw88/Kconfig
|
||||
##
|
||||
CONFIG_RTW88=m
|
||||
CONFIG_RTW88_8822BE=y
|
||||
CONFIG_RTW88_8822CE=y
|
||||
|
||||
##
|
||||
## file: drivers/net/wireless/rsi/Kconfig
|
||||
##
|
||||
@@ -4350,14 +4362,21 @@ CONFIG_YENTA_TOSHIBA=y
|
||||
##
|
||||
## file: drivers/platform/x86/Kconfig
|
||||
##
|
||||
CONFIG_ACER_WIRELESS=m
|
||||
CONFIG_ASUS_LAPTOP=m
|
||||
CONFIG_FUJITSU_LAPTOP=m
|
||||
CONFIG_HP_WMI=m
|
||||
CONFIG_LG_LAPTOP=m
|
||||
CONFIG_MSI_LAPTOP=m
|
||||
CONFIG_PANASONIC_LAPTOP=m
|
||||
CONFIG_COMPAL_LAPTOP=m
|
||||
CONFIG_SONY_LAPTOP=m
|
||||
CONFIG_SURFACE3_WMI=m
|
||||
CONFIG_INTEL_WMI_THUNDERBOLT=m
|
||||
CONFIG_PEAQ_WMI=m
|
||||
CONFIG_TOSHIBA_WMI=m
|
||||
# CONFIG_SAMSUNG_LAPTOP is not set
|
||||
CONFIG_SURFACE_3_BUTTON=m
|
||||
|
||||
##
|
||||
## file: drivers/pnp/Kconfig
|
||||
|
||||
2
debian/config/kernelarch-x86/config
vendored
2
debian/config/kernelarch-x86/config
vendored
@@ -832,7 +832,7 @@ CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
|
||||
##
|
||||
CONFIG_INTEL_IOMMU=y
|
||||
CONFIG_INTEL_IOMMU_SVM=y
|
||||
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
|
||||
CONFIG_INTEL_IOMMU_DEFAULT_ON_INTGPU_OFF=y
|
||||
CONFIG_IRQ_REMAP=y
|
||||
|
||||
##
|
||||
|
||||
3
debian/installer/modules/arm64/kernel-image
vendored
3
debian/installer/modules/arm64/kernel-image
vendored
@@ -23,3 +23,6 @@ cros_ec_spi ?
|
||||
|
||||
# PCIe PHYs
|
||||
phy-rockchip-pcie ?
|
||||
|
||||
# For spi-rockchip
|
||||
pl330 ?
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
udlfb
|
||||
xgifb
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Split the IRQ-off section while accessing the PCP list from zone->lock
|
||||
while freeing pages.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The full documentation file for the printk ring buffer.
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Split the IRQ-off section while accessing the PCP list from zone->lock
|
||||
while freeing pages.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Add processor-reentrant spin locking functions. These allow
|
||||
restricting the number of possible contexts to 2, which can simplify
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
See Documentation/printk-ringbuffer.txt for details about the
|
||||
initializer arguments.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
__free_slab() is invoked with disabled interrupts which increases the
|
||||
irq-off time while __free_pages() is doing the work.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Add reader iterator static declaration/initializer, dynamic
|
||||
initializer, and functions to iterate and retrieve ring buffer data.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
In order to support printing the printk log history when new
|
||||
consoles are registered, a global exclusive_console variable is
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
vprintk variants are now NMI-safe so there is no longer a need for
|
||||
the "safe" calls.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Since printing of the printk buffer is now handled by the printk
|
||||
kthread, minimize the console locking functions to just handle
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Allow each console to track which seq record was last printed. This
|
||||
simplifies identifying dropped records.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Both functions needed to be called one after the other, so just
|
||||
integrate boot_delay_msec into printk_delay for simplification.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
When new consoles register, they currently print how many messages
|
||||
they have missed. However, many (or all) of those messages may still
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
If the CON_PRINTBUFFER flag is not set, do not replay the history
|
||||
for that console.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
It can be difficult to sort printk out if multiple processors are
|
||||
printing simultaneously. Add the processor number to the printk
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Add a write_atomic callback to the console. This is an optional
|
||||
function for console drivers. The function must be atomic (including
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Console messages are generally either critical or non-critical.
|
||||
Critical messages are messages such as crashes or sysrq output.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Implement a non-sleeping NMI-safe write_atomic console function in
|
||||
order to support emergency printk messages.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Since printk messages are now logged to a new ring buffer, update
|
||||
the /dev/kmsg functions to pull the messages from there.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Since printk messages are now logged to a new ring buffer, update
|
||||
the syslog functions to pull the messages from there.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Since printk messages are now logged to a new ring buffer, update
|
||||
the kmsg_dump functions to pull the messages from there.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Code relating to the safe context and anything dealing with the
|
||||
previous log buffer implementation is no longer in use. Remove it.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Probably happens on all ARM, with
|
||||
CONFIG_PREEMPT_RT_FULL
|
||||
|
||||
@@ -4,7 +4,7 @@ Subject: [PATCH] Drivers: hv: vmbus: include header for get_irq_regs()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
On !RT the header file get_irq_regs() gets pulled in via other header files. On
|
||||
RT it does not and the build fails:
|
||||
|
||||
47
debian/patches-rt/KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
vendored
Normal file
47
debian/patches-rt/KVM-arm-arm64-Let-the-timer-expire-in-hardirq-contex.patch
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Tue, 13 Aug 2019 14:29:41 +0200
|
||||
Subject: [PATCH] KVM: arm/arm64: Let the timer expire in hardirq context
|
||||
on RT
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The timers are canceled from an preempt-notifier which is invoked with
|
||||
disabled preemption which is not allowed on PREEMPT_RT.
|
||||
The timer callback is short so in could be invoked in hard-IRQ context
|
||||
on -RT.
|
||||
|
||||
Let the timer expire on hard-IRQ context even on -RT.
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
Acked-by: Marc Zyngier <maz@kernel.org>
|
||||
Tested-by: Julien Grall <julien.grall@arm.com>
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
virt/kvm/arm/arch_timer.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/virt/kvm/arm/arch_timer.c
|
||||
+++ b/virt/kvm/arm/arch_timer.c
|
||||
@@ -80,7 +80,7 @@ static inline bool userspace_irqchip(str
|
||||
static void soft_timer_start(struct hrtimer *hrt, u64 ns)
|
||||
{
|
||||
hrtimer_start(hrt, ktime_add_ns(ktime_get(), ns),
|
||||
- HRTIMER_MODE_ABS);
|
||||
+ HRTIMER_MODE_ABS_HARD);
|
||||
}
|
||||
|
||||
static void soft_timer_cancel(struct hrtimer *hrt)
|
||||
@@ -697,11 +697,11 @@ void kvm_timer_vcpu_init(struct kvm_vcpu
|
||||
update_vtimer_cntvoff(vcpu, kvm_phys_timer_read());
|
||||
ptimer->cntvoff = 0;
|
||||
|
||||
- hrtimer_init(&timer->bg_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
||||
+ hrtimer_init(&timer->bg_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
|
||||
timer->bg_timer.function = kvm_bg_timer_expire;
|
||||
|
||||
- hrtimer_init(&vtimer->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
||||
- hrtimer_init(&ptimer->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS);
|
||||
+ hrtimer_init(&vtimer->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
|
||||
+ hrtimer_init(&ptimer->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_HARD);
|
||||
vtimer->hrtimer.function = kvm_hrtimer_expire;
|
||||
ptimer->hrtimer.function = kvm_hrtimer_expire;
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
@@ -23,7 +23,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
--- a/virt/kvm/arm/arm.c
|
||||
+++ b/virt/kvm/arm/arm.c
|
||||
@@ -691,7 +691,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||
@@ -702,7 +702,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||
* involves poking the GIC, which must be done in a
|
||||
* non-preemptible context.
|
||||
*/
|
||||
@@ -32,7 +32,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
kvm_pmu_flush_hwstate(vcpu);
|
||||
|
||||
@@ -740,7 +740,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||
@@ -751,7 +751,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||
kvm_timer_sync_hwstate(vcpu);
|
||||
kvm_vgic_sync_hwstate(vcpu);
|
||||
local_irq_enable();
|
||||
@@ -41,7 +41,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -818,7 +818,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||
@@ -829,7 +829,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v
|
||||
/* Exit types that need handling before we can be preempted */
|
||||
handle_exit_early(vcpu, run, ret);
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The raw_write_seqcount_begin() in nfs4_reclaim_open_state() bugs me
|
||||
because it maps to preempt_disable() in -RT which I can't have at this
|
||||
@@ -37,7 +37,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
mutex_lock(&sp->so_delegreturn_mutex);
|
||||
- seq = raw_seqcount_begin(&sp->so_reclaim_seqcount);
|
||||
+ seq = read_seqbegin(&sp->so_reclaim_seqlock);
|
||||
err = nfs4_open_delegation_recall(ctx, state, stateid, type);
|
||||
err = nfs4_open_delegation_recall(ctx, state, stateid);
|
||||
if (!err)
|
||||
err = nfs_delegation_claim_locks(state, stateid);
|
||||
- if (!err && read_seqcount_retry(&sp->so_reclaim_seqcount, seq))
|
||||
@@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
--- a/fs/nfs/nfs4proc.c
|
||||
+++ b/fs/nfs/nfs4proc.c
|
||||
@@ -2911,7 +2911,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
@@ -2914,7 +2914,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
unsigned int seq;
|
||||
int ret;
|
||||
|
||||
@@ -67,7 +67,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
ret = _nfs4_proc_open(opendata, ctx);
|
||||
if (ret != 0)
|
||||
@@ -2952,7 +2952,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
@@ -2955,7 +2955,7 @@ static int _nfs4_open_and_get_state(stru
|
||||
|
||||
if (d_inode(dentry) == state->inode) {
|
||||
nfs_inode_attach_open_context(ctx);
|
||||
|
||||
2
debian/patches-rt/add_migrate_disable.patch
vendored
2
debian/patches-rt/add_migrate_disable.patch
vendored
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
---
|
||||
include/linux/preempt.h | 23 ++++++++
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 11 Oct 2017 17:43:49 +0200
|
||||
Subject: apparmor: use a locallock instead preempt_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
get_buffers() disables preemption which acts as a lock for the per-CPU
|
||||
variable. Since we can't disable preemption here on RT, a local_lock is
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Fri, 1 Dec 2017 10:42:03 +0100
|
||||
Subject: [PATCH] arm*: disable NEON in kernel mode
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
NEON in kernel mode is used by the crypto algorithms and raid6 code.
|
||||
While the raid6 code looks okay, the crypto algorithms do not: NEON
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
fixup highmem for ARM.
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 14 May 2019 17:07:44 +0200
|
||||
Subject: [PATCH] arm: imx6: cpuidle: Use raw_spinlock_t
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The idle call back is invoked with disabled interrupts and requires
|
||||
raw_spinlock_t locks to work.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
This definition gets pulled in by other files. With the (later) split of
|
||||
RCU and spinlock.h it won't compile anymore.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Implement the arm pieces for lazy preempt.
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
It is no longer provided by the printk core code.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 26 Jul 2018 09:13:42 +0200
|
||||
Subject: [PATCH] arm64: KVM: compute_layout before altenates are applied
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
compute_layout() is invoked as part of an alternative fixup under
|
||||
stop_machine() and needs a sleeping lock as part of get_random_long().
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 25 Jul 2018 14:02:38 +0200
|
||||
Subject: [PATCH] arm64: fpsimd: use preemp_disable in addition to
|
||||
local_bh_disable()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
In v4.16-RT I noticed a number of warnings from task_fpsimd_load(). The
|
||||
code disables BH and expects that it is not preemptible. On -RT the
|
||||
|
||||
25
debian/patches-rt/arm64-preempt-Check-preemption-level-before-looking-.patch
vendored
Normal file
25
debian/patches-rt/arm64-preempt-Check-preemption-level-before-looking-.patch
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 14 Aug 2019 17:08:58 +0200
|
||||
Subject: [PATCH] arm64: preempt: Check preemption level before looking at
|
||||
lazy-preempt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Before evaluating the lazy-preempt state it must be ensure that the
|
||||
preempt-count is zero.
|
||||
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
arch/arm64/include/asm/preempt.h | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
--- a/arch/arm64/include/asm/preempt.h
|
||||
+++ b/arch/arm64/include/asm/preempt.h
|
||||
@@ -73,6 +73,8 @@ static inline bool __preempt_count_dec_a
|
||||
if (!pc || !READ_ONCE(ti->preempt_count))
|
||||
return true;
|
||||
#ifdef CONFIG_PREEMPT_LAZY
|
||||
+ if ((pc & ~PREEMPT_NEED_RESCHED))
|
||||
+ return false;
|
||||
if (current_thread_info()->preempt_lazy_count)
|
||||
return false;
|
||||
return test_thread_flag(TIF_NEED_RESCHED_LAZY);
|
||||
27
debian/patches-rt/arm64-preempt-Fixup-lazy-preempt.patch
vendored
Normal file
27
debian/patches-rt/arm64-preempt-Fixup-lazy-preempt.patch
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 13 Aug 2019 11:53:23 +0200
|
||||
Subject: [PATCH] arm64: preempt: Fixup lazy preempt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The irq-exit assmebly checks preempt count and need-resched flag
|
||||
followed by lazy-preempt status. This is a bug. It should schedule if
|
||||
preempt-count is zero _and_ need_resched is set _or_ preempt-count is
|
||||
zero and check the lazy-preempt status.
|
||||
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
arch/arm64/kernel/entry.S | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/arch/arm64/kernel/entry.S
|
||||
+++ b/arch/arm64/kernel/entry.S
|
||||
@@ -680,7 +680,8 @@ alternative_if ARM64_HAS_IRQ_PRIO_MASKIN
|
||||
orr x24, x24, x0
|
||||
alternative_else_nop_endif
|
||||
|
||||
- cbnz x24, 2f // preempt count != 0
|
||||
+ cbz x24, 1f // (need_resched + count) == 0
|
||||
+ cbnz w24, 2f // count != 0
|
||||
|
||||
ldr w24, [tsk, #TSK_TI_PREEMPT_LAZY] // get preempt lazy count
|
||||
cbnz w24, 2f // preempt lazy count != 0
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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.
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Tue, 13 Mar 2018 13:49:16 +0100
|
||||
Subject: [PATCH] block: blk-mq: move blk_queue_usage_counter_release()
|
||||
into process context
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
| BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:914
|
||||
| in_atomic(): 1, irqs_disabled(): 0, pid: 255, name: kworker/u257:6
|
||||
@@ -52,7 +52,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
--- a/block/blk-core.c
|
||||
+++ b/block/blk-core.c
|
||||
@@ -403,12 +403,21 @@ void blk_queue_exit(struct request_queue
|
||||
@@ -404,12 +404,21 @@ void blk_queue_exit(struct request_queue
|
||||
percpu_ref_put(&q->q_usage_counter);
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
}
|
||||
|
||||
static void blk_rq_timed_out_timer(struct timer_list *t)
|
||||
@@ -479,6 +488,7 @@ struct request_queue *blk_alloc_queue_no
|
||||
@@ -480,6 +489,7 @@ struct request_queue *blk_alloc_queue_no
|
||||
spin_lock_init(&q->queue_lock);
|
||||
|
||||
init_waitqueue_head(&q->mq_freeze_wq);
|
||||
@@ -93,7 +93,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/backing-dev-defs.h>
|
||||
#include <linux/wait.h>
|
||||
@@ -554,6 +555,7 @@ struct request_queue {
|
||||
@@ -559,6 +560,7 @@ struct request_queue {
|
||||
#endif
|
||||
struct rcu_head rcu_head;
|
||||
wait_queue_head_t mq_freeze_wq;
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The IPI runs in hardirq context and there are sleeping locks. Assume caches are
|
||||
shared and complete them on the local CPU.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
preempt_disable() and get_cpu() don't play well together with the sleeping
|
||||
locks it tries to allocate later.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 9 Apr 2014 10:37:23 +0200
|
||||
Subject: block: mq: use cpu_light()
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
there is a might sleep splat because get_cpu() disables preemption and
|
||||
later we grab a lock. As a workaround for this we use get_cpu_light().
|
||||
|
||||
2
debian/patches-rt/block-use-cpu-chill.patch
vendored
2
debian/patches-rt/block-use-cpu-chill.patch
vendored
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
All callers of cgroup_rstat_flush_locked() acquire cgroup_rstat_lock
|
||||
either with spin_lock_irq() or spin_lock_irqsave().
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 29 May 2019 15:50:36 +0200
|
||||
Subject: clocksource: TCLIB: Add proper depend
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Add a depends statement on ATMEL_TCLIB to ensure that it is not built on !ATMEL
|
||||
if COMPILE_TEST is enabled. The build will fail because the driver depends on
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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: Thomas Gleixner <tglx@linutronix.de>
|
||||
default:
|
||||
--- a/drivers/usb/gadget/function/f_fs.c
|
||||
+++ b/drivers/usb/gadget/function/f_fs.c
|
||||
@@ -1705,7 +1705,7 @@ static void ffs_data_put(struct ffs_data
|
||||
@@ -1708,7 +1708,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) ||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
RT does not increment preempt count when a 'sleeping' spinlock is
|
||||
locked. Update PREEMPT_LOCK_OFFSET for that case.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: cpu/hotplug: Implement CPU pinning
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 19 Jul 2017 17:31:20 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Thu, 9 Apr 2015 15:23:01 +0200
|
||||
Subject: cpufreq: drop K8's driver from beeing selected
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Ralf posted a picture of a backtrace from
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: cpumask: Disable CONFIG_CPUMASK_OFFSTACK for RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 14 Dec 2011 01:03:49 +0100
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
There are "valid" GFP_ATOMIC allocations such as
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The two commits below add up to a cpuset might_sleep() splat for RT:
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Don Estabrook reported
|
||||
| kernel: WARNING: CPU: 2 PID: 858 at kernel/sched/core.c:2428 migrate_disable+0xed/0x100()
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
cryptd has a per-CPU lock which protected with local_bh_disable() and
|
||||
preempt_disable().
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
2
debian/patches-rt/debugobjects-rt.patch
vendored
2
debian/patches-rt/debugobjects-rt.patch
vendored
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Avoid filling the pool / allocating memory with irqs off().
|
||||
|
||||
|
||||
269
debian/patches-rt/dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
vendored
Normal file
269
debian/patches-rt/dma-buf-Use-seqlock_t-instread-disabling-preemption.patch
vendored
Normal file
@@ -0,0 +1,269 @@
|
||||
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.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
"dma reservation" disables preemption while acquiring the write access
|
||||
for "seqcount" and then may acquire a spinlock_t.
|
||||
|
||||
Replace the seqcount with a seqlock_t which provides seqcount like
|
||||
semantic and lock for writer.
|
||||
|
||||
Link: https://lkml.kernel.org/r/f410b429-db86-f81c-7c67-f563fa808b62@free.fr
|
||||
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
---
|
||||
drivers/dma-buf/dma-buf.c | 8 ++--
|
||||
drivers/dma-buf/reservation.c | 40 ++++++++---------------
|
||||
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 +--
|
||||
drivers/gpu/drm/i915/i915_gem.c | 10 ++---
|
||||
include/linux/reservation.h | 4 +-
|
||||
5 files changed, 28 insertions(+), 40 deletions(-)
|
||||
|
||||
--- a/drivers/dma-buf/dma-buf.c
|
||||
+++ b/drivers/dma-buf/dma-buf.c
|
||||
@@ -168,7 +168,7 @@ static __poll_t dma_buf_poll(struct file
|
||||
return 0;
|
||||
|
||||
retry:
|
||||
- seq = read_seqcount_begin(&resv->seq);
|
||||
+ seq = read_seqbegin(&resv->seq);
|
||||
rcu_read_lock();
|
||||
|
||||
fobj = rcu_dereference(resv->fence);
|
||||
@@ -177,7 +177,7 @@ static __poll_t dma_buf_poll(struct file
|
||||
else
|
||||
shared_count = 0;
|
||||
fence_excl = rcu_dereference(resv->fence_excl);
|
||||
- if (read_seqcount_retry(&resv->seq, seq)) {
|
||||
+ if (read_seqretry(&resv->seq, seq)) {
|
||||
rcu_read_unlock();
|
||||
goto retry;
|
||||
}
|
||||
@@ -1034,12 +1034,12 @@ static int dma_buf_debug_show(struct seq
|
||||
|
||||
robj = buf_obj->resv;
|
||||
while (true) {
|
||||
- seq = read_seqcount_begin(&robj->seq);
|
||||
+ seq = read_seqbegin(&robj->seq);
|
||||
rcu_read_lock();
|
||||
fobj = rcu_dereference(robj->fence);
|
||||
shared_count = fobj ? fobj->shared_count : 0;
|
||||
fence = rcu_dereference(robj->fence_excl);
|
||||
- if (!read_seqcount_retry(&robj->seq, seq))
|
||||
+ if (!read_seqretry(&robj->seq, seq))
|
||||
break;
|
||||
rcu_read_unlock();
|
||||
}
|
||||
--- a/drivers/dma-buf/reservation.c
|
||||
+++ b/drivers/dma-buf/reservation.c
|
||||
@@ -110,15 +110,13 @@ int reservation_object_reserve_shared(st
|
||||
new->shared_count = j;
|
||||
new->shared_max = max;
|
||||
|
||||
- preempt_disable();
|
||||
- write_seqcount_begin(&obj->seq);
|
||||
+ write_seqlock(&obj->seq);
|
||||
/*
|
||||
* RCU_INIT_POINTER can be used here,
|
||||
* seqcount provides the necessary barriers
|
||||
*/
|
||||
RCU_INIT_POINTER(obj->fence, new);
|
||||
- write_seqcount_end(&obj->seq);
|
||||
- preempt_enable();
|
||||
+ write_sequnlock(&obj->seq);
|
||||
|
||||
if (!old)
|
||||
return 0;
|
||||
@@ -158,8 +156,7 @@ void reservation_object_add_shared_fence
|
||||
fobj = reservation_object_get_list(obj);
|
||||
count = fobj->shared_count;
|
||||
|
||||
- preempt_disable();
|
||||
- write_seqcount_begin(&obj->seq);
|
||||
+ write_seqlock(&obj->seq);
|
||||
|
||||
for (i = 0; i < count; ++i) {
|
||||
struct dma_fence *old_fence;
|
||||
@@ -181,8 +178,7 @@ void reservation_object_add_shared_fence
|
||||
/* pointer update must be visible before we extend the shared_count */
|
||||
smp_store_mb(fobj->shared_count, count);
|
||||
|
||||
- write_seqcount_end(&obj->seq);
|
||||
- preempt_enable();
|
||||
+ write_sequnlock(&obj->seq);
|
||||
}
|
||||
EXPORT_SYMBOL(reservation_object_add_shared_fence);
|
||||
|
||||
@@ -209,14 +205,11 @@ void reservation_object_add_excl_fence(s
|
||||
if (fence)
|
||||
dma_fence_get(fence);
|
||||
|
||||
- preempt_disable();
|
||||
- write_seqcount_begin(&obj->seq);
|
||||
- /* write_seqcount_begin provides the necessary memory barrier */
|
||||
+ write_seqlock(&obj->seq);
|
||||
RCU_INIT_POINTER(obj->fence_excl, fence);
|
||||
if (old)
|
||||
old->shared_count = 0;
|
||||
- write_seqcount_end(&obj->seq);
|
||||
- preempt_enable();
|
||||
+ write_sequnlock(&obj->seq);
|
||||
|
||||
/* inplace update, no shared fences */
|
||||
while (i--)
|
||||
@@ -298,13 +291,10 @@ int reservation_object_copy_fences(struc
|
||||
src_list = reservation_object_get_list(dst);
|
||||
old = reservation_object_get_excl(dst);
|
||||
|
||||
- preempt_disable();
|
||||
- write_seqcount_begin(&dst->seq);
|
||||
- /* write_seqcount_begin provides the necessary memory barrier */
|
||||
+ write_seqlock(&dst->seq);
|
||||
RCU_INIT_POINTER(dst->fence_excl, new);
|
||||
RCU_INIT_POINTER(dst->fence, dst_list);
|
||||
- write_seqcount_end(&dst->seq);
|
||||
- preempt_enable();
|
||||
+ write_sequnlock(&dst->seq);
|
||||
|
||||
if (src_list)
|
||||
kfree_rcu(src_list, rcu);
|
||||
@@ -345,7 +335,7 @@ int reservation_object_get_fences_rcu(st
|
||||
shared_count = i = 0;
|
||||
|
||||
rcu_read_lock();
|
||||
- seq = read_seqcount_begin(&obj->seq);
|
||||
+ seq = read_seqbegin(&obj->seq);
|
||||
|
||||
fence_excl = rcu_dereference(obj->fence_excl);
|
||||
if (fence_excl && !dma_fence_get_rcu(fence_excl))
|
||||
@@ -394,7 +384,7 @@ int reservation_object_get_fences_rcu(st
|
||||
}
|
||||
}
|
||||
|
||||
- if (i != shared_count || read_seqcount_retry(&obj->seq, seq)) {
|
||||
+ if (i != shared_count || read_seqretry(&obj->seq, seq)) {
|
||||
while (i--)
|
||||
dma_fence_put(shared[i]);
|
||||
dma_fence_put(fence_excl);
|
||||
@@ -443,7 +433,7 @@ long reservation_object_wait_timeout_rcu
|
||||
|
||||
retry:
|
||||
shared_count = 0;
|
||||
- seq = read_seqcount_begin(&obj->seq);
|
||||
+ seq = read_seqbegin(&obj->seq);
|
||||
rcu_read_lock();
|
||||
i = -1;
|
||||
|
||||
@@ -490,7 +480,7 @@ long reservation_object_wait_timeout_rcu
|
||||
|
||||
rcu_read_unlock();
|
||||
if (fence) {
|
||||
- if (read_seqcount_retry(&obj->seq, seq)) {
|
||||
+ if (read_seqretry(&obj->seq, seq)) {
|
||||
dma_fence_put(fence);
|
||||
goto retry;
|
||||
}
|
||||
@@ -546,7 +536,7 @@ bool reservation_object_test_signaled_rc
|
||||
retry:
|
||||
ret = true;
|
||||
shared_count = 0;
|
||||
- seq = read_seqcount_begin(&obj->seq);
|
||||
+ seq = read_seqbegin(&obj->seq);
|
||||
|
||||
if (test_all) {
|
||||
unsigned i;
|
||||
@@ -567,7 +557,7 @@ bool reservation_object_test_signaled_rc
|
||||
break;
|
||||
}
|
||||
|
||||
- if (read_seqcount_retry(&obj->seq, seq))
|
||||
+ if (read_seqretry(&obj->seq, seq))
|
||||
goto retry;
|
||||
}
|
||||
|
||||
@@ -580,7 +570,7 @@ bool reservation_object_test_signaled_rc
|
||||
if (ret < 0)
|
||||
goto retry;
|
||||
|
||||
- if (read_seqcount_retry(&obj->seq, seq))
|
||||
+ if (read_seqretry(&obj->seq, seq))
|
||||
goto retry;
|
||||
}
|
||||
}
|
||||
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
|
||||
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
|
||||
@@ -250,11 +250,9 @@ static int amdgpu_amdkfd_remove_eviction
|
||||
new->shared_count = k;
|
||||
|
||||
/* Install the new fence list, seqcount provides the barriers */
|
||||
- preempt_disable();
|
||||
- write_seqcount_begin(&resv->seq);
|
||||
+ write_seqlock(&resv->seq);
|
||||
RCU_INIT_POINTER(resv->fence, new);
|
||||
- write_seqcount_end(&resv->seq);
|
||||
- preempt_enable();
|
||||
+ write_sequnlock(&resv->seq);
|
||||
|
||||
/* Drop the references to the removed fences or move them to ef_list */
|
||||
for (i = j, k = 0; i < old->shared_count; ++i) {
|
||||
--- a/drivers/gpu/drm/i915/i915_gem.c
|
||||
+++ b/drivers/gpu/drm/i915/i915_gem.c
|
||||
@@ -449,7 +449,7 @@ i915_gem_object_wait_reservation(struct
|
||||
unsigned int flags,
|
||||
long timeout)
|
||||
{
|
||||
- unsigned int seq = __read_seqcount_begin(&resv->seq);
|
||||
+ unsigned int seq = read_seqbegin(&resv->seq);
|
||||
struct dma_fence *excl;
|
||||
bool prune_fences = false;
|
||||
|
||||
@@ -500,9 +500,9 @@ i915_gem_object_wait_reservation(struct
|
||||
* signaled and that the reservation object has not been changed (i.e.
|
||||
* no new fences have been added).
|
||||
*/
|
||||
- if (prune_fences && !__read_seqcount_retry(&resv->seq, seq)) {
|
||||
+ if (prune_fences && !read_seqretry(&resv->seq, seq)) {
|
||||
if (reservation_object_trylock(resv)) {
|
||||
- if (!__read_seqcount_retry(&resv->seq, seq))
|
||||
+ if (!read_seqretry(&resv->seq, seq))
|
||||
reservation_object_add_excl_fence(resv, NULL);
|
||||
reservation_object_unlock(resv);
|
||||
}
|
||||
@@ -3943,7 +3943,7 @@ i915_gem_busy_ioctl(struct drm_device *d
|
||||
*
|
||||
*/
|
||||
retry:
|
||||
- seq = raw_read_seqcount(&obj->resv->seq);
|
||||
+ seq = read_seqbegin(&obj->resv->seq);
|
||||
|
||||
/* Translate the exclusive fence to the READ *and* WRITE engine */
|
||||
args->busy = busy_check_writer(rcu_dereference(obj->resv->fence_excl));
|
||||
@@ -3961,7 +3961,7 @@ i915_gem_busy_ioctl(struct drm_device *d
|
||||
}
|
||||
}
|
||||
|
||||
- if (args->busy && read_seqcount_retry(&obj->resv->seq, seq))
|
||||
+ if (args->busy && read_seqretry(&obj->resv->seq, seq))
|
||||
goto retry;
|
||||
|
||||
err = 0;
|
||||
--- a/include/linux/reservation.h
|
||||
+++ b/include/linux/reservation.h
|
||||
@@ -71,7 +71,7 @@ struct reservation_object_list {
|
||||
*/
|
||||
struct reservation_object {
|
||||
struct ww_mutex lock;
|
||||
- seqcount_t seq;
|
||||
+ seqlock_t seq;
|
||||
|
||||
struct dma_fence __rcu *fence_excl;
|
||||
struct reservation_object_list __rcu *fence;
|
||||
@@ -90,7 +90,7 @@ reservation_object_init(struct reservati
|
||||
{
|
||||
ww_mutex_init(&obj->lock, &reservation_ww_class);
|
||||
|
||||
- __seqcount_init(&obj->seq, reservation_seqcount_string, &reservation_seqcount_class);
|
||||
+ seqlock_init(&obj->seq);
|
||||
RCU_INIT_POINTER(obj->fence, NULL);
|
||||
RCU_INIT_POINTER(obj->fence_excl, NULL);
|
||||
}
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -2,7 +2,7 @@ From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 10 Apr 2019 11:01:37 +0200
|
||||
Subject: [PATCH] drm/i915: Don't disable interrupts independently of the
|
||||
lock
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
The locks (timeline->lock and rq->lock) need to be taken with disabled
|
||||
interrupts. This is done in __retire_engine_request() by disabling the
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Luca Abeni reported this:
|
||||
| BUG: scheduling while atomic: kworker/u8:2/15203/0x00000003
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
|
||||
[ 8.014039] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:918
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
DRM folks identified the spots, so use them.
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
In case the option "efi=noruntime" is default at built-time, the user
|
||||
could overwrite its sate by `efi=runtime' and allow it again.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Based on meassurements the EFI functions get_variable /
|
||||
get_next_variable take up to 2us which looks okay.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: fs/epoll: Do not disable preemption on RT
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 08 Jul 2011 16:35:35 +0200
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
ep_call_nested() takes a sleeping lock so we can't disable preemption.
|
||||
The light version is enough since ep_call_nested() doesn't mind beeing
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Mon, 16 Feb 2015 18:49:10 +0100
|
||||
Subject: fs/aio: simple simple work
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
|BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:768
|
||||
|in_atomic(): 1, irqs_disabled(): 0, pid: 26, name: rcuos/2
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
Subject: fs: dcache: 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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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.
|
||||
@@ -124,7 +124,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
return -ENOENT;
|
||||
--- a/fs/nfs/dir.c
|
||||
+++ b/fs/nfs/dir.c
|
||||
@@ -448,7 +448,7 @@ static
|
||||
@@ -441,7 +441,7 @@ static
|
||||
void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry)
|
||||
{
|
||||
struct qstr filename = QSTR_INIT(entry->name, entry->len);
|
||||
@@ -133,7 +133,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
struct dentry *dentry;
|
||||
struct dentry *alias;
|
||||
struct inode *dir = d_inode(parent);
|
||||
@@ -1570,7 +1570,7 @@ int nfs_atomic_open(struct inode *dir, s
|
||||
@@ -1492,7 +1492,7 @@ int nfs_atomic_open(struct inode *dir, s
|
||||
struct file *file, unsigned open_flags,
|
||||
umode_t mode)
|
||||
{
|
||||
@@ -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
|
||||
@@ -1874,7 +1874,7 @@ bool proc_fill_cache(struct file *file,
|
||||
@@ -1892,7 +1892,7 @@ bool proc_fill_cache(struct file *file,
|
||||
|
||||
child = d_hash_and_lookup(dir, &qname);
|
||||
if (!child) {
|
||||
@@ -175,7 +175,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
goto end_instantiate;
|
||||
--- a/fs/proc/proc_sysctl.c
|
||||
+++ b/fs/proc/proc_sysctl.c
|
||||
@@ -694,7 +694,7 @@ static bool proc_sys_fill_cache(struct f
|
||||
@@ -698,7 +698,7 @@ static bool proc_sys_fill_cache(struct f
|
||||
|
||||
child = d_lookup(dir, &qname);
|
||||
if (!child) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 10:11:25 +0100
|
||||
Subject: fs: jbd/jbd2: Make state lock and journal head lock rt safe
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
bit_spin_locks break under RT.
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
@@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
|
||||
--- a/fs/nfs/dir.c
|
||||
+++ b/fs/nfs/dir.c
|
||||
@@ -1890,7 +1890,11 @@ int nfs_rmdir(struct inode *dir, struct
|
||||
@@ -1812,7 +1812,11 @@ int nfs_rmdir(struct inode *dir, struct
|
||||
|
||||
trace_nfs_rmdir_enter(dir, dentry);
|
||||
if (d_really_is_positive(dentry)) {
|
||||
@@ -34,7 +34,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
error = NFS_PROTO(dir)->rmdir(dir, &dentry->d_name);
|
||||
/* Ensure the VFS deletes this inode */
|
||||
switch (error) {
|
||||
@@ -1900,7 +1904,11 @@ int nfs_rmdir(struct inode *dir, struct
|
||||
@@ -1822,7 +1826,11 @@ int nfs_rmdir(struct inode *dir, struct
|
||||
case -ENOENT:
|
||||
nfs_dentry_handle_enoent(dentry);
|
||||
}
|
||||
@@ -48,7 +48,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
trace_nfs_rmdir_exit(dir, dentry, error);
|
||||
--- a/fs/nfs/inode.c
|
||||
+++ b/fs/nfs/inode.c
|
||||
@@ -2089,7 +2089,11 @@ static void init_once(void *foo)
|
||||
@@ -2090,7 +2090,11 @@ static void init_once(void *foo)
|
||||
atomic_long_set(&nfsi->nrequests, 0);
|
||||
atomic_long_set(&nfsi->commit_info.ncommit, 0);
|
||||
atomic_set(&nfsi->commit_info.rpcs_out, 0);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Fri, 18 Mar 2011 09:18:52 +0100
|
||||
Subject: buffer_head: Replace bh_uptodate_lock for -rt
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Wrap the bit_spin_lock calls into a separate inline and add the RT
|
||||
replacements with a real spinlock.
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Mike Galbraith <umgwanakikbuti@gmail.com>
|
||||
Date: Sun, 16 Oct 2016 05:08:30 +0200
|
||||
Subject: [PATCH] ftrace: Fix trace header alignment
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Line up helper arrows to the right column.
|
||||
|
||||
|
||||
@@ -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.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
||||
---
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Thomas Gleixner <tglx@linutronix.de>
|
||||
Date: Wed, 26 Jun 2019 13:35:36 +0200
|
||||
Subject: [PATCH] futex: Delay deallocation of pi_state
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
On -RT we can't invoke kfree() in a non-preemptible context.
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
|
||||
Date: Wed, 26 Jun 2019 11:59:44 +0200
|
||||
Subject: [PATCH] futex: Make the futex_hash_bucket lock raw
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2-rt1.tar.xz
|
||||
Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/5.2/older/patches-5.2.9-rt3.tar.xz
|
||||
|
||||
Since commit 1a1fb985f2e2b ("futex: Handle early deadlock return
|
||||
correctly") we can deadlock while we attempt to acquire the HB lock if
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user