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: Chris Metcalf <cmetcalf@ezchip.com> Cc: stable@vger.kernel.org [3.19+]
This commit is contained in:
parent
9f9499ae8e
commit
c1b27ab5d6
|
@ -176,8 +176,6 @@ config NR_CPUS
|
|||
smaller kernel memory footprint results from using a smaller
|
||||
value on chips with fewer tiles.
|
||||
|
||||
if TILEGX
|
||||
|
||||
choice
|
||||
prompt "Kernel page size"
|
||||
default PAGE_SIZE_64KB
|
||||
|
@ -188,8 +186,11 @@ choice
|
|||
connections, etc., it may be better to select 16KB, which uses
|
||||
memory more efficiently at some cost in TLB performance.
|
||||
|
||||
Note that this option is TILE-Gx specific; currently
|
||||
TILEPro page size is set by rebuilding the hypervisor.
|
||||
Note that for TILEPro, you must also rebuild the hypervisor
|
||||
with a matching page size.
|
||||
|
||||
config PAGE_SIZE_4KB
|
||||
bool "4KB" if TILEPRO
|
||||
|
||||
config PAGE_SIZE_16KB
|
||||
bool "16KB"
|
||||
|
@ -199,8 +200,6 @@ config PAGE_SIZE_64KB
|
|||
|
||||
endchoice
|
||||
|
||||
endif
|
||||
|
||||
source "kernel/Kconfig.hz"
|
||||
|
||||
config KEXEC
|
||||
|
|
|
@ -20,15 +20,17 @@
|
|||
#include <arch/chip.h>
|
||||
|
||||
/* 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 CTX_PAGE_FLAG HV_CTX_PG_SM_16K
|
||||
#elif defined(CONFIG_PAGE_SIZE_64KB)
|
||||
#define PAGE_SHIFT 16
|
||||
#define CTX_PAGE_FLAG HV_CTX_PG_SM_64K
|
||||
#else
|
||||
#define PAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_SMALL
|
||||
#define CTX_PAGE_FLAG 0
|
||||
#error Page size not specified in Kconfig
|
||||
#endif
|
||||
#define HPAGE_SHIFT HV_LOG2_DEFAULT_PAGE_SIZE_LARGE
|
||||
|
||||
|
|
Loading…
Reference in New Issue