From: Linus Torvalds Date: Fri, 25 May 2012 22:59:38 +0000 (-0700) Subject: Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile X-Git-Tag: v3.5-rc1~76 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=fa2af6e4fe0c4d2f8875d42625b25675e8584010;p=~emulex%2Finfiniband.git Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile Pull tile updates from Chris Metcalf: "These changes cover a range of new arch/tile features and optimizations. They've been through LKML review and on linux-next for a month or so. There's also one bug-fix that just missed 3.4, which I've marked for stable." Fixed up trivial conflict in arch/tile/Kconfig (new added tile Kconfig entries clashing with the generic timer/clockevents changes). * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile: tile: default to tilegx_defconfig for ARCH=tile tile: fix bug where fls(0) was not returning 0 arch/tile: mark TILEGX as not EXPERIMENTAL tile/mm/fault.c: Port OOM changes to handle_page_fault arch/tile: add descriptive text if the kernel reports a bad trap arch/tile: allow querying cpu module information from the hypervisor arch/tile: fix hardwall for tilegx and generalize for idn and ipi arch/tile: support multiple huge page sizes dynamically mm: add new arch_make_huge_pte() method for tile support arch/tile: support kexec() for tilegx arch/tile: support header for cacheflush() syscall arch/tile: Allow tilegx to build with either 16K or 64K page size arch/tile: optimize get_user/put_user and friends arch/tile: support building big-endian kernel arch/tile: allow building Linux with transparent huge pages enabled arch/tile: use interrupt critical sections less --- fa2af6e4fe0c4d2f8875d42625b25675e8584010 diff --cc arch/tile/Kconfig index 6ad6219fc47,0294b212e57..fe128816c44 --- a/arch/tile/Kconfig +++ b/arch/tile/Kconfig @@@ -48,6 -47,17 +48,14 @@@ config NEED_PER_CPU_PAGE_FIRST_CHUN config SYS_SUPPORTS_HUGETLBFS def_bool y + # Support for additional huge page sizes besides HPAGE_SIZE. + # The software support is currently only present in the TILE-Gx + # hypervisor. TILEPro in any case does not support page sizes + # larger than the default HPAGE_SIZE. + config HUGETLB_SUPER_PAGES + depends on HUGETLB_PAGE && TILEGX + def_bool y + -config GENERIC_CLOCKEVENTS - def_bool y - # FIXME: tilegx can implement a more efficient rwsem. config RWSEM_GENERIC_SPINLOCK def_bool y @@@ -137,6 -145,33 +143,31 @@@ config NR_CPU 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 + help + This lets you select the page size of the kernel. For best + performance on memory-intensive applications, a page size of 64KB + is recommended. For workloads involving many small files, many + 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. + + config PAGE_SIZE_16KB + bool "16KB" + + config PAGE_SIZE_64KB + bool "64KB" + + endchoice + + endif + -source "kernel/time/Kconfig" - source "kernel/Kconfig.hz" config KEXEC