diff options
74 files changed, 2471 insertions, 1169 deletions
diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig index 6ad6219fc47e..fe128816c448 100644 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig | |||
| @@ -48,6 +48,14 @@ config NEED_PER_CPU_PAGE_FIRST_CHUNK | |||
| 48 | config SYS_SUPPORTS_HUGETLBFS | 48 | config SYS_SUPPORTS_HUGETLBFS |
| 49 | def_bool y | 49 | def_bool y |
| 50 | 50 | ||
| 51 | # Support for additional huge page sizes besides HPAGE_SIZE. | ||
| 52 | # The software support is currently only present in the TILE-Gx | ||
| 53 | # hypervisor. TILEPro in any case does not support page sizes | ||
| 54 | # larger than the default HPAGE_SIZE. | ||
| 55 | config HUGETLB_SUPER_PAGES | ||
| 56 | depends on HUGETLB_PAGE && TILEGX | ||
| 57 | def_bool y | ||
| 58 | |||
| 51 | # FIXME: tilegx can implement a more efficient rwsem. | 59 | # FIXME: tilegx can implement a more efficient rwsem. |
| 52 | config RWSEM_GENERIC_SPINLOCK | 60 | config RWSEM_GENERIC_SPINLOCK |
| 53 | def_bool y | 61 | def_bool y |
| @@ -107,16 +115,14 @@ config HVC_TILE | |||
| 107 | select HVC_DRIVER | 115 | select HVC_DRIVER |
| 108 | def_bool y | 116 | def_bool y |
| 109 | 117 | ||
| 110 | # Please note: TILE-Gx support is not yet finalized; this is | ||
| 111 | # the preliminary support. TILE-Gx drivers are only provided | ||
| 112 | # with the alpha or beta test versions for Tilera customers. | ||
| 113 | config TILEGX | 118 | config TILEGX |
| 114 | depends on EXPERIMENTAL | ||
| 115 | bool "Building with TILE-Gx (64-bit) compiler and toolchain" | 119 | bool "Building with TILE-Gx (64-bit) compiler and toolchain" |
| 116 | 120 | ||
| 121 | config TILEPRO | ||
| 122 | def_bool !TILEGX | ||
| 123 | |||
| 117 | config 64BIT | 124 | config 64BIT |
| 118 | depends on TILEGX | 125 | def_bool TILEGX |
| 119 | def_bool y | ||
| 120 | 126 | ||
| 121 | config ARCH_DEFCONFIG | 127 | config ARCH_DEFCONFIG |
| 122 | string | 128 | string |
| @@ -137,6 +143,31 @@ config NR_CPUS | |||
| 137 | smaller kernel memory footprint results from using a smaller | 143 | smaller kernel memory footprint results from using a smaller |
| 138 | value on chips with fewer tiles. | 144 | value on chips with fewer tiles. |
| 139 | 145 | ||
| 146 | if TILEGX | ||
| 147 | |||
| 148 | choice | ||
| 149 | prompt "Kernel page size" | ||
| 150 | default PAGE_SIZE_64KB | ||
| 151 | help | ||
| 152 | This lets you select the page size of the kernel. For best | ||
| 153 | performance on memory-intensive applications, a page size of 64KB | ||
| 154 | is recommended. For workloads involving many small files, many | ||
| 155 | connections, etc., it may be better to select 16KB, which uses | ||
| 156 | memory more efficiently at some cost in TLB performance. | ||
| 157 | |||
| 158 | Note that this option is TILE-Gx specific; currently | ||
| 159 | TILEPro page size is set by rebuilding the hypervisor. | ||
| 160 | |||
| 161 | config PAGE_SIZE_16KB | ||
| 162 | bool "16KB" | ||
| 163 | |||
| 164 | config PAGE_SIZE_64KB | ||
| 165 | bool "64KB" | ||
| 166 | |||
| 167 | endchoice | ||
| 168 | |||
| 169 | endif | ||
| 170 | |||
| 140 | source "kernel/Kconfig.hz" | 171 | source "kernel/Kconfig.hz" |
| 141 | 172 | ||
| 142 | config KEXEC | 173 | config KEXEC |
diff --git a/arch/tile/Makefile b/arch/tile/Makefile index 9520bc5a4b7f..e20b0a0b64a1 100644 --- a/arch/tile/Makefile +++ b/arch/tile/Makefile | |||
| @@ -34,7 +34,12 @@ LIBGCC_PATH := \ | |||
| 34 | $(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name) | 34 | $(shell $(CC) $(KBUILD_CFLAGS) $(KCFLAGS) -print-libgcc-file-name) |
| 35 | 35 | ||
| 36 | # Provide the path to use for "make defconfig". | 36 | # Provide the path to use for "make defconfig". |
| 37 | KBUILD_DEFCONFIG := $(ARCH)_defconfig | 37 | # We default to the newer TILE-Gx architecture if only "tile" is given. |
| 38 | ifeq ($(ARCH),tile) | ||
| 39 | KBUILD_DEFCONFIG := tilegx_ | ||
