From: Greg Kroah-Hartman Date: Thu, 27 May 2021 09:24:01 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v5.4.123~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bbef3e2e8f56fc162155be987c2510cc9f5cac7b;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch usb-dwc3-gadget-enable-suspend-events.patch --- diff --git a/queue-4.19/mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch b/queue-4.19/mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch new file mode 100644 index 00000000000..fbc5971636e --- /dev/null +++ b/queue-4.19/mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch @@ -0,0 +1,49 @@ +From foo@baz Thu May 27 11:14:38 AM CEST 2021 +From: Stephen Brennan +Date: Wed, 26 May 2021 10:46:13 -0700 +Subject: mm, vmstat: drop zone->lock in /proc/pagetypeinfo +To: stable@vger.kernel.org +Cc: Stephen Brennan , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Christoph Lameter , Mel Gorman , Andy Whitcroft , Aruna Ramakrishna , Khalid Aziz +Message-ID: <20210526174613.339990-1-stephen.s.brennan@oracle.com> + +From: Stephen Brennan + +Commit 93b3a674485f6a4b8ffff85d1682d5e8b7c51560 upstream + +Commit 93b3a674485f ("mm,vmstat: reduce zone->lock holding time by +/proc/pagetypeinfo") upstream caps the number of iterations over each +free_list at 100,000, and also drops the zone->lock in between each +migrate type. Capping the iteration count alters the file contents in +some cases, which means this approach may not be suitable for stable +backports. + +However, dropping zone->lock in between migrate types (and, as a result, +page orders) will not change the /proc/pagetypeinfo file contents. It +can significantly reduce the length of time spent with IRQs disabled, +which can prevent missed interrupts or soft lockups which we have +observed on systems with particularly large memory. + +Thus, this commit is a modified version of the upstream one which only +drops the lock in between migrate types. + +Fixes: 467c996c1e19 ("Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo") +Signed-off-by: Stephen Brennan +Reviewed-by: Aruna Ramakrishna +Reviewed-by: Khalid Aziz +Signed-off-by: Greg Kroah-Hartman +--- + mm/vmstat.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/mm/vmstat.c ++++ b/mm/vmstat.c +@@ -1384,6 +1384,9 @@ static void pagetypeinfo_showfree_print( + list_for_each(curr, &area->free_list[mtype]) + freecount++; + seq_printf(m, "%6lu ", freecount); ++ spin_unlock_irq(&zone->lock); ++ cond_resched(); ++ spin_lock_irq(&zone->lock); + } + seq_putc(m, '\n'); + } diff --git a/queue-4.19/series b/queue-4.19/series index e69de29bb2d..ec021e62407 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -0,0 +1,2 @@ +mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch +usb-dwc3-gadget-enable-suspend-events.patch diff --git a/queue-4.19/usb-dwc3-gadget-enable-suspend-events.patch b/queue-4.19/usb-dwc3-gadget-enable-suspend-events.patch new file mode 100644 index 00000000000..a7fdefed5e4 --- /dev/null +++ b/queue-4.19/usb-dwc3-gadget-enable-suspend-events.patch @@ -0,0 +1,43 @@ +From d1d90dd27254c44d087ad3f8b5b3e4fff0571f45 Mon Sep 17 00:00:00 2001 +From: Jack Pham +Date: Wed, 28 Apr 2021 02:01:10 -0700 +Subject: usb: dwc3: gadget: Enable suspend events + +From: Jack Pham + +commit d1d90dd27254c44d087ad3f8b5b3e4fff0571f45 upstream. + +commit 72704f876f50 ("dwc3: gadget: Implement the suspend entry event +handler") introduced (nearly 5 years ago!) an interrupt handler for +U3/L1-L2 suspend events. The problem is that these events aren't +currently enabled in the DEVTEN register so the handler is never +even invoked. Fix this simply by enabling the corresponding bit +in dwc3_gadget_enable_irq() using the same revision check as found +in the handler. + +Fixes: 72704f876f50 ("dwc3: gadget: Implement the suspend entry event handler") +Acked-by: Felipe Balbi +Signed-off-by: Jack Pham +Cc: stable +Link: https://lore.kernel.org/r/20210428090111.3370-1-jackp@codeaurora.org +[jackp@codeaurora.org: backport to pre-5.7 by replacing + DWC3_IS_VER_PRIOR check with direct comparison of dwc->revision] +Signed-off-by: Jack Pham +Signed-off-by: Greg Kroah-Hartman +--- + drivers/usb/dwc3/gadget.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/drivers/usb/dwc3/gadget.c ++++ b/drivers/usb/dwc3/gadget.c +@@ -1834,6 +1834,10 @@ static void dwc3_gadget_enable_irq(struc + if (dwc->revision < DWC3_REVISION_250A) + reg |= DWC3_DEVTEN_ULSTCNGEN; + ++ /* On 2.30a and above this bit enables U3/L2-L1 Suspend Events */ ++ if (dwc->revision >= DWC3_REVISION_230A) ++ reg |= DWC3_DEVTEN_EOPFEN; ++ + dwc3_writel(dwc->regs, DWC3_DEVTEN, reg); + } +