Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile
Linus Torvalds [Fri, 25 May 2012 22:59:38 +0000 (15:59 -0700)]
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 <asm/cachectl.h> 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

1  2 
arch/tile/Kconfig
arch/tile/include/asm/processor.h
arch/tile/kernel/Makefile
arch/tile/kernel/process.c
arch/tile/kernel/setup.c

@@@ -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
Simple merge
Simple merge
Simple merge
Simple merge