From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
To: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
kvmarm@lists.cs.columbia.edu, catalin.marinas@arm.com,
will.deacon@arm.com, mark.rutland@arm.com, marc.zyngier@arm.com,
"Suzuki K. Poulose" <suzuki.poulose@arm.com>
Subject: [PATCH 00/14] arm64: 16K translation granule support
Date: Thu, 13 Aug 2015 12:33:50 +0100 [thread overview]
Message-ID: <1439465645-22584-1-git-send-email-suzuki.poulose@arm.com> (raw)
From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
This series enables the 16K page size support on Linux for arm64.
This series adds support for 48bit VA(4 level), 47bit VA(3 level) and
36bit VA(2 level) with 16K. 16K was a late addition to the architecture
and is not implemented by all CPUs. Added a check to ensure the
selected granule size is supported by the CPU, failing which the CPU
won't proceed with booting.
KVM bits have been tested on a fast model with GICv3 using Andre's kvmtool
with gicv3 support[1].
Patches 1-7 cleans up the kernel page size handling code.
Patches 8-11 Fixes some issues with the KVM bits, mainly the fake PGD
handling code.
Patch 12 Adds a check to ensure the CPU supports the selected granule size.
Patch 13-14 Adds the 16k page size support bits.
This series applies on top of for-next/core branch of the aarch64 tree and is
also available here:
git://linux-arm.org/linux-skp.git 16k/v1
[1] git://linux-arm.org/kvmtool.git gicv3/v4
TODO:
1) Testing on a silicon
2) Analyse the performance of HugePages with 16K (32MB) on a
silicon.
3) SMMU driver
Suzuki K. Poulose (14):
arm64: Move swapper pagetable definitions
arm64: Handle section maps for swapper/idmap
arm64: Introduce helpers for page table levels
arm64: Calculate size for idmap_pg_dir at compile time
arm64: Handle 4 level page table for swapper
arm64: Clean config usages for page size
arm64: Kconfig: Fix help text about AArch32 support with 64K pages
arm64: kvm: Fix {V}TCR_EL2_TG0 mask
arm64: Cleanup VTCR_EL2 computation
arm: kvm: Move fake PGD handling to arch specific files
arm64: kvm: Rewrite fake pgd handling
arm64: Check for selected granule support
arm64: Add 16K page size support
arm64: 36 bit VA
arch/arm/include/asm/kvm_mmu.h | 7 ++
arch/arm/kvm/mmu.c | 44 ++--------
arch/arm64/Kconfig | 37 +++++++--
arch/arm64/Kconfig.debug | 2 +-
arch/arm64/include/asm/boot.h | 1 +
arch/arm64/include/asm/fixmap.h | 4 +-
arch/arm64/include/asm/kernel-pgtable.h | 77 ++++++++++++++++++
arch/arm64/include/asm/kvm_arm.h | 29 +++++--
arch/arm64/include/asm/kvm_mmu.h | 135 +++++++++++++++++++++----------
arch/arm64/include/asm/page.h | 20 +----
arch/arm64/include/asm/pgtable-hwdef.h | 15 +++-
arch/arm64/include/asm/sysreg.h | 8 ++
arch/arm64/include/asm/thread_info.h | 4 +-
arch/arm64/kernel/head.S | 71 +++++++++-------
arch/arm64/kernel/vmlinux.lds.S | 1 +
arch/arm64/mm/mmu.c | 70 +++++++---------
arch/arm64/mm/proc.S | 4 +-
17 files changed, 337 insertions(+), 192 deletions(-)
create mode 100644 arch/arm64/include/asm/kernel-pgtable.h
--
1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
To: linux-arm-kernel@lists.infradead.org
Cc: kvm@vger.kernel.org, marc.zyngier@arm.com,
catalin.marinas@arm.com, will.deacon@arm.com,
linux-kernel@vger.kernel.org, kvmarm@lists.cs.columbia.edu
Subject: [PATCH 00/14] arm64: 16K translation granule support
Date: Thu, 13 Aug 2015 12:33:50 +0100 [thread overview]
Message-ID: <1439465645-22584-1-git-send-email-suzuki.poulose@arm.com> (raw)
From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
This series enables the 16K page size support on Linux for arm64.
This series adds support for 48bit VA(4 level), 47bit VA(3 level) and
36bit VA(2 level) with 16K. 16K was a late addition to the architecture
and is not implemented by all CPUs. Added a check to ensure the
selected granule size is supported by the CPU, failing which the CPU
won't proceed with booting.
KVM bits have been tested on a fast model with GICv3 using Andre's kvmtool
with gicv3 support[1].
Patches 1-7 cleans up the kernel page size handling code.
Patches 8-11 Fixes some issues with the KVM bits, mainly the fake PGD
handling code.
Patch 12 Adds a check to ensure the CPU supports the selected granule size.
Patch 13-14 Adds the 16k page size support bits.
This series applies on top of for-next/core branch of the aarch64 tree and is
also available here:
git://linux-arm.org/linux-skp.git 16k/v1
[1] git://linux-arm.org/kvmtool.git gicv3/v4
TODO:
1) Testing on a silicon
2) Analyse the performance of HugePages with 16K (32MB) on a
silicon.
3) SMMU driver
Suzuki K. Poulose (14):
arm64: Move swapper pagetable definitions
arm64: Handle section maps for swapper/idmap
arm64: Introduce helpers for page table levels
arm64: Calculate size for idmap_pg_dir at compile time
arm64: Handle 4 level page table for swapper
arm64: Clean config usages for page size
arm64: Kconfig: Fix help text about AArch32 support with 64K pages
arm64: kvm: Fix {V}TCR_EL2_TG0 mask
arm64: Cleanup VTCR_EL2 computation
arm: kvm: Move fake PGD handling to arch specific files
arm64: kvm: Rewrite fake pgd handling
arm64: Check for selected granule support
arm64: Add 16K page size support
arm64: 36 bit VA
arch/arm/include/asm/kvm_mmu.h | 7 ++
arch/arm/kvm/mmu.c | 44 ++--------
arch/arm64/Kconfig | 37 +++++++--
arch/arm64/Kconfig.debug | 2 +-
arch/arm64/include/asm/boot.h | 1 +
arch/arm64/include/asm/fixmap.h | 4 +-
arch/arm64/include/asm/kernel-pgtable.h | 77 ++++++++++++++++++
arch/arm64/include/asm/kvm_arm.h | 29 +++++--
arch/arm64/include/asm/kvm_mmu.h | 135 +++++++++++++++++++++----------
arch/arm64/include/asm/page.h | 20 +----
arch/arm64/include/asm/pgtable-hwdef.h | 15 +++-
arch/arm64/include/asm/sysreg.h | 8 ++
arch/arm64/include/asm/thread_info.h | 4 +-
arch/arm64/kernel/head.S | 71 +++++++++-------
arch/arm64/kernel/vmlinux.lds.S | 1 +
arch/arm64/mm/mmu.c | 70 +++++++---------
arch/arm64/mm/proc.S | 4 +-
17 files changed, 337 insertions(+), 192 deletions(-)
create mode 100644 arch/arm64/include/asm/kernel-pgtable.h
--
1.7.9.5
WARNING: multiple messages have this Message-ID (diff)
From: suzuki.poulose@arm.com (Suzuki K. Poulose)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 00/14] arm64: 16K translation granule support
Date: Thu, 13 Aug 2015 12:33:50 +0100 [thread overview]
Message-ID: <1439465645-22584-1-git-send-email-suzuki.poulose@arm.com> (raw)
From: "Suzuki K. Poulose" <suzuki.poulose@arm.com>
This series enables the 16K page size support on Linux for arm64.
This series adds support for 48bit VA(4 level), 47bit VA(3 level) and
36bit VA(2 level) with 16K. 16K was a late addition to the architecture
and is not implemented by all CPUs. Added a check to ensure the
selected granule size is supported by the CPU, failing which the CPU
won't proceed with booting.
KVM bits have been tested on a fast model with GICv3 using Andre's kvmtool
with gicv3 support[1].
Patches 1-7 cleans up the kernel page size handling code.
Patches 8-11 Fixes some issues with the KVM bits, mainly the fake PGD
handling code.
Patch 12 Adds a check to ensure the CPU supports the selected granule size.
Patch 13-14 Adds the 16k page size support bits.
This series applies on top of for-next/core branch of the aarch64 tree and is
also available here:
git://linux-arm.org/linux-skp.git 16k/v1
[1] git://linux-arm.org/kvmtool.git gicv3/v4
TODO:
1) Testing on a silicon
2) Analyse the performance of HugePages with 16K (32MB) on a
silicon.
3) SMMU driver
Suzuki K. Poulose (14):
arm64: Move swapper pagetable definitions
arm64: Handle section maps for swapper/idmap
arm64: Introduce helpers for page table levels
arm64: Calculate size for idmap_pg_dir at compile time
arm64: Handle 4 level page table for swapper
arm64: Clean config usages for page size
arm64: Kconfig: Fix help text about AArch32 support with 64K pages
arm64: kvm: Fix {V}TCR_EL2_TG0 mask
arm64: Cleanup VTCR_EL2 computation
arm: kvm: Move fake PGD handling to arch specific files
arm64: kvm: Rewrite fake pgd handling
arm64: Check for selected granule support
arm64: Add 16K page size support
arm64: 36 bit VA
arch/arm/include/asm/kvm_mmu.h | 7 ++
arch/arm/kvm/mmu.c | 44 ++--------
arch/arm64/Kconfig | 37 +++++++--
arch/arm64/Kconfig.debug | 2 +-
arch/arm64/include/asm/boot.h | 1 +
arch/arm64/include/asm/fixmap.h | 4 +-
arch/arm64/include/asm/kernel-pgtable.h | 77 ++++++++++++++++++
arch/arm64/include/asm/kvm_arm.h | 29 +++++--
arch/arm64/include/asm/kvm_mmu.h | 135 +++++++++++++++++++++----------
arch/arm64/include/asm/page.h | 20 +----
arch/arm64/include/asm/pgtable-hwdef.h | 15 +++-
arch/arm64/include/asm/sysreg.h | 8 ++
arch/arm64/include/asm/thread_info.h | 4 +-
arch/arm64/kernel/head.S | 71 +++++++++-------
arch/arm64/kernel/vmlinux.lds.S | 1 +
arch/arm64/mm/mmu.c | 70 +++++++---------
arch/arm64/mm/proc.S | 4 +-
17 files changed, 337 insertions(+), 192 deletions(-)
create mode 100644 arch/arm64/include/asm/kernel-pgtable.h
--
1.7.9.5
next reply other threads:[~2015-08-13 11:34 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-13 11:33 Suzuki K. Poulose [this message]
2015-08-13 11:33 ` [PATCH 00/14] arm64: 16K translation granule support Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 01/14] arm64: Move swapper pagetable definitions Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 02/14] arm64: Handle section maps for swapper/idmap Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-09-02 9:38 ` Ard Biesheuvel
2015-09-02 9:38 ` Ard Biesheuvel
2015-09-02 9:38 ` Ard Biesheuvel
2015-09-02 9:42 ` Suzuki K. Poulose
2015-09-02 9:42 ` Suzuki K. Poulose
2015-09-02 9:42 ` Suzuki K. Poulose
2015-09-02 10:00 ` Ard Biesheuvel
2015-09-02 10:00 ` Ard Biesheuvel
2015-09-02 10:00 ` Ard Biesheuvel
2015-08-13 11:33 ` [PATCH 03/14] arm64: Introduce helpers for page table levels Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 04/14] arm64: Calculate size for idmap_pg_dir at compile time Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 05/14] arm64: Handle 4 level page table for swapper Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 06/14] arm64: Clean config usages for page size Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 07/14] arm64: Kconfig: Fix help text about AArch32 support with 64K pages Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 08/14] arm64: kvm: Fix {V}TCR_EL2_TG0 mask Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` [PATCH 09/14] arm64: Cleanup VTCR_EL2 computation Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:33 ` Suzuki K. Poulose
2015-08-13 11:34 ` [PATCH 10/14] arm: kvm: Move fake PGD handling to arch specific files Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` [PATCH 11/14] arm64: kvm: Rewrite fake pgd handling Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` [PATCH 12/14] arm64: Check for selected granule support Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 12:28 ` Steve Capper
2015-08-13 12:28 ` Steve Capper
2015-08-13 12:28 ` Steve Capper
2015-08-13 14:45 ` Suzuki K. Poulose
2015-08-13 14:45 ` Suzuki K. Poulose
2015-08-13 14:45 ` Suzuki K. Poulose
2015-08-13 17:29 ` Catalin Marinas
2015-08-13 17:29 ` Catalin Marinas
2015-08-13 17:29 ` Catalin Marinas
2015-09-02 9:48 ` Ard Biesheuvel
2015-09-02 9:48 ` Ard Biesheuvel
2015-09-02 9:48 ` Ard Biesheuvel
2015-09-02 10:19 ` Ard Biesheuvel
2015-09-02 10:19 ` Ard Biesheuvel
2015-09-02 10:19 ` Ard Biesheuvel
2015-09-04 13:58 ` Catalin Marinas
2015-09-04 13:58 ` Catalin Marinas
2015-09-04 13:58 ` Catalin Marinas
2015-08-13 11:34 ` [PATCH 13/14] arm64: Add 16K page size support Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-08-13 11:34 ` [PATCH 14/14] arm64: 36 bit VA Suzuki K. Poulose
2015-08-13 11:34 ` Suzuki K. Poulose
2015-09-02 9:55 ` [PATCH 00/14] arm64: 16K translation granule support Ard Biesheuvel
2015-09-02 9:55 ` Ard Biesheuvel
2015-09-02 9:55 ` Ard Biesheuvel
2015-09-02 10:11 ` Suzuki K. Poulose
2015-09-02 10:11 ` Suzuki K. Poulose
2015-09-02 10:11 ` Suzuki K. Poulose
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=1439465645-22584-1-git-send-email-suzuki.poulose@arm.com \
--to=suzuki.poulose@arm.com \
--cc=catalin.marinas@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=will.deacon@arm.com \
/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.