Commit c1b27ab5 authored by Chris Metcalf's avatar Chris Metcalf

tile: provide CONFIG_PAGE_SIZE_64KB etc for tilepro

This allows the build system to know that it can't attempt to
configure the Lustre virtual block device, for example, when tilepro
is using 64KB pages (as it does by default).  The tilegx build
already provided those symbols.

Previously we required that the tilepro hypervisor be rebuilt with
a different hardcoded page size in its headers, and then Linux be
rebuilt using the updated hypervisor header.  Now we allow each of
the hypervisor and Linux to be built independently.  We still check
at boot time to ensure that the page size provided by the hypervisor
matches what Linux expects.
Signed-off-by: default avatarChris Metcalf <cmetcalf@ezchip.com>
Cc: stable@vger.kernel.org [3.19+]
parent 9f9499ae
...@@ -176,8 +176,6 @@ config NR_CPUS ...@@ -176,8 +176,6 @@ config NR_CPUS
smaller kernel memory footprint results from using a smaller smaller kernel memory footprint results from using a smaller
value on chips with fewer tiles. value on chips with fewer tiles.
if TILEGX
choice choice
prompt "Kernel page size" prompt "Kernel page size"
default PAGE_SIZE_64KB default PAGE_SIZE_64KB
...@@ -188,8 +186,11 @@ choice ...@@ -188,8 +186,11 @@ choice
connections, etc., it may be better to select 16KB, which uses connections, etc., it may be better to select 16KB, which uses
memory more efficiently at some cost in TLB performance. memory more efficiently at some cost in TLB performance.
Note that this option is TILE-Gx specific; currently Note that for TILEPro, you must also rebuild the hypervisor
TILEPro page size is set by rebuilding the hypervisor. with a matching page size.
config PAGE_SIZE_4KB
bool "4KB" if TILEPRO
config PAGE_SIZE_16KB config PAGE_SIZE_16KB
bool "16KB" bool "16KB"
...@@ -199,8 +200,6 @@ config PAGE_SIZE_64KB ...@@ -199,8 +200,6 @@ config PAGE_SIZE_64KB
endchoice endchoice
endif
source "kernel/Kconfig.hz" source "kernel/Kconfig.hz"
config KEXEC config KEXEC
......
...@@ -20,15 +20,17 @@ ...@@ -20,15 +20,17 @@
#include <arch/chip.h> #include <arch/chip.h>
/* PAGE_SHIFT and HPAGE_SHIFT determine the page sizes. */ /* PAGE_SHIFT and HPAGE_SHIFT determine the page sizes. */
#if defined(CONFIG_PAGE_SIZE_16KB) #if defined(CONFIG_PAGE_SIZE_4KB) /* tilepro only */
#define PAGE_SHIFT 12
#define CTX_PAGE_FLAG HV_CTX_PG_SM_4K
#elif defined(CONFIG_PAGE_SIZE_16KB)
#define PAGE_SHIFT 14 #define PAGE_SHIFT 14
#define CTX_PAGE_FLAG HV_CTX_PG_SM_16K #define CTX_PAGE_FLAG HV_CTX_PG_SM_16K
#elif defined(CONFIG_PAGE_SIZE_64KB) #elif defined(CONFIG_PAGE_SIZE_64KB)
#define PAGE_SHIFT 16 #define PAGE_SHIFT 16
#define CTX_PAGE_FLAG HV_CTX_PG_SM_64K #define CTX_PAGE_FLAG HV_CTX_PG_SM_64K
#else #else
#define PAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_SMALL #error Page size not specified in Kconfig
#define CTX_PAGE_FLAG 0
#endif #endif
#define HPAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_LARGE #define HPAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_LARGE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment