[pve-devel] [PATCH kernel 4.15 2/5] rebase patches on top of Ubuntu-4.15.0-14.15
Fabian Grünbichler
f.gruenbichler at proxmox.com
Wed Apr 4 14:22:30 CEST 2018
and drop those applied upstream
Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
...overrides-for-missing-ACS-capabilities-4..patch | 6 +-
...-not-wait-for-lock_page-in-shmem_unused_h.patch | 103 ---------------------
...ot-wait-for-lock_page-in-deferred_split_s.patch | 46 ---------
3 files changed, 3 insertions(+), 152 deletions(-)
delete mode 100644 patches/kernel/0007-mm-shmem-do-not-wait-for-lock_page-in-shmem_unused_h.patch
delete mode 100644 patches/kernel/0007-mm-thp-Do-not-wait-for-lock_page-in-deferred_split_s.patch
diff --git a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch
index c7fcb74..63bd832 100644
--- a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch
+++ b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch
@@ -54,7 +54,7 @@ Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
2 files changed, 110 insertions(+)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
-index 27ca3fbc47aa..5e3caff3fb49 100644
+index 2db36b52a4ff..9b7f4e3e6e30 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -2968,6 +2968,15 @@
@@ -74,7 +74,7 @@ index 27ca3fbc47aa..5e3caff3fb49 100644
Safety option to keep boot IRQs enabled. This
should never be necessary.
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 242040c87ce2..3926d5bf4d06 100644
+index 451fd28f1855..a928bd86e102 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -3702,6 +3702,106 @@ static int __init pci_apply_final_quirks(void)
@@ -184,7 +184,7 @@ index 242040c87ce2..3926d5bf4d06 100644
/*
* Following are device-specific reset methods which can be used to
* reset a single function if other methods (e.g. FLR, PM D0->D3) are
-@@ -4534,6 +4634,7 @@ static const struct pci_dev_acs_enabled {
+@@ -4536,6 +4636,7 @@ static const struct pci_dev_acs_enabled {
{ PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs },
/* APM X-Gene */
{ PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs },
diff --git a/patches/kernel/0007-mm-shmem-do-not-wait-for-lock_page-in-shmem_unused_h.patch b/patches/kernel/0007-mm-shmem-do-not-wait-for-lock_page-in-shmem_unused_h.patch
deleted file mode 100644
index 9d640ed..0000000
--- a/patches/kernel/0007-mm-shmem-do-not-wait-for-lock_page-in-shmem_unused_h.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Kirill A. Shutemov" <kirill.shutemov at linux.intel.com>
-Date: Fri, 23 Mar 2018 09:19:21 +0100
-Subject: [PATCH] mm/shmem: do not wait for lock_page() in
- shmem_unused_huge_shrink()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-shmem_unused_huge_shrink() gets called from reclaim path. Waiting for
-page lock may lead to deadlock there.
-
-There was a bug report that may be attributed to this:
-
-http://lkml.kernel.org/r/alpine.LRH.2.11.1801242349220.30642@mail.ewheeler.net
-
-Replace lock_page() with trylock_page() and skip the page if we failed to
-lock it. We will get to the page on the next scan.
-
-We can test for the PageTransHuge() outside the page lock as we only need
-protection against splitting the page under us. Holding pin oni the page
-is enough for this.
-
-Link: http://lkml.kernel.org/r/20180316210830.43738-1-kirill.shutemov@linux.intel.com
-Fixes: 779750d20b93 ("shmem: split huge pages beyond i_size under memory pressure")
-Signed-off-by: Kirill A. Shutemov <kirill.shutemov at linux.intel.com>
-Reported-by: Eric Wheeler <linux-mm at lists.ewheeler.net>
-Acked-by: Michal Hocko <mhocko at suse.com>
-Reviewed-by: Andrew Morton <akpm at linux-foundation.org>
-Cc: Tetsuo Handa <penguin-kernel at I-love.SAKURA.ne.jp>
-Cc: Hugh Dickins <hughd at google.com>
-Cc: <stable at vger.kernel.org> [4.8+]
-Signed-off-by: Andrew Morton <>
-(cherry-picked from https://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git/commit/?h=since-4.15&id=73eccc61c701ee7b4223aea2079542a712feeea7)
-Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
----
- mm/shmem.c | 31 ++++++++++++++++++++-----------
- 1 file changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/mm/shmem.c b/mm/shmem.c
-index f6695c111086..800482fe6ed6 100644
---- a/mm/shmem.c
-+++ b/mm/shmem.c
-@@ -497,36 +497,45 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo,
- info = list_entry(pos, struct shmem_inode_info, shrinklist);
- inode = &info->vfs_inode;
-
-- if (nr_to_split && split >= nr_to_split) {
-- iput(inode);
-- continue;
-- }
-+ if (nr_to_split && split >= nr_to_split)
-+ goto leave;
-
-- page = find_lock_page(inode->i_mapping,
-+ page = find_get_page(inode->i_mapping,
- (inode->i_size & HPAGE_PMD_MASK) >> PAGE_SHIFT);
- if (!page)
- goto drop;
-
-+ /* No huge page at the end of the file: nothing to split */
- if (!PageTransHuge(page)) {
-- unlock_page(page);
- put_page(page);
- goto drop;
- }
-
-+ /*
-+ * Leave the inode on the list if we failed to lock
-+ * the page at this time.
-+ *
-+ * Waiting for the lock may lead to deadlock in the
-+ * reclaim path.
-+ */
-+ if (!trylock_page(page)) {
-+ put_page(page);
-+ goto leave;
-+ }
-+
- ret = split_huge_page(page);
- unlock_page(page);
- put_page(page);
-
-- if (ret) {
-- /* split failed: leave it on the list */
-- iput(inode);
-- continue;
-- }
-+ /* If split failed leave the inode on the list */
-+ if (ret)
-+ goto leave;
-
- split++;
- drop:
- list_del_init(&info->shrinklist);
- removed++;
-+leave:
- iput(inode);
- }
-
---
-2.14.2
-
diff --git a/patches/kernel/0007-mm-thp-Do-not-wait-for-lock_page-in-deferred_split_s.patch b/patches/kernel/0007-mm-thp-Do-not-wait-for-lock_page-in-deferred_split_s.patch
deleted file mode 100644
index 9497533..0000000
--- a/patches/kernel/0007-mm-thp-Do-not-wait-for-lock_page-in-deferred_split_s.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "Kirill A. Shutemov" <kirill.shutemov at linux.intel.com>
-Date: Thu, 15 Mar 2018 18:07:47 +0300
-Subject: [PATCH] mm/thp: Do not wait for lock_page() in deferred_split_scan()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-deferred_split_scan() gets called from reclaim path. Waiting for page
-lock may lead to deadlock there.
-
-Replace lock_page() with trylock_page() and skip the page if we failed
-to lock it. We will get to the page on the next scan.
-
-Fixes: 9a982250f773 ("thp: introduce deferred_split_huge_page()")
-
-Signed-off-by: Kirill A. Shutemov <kirill.shutemov at linux.intel.com>
-Acked-by: Michal Hocko <mhocko at suse.com>
-(cherry-picked from https://patchwork.kernel.org/patch/10284703/)
-Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
----
- mm/huge_memory.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/mm/huge_memory.c b/mm/huge_memory.c
-index 0e7ded98d114..4ed6c89e95c3 100644
---- a/mm/huge_memory.c
-+++ b/mm/huge_memory.c
-@@ -2791,11 +2791,13 @@ static unsigned long deferred_split_scan(struct shrinker *shrink,
-
- list_for_each_safe(pos, next, &list) {
- page = list_entry((void *)pos, struct page, mapping);
-- lock_page(page);
-+ if (!trylock_page(page))
-+ goto next;
- /* split_huge_page() removes page from list on success */
- if (!split_huge_page(page))
- split++;
- unlock_page(page);
-+next:
- put_page(page);
- }
-
---
-2.14.2
-
--
2.14.2
More information about the pve-devel
mailing list