From: Sasha Levin Date: Sun, 17 Aug 2025 19:59:22 +0000 (-0400) Subject: Drop vfio-type1-conditional-rescheduling-while-pinning.patch from 5.15 X-Git-Tag: v6.12.43~46 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=35f76b500204a5770c3ec3e1af02770987af5e8a;p=thirdparty%2Fkernel%2Fstable-queue.git Drop vfio-type1-conditional-rescheduling-while-pinning.patch from 5.15 Signed-off-by: Sasha Levin --- diff --git a/queue-5.15/series b/queue-5.15/series index 861bfa8868..d9bdb993d0 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -417,7 +417,6 @@ i3c-don-t-fail-if-gethdrcap-is-unsupported.patch dm-mpath-don-t-print-the-loaded-message-if-registeri.patch i2c-force-dll0945-touchpad-i2c-freq-to-100khz.patch kconfig-lxdialog-replace-strcpy-with-strncpy-in-inpu.patch -vfio-type1-conditional-rescheduling-while-pinning.patch kconfig-nconf-ensure-null-termination-where-strncpy-.patch scsi-fix-sas_user_scan-to-handle-wildcard-and-multi-.patch scsi-target-core-generate-correct-identifiers-for-pr.patch diff --git a/queue-5.15/vfio-type1-conditional-rescheduling-while-pinning.patch b/queue-5.15/vfio-type1-conditional-rescheduling-while-pinning.patch deleted file mode 100644 index 3471c2ef5a..0000000000 --- a/queue-5.15/vfio-type1-conditional-rescheduling-while-pinning.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 5064002ccd542e4b0a1228293768b0afdbd1a979 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 15 Jul 2025 11:46:22 -0700 -Subject: vfio/type1: conditional rescheduling while pinning - -From: Keith Busch - -[ Upstream commit b1779e4f209c7ff7e32f3c79d69bca4e3a3a68b6 ] - -A large DMA mapping request can loop through dma address pinning for -many pages. In cases where THP can not be used, the repeated vmf_insert_pfn can -be costly, so let the task reschedule as need to prevent CPU stalls. Failure to -do so has potential harmful side effects, like increased memory pressure -as unrelated rcu tasks are unable to make their reclaim callbacks and -result in OOM conditions. - - rcu: INFO: rcu_sched self-detected stall on CPU - rcu: 36-....: (20999 ticks this GP) idle=b01c/1/0x4000000000000000 softirq=35839/35839 fqs=3538 - rcu: hardirqs softirqs csw/system - rcu: number: 0 107 0 - rcu: cputime: 50 0 10446 ==> 10556(ms) - rcu: (t=21075 jiffies g=377761 q=204059 ncpus=384) -... - - ? asm_sysvec_apic_timer_interrupt+0x16/0x20 - ? walk_system_ram_range+0x63/0x120 - ? walk_system_ram_range+0x46/0x120 - ? pgprot_writethrough+0x20/0x20 - lookup_memtype+0x67/0xf0 - track_pfn_insert+0x20/0x40 - vmf_insert_pfn_prot+0x88/0x140 - vfio_pci_mmap_huge_fault+0xf9/0x1b0 [vfio_pci_core] - __do_fault+0x28/0x1b0 - handle_mm_fault+0xef1/0x2560 - fixup_user_fault+0xf5/0x270 - vaddr_get_pfns+0x169/0x2f0 [vfio_iommu_type1] - vfio_pin_pages_remote+0x162/0x8e0 [vfio_iommu_type1] - vfio_iommu_type1_ioctl+0x1121/0x1810 [vfio_iommu_type1] - ? futex_wake+0x1c1/0x260 - x64_sys_call+0x234/0x17a0 - do_syscall_64+0x63/0x130 - ? exc_page_fault+0x63/0x130 - entry_SYSCALL_64_after_hwframe+0x4b/0x53 - -Signed-off-by: Keith Busch -Reviewed-by: Paul E. McKenney -Link: https://lore.kernel.org/r/20250715184622.3561598-1-kbusch@meta.com -Signed-off-by: Alex Williamson -Signed-off-by: Sasha Levin ---- - drivers/vfio/vfio_iommu_type1.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c -index 6a89bbec738f..03f4274bdbb7 100644 ---- a/drivers/vfio/vfio_iommu_type1.c -+++ b/drivers/vfio/vfio_iommu_type1.c -@@ -696,6 +696,13 @@ static long vfio_pin_pages_remote(struct vfio_dma *dma, unsigned long vaddr, - - while (npage) { - if (!batch->size) { -+ /* -+ * Large mappings may take a while to repeatedly refill -+ * the batch, so conditionally relinquish the CPU when -+ * needed to avoid stalls. -+ */ -+ cond_resched(); -+ - /* Empty batch, so refill it. */ - long req_pages = min_t(long, npage, batch->capacity); - --- -2.39.5 -