public inbox for linux-arm-kernel@lists.infradead.org 
 help / color / mirror / Atom feed
From: kirill@shutemov•name (Kirill A. Shutemov)
To: linux-arm-kernel@lists•infradead.org
Subject: [BUG] random kernel crashes after THP rework on s390 (maybe also on PowerPC and ARM)
Date: Tue, 23 Feb 2016 22:33:45 +0300	[thread overview]
Message-ID: <20160223193345.GC21820@node.shutemov.name> (raw)
In-Reply-To: <20160223191907.25719a4d@thinkpad>

On Tue, Feb 23, 2016 at 07:19:07PM +0100, Gerald Schaefer wrote:
> I'll check with Martin, maybe it is actually trivial, then we can
> do a quick test it to rule that one out.

Oh. I found a bug in __split_huge_pmd_locked(). Although, not sure if it's
_the_ bug.

pmdp_invalidate() is called for the wrong address :-/
I guess that can be destructive on the architecture, right?

Could you check this?

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 1c317b85ea7d..4246bc70e55a 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -2865,7 +2865,7 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd,
 	pgtable = pgtable_trans_huge_withdraw(mm, pmd);
 	pmd_populate(mm, &_pmd, pgtable);
 
-	for (i = 0; i < HPAGE_PMD_NR; i++, haddr += PAGE_SIZE) {
+	for (i = 0; i < HPAGE_PMD_NR; i++) {
 		pte_t entry, *pte;
 		/*
 		 * Note that NUMA hinting access restrictions are not
@@ -2886,9 +2886,9 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd,
 		}
 		if (dirty)
 			SetPageDirty(page + i);
-		pte = pte_offset_map(&_pmd, haddr);
+		pte = pte_offset_map(&_pmd, haddr + i * PAGE_SIZE);
 		BUG_ON(!pte_none(*pte));
-		set_pte_at(mm, haddr, pte, entry);
+		set_pte_at(mm, haddr + i * PAGE_SIZE, pte, entry);
 		atomic_inc(&page[i]._mapcount);
 		pte_unmap(pte);
 	}
@@ -2938,7 +2938,7 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd,
 	pmd_populate(mm, pmd, pgtable);
 
 	if (freeze) {
-		for (i = 0; i < HPAGE_PMD_NR; i++, haddr += PAGE_SIZE) {
+		for (i = 0; i < HPAGE_PMD_NR; i++) {
 			page_remove_rmap(page + i, false);
 			put_page(page + i);
 		}
-- 
 Kirill A. Shutemov

  parent reply	other threads:[~2016-02-23 19:33 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-11 18:22 [BUG] random kernel crashes after THP rework on s390 (maybe also on PowerPC and ARM) Gerald Schaefer
2016-02-11 19:09 ` Kirill A. Shutemov
2016-02-11 19:12   ` Kirill A. Shutemov
2016-02-12 12:21     ` Sebastian Ott
2016-02-11 19:57   ` Gerald Schaefer
2016-02-12  4:04     ` Aneesh Kumar K.V
2016-02-12 11:59       ` Gerald Schaefer
2016-02-12 16:17         ` Aneesh Kumar K.V
2016-02-12 10:01     ` Will Deacon
2016-02-12 10:12       ` Sebastian Ott
2016-02-12 15:52         ` Will Deacon
2016-02-12 15:41     ` Kirill A. Shutemov
2016-02-12 15:57       ` Christian Borntraeger
2016-02-12 17:16         ` Gerald Schaefer
2016-02-12 23:15           ` Kirill A. Shutemov
2016-02-13 11:58             ` Sebastian Ott
2016-02-15 11:31               ` Kirill A. Shutemov
2016-02-15 16:38                 ` Sebastian Ott
2016-02-15 18:37                 ` Gerald Schaefer
2016-02-15 21:35                   ` Kirill A. Shutemov
2016-02-16  9:54                     ` Sebastian Ott
2016-02-16 16:24                     ` Gerald Schaefer
2016-02-17 15:04                       ` Kirill A. Shutemov
2016-02-17 19:04                         ` Sebastian Ott
2016-02-16 18:46                     ` Christian Borntraeger
2016-02-17 19:13               ` Gerald Schaefer
2016-02-17 23:58                 ` Kirill A. Shutemov
2016-02-18 15:00                   ` Gerald Schaefer
2016-02-18 17:06                     ` Kirill A. Shutemov
2016-02-19 14:15                       ` Sebastian Ott
2016-02-15 16:41             ` Gerald Schaefer
2016-02-23 10:32           ` Kirill A. Shutemov
2016-02-23 17:46             ` Linus Torvalds
2016-02-23 18:19             ` Gerald Schaefer
2016-02-23 18:47               ` Will Deacon
2016-02-25 15:49                 ` Steve Capper
2016-02-25 16:01                   ` Kirill A. Shutemov
2016-02-25 16:08                     ` Steve Capper
2016-02-23 19:33               ` Kirill A. Shutemov [this message]
2016-02-23 20:22                 ` Will Deacon
2016-02-24 10:16                   ` Christian Borntraeger
2016-02-24 10:41                     ` Will Deacon
2016-02-24 10:51                       ` Christian Borntraeger
2016-02-24 11:02                         ` Will Deacon
2016-02-24 17:22                         ` Aneesh Kumar K.V
2016-02-24  8:39                 ` Martin Schwidefsky
2016-02-24 12:11                   ` Sebastian Ott
2016-02-24 16:44                 ` Gerald Schaefer
2016-02-24  8:22               ` Martin Schwidefsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160223193345.GC21820@node.shutemov.name \
    --to=kirill@shutemov$(echo .)name \
    --cc=linux-arm-kernel@lists$(echo .)infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox