1. 16 Oct, 2007 2 commits
    • Mel Gorman's avatar
      Do not depend on MAX_ORDER when grouping pages by mobility · d9c23400
      Mel Gorman authored
      
      
      Currently mobility grouping works at the MAX_ORDER_NR_PAGES level.  This makes
      sense for the majority of users where this is also the huge page size.
      However, on platforms like ia64 where the huge page size is runtime
      configurable it is desirable to group at a lower order.  On x86_64 and
      occasionally on x86, the hugepage size may not always be MAX_ORDER_NR_PAGES.
      
      This patch groups pages together based on the value of HUGETLB_PAGE_ORDER.  It
      uses a compile-time constant if possible and a variable where the huge page
      size is runtime configurable.
      
      It is assumed that grouping should be done at the lowest sensible order and
      that the user would not want to override this.  If this is not true,
      page_block order could be forced to a variable initialised via a boot-time
      kernel parameter.
      
      One potential issue with this patch is that IA64 now parses hugepagesz with
      early_param() instead of __setup().  __setup() is called after the memory
      allocator has been initialised and the pageblock bitmaps already setup.  In
      tests on one IA64 there did not seem to be any problem with using
      early_param() and in fact may be more correct as it guarantees the parameter
      is handled before the parsing of hugepages=.
      Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
      Acked-by: default avatarAndy Whitcroft <apw@shadowen.org>
      Acked-by: default avatarChristoph Lameter <clameter@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9c23400
    • Christoph Lameter's avatar
      IA64: SPARSEMEM_VMEMMAP 16K page size support · ef229c5a
      Christoph Lameter authored
      
      
      Equip IA64 sparsemem with a virtual memmap.  This is similar to the existing
      CONFIG_VIRTUAL_MEM_MAP functionality for DISCONTIGMEM.  It uses a PAGE_SIZE
      mapping.
      
      This is provided as a minimally intrusive solution.  We split the 128TB
      VMALLOC area into two 64TB areas and use one for the virtual memmap.
      
      This should replace CONFIG_VIRTUAL_MEM_MAP long term.
      
      [apw@shadowen.org: convert to new helper based initialisation]
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      Signed-off-by: default avatarAndy Whitcroft <apw@shadowen.org>
      Acked-by: default avatarMel Gorman <mel@csn.ul.ie>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ef229c5a
  2. 12 Oct, 2007 1 commit
    • Bjorn Helgaas's avatar
      [IA64] add driver for ACPI methods to call native firmware · 28eda5b8
      Bjorn Helgaas authored
      
      
      This driver for HPQ5001 devices installs a global ACPI OpRegion handler.
      AML methods can use this OpRegion to call native firmware entry points.
      
      ACPI does not define a mechanism for AML methods to call native firmware
      interfaces such as PAL or SAL.  This OpRegion handler adds such a mechanism.
      After the handler is installed, an AML method can call native firmware by
      storing the arguments and firmware entry point to specific offsets in the
      OpRegion.  When AML reads the "return value" offset from the OpRegion, this
      handler loads up the arguments, makes the firmware call, and returns the
      result.
      Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      28eda5b8
  3. 13 Aug, 2007 1 commit
    • Satyam Sharma's avatar
      [IA64] Include Kconfig.preempt · 0b0517a4
      Satyam Sharma authored
      
      
      arch/ia64/Kconfig failed to include kernel/Kconfig.preempt that meant it
      did not support PREEMPT_VOLUNTARY and PREEMPT_BKL (inadvertently).
      This was recently noticed when the newly-added PREEMPT_NOTIFIERS in
      Kconfig.preempt that was "select"ed from drivers/kvm/Kconfig (therefore)
      started giving bogus warnings ('select' used by config symbol 'KVM' refers
      to undefined symbol 'PREEMPT_NOTIFIERS') on ia64 builds.
      
      So let's remove the open-coded definition of CONFIG_PREEMPT in
      arch/ia64/Kconfig and replace it with just including Kconfig.preempt
      instead, like the other archs do.
      Signed-off-by: default avatarSatyam Sharma <satyam@infradead.org>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      0b0517a4
  4. 27 Jul, 2007 1 commit
    • Tony Luck's avatar
      [IA64] Fix build failure in fs/quota.c · 7a6c8135
      Tony Luck authored
      b716395e
      
       added code to handle
      a compatability issue with 32bit quota tools, but the new compat
      routines are only needed when CONFIG_COMPAT=y (and with this set
      to 'n' there are compilation problems since some new typedefs are
      not visible).
      
      Reported by Doug Chapman.  Fix tuned by a cast of thousands (Andi,
      Andreas, Arthur, HPA, Willy)
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      7a6c8135
  5. 20 Jul, 2007 1 commit
  6. 17 Jul, 2007 1 commit
  7. 11 Jul, 2007 1 commit
  8. 11 May, 2007 1 commit
  9. 08 May, 2007 1 commit
  10. 02 May, 2007 1 commit
  11. 19 Mar, 2007 1 commit
    • Len Brown's avatar
      ACPI: IA64: fix allnoconfig build · 8140a90e
      Len Brown authored
      
      
      The evils of Kconfig's select bite us once again...
      ia64/Kconfig selects ACPI, which depends on PM.
      But select ignores dependencies, allnoconfig
      chooses CONFIG_PM=n, and thus the menu of sub-options
      under ACPI vanish, which breaks the build.
      
      Manually select PM along with ACPI for now.
      Some day, we should delete them both, or fix select.
      
      Cc: Tony Luck <tony.luck@intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      8140a90e
  12. 15 Feb, 2007 1 commit
  13. 11 Feb, 2007 2 commits
  14. 05 Feb, 2007 2 commits
  15. 29 Jan, 2007 1 commit
  16. 08 Dec, 2006 1 commit
    • David Howells's avatar
      [PATCH] LOG2: Implement a general integer log2 facility in the kernel · f0d1b0b3
      David Howells authored
      
      
      This facility provides three entry points:
      
      	ilog2()		Log base 2 of unsigned long
      	ilog2_u32()	Log base 2 of u32
      	ilog2_u64()	Log base 2 of u64
      
      These facilities can either be used inside functions on dynamic data:
      
      	int do_something(long q)
      	{
      		...;
      		y = ilog2(x)
      		...;
      	}
      
      Or can be used to statically initialise global variables with constant values:
      
      	unsigned n = ilog2(27);
      
      When performing static initialisation, the compiler will report "error:
      initializer element is not constant" if asked to take a log of zero or of
      something not reducible to a constant.  They treat negative numbers as
      unsigned.
      
      When not dealing with a constant, they fall back to using fls() which permits
      them to use arch-specific log calculation instructions - such as BSR on
      x86/x86_64 or SCAN on FRV - if available.
      
      [akpm@osdl.org: MMC fix]
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Herbert Xu <herbert@gondor.apana.org.au>
      Cc: David Howells <dhowells@redhat.com>
      Cc: Wojtek Kaniewski <wojtekka@toxygen.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f0d1b0b3
  17. 07 Dec, 2006 1 commit
    • Zou Nan hai's avatar
      [IA64] IA64 Kexec/kdump · a7956113
      Zou Nan hai authored
      
      
      Changes and updates.
      
      1. Remove fake rendz path and related code according to discuss with Khalid Aziz.
      2. fc.i offset fix in relocate_kernel.S.
      3. iospic shutdown code eoi and mask race fix from Fujitsu.
      4. Warm boot hook in machine_kexec to SN SAL code from Jack Steiner.
      5. Send slave to SAL slave loop patch from Jay Lan.
      6. Kdump on non-recoverable MCA event patch from Jay Lan
      7. Use CTL_UNNUMBERED in kdump_on_init sysctl.
      Signed-off-by: default avatarZou Nan hai <nanhai.zou@intel.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      a7956113
  18. 13 Nov, 2006 1 commit
    • Jes Sorensen's avatar
      [PATCH] mspec driver build fix · 1a4b0fc5
      Jes Sorensen authored
      
      
      Fix MSPEC driver to build for non SN2 enabled configs as the driver should
      work in cached and uncached modes (no fetchop) on these systems.  In
      addition make MSPEC select IA64_UNCACHED_ALLOCATOR, which is required for
      it and move it to arch/ia64/Kconfig to avoid warnings on non ia64
      architectures running allmodconfig.  Once the Kconfig code is fixed, we can
      move it back.
      Signed-off-by: default avatarJes Sorensen <jes@sgi.com>
      Cc: Fernando Luis Vzquez Cao <fernando@oss.ntt.co.jp>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      1a4b0fc5
  19. 08 Nov, 2006 1 commit
  20. 02 Oct, 2006 1 commit
    • Ananth N Mavinakayanahalli's avatar
      [PATCH] Kprobes: Make kprobe modules more portable · 3a872d89
      Ananth N Mavinakayanahalli authored
      
      
      In an effort to make kprobe modules more portable, here is a patch that:
      
      o Introduces the "symbol_name" field to struct kprobe.
        The symbol->address resolution now happens in the kernel in an
        architecture agnostic manner. 64-bit powerpc users no longer have
        to specify the ".symbols"
      o Introduces the "offset" field to struct kprobe to allow a user to
        specify an offset into a symbol.
      o The legacy mechanism of specifying the kprobe.addr is still supported.
        However, if both the kprobe.addr and kprobe.symbol_name are specified,
        probe registration fails with an -EINVAL.
      o The symbol resolution code uses kallsyms_lookup_name(). So
        CONFIG_KPROBES now depends on CONFIG_KALLSYMS
      o Apparantly kprobe modules were the only legitimate out-of-tree user of
        the kallsyms_lookup_name() EXPORT. Now that the symbol resolution
        happens in-kernel, remove the EXPORT as suggested by Christoph Hellwig
      o Modify tcp_probe.c that uses the kprobe interface so as to make it
        work on multiple platforms (in its earlier form, the code wouldn't
        work, say, on powerpc)
      Signed-off-by: default avatarAnanth N Mavinakayanahalli <ananth@in.ibm.com>
      Signed-off-by: default avatarPrasanna S Panchamukhi <prasanna@in.ibm.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3a872d89
  21. 27 Sep, 2006 1 commit
  22. 26 Sep, 2006 1 commit
  23. 12 Sep, 2006 1 commit
  24. 29 Aug, 2006 1 commit
  25. 30 Jun, 2006 1 commit
    • Christoph Lameter's avatar
      [PATCH] zoned vm counters: basic ZVC (zoned vm counter) implementation · 2244b95a
      Christoph Lameter authored
      
      
      Per zone counter infrastructure
      
      The counters that we currently have for the VM are split per processor.  The
      processor however has not much to do with the zone these pages belong to.  We
      cannot tell f.e.  how many ZONE_DMA pages are dirty.
      
      So we are blind to potentially inbalances in the usage of memory in various
      zones.  F.e.  in a NUMA system we cannot tell how many pages are dirty on a
      particular node.  If we knew then we could put measures into the VM to balance
      the use of memory between different zones and different nodes in a NUMA
      system.  For example it would be possible to limit the dirty pages per node so
      that fast local memory is kept available even if a process is dirtying huge
      amounts of pages.
      
      Another example is zone reclaim.  We do not know how many unmapped pages exist
      per zone.  So we just have to try to reclaim.  If it is not working then we
      pause and try again later.  It would be better if we knew when it makes sense
      to reclaim unmapped pages from a zone.  This patchset allows the determination
      of the number of unmapped pages per zone.  We can remove the zone reclaim
      interval with the counters introduced here.
      
      Futhermore the ability to have various usage statistics available will allow
      the development of new NUMA balancing algorithms that may be able to improve
      the decision making in the scheduler of when to move a process to another node
      and hopefully will also enable automatic page migration through a user space
      program that can analyse the memory load distribution and then rebalance
      memory use in order to increase performance.
      
      The counter framework here implements differential counters for each processor
      in struct zone.  The differential counters are consolidated when a threshold
      is exceeded (like done in the current implementation for nr_pageache), when
      slab reaping occurs or when a consolidation function is called.
      
      Consolidation uses atomic operations and accumulates counters per zone in the
      zone structure and also globally in the vm_stat array.  VM functions can
      access the counts by simply indexing a global or zone specific array.
      
      The arrangement of counters in an array also simplifies processing when output
      has to be generated for /proc/*.
      
      Counters can be updated by calling inc/dec_zone_page_state or
      _inc/dec_zone_page_state analogous to *_page_state.  The second group of
      functions can be called if it is known that interrupts are disabled.
      
      Special optimized increment and decrement functions are provided.  These can
      avoid certain checks and use increment or decrement instructions that an
      architecture may provide.
      
      We also add a new CONFIG_DMA_IS_NORMAL that signifies that an architecture can
      do DMA to all memory and therefore ZONE_NORMAL will not be populated.  This is
      only currently set for IA64 SGI SN2 and currently only affects
      node_page_state().  In the best case node_page_state can be reduced to
      retrieving a single counter for the one zone on the node.
      
      [akpm@osdl.org: cleanups]
      [akpm@osdl.org: export vm_stat[] for filesystems]
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      2244b95a
  26. 29 Jun, 2006 2 commits
  27. 27 Jun, 2006 1 commit
  28. 23 Jun, 2006 1 commit
  29. 21 Jun, 2006 2 commits
    • Kenji Kaneshige's avatar
      [IA64] Make PCI Express support selectable · b7bb575c
      Kenji Kaneshige authored
      
      
      When I tried to use PCI Express Hotplug driver on my ia64 box, I
      noticed that "PCI Express support" is not even selectable on ia64.
      This patch makes PCI Express support selectable.
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      b7bb575c
    • David Mosberger-Tang's avatar
      [IA64] esi-support · 2ab561a1
      David Mosberger-Tang authored
      
      
      Add support for making ESI calls [1].  ESI stands for "Extensible SAL
      specification" and is basically a way for invoking firmware
      subroutines which are identified by a GUID.  I don't know whether ESI
      is used by vendors other than HP (if you do, please let me know) but
      as firmware "backdoors" go, this seems one of the cleaner methods, so
      it seems reasonable to support it, even though I'm not aware of any
      publicly documented ESI calls.  I'd have liked to make the ESI module
      completely stand-alone, but unfortunately that is not easily (or not
      at all) possible because in order to make ESI calls in physical mode,
      a small stub similar to the EFI stub is needed in the kernel proper.
      I did try to create a stub that would work in user-level, but it
      quickly got ugly beyond recognition (e.g., the stub had to make
      assumptions about how the module-loader generated call-stubs work) and
      I didn't even get it to work (that's probably fixable, but I didn't
      bother because I concluded it was too ugly anyhow).  While it's not
      terribly elegant to have kernel code which isn't actively used in the
      kernel proper, I think it might be worth making an exception here for
      two reasons: the code is trivially small (all that's really needed is
      esi_stub.S) and by including it in the normal kernel distro, it might
      encourage other OEMs to also use ESI, which I think would be far
      better than each inventing their own firmware "backdoor".
      
      The code was originally written by Alex.  I just massaged and packaged
      it a bit (and perhaps messed up some things along the way...).
      
      Changes since first version of patch that was posted to mailing list:
      * Export ia64_esi_call and ia64_esi_call_phys() as GPL symbols.
      * Disallow building esi.c as a module for now.  Building as a module
        would currently lead to an unresolved reference to "sal_lock" on SMP kernels
        because that symbol doesn't get exported.
      * Export esi_call_phys() only if ESI is enabled.
      * Remove internal stuff from esi.h and add a "proc_type" argument to
        ia64_esi_call() such that serialization-requirements can be expressed (ESI
        follows SAL here, where procedure calls may have to be serialized, are
        MP-safe, or MP-safe andr reentrant).
      
      [1] h21007.www2.hp.com/dspp/tech/tech_TechDocumentDetailPage_IDX/1,1701,919,00.html
      Signed-off-by: default avatarDavid Mosberger <David.Mosberger@acm.org>
      Signed-off-by: default avatarAlex Williamson <alex.williamson@hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      2ab561a1
  30. 21 Apr, 2006 1 commit
  31. 11 Apr, 2006 1 commit
    • Yasunori Goto's avatar
      [PATCH] Configurable NODES_SHIFT · c80d79d7
      Yasunori Goto authored
      Current implementations define NODES_SHIFT in include/asm-xxx/numnodes.h for
      each arch.  Its definition is sometimes configurable.  Indeed, ia64 defines 5
      NODES_SHIFT values in the current git tree.  But it looks a bit messy.
      
      SGI-SN2(ia64) system requires 1024 nodes, and the number of nodes already has
      been changeable by config.  Suitable node's number may be changed in the
      future even if it is other architecture.  So, I wrote configurable node's
      number.
      
      This patch set defines just default value for each arch which needs multi
      nodes except ia64.  But, it is easy to change to configurable if necessary.
      
      On ia64 the number of nodes can be already configured in generic ia64 and SN2
      config.  But, NODES_SHIFT is defined for DIG64 and HP'S machine too.  So, I
      changed it so that all platforms can be configured via CONFIG_NODES_SHIFT.  It
      would be simpler.
      
      See also: http://marc.theaimsgroup.com/?l=linux-kernel&m=114358010523896&w=2
      
      Signed-off-by: default avatarYasunori Goto <y-goto@jp.fujitsu.com>
      Cc: Hirokazu Takata <takata@linux-m32r.org>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Cc: Andi Kleen <ak@muc.de>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Kyle McMartin <kyle@mcmartin.ca>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Jack Steiner <steiner@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c80d79d7
  32. 01 Apr, 2006 1 commit
  33. 26 Mar, 2006 2 commits
    • Akinobu Mita's avatar
      [PATCH] bitops: ia64: use generic bitops · 2875aef8
      Akinobu Mita authored
      
      
      - remove generic_fls64()
      - remove find_{next,first}{,_zero}_bit()
      - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit()
      - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit()
      - remove sched_find_first_bit()
      Signed-off-by: default avatarAkinobu Mita <mita@miraclelinux.com>
      Cc: "Luck, Tony" <tony.luck@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      2875aef8
    • Matt Domsch's avatar
      [PATCH] ia64: use i386 dmi_scan.c · 3ed3bce8
      Matt Domsch authored
      
      
      Enable DMI table parsing on ia64.
      
      Andi Kleen has a patch in his x86_64 tree which enables the use of i386
      dmi_scan.c on x86_64.  dmi_scan.c functions are being used by the
      drivers/char/ipmi/ipmi_si_intf.c driver for autodetecting the ports or
      memory spaces where the IPMI controllers may be found.
      
      This patch adds equivalent changes for ia64 as to what is in the x86_64
      tree.  In addition, I reworked the DMI detection, such that on EFI-capable
      systems, it uses the efi.smbios pointer to find the table, rather than
      brute-force searching from 0xF0000.  On non-EFI systems, it continues the
      brute-force search.
      
      My test system, an Intel S870BN4 'Tiger4', aka Dell PowerEdge 7250, with
      latest BIOS, does not list the IPMI controller in the ACPI namespace, nor
      does it have an ACPI SPMI table.  Also note, currently shipping Dell x8xx
      EM64T servers don't have these either, so DMI is the only method for
      obtaining the address of the IPMI controller.
      Signed-off-by: default avatarMatt Domsch <Matt_Domsch@dell.com>
      Acked-by: default avatar"Luck, Tony" <tony.luck@intel.com>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3ed3bce8
  34. 24 Mar, 2006 1 commit