1. 21 5月, 2012 1 次提交
  2. 09 12月, 2011 2 次提交
    • T
      memblock: Kill early_node_map[] · 0ee332c1
      Tejun Heo 提交于
      Now all ARCH_POPULATES_NODE_MAP archs select HAVE_MEBLOCK_NODE_MAP -
      there's no user of early_node_map[] left.  Kill early_node_map[] and
      replace ARCH_POPULATES_NODE_MAP with HAVE_MEMBLOCK_NODE_MAP.  Also,
      relocate for_each_mem_pfn_range() and helper from mm.h to memblock.h
      as page_alloc.c would no longer host an alternative implementation.
      
      This change is ultimately one to one mapping and shouldn't cause any
      observable difference; however, after the recent changes, there are
      some functions which now would fit memblock.c better than page_alloc.c
      and dependency on HAVE_MEMBLOCK_NODE_MAP instead of HAVE_MEMBLOCK
      doesn't make much sense on some of them.  Further cleanups for
      functions inside HAVE_MEMBLOCK_NODE_MAP in mm.h would be nice.
      
      -v2: Fix compile bug introduced by mis-spelling
       CONFIG_HAVE_MEMBLOCK_NODE_MAP to CONFIG_MEMBLOCK_HAVE_NODE_MAP in
       mmzone.h.  Reported by Stephen Rothwell.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Stephen Rothwell <sfr@canb.auug.org.au>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Chen Liqin <liqin.chen@sunplusct.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      0ee332c1
    • T
      ia64: Use HAVE_MEMBLOCK_NODE_MAP · 98e4ae8a
      Tejun Heo 提交于
      ia64 used early_node_map[] just to prime free_area_init_nodes().  Now
      memblock can be used for the same purpose and early_node_map[] is
      scheduled to be dropped.  Use memblock instead.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: linux-ia64@vger.kernel.org
      98e4ae8a
  3. 25 11月, 2011 1 次提交
  4. 02 9月, 2011 1 次提交
  5. 10 8月, 2011 1 次提交
    • T
      [IA64] fix "allnoconfig" build · 88ff9877
      Tony Luck 提交于
      Link errors:
      arch/ia64/kernel/built-in.o: In function `arch_setup_dmar_msi':
      (.text+0x35972): undefined reference to `dmar_msi_write'
      ... and more ...
      
      because allnoconfig has CONFIG_DMAR=y due to the "select DMAR"
      in arch/ia64/Kconfig under config IA64_GENERIC.
      
      Drop that select, but add CONFIG_DMAR=y to generic_defconfig so
      we keep testbuilding the DMAR code.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      88ff9877
  6. 03 8月, 2011 1 次提交
  7. 22 7月, 2011 1 次提交
  8. 21 6月, 2011 1 次提交
    • O
      x86/ia64: intel-iommu: move to drivers/iommu/ · 166e9278
      Ohad Ben-Cohen 提交于
      This should ease finding similarities with different platforms,
      with the intention of solving problems once in a generic framework
      which everyone can use.
      
      Note: to move intel-iommu.c, the declaration of pci_find_upstream_pcie_bridge()
      has to move from drivers/pci/pci.h to include/linux/pci.h. This is handled
      in this patch, too.
      
      As suggested, also drop DMAR's EXPERIMENTAL tag while we're at it.
      
      Compile-tested on x86_64.
      Signed-off-by: NOhad Ben-Cohen <ohad@wizery.com>
      Signed-off-by: NJoerg Roedel <joerg.roedel@amd.com>
      166e9278
  9. 14 6月, 2011 1 次提交
  10. 02 6月, 2011 1 次提交
  11. 27 5月, 2011 1 次提交
  12. 31 3月, 2011 1 次提交
  13. 29 3月, 2011 1 次提交
  14. 21 1月, 2011 2 次提交
  15. 02 10月, 2010 1 次提交
  16. 28 9月, 2010 1 次提交
    • T
      [IA64] Stop using the deprecated __do_IRQ() code path · 5d4bff94
      Tony Luck 提交于
      Thomas Gleixner <tglx@linutronix.de> wrote:
      >__do_IRQ() has been deprecated after a two years migration phase in
      >commit 0e57aa11. Since then another 18 months have gone by ...
      
      Mostly trivial stuff for this. The only tricky part was realizing
      that the new handler_*_irq() paths do not use desc->chip->end(irq).
      Not a problem for the edge case as the ia64 iosapic routine for
      that was nop(). But the "level" case handled interrupt migration
      there.  Just use a slightly modified version of the "end" routine
      as "unmask" for the level triggered case.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      5d4bff94
  17. 24 9月, 2010 1 次提交
  18. 20 9月, 2010 1 次提交
  19. 10 8月, 2010 1 次提交
  20. 27 7月, 2010 1 次提交
  21. 28 5月, 2010 3 次提交
  22. 19 5月, 2010 1 次提交
  23. 13 3月, 2010 1 次提交
  24. 09 2月, 2010 1 次提交
    • T
      [IA64] Remove COMPAT_IA32 support · 32974ad4
      Tony Luck 提交于
      This has been broken since May 2008 when Al Viro killed altroot support.
      Since nobody has complained, it would appear that there are no users of
      this code (A plausible theory since the main OSVs that support ia64 prefer
      to use the IA32-EL software emulation).
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      32974ad4
  25. 02 10月, 2009 1 次提交
    • T
      ia64: convert to dynamic percpu allocator · 52594762
      Tejun Heo 提交于
      Unlike other archs, ia64 reserves space for percpu areas during early
      memory initialization.  These areas occupy a contiguous region indexed
      by cpu number on contiguous memory model or are grouped by node on
      discontiguous memory model.
      
      As allocation and initialization are done by the arch code, all that
      setup_per_cpu_areas() needs to do is communicating the determined
      layout to the percpu allocator.  This patch implements
      setup_per_cpu_areas() for both contig and discontig memory models and
      drops HAVE_LEGACY_PER_CPU_AREA.
      
      Please note that for contig model, the allocation itself is modified
      only to allocate for possible cpus instead of NR_CPUS.  As dynamic
      percpu allocator can handle non-direct mapping, there's no reason to
      allocate memory for cpus which aren't possible.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NTony Luck <tony.luck@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: linux-ia64 <linux-ia64@vger.kernel.org>
      52594762
  26. 25 9月, 2009 1 次提交
    • T
      [IA64] implement ticket locks for Itanium · 2c86963b
      Tony Luck 提交于
      Back in January 2008 Nick Piggin implemented "ticket" spinlocks
      for X86 (See commit 314cdbef).
      
      IA64 implementation has a couple of differences because of the
      available atomic operations ... e.g. we have no fetchadd2 instruction
      that operates on a 16-bit quantity so we make ticket locks use
      a 32-bit word for each of the current ticket and now-serving values.
      
      Performance on uncontended locks is about 8% worse than the previous
      implementation, but this seems a good trade for determinism in the
      contended case. Performance impact on macro-level benchmarks is in
      the noise.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      2c86963b
  27. 23 9月, 2009 1 次提交
  28. 27 8月, 2009 1 次提交
  29. 24 6月, 2009 1 次提交
    • T
      percpu: use dynamic percpu allocator as the default percpu allocator · e74e3962
      Tejun Heo 提交于
      This patch makes most !CONFIG_HAVE_SETUP_PER_CPU_AREA archs use
      dynamic percpu allocator.  The first chunk is allocated using
      embedding helper and 8k is reserved for modules.  This ensures that
      the new allocator behaves almost identically to the original allocator
      as long as static percpu variables are concerned, so it shouldn't
      introduce much breakage.
      
      s390 and alpha use custom SHIFT_PERCPU_PTR() to work around addressing
      range limit the addressing model imposes.  Unfortunately, this breaks
      if the address is specified using a variable, so for now, the two
      archs aren't converted.
      
      The following architectures are affected by this change.
      
      * sh
      * arm
      * cris
      * mips
      * sparc(32)
      * blackfin
      * avr32
      * parisc (broken, under investigation)
      * m32r
      * powerpc(32)
      
      As this change makes the dynamic allocator the default one,
      CONFIG_HAVE_DYNAMIC_PER_CPU_AREA is replaced with its invert -
      CONFIG_HAVE_LEGACY_PER_CPU_AREA, which is added to yet-to-be converted
      archs.  These archs implement their own setup_per_cpu_areas() and the
      conversion is not trivial.
      
      * powerpc(64)
      * sparc(64)
      * ia64
      * alpha
      * s390
      
      Boot and batch alloc/free tests on x86_32 with debug code (x86_32
      doesn't use default first chunk initialization).  Compile tested on
      sparc(32), powerpc(32), arm and alpha.
      
      Kyle McMartin reported that this change breaks parisc.  The problem is
      still under investigation and he is okay with pushing this patch
      forward and fixing parisc later.
      
      [ Impact: use dynamic allocator for most archs w/o custom percpu setup ]
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Acked-by: NRusty Russell <rusty@rustcorp.com.au>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Acked-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Acked-by: NMartin Schwidefsky <schwidefsky@de.ibm.com>
      Reviewed-by: NChristoph Lameter <cl@linux.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Mikael Starvik <starvik@axis.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Bryan Wu <cooloney@kernel.org>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Matthew Wilcox <matthew@wil.cx>
      Cc: Grant Grundler <grundler@parisc-linux.org>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      e74e3962
  30. 19 6月, 2009 1 次提交
  31. 26 2月, 2009 1 次提交
  32. 20 2月, 2009 2 次提交
  33. 16 1月, 2009 1 次提交
    • T
      [IA64] Turn on CONFIG_HAVE_UNSTABLE_CLOCK · 0773a6cf
      Tony Luck 提交于
      sched_clock() on ia64 is based on ar.itc, so is never
      completely synchronized between cpus. On some platforms
      (e.g. certain models of SGI Altix) it may be running at
      radically different frequencies.
      
      Based on a patch from Dimitri Sivanich which set this
      just for SN2 && GENERIC kernels ... it is needed for
      all ia64 machines.
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      0773a6cf
  34. 14 1月, 2009 2 次提交
    • S
      ftrace, ia64: IA64 dynamic ftrace support · a14a07b8
      Shaohua Li 提交于
      IA64 dynamic ftrace support.
      The original _mcount stub for each function is like:
      	alloc r40=ar.pfs,12,8,0
      	mov r43=r0;;
      	mov r42=b0
      	mov r41=r1
      	nop.i 0x0
      	br.call.sptk.many b0 = _mcount;;
      
      The patch convert it to below for nop:
      	[MII] nop.m 0x0
      	mov r3=ip
      	nop.i 0x0
      	[MLX] nop.m 0x0
      	nop.x 0x0;;
      This isn't completely nop, as there is one instuction 'mov r3=ip', but
      it should be light and harmless for code follow it.
      
      And below is for call
      	[MII] nop.m 0x0
      	mov r3=ip
      	nop.i 0x0
      	[MLX] nop.m 0x0
      	brl.many .;;
      In this way, only one instruction is changed to convert code between nop
      and call. This should meet dyn-ftrace's requirement.
      But this requires CPU support brl instruction, so dyn-ftrace isn't
      supported for old Itanium system. Assume there are quite few such old
      system running.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a14a07b8
    • S
      ftrace, ia64: IA64 static ftrace support · d3e75ff1
      Shaohua Li 提交于
      IA64 ftrace suppport. In IA64, below code will be added in each function
      if -pg is enabled.
      
      alloc r40=ar.pfs,12,8,0
      mov r43=r0;;
      mov r42=b0
      mov r41=r1
      nop.i 0x0
      br.call.sptk.many b0 = _mcount;;
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      d3e75ff1