All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guenter Roeck <linux@roeck-us.net>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-fsdevel@vger.kernel.org, linux-next@vger.kernel.org,
	sfr@canb.auug.org.au, mhocko@suse.cz,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: mmotm 2015-01-22-15-04: qemu failures due to 'mm: account pmd page tables to the process'
Date: Tue, 27 Jan 2015 08:24:28 -0800	[thread overview]
Message-ID: <20150127162428.GA21638@roeck-us.net> (raw)
In-Reply-To: <20150127161657.GA7155@node.dhcp.inet.fi>

On Tue, Jan 27, 2015 at 06:16:57PM +0200, Kirill A. Shutemov wrote:
> On Mon, Jan 26, 2015 at 06:03:57AM -0800, Guenter Roeck wrote:
> > On 01/26/2015 04:29 AM, Kirill A. Shutemov wrote:
> > >On Fri, Jan 23, 2015 at 09:52:07PM -0800, Guenter Roeck wrote:
> > >>On Fri, Jan 23, 2015 at 01:55:19PM -0800, Andrew Morton wrote:
> > >>>On Fri, 23 Jan 2015 07:07:56 -0800 Guenter Roeck <linux@roeck-us.net> wrote:
> > >>>
> > >>>>>>
> > >>>>>>qemu:microblaze generates warnings to the console.
> > >>>>>>
> > >>>>>>WARNING: CPU: 0 PID: 32 at mm/mmap.c:2858 exit_mmap+0x184/0x1a4()
> > >>>>>>
> > >>>>>>with various call stacks. See
> > >>>>>>http://server.roeck-us.net:8010/builders/qemu-microblaze-mmotm/builds/15/steps/qemubuildcommand/logs/stdio
> > >>>>>>for details.
> > >>>>>
> > >>>>>Could you try patch below? Completely untested.
> > >>>>>
> > >>>>>>From b584bb8d493794f67484c0b57c161d61c02599bc Mon Sep 17 00:00:00 2001
> > >>>>>From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> > >>>>>Date: Fri, 23 Jan 2015 13:08:26 +0200
> > >>>>>Subject: [PATCH] microblaze: define __PAGETABLE_PMD_FOLDED
> > >>>>>
> > >>>>>Microblaze uses custom implementation of PMD folding, but doesn't define
> > >>>>>__PAGETABLE_PMD_FOLDED, which generic code expects to see. Let's fix it.
> > >>>>>
> > >>>>>Defining __PAGETABLE_PMD_FOLDED will drop out unused __pmd_alloc().
> > >>>>>It also fixes problems with recently-introduced pmd accounting.
> > >>>>>
> > >>>>>Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> > >>>>>Reported-by: Guenter Roeck <linux@roeck-us.net>
> > >>>>
> > >>>>Tested working.
> > >>>>
> > >>>>Tested-by: Guenter Roeck <linux@roeck-us.net>
> > >>>>
> > >>>>Any idea how to fix the sh problem ?
> > >>>
> > >>>Can you tell us more about it?  All I'm seeing is "qemu:sh fails to
> > >>>shut down", which isn't very clear.
> > >>
> > >>Turns out that the include file defining __PAGETABLE_PMD_FOLDED
> > >>was not always included where used, resulting in a messed up mm_struct.
> > >
> > >What means "messed up" here? It should only affect size of mm_struct.
> > >
> > Plus the offset of all variables after the #ifndef.
> 
> Okay, I guess the problem is that different parts of the kernel see
> different mm_struct depending on include ordering.
> 
> Tried to look for options, but don't see anything better than patch below.
> Andrew, is it okay to you?
> 
> From 0f113e16a058d47f3bc63a3b6ced5296afb934a6 Mon Sep 17 00:00:00 2001
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Date: Tue, 27 Jan 2015 17:59:55 +0200
> Subject: [PATCH] mm: add nr_pmds into mm_struct unconditionally
> 
> __PAGETABLE_PMD_FOLDED is defined during <asm/pgtable.h> which is not
> included into <linux/mm_types.h>. And we cannot include it here since
> many of <asm/pgtables> needs <linux/mm_types.h> to define struct page.
> 
> I failed to come up with better solution rather than put nr_pmds into
> mm_struct unconditionally.
> 
> One possible solution would be to expose number of page table levels
> architecture has via Kconfig, but that's ugly and requires changes to
> all architectures.
> 
FWIW, I tried a number of approaches. Ultimately I gave up and concluded
that it has to be either this patch or, as you say here, we would have
to add something like PAGETABLE_PMD_FOLDED as a Kconfig option.

> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

Tested working with all builds and all my qemu tests.

Tested-by: Guenter Roeck <linux@roeck-us.net>

Guenter

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Guenter Roeck <linux@roeck-us.net>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linux-fsdevel@vger.kernel.org, linux-next@vger.kernel.org,
	sfr@canb.auug.org.au, mhocko@suse.cz,
	"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Subject: Re: mmotm 2015-01-22-15-04: qemu failures due to 'mm: account pmd page tables to the process'
Date: Tue, 27 Jan 2015 08:24:28 -0800	[thread overview]
Message-ID: <20150127162428.GA21638@roeck-us.net> (raw)
In-Reply-To: <20150127161657.GA7155@node.dhcp.inet.fi>

On Tue, Jan 27, 2015 at 06:16:57PM +0200, Kirill A. Shutemov wrote:
> On Mon, Jan 26, 2015 at 06:03:57AM -0800, Guenter Roeck wrote:
> > On 01/26/2015 04:29 AM, Kirill A. Shutemov wrote:
> > >On Fri, Jan 23, 2015 at 09:52:07PM -0800, Guenter Roeck wrote:
> > >>On Fri, Jan 23, 2015 at 01:55:19PM -0800, Andrew Morton wrote:
> > >>>On Fri, 23 Jan 2015 07:07:56 -0800 Guenter Roeck <linux@roeck-us.net> wrote:
> > >>>
> > >>>>>>
> > >>>>>>qemu:microblaze generates warnings to the console.
> > >>>>>>
> > >>>>>>WARNING: CPU: 0 PID: 32 at mm/mmap.c:2858 exit_mmap+0x184/0x1a4()
> > >>>>>>
> > >>>>>>with various call stacks. See
> > >>>>>>http://server.roeck-us.net:8010/builders/qemu-microblaze-mmotm/builds/15/steps/qemubuildcommand/logs/stdio
> > >>>>>>for details.
> > >>>>>
> > >>>>>Could you try patch below? Completely untested.
> > >>>>>
> > >>>>>>From b584bb8d493794f67484c0b57c161d61c02599bc Mon Sep 17 00:00:00 2001
> > >>>>>From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> > >>>>>Date: Fri, 23 Jan 2015 13:08:26 +0200
> > >>>>>Subject: [PATCH] microblaze: define __PAGETABLE_PMD_FOLDED
> > >>>>>
> > >>>>>Microblaze uses custom implementation of PMD folding, but doesn't define
> > >>>>>__PAGETABLE_PMD_FOLDED, which generic code expects to see. Let's fix it.
> > >>>>>
> > >>>>>Defining __PAGETABLE_PMD_FOLDED will drop out unused __pmd_alloc().
> > >>>>>It also fixes problems with recently-introduced pmd accounting.
> > >>>>>
> > >>>>>Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> > >>>>>Reported-by: Guenter Roeck <linux@roeck-us.net>
> > >>>>
> > >>>>Tested working.
> > >>>>
> > >>>>Tested-by: Guenter Roeck <linux@roeck-us.net>
> > >>>>
> > >>>>Any idea how to fix the sh problem ?
> > >>>
> > >>>Can you tell us more about it?  All I'm seeing is "qemu:sh fails to
> > >>>shut down", which isn't very clear.
> > >>
> > >>Turns out that the include file defining __PAGETABLE_PMD_FOLDED
> > >>was not always included where used, resulting in a messed up mm_struct.
> > >
> > >What means "messed up" here? It should only affect size of mm_struct.
> > >
> > Plus the offset of all variables after the #ifndef.
> 
> Okay, I guess the problem is that different parts of the kernel see
> different mm_struct depending on include ordering.
> 
> Tried to look for options, but don't see anything better than patch below.
> Andrew, is it okay to you?
> 
> From 0f113e16a058d47f3bc63a3b6ced5296afb934a6 Mon Sep 17 00:00:00 2001
> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> Date: Tue, 27 Jan 2015 17:59:55 +0200
> Subject: [PATCH] mm: add nr_pmds into mm_struct unconditionally
> 
> __PAGETABLE_PMD_FOLDED is defined during <asm/pgtable.h> which is not
> included into <linux/mm_types.h>. And we cannot include it here since
> many of <asm/pgtables> needs <linux/mm_types.h> to define struct page.
> 
> I failed to come up with better solution rather than put nr_pmds into
> mm_struct unconditionally.
> 
> One possible solution would be to expose number of page table levels
> architecture has via Kconfig, but that's ugly and requires changes to
> all architectures.
> 
FWIW, I tried a number of approaches. Ultimately I gave up and concluded
that it has to be either this patch or, as you say here, we would have
to add something like PAGETABLE_PMD_FOLDED as a Kconfig option.

> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

Tested working with all builds and all my qemu tests.

Tested-by: Guenter Roeck <linux@roeck-us.net>

Guenter

  reply	other threads:[~2015-01-27 16:24 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-22 23:05 mmotm 2015-01-22-15-04 uploaded akpm
2015-01-22 23:05 ` akpm
2015-01-23  5:04 ` mmotm 2015-01-22-15-04: qemu failures due to 'mm: account pmd page tables to the process' Guenter Roeck
2015-01-23  5:04   ` Guenter Roeck
2015-01-23 11:13   ` Kirill A. Shutemov
2015-01-23 11:13     ` Kirill A. Shutemov
2015-01-23 11:13     ` Kirill A. Shutemov
2015-01-23 15:07     ` Guenter Roeck
2015-01-23 15:07       ` Guenter Roeck
2015-01-23 21:55       ` Andrew Morton
2015-01-23 21:55         ` Andrew Morton
2015-01-24  2:44         ` Guenter Roeck
2015-01-24  2:44           ` Guenter Roeck
2015-01-24  3:05           ` Guenter Roeck
2015-01-24  3:05             ` Guenter Roeck
2015-01-24  5:52         ` Guenter Roeck
2015-01-24  5:52           ` Guenter Roeck
2015-01-26 12:29           ` Kirill A. Shutemov
2015-01-26 12:29             ` Kirill A. Shutemov
2015-01-26 14:03             ` Guenter Roeck
2015-01-26 14:03               ` Guenter Roeck
2015-01-26 14:17               ` Guenter Roeck
2015-01-26 14:17                 ` Guenter Roeck
2015-01-27 16:16               ` Kirill A. Shutemov
2015-01-27 16:16                 ` Kirill A. Shutemov
2015-01-27 16:16                 ` Kirill A. Shutemov
2015-01-27 16:24                 ` Guenter Roeck [this message]
2015-01-27 16:24                   ` Guenter Roeck
2015-01-27 21:24                   ` Andrew Morton
2015-01-27 21:24                     ` Andrew Morton
2015-01-28  6:16                     ` Guenter Roeck
2015-01-28  6:16                       ` Guenter Roeck
2015-01-23  5:08 ` mmotm 2015-01-22-15-04: qemu failure due to 'mm: memcontrol: remove unnecessary soft limit tree node test' Guenter Roeck
2015-01-23  5:08   ` Guenter Roeck
2015-01-23 14:18   ` Johannes Weiner
2015-01-23 14:18     ` Johannes Weiner
2015-01-23 15:17     ` Christoph Lameter
2015-01-23 15:17       ` Christoph Lameter
2015-01-23 16:02       ` Johannes Weiner
2015-01-23 16:02         ` Johannes Weiner
2015-01-23 16:59         ` Guenter Roeck
2015-01-23 16:59           ` Guenter Roeck
2015-01-23 17:36           ` Johannes Weiner
2015-01-23 17:36             ` Johannes Weiner
2015-01-23 17:38             ` Johannes Weiner
2015-01-23 17:38               ` Johannes Weiner
2015-01-24  2:02             ` Guenter Roeck
2015-01-24  2:02               ` Guenter Roeck
2015-01-27 17:24       ` Michal Hocko
2015-01-27 17:24         ` Michal Hocko
2015-01-28 15:03         ` Christoph Lameter
2015-01-28 15:03           ` Christoph Lameter
2015-01-23 15:46     ` Guenter Roeck
2015-01-23 15:46       ` Guenter Roeck
2015-01-23 16:03       ` Johannes Weiner
2015-01-23 16:03         ` Johannes Weiner
2015-01-23 20:20     ` Christoph Lameter
2015-01-23 20:20       ` Christoph Lameter
2015-01-23 20:33       ` Guenter Roeck
2015-01-23 20:33         ` Guenter Roeck
2015-01-23 21:09         ` Christoph Lameter
2015-01-23 21:09           ` Christoph Lameter
2015-01-24  7:16           ` Johannes Weiner
2015-01-24  7:16             ` Johannes Weiner
2015-01-25 21:36             ` Valdis.Kletnieks
2015-01-26 13:37               ` Johannes Weiner
2015-01-26 13:37                 ` Johannes Weiner

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=20150127162428.GA21638@roeck-us.net \
    --to=linux@roeck-us.net \
    --cc=akpm@linux-foundation.org \
    --cc=kirill.shutemov@linux.intel.com \
    --cc=kirill@shutemov.name \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-next@vger.kernel.org \
    --cc=mhocko@suse.cz \
    --cc=sfr@canb.auug.org.au \
    /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.