1. 28 4月, 2006 1 次提交
  2. 29 3月, 2006 2 次提交
  3. 28 3月, 2006 1 次提交
  4. 08 3月, 2006 1 次提交
  5. 16 2月, 2006 3 次提交
    • H
      [IA64] ia64: simplify and fix udelay() · defbb2c9
      hawkes@sgi.com 提交于
      The original ia64 udelay() was simple, but flawed for platforms without
      synchronized ITCs:  a preemption and migration to another CPU during the
      while-loop likely resulted in too-early termination or very, very
      lengthy looping.
      
      The first fix (now in 2.6.15) broke the delay loop into smaller,
      non-preemptible chunks, reenabling preemption between the chunks.  This
      fix is flawed in that the total udelay is computed to be the sum of just
      the non-premptible while-loop pieces, i.e., not counting the time spent
      in the interim preemptible periods.  If an interrupt or a migration
      occurs during one of these interim periods, then that time is invisible
      and only serves to lengthen the effective udelay().
      
      This new fix backs out the current flawed fix and returns to a simple
      udelay(), fully preemptible and interruptible.  It implements two simple
      alternative udelay() routines:  one a default generic version that uses
      ia64_get_itc(), and the other an sn-specific version that uses that
      platform's RTC.
      Signed-off-by: NJohn Hawkes <hawkes@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      defbb2c9
    • J
      [IA64] remove obsolete corporate address · d3454344
      Jes Sorensen 提交于
      Remove obsolete SGI address
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      d3454344
    • J
      [IA64-SGI] sn2 minor fixes and cleanups · 8ed9b2c7
      Jes Sorensen 提交于
      General SN2 code cleanup:
       - Do not initialize global variables to zero
       - Use kzalloc instead of kmalloc+memset
       - Check kmalloc return values
       - Do not obfuscate spin lock calls
       - Remove some unused code
       - Various formatting cleanups
      Signed-off-by: NJes Sorensen <jes@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      8ed9b2c7
  6. 09 2月, 2006 1 次提交
  7. 27 1月, 2006 3 次提交
    • B
      [IA64] hooks to wait for mmio writes to drain when migrating processes · e08e6c52
      Brent Casavant 提交于
      On SN2, MMIO writes which are issued from separate processors are not
      guaranteed to arrive in any particular order at the IO hardware.  When
      performing such writes from the kernel this is not a problem, as a
      kernel thread will not migrate to another CPU during execution, and
      mmiowb() calls can guarantee write ordering when control of the IO
      resource is allowed to move between threads.
      
      However, when MMIO writes can be performed from user space (e.g. DRM)
      there are no such guarantees and mechanisms, as the process may
      context-switch at any time, and may migrate to a different CPU as part
      of the switch.  For such programs/hardware to operate correctly, it is
      required that the MMIO writes from the old CPU be accepted by the IO
      hardware before subsequent writes from the new CPU can be issued.
      
      The following patch implements this behavior on SN2 by waiting for a
      Shub register to indicate that these writes have been accepted.  This
      is placed in the context switch-in path, and only performs the wait
      when the newly scheduled task changes CPUs.
      Signed-off-by: NPrarit Bhargava <prarit@sgi.com>
      Signed-off-by: NBrent Casavant <bcasavan@sgi.com>
      e08e6c52
    • J
      [IA64-SGI] Update TLB flushing code for SN platform · 61a34a02
      Jack Steiner 提交于
      This patch finishes support for SHUB2 (the new chipset). Most of the
      changes are performance related. A few changes are workarounds for
      "interesting" chipset features.
      
      Some temporary debugging code has also been deleted.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      61a34a02
    • K
      [IA64-SGI] Recursive flags do not work for selective builds · 103ec091
      Keith Owens 提交于
      arch/ia64/sn/Makefile sets CPPFLAGS, expecting that setting to
      propogate to all the subdirectories.  For a normal build with its
      recursive descent it does work, but doing a selective build like
      'make arch/ia64/sn/kernel/io_init.i' does not do a recursive descent,
      it goes directly to arch/ia64/sn/kernel/Makefile so the flags do not
      get set.
      
      To support selective builds, set the flags in all the subordinate Makefiles.
      Signed-off-by: NKeith Owens <kaos@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      103ec091
  8. 17 12月, 2005 1 次提交
    • J
      [IA64-SGI] Missed TLB flush · d74700e6
      Jack Steiner 提交于
      I see why the problem exists only on SN. SN uses a different hardware
      mechanism to purge TLB entries across nodes.
      
      It looks like there is a bug in the SN TLB flushing code. During context switch,
      kernel threads inherit the mm of the task that was previously running on the
      cpu. This confuses the code in sn2_global_tlb_purge().
      
      The result is a missed TLB purge for the task that owns the "borrowed" mm.
      
      (I hit the problem running heavy stress where kswapd was purging code pages of
      a user task that woke kswapd. The user task took a SIGILL fault trying to
      execute code in the page that had been ripped out from underneath it).
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      d74700e6
  9. 07 12月, 2005 1 次提交
  10. 22 11月, 2005 2 次提交
  11. 28 10月, 2005 1 次提交
    • D
      [IA64] - Avoid slow TLB purges on SGI Altix systems · c1902aae
      Dean Roe 提交于
      flush_tlb_all() can be a scaling issue on large SGI Altix systems
      since it uses the global call_lock and always executes on all cpus.
      When a process enters flush_tlb_range() to purge TLBs for another
      process, it is possible to avoid flush_tlb_all() and instead allow
      sn2_global_tlb_purge() to purge TLBs only where necessary.
      
      This patch modifies flush_tlb_range() so that this case can be handled
      by platform TLB purge functions and updates ia64_global_tlb_purge()
      accordingly.  sn2_global_tlb_purge() now calculates the region register
      value from the mm argument introduced with this patch.
      Signed-off-by: NDean Roe <roe@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      c1902aae
  12. 16 9月, 2005 1 次提交
    • J
      [IA64] Cleanup use of various #defines related to nodes · 24ee0a6d
      Jack Steiner 提交于
      Some of the SN code & #defines related to compact nodes & IO discovery
      have gotten stale over the years. This patch attempts to clean them up.
      Some of the various SN MAX_xxx #defines were also unclear & misused.
      
      The primary changes are:
      
      	- use MAX_NUMNODES. This is the generic linux #define for the number
      	  of nodes that are known to the generic kernel. Arrays & loops
      	  for constructs that are 1:1 with linux-defined nodes should
      	  use the linux #define - not an SN equivalent.
      
      	- use MAX_COMPACT_NODES for MAX_NUMNODES + NUM_TIOS. This is the
      	  number of nodes in the SSI system. Compact nodes are a hack to
      	  get around the IA64 architectural limit of 256 nodes. Large SGI
      	  systems have more than 256 nodes. When we upgrade to ACPI3.0,
      	  I _hope_ that all nodes will be real nodes that are known to
      	  the generic kernel. That will allow us to delete the notion
      	  of "compact nodes".
      
      	- add MAX_NUMALINK_NODES for the total number of nodes that
      	  are in the numalink domain - all partitions.
      
      	- simplified (understandable) scan_for_ionodes()
      
      	- small amount of cleanup related to cnodes
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      24ee0a6d
  13. 26 8月, 2005 1 次提交
  14. 25 8月, 2005 4 次提交
  15. 18 8月, 2005 2 次提交
  16. 29 6月, 2005 1 次提交
    • P
      [IA64] sparse cleanup of shub_mmr.h · 8e4641b3
      Prarit Bhargava 提交于
      This patch is a sparse compile cleanup of shub_mmr.h using both the defconfig
      and the sn2_defconfig config files.
      
      The issue with this file was the missing usage of __IA64_UL_CONST wrapper.
      This wrapper is defined in include/asm-ia64/types.h and wraps a long
      constant definition with UL or with nothing depending on its usage in the
      kernel.  The missing wrapper caused many sparse compile errors like
      
              warning: constant 0x0x0000000010000380 so big it is long
      Signed-off-by: NPrarit Bhargava <prarit@sgi.com>
      Signed-off-by: NTony Luck <tony.luck@intel.com>
      8e4641b3
  17. 26 4月, 2005 3 次提交
  18. 17 4月, 2005 1 次提交
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4