Subject: Re: linux-next: Tree for Feb 13 (runtime failures and 'non-zero nr_pmds' messages)

From: Stephen Rothwell <[email-masked]>
Date: Sat, 14 Feb 2015 10:37:34 +1100

Hi Guenter,

On Fri, 13 Feb 2015 10:54:28 -0800 Guenter Roeck <[email-masked]> wrote:
>
> I see a number of runtime failures with this version.
> It affects alpha, mips64, ppc64, and x86_64.
> Symptom is always the same. There are lots of
> 
> BUG: non-zero nr_pmds on freeing mm: X (where X is 1..4)
> 
> messages in the log, and the affected VMs don't reboot.
> 
> I don't see the problem in curent mainline, nor in mmotm.
> Bisect points to "Merge branch 'akpm-current/current'",
> which isn't really helpful.
> 
> Not sure if this is a bad merge resolution, so just take this
> as a heads-up for now.

Yours is the second report overnight (see attached).  Almost certainly
a bad merge resolution on my part (its a bit hard when Andrew get part
of his patch set merged by Linus :-()

I will fix up the merge on Monday (unless Andrew gets more stuff merged
or updates mmotm for me).

Sorry about that.
-- 
Cheers,
Stephen Rothwell                    [email-masked]

Subject: Re: linux-next: Tree for Feb 13
From: Sabrina Dubroca <[email-masked]>
To: Stephen Rothwell <[email-masked]>
Cc: [email-masked], [email-masked], "Kirill A. Shutemov" <[email-masked]>
Date: Fri, 13 Feb 2015 12:03:26 +0100

2015-02-13, 16:56:15 +1100, Stephen Rothwell wrote:
> Hi all,
> 
> Please do not add any material destined for v3.21 to your linux-next
> included trees until after v3.20-rc1 has been released.
> 
> Changes since 20150212:

Hi Stephen,

Your conflict resolution in

8fe7fba50596 "Merge branch 'akpm-current/current'"

for mm/memory.c looks a bit off.  I get flooded with these messages:

  BUG: non-zero nr_pmds on freeing mm: 4

and fixed it with:

diff --git a/mm/memory.c b/mm/memory.c
index 450e4952c5ef..802adda2b0b6 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -3350,7 +3350,6 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
 	smp_wmb(); /* See comment in __pte_alloc */
 
 	spin_lock(&mm->page_table_lock);
-	mm_inc_nr_pmds(mm);
 #ifndef __ARCH_HAS_4LEVEL_HACK
 	if (!pud_present(*pud)) {
 		mm_inc_nr_pmds(mm);

references:
http://www.spinics.net/lists/linux-mm/msg84294.html
dc6c9a35b66b "mm: account pmd page tables to the process"

[CC'ed Kirill A. Shutemov]

Thanks

-- 
Sabrina