From 3e30c7bb391a0870c044d677bf04814ec7fe1e0a Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 27 May 2021 11:23:27 +0200 Subject: [PATCH] 4.9-stable patches added patches: mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch scripts-switch-explicitly-to-python-3.patch tweewide-fix-most-shebang-lines.patch --- ...-drop-zone-lock-in-proc-pagetypeinfo.patch | 49 ++++ ...cripts-switch-explicitly-to-python-3.patch | 39 +++ queue-4.9/series | 3 + .../tweewide-fix-most-shebang-lines.patch | 264 ++++++++++++++++++ 4 files changed, 355 insertions(+) create mode 100644 queue-4.9/mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch create mode 100644 queue-4.9/scripts-switch-explicitly-to-python-3.patch create mode 100644 queue-4.9/series create mode 100644 queue-4.9/tweewide-fix-most-shebang-lines.patch diff --git a/queue-4.9/mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch b/queue-4.9/mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch new file mode 100644 index 00000000000..1db3db51045 --- /dev/null +++ b/queue-4.9/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 +@@ -1178,6 +1178,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.9/scripts-switch-explicitly-to-python-3.patch b/queue-4.9/scripts-switch-explicitly-to-python-3.patch new file mode 100644 index 00000000000..05d87668a1f --- /dev/null +++ b/queue-4.9/scripts-switch-explicitly-to-python-3.patch @@ -0,0 +1,39 @@ +From 51839e29cb5954470ea4db7236ef8c3d77a6e0bb Mon Sep 17 00:00:00 2001 +From: Andy Shevchenko +Date: Wed, 9 Dec 2020 13:50:17 +0200 +Subject: scripts: switch explicitly to Python 3 + +From: Andy Shevchenko + +commit 51839e29cb5954470ea4db7236ef8c3d77a6e0bb upstream. + +Some distributions are about to switch to Python 3 support only. +This means that /usr/bin/python, which is Python 2, is not available +anymore. Hence, switch scripts to use Python 3 explicitly. + +Signed-off-by: Andy Shevchenko +Signed-off-by: Masahiro Yamada +[nicolas@fjasle.eu: update context for v4.9] +Signed-off-by: Nicolas Schier +Signed-off-by: Greg Kroah-Hartman +--- + scripts/bloat-o-meter | 2 +- + scripts/diffconfig | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/scripts/bloat-o-meter ++++ b/scripts/bloat-o-meter +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # Copyright 2004 Matt Mackall + # +--- a/scripts/diffconfig ++++ b/scripts/diffconfig +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # diffconfig - a tool to compare .config files. + # diff --git a/queue-4.9/series b/queue-4.9/series new file mode 100644 index 00000000000..bd568cb1aef --- /dev/null +++ b/queue-4.9/series @@ -0,0 +1,3 @@ +mm-vmstat-drop-zone-lock-in-proc-pagetypeinfo.patch +tweewide-fix-most-shebang-lines.patch +scripts-switch-explicitly-to-python-3.patch diff --git a/queue-4.9/tweewide-fix-most-shebang-lines.patch b/queue-4.9/tweewide-fix-most-shebang-lines.patch new file mode 100644 index 00000000000..0bf6597e9e1 --- /dev/null +++ b/queue-4.9/tweewide-fix-most-shebang-lines.patch @@ -0,0 +1,264 @@ +From c25ce589dca10d64dde139ae093abc258a32869c Mon Sep 17 00:00:00 2001 +From: Finn Behrens +Date: Mon, 23 Nov 2020 15:15:33 +0100 +Subject: tweewide: Fix most Shebang lines + +From: Finn Behrens + +commit c25ce589dca10d64dde139ae093abc258a32869c upstream. + +Change every shebang which does not need an argument to use /usr/bin/env. +This is needed as not every distro has everything under /usr/bin, +sometimes not even bash. + +Signed-off-by: Finn Behrens +Signed-off-by: Masahiro Yamada +[nicolas@fjasle.eu: update contexts for v4.9, adapt for old scripts] +Signed-off-by: Nicolas Schier +Signed-off-by: Greg Kroah-Hartman +--- + Documentation/sphinx/parse-headers.pl | 2 +- + Documentation/target/tcm_mod_builder.py | 2 +- + Documentation/trace/postprocess/decode_msr.py | 2 +- + Documentation/trace/postprocess/trace-pagealloc-postprocess.pl | 2 +- + Documentation/trace/postprocess/trace-vmscan-postprocess.pl | 2 +- + arch/ia64/scripts/unwcheck.py | 2 +- + scripts/analyze_suspend.py | 2 +- + scripts/bloat-o-meter | 2 +- + scripts/bootgraph.pl | 2 +- + scripts/checkincludes.pl | 2 +- + scripts/checkstack.pl | 2 +- + scripts/config | 2 +- + scripts/diffconfig | 2 +- + scripts/dtc/dt_to_config | 2 +- + scripts/extract_xc3028.pl | 2 +- + scripts/get_dvb_firmware | 2 +- + scripts/markup_oops.pl | 2 +- + scripts/profile2linkerlist.pl | 2 +- + scripts/show_delta | 2 +- + scripts/stackdelta | 2 +- + scripts/tracing/draw_functrace.py | 2 +- + tools/kvm/kvm_stat/kvm_stat | 2 +- + tools/perf/python/tracepoint.py | 2 +- + tools/perf/python/twatch.py | 2 +- + tools/perf/scripts/python/sched-migration.py | 2 +- + tools/perf/util/setup.py | 2 +- + tools/testing/ktest/compare-ktest-sample.pl | 2 +- + 27 files changed, 27 insertions(+), 27 deletions(-) + +--- a/Documentation/sphinx/parse-headers.pl ++++ b/Documentation/sphinx/parse-headers.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + use strict; + use Text::Tabs; + +--- a/Documentation/target/tcm_mod_builder.py ++++ b/Documentation/target/tcm_mod_builder.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # The TCM v4 multi-protocol fabric module generation script for drivers/target/$NEW_MOD + # + # Copyright (c) 2010 Rising Tide Systems +--- a/Documentation/trace/postprocess/decode_msr.py ++++ b/Documentation/trace/postprocess/decode_msr.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # add symbolic names to read_msr / write_msr in trace + # decode_msr msr-index.h < trace + import sys +--- a/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl ++++ b/Documentation/trace/postprocess/trace-pagealloc-postprocess.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + # This is a POC (proof of concept or piece of crap, take your pick) for reading the + # text representation of trace output related to page allocation. It makes an attempt + # to extract some high-level information on what is going on. The accuracy of the parser +--- a/Documentation/trace/postprocess/trace-vmscan-postprocess.pl ++++ b/Documentation/trace/postprocess/trace-vmscan-postprocess.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + # This is a POC for reading the text representation of trace output related to + # page reclaim. It makes an attempt to extract some high-level information on + # what is going on. The accuracy of the parser may vary +--- a/arch/ia64/scripts/unwcheck.py ++++ b/arch/ia64/scripts/unwcheck.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # Usage: unwcheck.py FILE + # +--- a/scripts/analyze_suspend.py ++++ b/scripts/analyze_suspend.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # Tool for analyzing suspend/resume timing + # Copyright (c) 2013, Intel Corporation. +--- a/scripts/bloat-o-meter ++++ b/scripts/bloat-o-meter +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # Copyright 2004 Matt Mackall + # +--- a/scripts/bootgraph.pl ++++ b/scripts/bootgraph.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # Copyright 2008, Intel Corporation + # +--- a/scripts/checkincludes.pl ++++ b/scripts/checkincludes.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + # + # checkincludes: find/remove files included more than once + # +--- a/scripts/checkstack.pl ++++ b/scripts/checkstack.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # Check the stack usage of functions + # +--- a/scripts/config ++++ b/scripts/config +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/usr/bin/env bash + # Manipulate options in a .config file from the command line + + myname=${0##*/} +--- a/scripts/diffconfig ++++ b/scripts/diffconfig +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # diffconfig - a tool to compare .config files. + # +--- a/scripts/dtc/dt_to_config ++++ b/scripts/dtc/dt_to_config +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # Copyright 2016 by Frank Rowand + # Copyright 2016 by Gaurav Minocha +--- a/scripts/extract_xc3028.pl ++++ b/scripts/extract_xc3028.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # Copyright (c) Mauro Carvalho Chehab + # Released under GPLv2 +--- a/scripts/get_dvb_firmware ++++ b/scripts/get_dvb_firmware +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + # DVB firmware extractor + # + # (c) 2004 Andrew de Quincey +--- a/scripts/markup_oops.pl ++++ b/scripts/markup_oops.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + use File::Basename; + use Math::BigInt; +--- a/scripts/profile2linkerlist.pl ++++ b/scripts/profile2linkerlist.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # + # Takes a (sorted) output of readprofile and turns it into a list suitable for +--- a/scripts/show_delta ++++ b/scripts/show_delta +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # show_deltas: Read list of printk messages instrumented with + # time data, and format with time deltas. +--- a/scripts/stackdelta ++++ b/scripts/stackdelta +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + # Read two files produced by the stackusage script, and show the + # delta between them. +--- a/scripts/tracing/draw_functrace.py ++++ b/scripts/tracing/draw_functrace.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + + """ + Copyright 2008 (c) Frederic Weisbecker +--- a/tools/kvm/kvm_stat/kvm_stat ++++ b/tools/kvm/kvm_stat/kvm_stat +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # top-like utility for displaying kvm statistics + # +--- a/tools/perf/python/tracepoint.py ++++ b/tools/perf/python/tracepoint.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python ++#! /usr/bin/env python + # -*- python -*- + # -*- coding: utf-8 -*- + +--- a/tools/perf/python/twatch.py ++++ b/tools/perf/python/twatch.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python ++#! /usr/bin/env python + # -*- python -*- + # -*- coding: utf-8 -*- + # twatch - Experimental use of the perf python interface +--- a/tools/perf/scripts/python/sched-migration.py ++++ b/tools/perf/scripts/python/sched-migration.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/env python + # + # Cpu task migration overview toy + # +--- a/tools/perf/util/setup.py ++++ b/tools/perf/util/setup.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python2 ++#!/usr/bin/env python2 + + from distutils.core import setup, Extension + from os import getenv +--- a/tools/testing/ktest/compare-ktest-sample.pl ++++ b/tools/testing/ktest/compare-ktest-sample.pl +@@ -1,4 +1,4 @@ +-#!/usr/bin/perl ++#!/usr/bin/env perl + + open (IN,"ktest.pl"); + while () { -- 2.47.3