linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/3] arm64: simplify and optimize kernel mapping
Date: Mon, 7 Mar 2016 01:40:36 +0000	[thread overview]
Message-ID: <20160307014031.GA2158@svinekod> (raw)
In-Reply-To: <1457010581-4924-1-git-send-email-ard.biesheuvel@linaro.org>

Hi,

I like this series, though I have a few minor comments below.

On Thu, Mar 03, 2016 at 02:09:38PM +0100, Ard Biesheuvel wrote:
> This series makes a couple of minor changes that should result in the
> kernel being mapped in a more efficient manner.
> 
> First of all, it merges the .head.text with the .text section (patch #2)
> after moving everything except the kernel and EFI header into the __init
> section (patch #1)

Face-to-face, you suggested it might be possible to move .init before .text, so
we could place the EFI header in there too (and keep .text aligned while making
it smaller). Is there some reason we missed that means we cannot do this?

> Then, it standardizes the segment alignment to 64 KB for all page sizes.
> (patch #3). In the example below (4 KB granule, with Jeremy's PTE_CONT
> patch applied), we lose 80 KB in total to padding, but the resulting
> mappings do look somewhat better.

I suspect some people might want a minimal alignment option for tinification
purposes, but this sounds fine to me as a default. I also think we can wait
until someone asks.

As a general think, currently we use "chunk" instead of "segment" in the mm
code. We only used "chunk" so as to not overload "section". For consistency it
would be nice to either keep with "chunk" or convert existing uses to
"segment". I much prefer the latter!

> Before:
> 
> 0xffff000008082000-0xffff000008090000    56K  ro x  SHD AF         UXN MEM
> 0xffff000008090000-0xffff000008200000  1472K  ro x  SHD AF CON     UXN MEM
> 0xffff000008200000-0xffff000008600000     4M  ro x  SHD AF     BLK UXN MEM
> 0xffff000008600000-0xffff000008660000   384K  ro x  SHD AF CON     UXN MEM
> 0xffff000008660000-0xffff00000866c000    48K  ro x  SHD AF         UXN MEM
> 0xffff00000866c000-0xffff000008670000    16K  ro NX SHD AF         UXN MEM
> 0xffff000008670000-0xffff000008900000  2624K  ro NX SHD AF CON     UXN MEM
> 0xffff000008900000-0xffff000008909000    36K  ro NX SHD AF         UXN MEM
> 0xffff000008c39000-0xffff000008c40000    28K  RW NX SHD AF         UXN MEM
> 0xffff000008c40000-0xffff000008d50000  1088K  RW NX SHD AF CON     UXN MEM
> 0xffff000008d50000-0xffff000008d57000    28K  RW NX SHD AF         UXN MEM
> 
> After:
> 
> 0xffff000008080000-0xffff000008200000  1536K  ro x  SHD AF CON     UXN MEM
> 0xffff000008200000-0xffff000008600000     4M  ro x  SHD AF     BLK UXN MEM
> 0xffff000008600000-0xffff000008670000   448K  ro x  SHD AF CON     UXN MEM
> 0xffff000008670000-0xffff000008910000  2688K  ro NX SHD AF CON     UXN MEM
> 0xffff000008c50000-0xffff000008d60000  1088K  RW NX SHD AF CON     UXN MEM
> 0xffff000008d60000-0xffff000008d6b000    44K  RW NX SHD AF         UXN MEM
> 
> I am aware that this clashes with Jeremy's patch to allow CONT_SIZE alignment
> when CONFIG_DEBUG_ALIGN_RODATA=y, but the net effect of patch #3 is the same
> (only the Kconfig change is not included here)

Jeremy, do you have any thoughts on this series?

Thanks,
Mark.

> Ard Biesheuvel (3):
>   arm64: move early boot code to the .init segment
>   arm64: cover the .head.text section in the .text segment mapping
>   arm64: simplify kernel segment mapping granularity
> 
>  arch/arm64/kernel/efi-entry.S   |  2 +-
>  arch/arm64/kernel/head.S        | 32 +++++++++-----------
>  arch/arm64/kernel/image.h       |  4 +++
>  arch/arm64/kernel/vmlinux.lds.S | 26 +++++++++-------
>  arch/arm64/mm/mmu.c             | 10 +++---
>  5 files changed, 40 insertions(+), 34 deletions(-)
> 
> -- 
> 2.5.0
> 

  parent reply	other threads:[~2016-03-07  1:40 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-03 13:09 [PATCH 0/3] arm64: simplify and optimize kernel mapping Ard Biesheuvel
2016-03-03 13:09 ` [PATCH 1/3] arm64: move early boot code to the .init segment Ard Biesheuvel
2016-03-03 13:09 ` [PATCH 2/3] arm64: cover the .head.text section in the .text segment mapping Ard Biesheuvel
2016-03-03 13:09 ` [PATCH 3/3] arm64: simplify kernel segment mapping granularity Ard Biesheuvel
2016-03-07  1:40 ` Mark Rutland [this message]
2016-03-08  0:38   ` [PATCH 0/3] arm64: simplify and optimize kernel mapping Jeremy Linton
2016-03-09  5:03   ` Ard Biesheuvel

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=20160307014031.GA2158@svinekod \
    --to=mark.rutland@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).