Skip to content
  1. Jul 26, 2005
  2. Jul 14, 2005
  3. Jul 12, 2005
  4. Jul 11, 2005
  5. Jul 08, 2005
  6. Jul 07, 2005
    • Tony Luck's avatar
      [IA64] fix generic/up builds · 8d7e3517
      Tony Luck authored
      
      
      Jesse Barnes provided the original version of this patch months ago, but
      other changes kept conflicting with it, so it got deferred.  Greg Edwards
      dug it out of obscurity just over a week ago, and almost immediately
      another conflicting patch appeared (Bob Picco's memory-less nodes).
      
      I've resolved the conflicts and got it running again.  CONFIG_SGI_TIOCX
      is set to "y" in defconfig, which causes a Tiger to not boot (oops in
      tiocx_init).  But that can be resolved later ... get this in now before it
      gets stale again.
      
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      8d7e3517
  7. Jul 06, 2005
  8. Jun 28, 2005
    • Peter Chubb's avatar
      [IA64] Fix another IA64 preemption problem · a68db763
      Peter Chubb authored
      
      
      There's another problem shown up by Ingo's recent patch to make
      smp_processor_id() complain if it's called with preemption enabled.
      local_finish_flush_tlb_mm() calls activate_context() in a situation
      where it could be rescheduled to another processor.  This patch
      disables preemption around the call.
      
      Signed-off-by: default avatarPeter Chubb <peterc@gelato.unsw.edu.au>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      a68db763
    • David Mosberger-Tang's avatar
      [IA64] Speed up lfetch.fault [NULL] · 458f9355
      David Mosberger-Tang authored
      
      
      This patch greatly speeds up the handling of lfetch.fault instructions
      which result in NaT consumption. Due to the NaT-page mapped at address
      0, this is guaranteed to happen when lfetch.fault'ing a NULL pointer.
      With this patch in place, we can even define prefetch()/prefetchw() as
      lfetch.fault without significant performance degradation.  More
      importantly, it allows compilers to be more aggressive with using
      lfetch.fault on pointers that might be NULL.
      
      Signed-off-by: default avatarDavid Mosberger-Tang <davidm@hpl.hp.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      458f9355
    • Mark Maule's avatar
      [IA64-SGI] pcdp: add PCDP pci interface support · 66b7f8a3
      Mark Maule authored
      
      
      Resend 2 with changes per Bjorn Helgaas comments.  Changes from original:
      
      + Change globals to vga_console_iobase/vga_console_membase and make them
        unconditional.
      + Address style-related comments.
      
      Patch to extend the PCDP vga setup code to support PCI io/mem translations
      for the legacy vga ioport and ram spaces on architectures (e.g. altix) which
      need them.
      
      Summary of the changes:
      
      drivers/firmware/pcdp.c
      drivers/firmware/pcdp.h
      -----------------------
      + add declaration for the spec-defined PCI interface struct (pcdp_if_pci)
        as well as support macros.
      
      + extend setup_vga_console() to know about pcdp_if_pci and add a couple of
        globals to hold the io and mem translation offsets if present.
      
      arch/ia64/kernel/setup.c
      ------------------------
      + tweek early_console_setup() to allow multiple early console setup routines
        to be called.
      
      include/asm-ia64/vga.h
      ----------------------
      + make VGA_MAP_MEM vga_console_membase aware
      
      Signed-off-by: default avatarMark Maule <maule@sgi.com>
      Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
      66b7f8a3
    • Kenji Kaneshige's avatar
      [PATCH] ACPI based I/O APIC hot-plug: ia64 support · 0e888adc
      Kenji Kaneshige authored
      
      
      This is an ia64 implementation of acpi_register_ioapic() and
      acpi_unregister_ioapic() interfaces.
      
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      0e888adc
    • Kenji Kaneshige's avatar
      [PATCH] ACPI based I/O APIC hot-plug: add interfaces · b1bb248a
      Kenji Kaneshige authored
      
      
      This patch adds the following new interfaces for I/O xAPIC
      hotplug. The implementation of these interfaces depends on each
      architecture.
      
          o int acpi_register_ioapic(acpi_handle handle, u64 phys_addr,
      			       u32 gsi_base);
      
              This new interface is to add a new I/O xAPIC specified by
              phys_addr and gsi_base pair. phys_addr is the physical address
              to which the I/O xAPIC is mapped and gsi_base is global system
              interrupt base of the I/O xAPIC. acpi_register_ioapic returns
              0 on success, or negative value on error.
      
          o int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base);
      
              This new interface is to remove a I/O xAPIC specified by
              gsi_base. acpi_unregister_ioapic returns 0 on success, or
              negative value on error.
      
      Signed-off-by: default avatarKenji Kaneshige <kaneshige.kenji@jp.fujitsu.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      b1bb248a
  9. Jun 27, 2005
    • Keshavamurthy Anil S's avatar
      [PATCH] kprobes/ia64: refuse kprobe on ivt code · c7b645f9
      Keshavamurthy Anil S authored
      
      
      Not safe to insert kprobes on IVT code.
      
      This patch checks to see if the address on which Kprobes is being inserted is
      in ivt code and if it is in ivt code then refuse to register kprobe.
      
      Signed-off-by: default avatarAnil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
      Acked-by: default avatarDavid Mosberger <davidm@napali.hpl.hp.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      c7b645f9
    • Rusty Lynch's avatar
      [PATCH] kprobes/ia64: refuse inserting kprobe on slot 1 · a528e21c
      Rusty Lynch authored
      
      
      Without the ability to atomically write 16 bytes, we can not update the
      middle slot of a bundle, slot 1, unless we stop the machine first.  This
      patch will ensure the ability to robustly insert and remove a kprobe by
      refusing to insert a kprobe on slot 1 until a mechanism is in place to
      safely handle this case.
      
      Signed-off-by: default avatarRusty Lynch <rusty.lynch@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      a528e21c
    • Rusty Lynch's avatar
      [PATCH] Return probe redesign: ia64 specific implementation · 9508dbfe
      Rusty Lynch authored
      
      
      The following patch implements function return probes for ia64 using
      the revised design.  With this new design we no longer need to do some
      of the odd hacks previous required on the last ia64 return probe port
      that I sent out for comments.
      
      Note that this new implementation still does not resolve the problem noted
      by Keith Owens where backtrace data is lost after a return probe is hit.
      
      Changes include:
       * Addition of kretprobe_trampoline to act as a dummy function for instrumented
         functions to return to, and for the return probe infrastructure to place
         a kprobe on on, gaining control so that the return probe handler
         can be called, and so that the instruction pointer can be moved back
         to the original return address.
       * Addition of arch_init(), allowing a kprobe to be registered on
         kretprobe_trampoline
       * Addition of trampoline_probe_handler() which is used as the pre_handler
         for the kprobe inserted on kretprobe_implementation.  This is the function
         that handles the details for calling the return probe handler function
         and returning control back at the original return address
       * Addition of arch_prepare_kretprobe() which is setup as the pre_handler
         for a kprobe registered at the beginning of the target function by
         kernel/kprobes.c so that a return probe instance can be setup when
         a caller enters the target function.  (A return probe instance contains
         all the needed information for trampoline_probe_handler to do it's job.)
       * Hooks added to the exit path of a task so that we can cleanup any left-over
         return probe instances (i.e. if a task dies while inside a targeted function
         then the return probe instance was reserved at the beginning of the function
         but the function never returns so we need to mark the instance as unused.)
      
      Signed-off-by: default avatarRusty Lynch <rusty.lynch@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9508dbfe
    • Jens Axboe's avatar
      [PATCH] Update cfq io scheduler to time sliced design · 22e2c507
      Jens Axboe authored
      
      
      This updates the CFQ io scheduler to the new time sliced design (cfq
      v3).  It provides full process fairness, while giving excellent
      aggregate system throughput even for many competing processes.  It
      supports io priorities, either inherited from the cpu nice value or set
      directly with the ioprio_get/set syscalls.  The latter closely mimic
      set/getpriority.
      
      This import is based on my latest from -mm.
      
      Signed-off-by: default avatarJens Axboe <axboe@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      22e2c507
  10. Jun 25, 2005
  11. Jun 23, 2005
  12. Jun 22, 2005
    • Jes Sorensen's avatar
      [PATCH] ia64 uncached alloc · f14f75b8
      Jes Sorensen authored
      
      
      This patch contains the ia64 uncached page allocator and the generic
      allocator (genalloc).  The uncached allocator was formerly part of the SN2
      mspec driver but there are several other users of it so it has been split
      off from the driver.
      
      The generic allocator can be used by device driver to manage special memory
      etc.  The generic allocator is based on the allocator from the sym53c8xx_2
      driver.
      
      Various users on ia64 needs uncached memory.  The SGI SN architecture requires
      it for inter-partition communication between partitions within a large NUMA
      cluster.  The specific user for this is the XPC code.  Another application is
      large MPI style applications which use it for synchronization, on SN this can
      be done using special 'fetchop' operations but it also benefits non SN
      hardware which may use regular uncached memory for this purpose.  Performance
      of doing this through uncached vs cached memory is pretty substantial.  This
      is handled by the mspec driver which I will push out in a seperate patch.
      
      Rather than creating a specific allocator for just uncached memory I came up
      with genalloc which is a generic purpose allocator that can be used by device
      drivers and other subsystems as they please.  For instance to handle onboard
      device memory.  It was derived from the sym53c7xx_2 driver's allocator which
      is also an example of a potential user (I am refraining from modifying sym2
      right now as it seems to have been under fairly heavy development recently).
      
      On ia64 memory has various properties within a granule, ie.  it isn't safe to
      access memory as uncached within the same granule as currently has memory
      accessed in cached mode.  The regular system therefore doesn't utilize memory
      in the lower granules which is mixed in with device PAL code etc.  The
      uncached driver walks the EFI memmap and pulls out the spill uncached pages
      and sticks them into the uncached pool.  Only after these chunks have been
      utilized, will it start converting regular cached memory into uncached memory.
      Hence the reason for the EFI related code additions.
      
      Signed-off-by: default avatarJes Sorensen <jes@wildopensource.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f14f75b8
    • Martin Hicks's avatar
      [PATCH] VM: early zone reclaim · 753ee728
      Martin Hicks authored
      This is the core of the (much simplified) early reclaim.  The goal of this
      patch is to reclaim some easily-freed pages from a zone before falling back
      onto another zone.
      
      One of the major uses of this is NUMA machines.  With the default allocator
      behavior the allocator would look for memory in another zone, which might be
      off-node, before trying to reclaim from the current zone.
      
      This adds a zone tuneable to enable early zone reclaim.  It is selected on a
      per-zone basis and is turned on/off via syscall.
      
      Adding some extra throttling on the reclaim was also required (patch
      4/4).  Without the machine would grind to a crawl when doing a "make -j"
      kernel build.  Even with this patch the System Time is higher on
      average, but it seems tolerable.  Here are some numbers for kernbench
      runs on a 2-node, 4cpu, 8Gig RAM Altix in the "make -j" run:
      
      			wall  user   sys   %cpu  ctx sw.  sleeps
      			----  ----   ---   ----   ------  ------
      No patch		1009  1384   847   258   298170   504402
      w/patch, no reclaim     880   1376   667   288   254064   396745
      w/patch & reclaim       1079  1385   926   252   291625   548873
      
      These numbers are the average of 2 runs of 3 "make -j" runs done right
      after system boot.  Run-to-run variability for "make -j" is huge, so
      these numbers aren't terribly useful except to seee that with reclaim
      the benchmark still finishes in a reasonable amount of time.
      
      I also looked at the NUMA hit/miss stats for the "make -j" runs and the
      reclaim doesn't make any difference when the machine is thrashing away.
      
      Doing a "make -j8" on a single node that is filled with page cache pages
      takes 700 seconds with reclaim turned on and 735 seconds without reclaim
      (due to remote memory accesses).
      
      The simple zone_reclaim syscall program is at
      http://www.bork.org/~mort/sgi/zone_reclaim.c
      
      
      
      Signed-off-by: default avatarMartin Hicks <mort@sgi.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      753ee728
  13. Jun 21, 2005
Loading