From: will.deacon@arm.com (Will Deacon)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/2] ARM: LPAE: reduce damage caused by idmap to virtual memory layout
Date: Mon, 28 Jul 2014 19:41:07 +0100 [thread overview]
Message-ID: <20140728184107.GR15536@arm.com> (raw)
In-Reply-To: <CALYGNiNJDHfQm2yk067hh-Wywsb_Ki5AEE_sTMkYegJi9spSzw@mail.gmail.com>
On Mon, Jul 28, 2014 at 07:25:14PM +0100, Konstantin Khlebnikov wrote:
> On Mon, Jul 28, 2014 at 10:14 PM, Will Deacon <will.deacon@arm.com> wrote:
> > On Tue, Jul 22, 2014 at 04:36:35PM +0100, Konstantin Khlebnikov wrote:
> >> idmap layout combines both phisical and virtual addresses.
> >> Everything works fine if ram physically lays below PAGE_OFFSET.
> >> Otherwise idmap starts punching huge holes in virtual memory layout.
> >> It maps ram by 2MiB sections, but when it allocates new pmd page it
> >> cuts 1GiB at once.
> >>
> >> This patch makes a copy of all affected pmds from init_mm.
> >> Only few (usually one) 2MiB sections will be lost.
> >> This is not eliminates problem but makes it 512 times less likely.
> >
> > I'm struggling to understand your commit message, but making a problem `512
> > times less likely' does sound like a bit of a hack to me. Can't we fix this
> > properly instead?
>
> Yep, my comment sucks.
>
> Usually idmap looks like this:
>
> |0x00000000 -- <chunk of physical memory in identical mapping > --- |
> TASK_SIZE -- <kernel space vm layoyt> --- 0xFFFFFFFF |
>
> But when that physical memory chunk starts from 0xE8000000 or even
> 0xF2000000 evenything becomes very complicated.
Why? As long as we don't clobber the kernel text (which would require
PHYS_OFFSET to be at a really weird alignment and very close to
PAGE_OFFSET), then you should be alright. Sure, you'll lose things like your
stack and the vmalloc area etc, but you're running in the idmap, so don't
use those things.
soft_restart is an example of code that deals with these issues. Which code
is causing you problems?
Will
WARNING: multiple messages have this Message-ID (diff)
From: Will Deacon <will.deacon@arm.com>
To: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Konstantin Khlebnikov <k.khlebnikov@samsung.com>,
Vitaly Andrianov <vitalya@ti.com>,
Russell King <linux@arm.linux.org.uk>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
Cyril Chemparathy <cyril@ti.com>
Subject: Re: [PATCH 2/2] ARM: LPAE: reduce damage caused by idmap to virtual memory layout
Date: Mon, 28 Jul 2014 19:41:07 +0100 [thread overview]
Message-ID: <20140728184107.GR15536@arm.com> (raw)
In-Reply-To: <CALYGNiNJDHfQm2yk067hh-Wywsb_Ki5AEE_sTMkYegJi9spSzw@mail.gmail.com>
On Mon, Jul 28, 2014 at 07:25:14PM +0100, Konstantin Khlebnikov wrote:
> On Mon, Jul 28, 2014 at 10:14 PM, Will Deacon <will.deacon@arm.com> wrote:
> > On Tue, Jul 22, 2014 at 04:36:35PM +0100, Konstantin Khlebnikov wrote:
> >> idmap layout combines both phisical and virtual addresses.
> >> Everything works fine if ram physically lays below PAGE_OFFSET.
> >> Otherwise idmap starts punching huge holes in virtual memory layout.
> >> It maps ram by 2MiB sections, but when it allocates new pmd page it
> >> cuts 1GiB at once.
> >>
> >> This patch makes a copy of all affected pmds from init_mm.
> >> Only few (usually one) 2MiB sections will be lost.
> >> This is not eliminates problem but makes it 512 times less likely.
> >
> > I'm struggling to understand your commit message, but making a problem `512
> > times less likely' does sound like a bit of a hack to me. Can't we fix this
> > properly instead?
>
> Yep, my comment sucks.
>
> Usually idmap looks like this:
>
> |0x00000000 -- <chunk of physical memory in identical mapping > --- |
> TASK_SIZE -- <kernel space vm layoyt> --- 0xFFFFFFFF |
>
> But when that physical memory chunk starts from 0xE8000000 or even
> 0xF2000000 evenything becomes very complicated.
Why? As long as we don't clobber the kernel text (which would require
PHYS_OFFSET to be at a really weird alignment and very close to
PAGE_OFFSET), then you should be alright. Sure, you'll lose things like your
stack and the vmalloc area etc, but you're running in the idmap, so don't
use those things.
soft_restart is an example of code that deals with these issues. Which code
is causing you problems?
Will
next prev parent reply other threads:[~2014-07-28 18:41 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-22 15:36 [PATCH 1/2] ARM: LPAE: load upper bits of early TTBR0/TTBR1 Konstantin Khlebnikov
2014-07-22 15:36 ` Konstantin Khlebnikov
2014-07-22 15:36 ` [PATCH 2/2] ARM: LPAE: reduce damage caused by idmap to virtual memory layout Konstantin Khlebnikov
2014-07-22 15:36 ` Konstantin Khlebnikov
2014-07-28 18:14 ` Will Deacon
2014-07-28 18:14 ` Will Deacon
2014-07-28 18:25 ` Konstantin Khlebnikov
2014-07-28 18:25 ` Konstantin Khlebnikov
2014-07-28 18:41 ` Will Deacon [this message]
2014-07-28 18:41 ` Will Deacon
2014-07-28 18:57 ` Konstantin Khlebnikov
2014-07-28 18:57 ` Konstantin Khlebnikov
2014-07-28 19:06 ` Will Deacon
2014-07-28 19:06 ` Will Deacon
2014-07-28 19:13 ` Russell King - ARM Linux
2014-07-28 19:13 ` Russell King - ARM Linux
2014-07-28 19:29 ` Konstantin Khlebnikov
2014-07-28 19:29 ` Konstantin Khlebnikov
2014-07-28 19:34 ` Konstantin Khlebnikov
2014-07-28 19:34 ` Konstantin Khlebnikov
2014-07-28 19:42 ` Russell King - ARM Linux
2014-07-28 19:42 ` Russell King - ARM Linux
2014-07-28 19:57 ` Konstantin Khlebnikov
2014-07-28 19:57 ` Konstantin Khlebnikov
2014-07-29 10:57 ` Russell King - ARM Linux
2014-07-29 10:57 ` Russell King - ARM Linux
2014-07-29 12:37 ` Konstantin Khlebnikov
2014-07-29 12:37 ` Konstantin Khlebnikov
2014-07-28 18:12 ` [PATCH 1/2] ARM: LPAE: load upper bits of early TTBR0/TTBR1 Will Deacon
2014-07-28 18:12 ` Will Deacon
2014-07-28 18:40 ` Konstantin Khlebnikov
2014-07-28 18:40 ` Konstantin Khlebnikov
2014-07-28 18:47 ` Will Deacon
2014-07-28 18:47 ` Will Deacon
2014-07-29 11:15 ` Will Deacon
2014-07-29 11:15 ` Will Deacon
2014-07-29 12:29 ` Konstantin Khlebnikov
2014-07-29 12:29 ` Konstantin Khlebnikov
2014-08-27 15:26 ` Jassi Brar
2014-08-27 15:26 ` Jassi Brar
2014-08-27 15:31 ` Konstantin Khlebnikov
2014-08-27 15:31 ` Konstantin Khlebnikov
2014-08-27 15:33 ` Konstantin Khlebnikov
2014-08-27 15:33 ` Konstantin Khlebnikov
2014-08-27 15:45 ` Jassi Brar
2014-08-27 15:45 ` Jassi Brar
2014-08-28 11:03 ` Will Deacon
2014-08-28 11:03 ` Will Deacon
2014-08-28 11:50 ` Konstantin Khlebnikov
2014-08-28 11:50 ` Konstantin Khlebnikov
2014-08-05 15:42 ` Konstantin Khlebnikov
2014-08-05 15:42 ` Konstantin Khlebnikov
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=20140728184107.GR15536@arm.com \
--to=will.deacon@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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.