diff mbox

[v2,Xenial] UBUNTU: [Config] CONFIG_ARM64_VA_BITS=48

Message ID 20160202223423.GA3944@fluid.dannf
State New
Headers show

Commit Message

dann frazier Feb. 2, 2016, 10:34 p.m. UTC
On NUMA implementations of Cavium ThunderX, node1 memory addresses start with
bit 40 set to 1, and therefore requires >= 41 bits of VA. A side effect of
this is an increase from 3 to 4 page table levels.

Note: The alternative way to increase VA bits w/o moving to 4 level page
tables would be to adopt a larger page size. That would have a far more
significant impact to memory usage, and is known to have issue with current
Ubuntu userspace:

  https://lists.ubuntu.com/archives/ubuntu-devel/2014-December/038572.html
  http://bugs.launchpad.net/bugs/1520162

Signed-off-by: dann frazier <dann.frazier@canonical.com>
---
 debian.master/config/annotations               | 4 ++++
 debian.master/config/arm64/config.common.arm64 | 2 +-
 debian.master/config/config.common.ubuntu      | 6 +++---
 3 files changed, 8 insertions(+), 4 deletions(-)

Comments

Tim Gardner Feb. 3, 2016, 12:13 p.m. UTC | #1

diff mbox

Patch

diff --git a/debian.master/config/annotations b/debian.master/config/annotations
index 4288cf0..f13dc79 100644
--- a/debian.master/config/annotations
+++ b/debian.master/config/annotations
@@ -36,6 +36,10 @@  CONFIG_LOWMEM_CAM_NUM                           policy<{'powerpc-powerpc-e500mc'
 CONFIG_ARM_DMA_IOMMU_ALIGNMENT                  policy<{'armhf': '8'}>
 CONFIG_ARM_PATCH_PHYS_VIRT                      policy<{'armhf': 'y'}>
 
+# Menu: Architecture: arm64
+CONFIG_ARM64_VA_BITS                            policy<{'arm64': '48'}>
+CONFIG_ARM64_VA_BITS                            mark<ENFORCED> note<Cavium ThunderX 2-socket needs a minimum of 41 bits of VA>
+
 # Menu: Architecture: powerpc
 CONFIG_PPC64                                    policy<{'powerpc-powerpc64-emb': 'y', 'powerpc-powerpc64-smp': 'y', 'powerpc-powerpc-e500mc': 'n', 'powerpc-powerpc-smp': 'n', 'ppc64el': 'y'}>
 CONFIG_NR_IRQS                                  policy<{'powerpc': '512', 'ppc64el': '512'}>
diff --git a/debian.master/config/arm64/config.common.arm64 b/debian.master/config/arm64/config.common.arm64
index 70ab3c0..e98bd48 100644
--- a/debian.master/config/arm64/config.common.arm64
+++ b/debian.master/config/arm64/config.common.arm64
@@ -272,7 +272,7 @@  CONFIG_PCIPCWATCHDOG=m
 CONFIG_PCI_PASID=y
 CONFIG_PCI_PRI=y
 CONFIG_PCI_QUIRKS=y
-CONFIG_PGTABLE_LEVELS=3
+CONFIG_PGTABLE_LEVELS=4
 CONFIG_PGTABLE_MAPPING=y
 CONFIG_PHANTOM=m
 CONFIG_PHONET=m
diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
index baa1643..647b88d 100644
--- a/debian.master/config/config.common.ubuntu
+++ b/debian.master/config/config.common.ubuntu
@@ -499,9 +499,9 @@  CONFIG_ARM64_HW_AFDBM=y
 CONFIG_ARM64_PAN=y
 # CONFIG_ARM64_PTDUMP is not set
 # CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set
-CONFIG_ARM64_VA_BITS=39
-CONFIG_ARM64_VA_BITS_39=y
-# CONFIG_ARM64_VA_BITS_48 is not set
+CONFIG_ARM64_VA_BITS=48
+# CONFIG_ARM64_VA_BITS_39 is not set
+CONFIG_ARM64_VA_BITS_48=y
 CONFIG_ARMADA375_USBCLUSTER_PHY=y
 CONFIG_ARMADA_370_CLK=y
 CONFIG_ARMADA_370_XP_TIMER=y