From: Andrea Arcangeli <aarcange@redhat.com>
To: Borislav Petkov <bp@amd64.org>
Cc: werner <w.landgraf@ru.ru>,
linux-kernel@vger.kernel.org, linux-mm <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: 2.6.38-rc1 problems with khugepaged
Date: Wed, 19 Jan 2011 23:21:50 +0100 [thread overview]
Message-ID: <20110119222150.GP9506@random.random> (raw)
In-Reply-To: <20110119155954.GA2272@kryptos.osrc.amd.com>
Hello Werner,
this should fix your oops, it's untested still so let me know if you
test it.
It's a noop for x86_64 and it only affected x86 32bit with highpte enabled.
====
Subject: khugepaged: fix pte_unmap for highpte x86_32
From: Andrea Arcangeli <aarcange@redhat.com>
__collapse_huge_page_copy is still dereferencing the pte passed as parameter so
we must pte_unmap after __collapse_huge_page_copy returns, not before.
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
---
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 004c9c2..c4f634b 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1837,9 +1837,9 @@ static void collapse_huge_page(struct mm_struct *mm,
spin_lock(ptl);
isolated = __collapse_huge_page_isolate(vma, address, pte);
spin_unlock(ptl);
- pte_unmap(pte);
if (unlikely(!isolated)) {
+ pte_unmap(pte);
spin_lock(&mm->page_table_lock);
BUG_ON(!pmd_none(*pmd));
set_pmd_at(mm, address, pmd, _pmd);
@@ -1856,6 +1856,7 @@ static void collapse_huge_page(struct mm_struct *mm,
anon_vma_unlock(vma->anon_vma);
__collapse_huge_page_copy(pte, new_page, vma, address, ptl);
+ pte_unmap(pte);
__SetPageUptodate(new_page);
pgtable = pmd_pgtable(_pmd);
VM_BUG_ON(page_count(pgtable) != 1);
WARNING: multiple messages have this Message-ID (diff)
From: Andrea Arcangeli <aarcange@redhat.com>
To: Borislav Petkov <bp@amd64.org>
Cc: werner <w.landgraf@ru.ru>,
linux-kernel@vger.kernel.org, linux-mm <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: 2.6.38-rc1 problems with khugepaged
Date: Wed, 19 Jan 2011 23:21:50 +0100 [thread overview]
Message-ID: <20110119222150.GP9506@random.random> (raw)
In-Reply-To: <20110119155954.GA2272@kryptos.osrc.amd.com>
Hello Werner,
this should fix your oops, it's untested still so let me know if you
test it.
It's a noop for x86_64 and it only affected x86 32bit with highpte enabled.
====
Subject: khugepaged: fix pte_unmap for highpte x86_32
From: Andrea Arcangeli <aarcange@redhat.com>
__collapse_huge_page_copy is still dereferencing the pte passed as parameter so
we must pte_unmap after __collapse_huge_page_copy returns, not before.
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
---
diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 004c9c2..c4f634b 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -1837,9 +1837,9 @@ static void collapse_huge_page(struct mm_struct *mm,
spin_lock(ptl);
isolated = __collapse_huge_page_isolate(vma, address, pte);
spin_unlock(ptl);
- pte_unmap(pte);
if (unlikely(!isolated)) {
+ pte_unmap(pte);
spin_lock(&mm->page_table_lock);
BUG_ON(!pmd_none(*pmd));
set_pmd_at(mm, address, pmd, _pmd);
@@ -1856,6 +1856,7 @@ static void collapse_huge_page(struct mm_struct *mm,
anon_vma_unlock(vma->anon_vma);
__collapse_huge_page_copy(pte, new_page, vma, address, ptl);
+ pte_unmap(pte);
__SetPageUptodate(new_page);
pgtable = pmd_pgtable(_pmd);
VM_BUG_ON(page_count(pgtable) != 1);
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom policy in Canada: sign http://dissolvethecrtc.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-01-19 22:22 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-19 13:45 2.6.38-rc1 problems with khugepaged werner
2011-01-19 15:59 ` Borislav Petkov
2011-01-19 15:59 ` Borislav Petkov
2011-01-19 19:55 ` Andrea Arcangeli
2011-01-19 19:55 ` Andrea Arcangeli
2011-01-19 21:45 ` Johannes Weiner
2011-01-19 21:45 ` Johannes Weiner
2011-01-20 0:01 ` Andrea Arcangeli
2011-01-20 0:01 ` Andrea Arcangeli
2011-01-20 1:10 ` Johannes Weiner
2011-01-20 1:10 ` Johannes Weiner
2011-01-20 1:21 ` Andrea Arcangeli
2011-01-20 1:21 ` Andrea Arcangeli
2011-01-19 22:21 ` Andrea Arcangeli [this message]
2011-01-19 22:21 ` Andrea Arcangeli
2011-01-20 20:13 ` Steven Rostedt
2011-01-20 20:13 ` Steven Rostedt
-- strict thread matches above, loose matches on Subject: below --
2011-01-21 8:36 werner
2011-01-21 10:43 werner
2011-01-21 19:17 ` Andrea Arcangeli
2011-01-21 21:14 ` Steven Rostedt
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=20110119222150.GP9506@random.random \
--to=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bp@amd64.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=w.landgraf@ru.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.