1. 20 5月, 2008 1 次提交
  2. 27 3月, 2008 1 次提交
  3. 09 2月, 2008 2 次提交
  4. 26 4月, 2006 1 次提交
  5. 20 3月, 2006 3 次提交
    • D
      [SPARC64]: Top-down address space allocation for 32-bit tasks. · a91690dd
      David S. Miller 提交于
      Currently allocations are very constrained for 32-bit processes.
      It grows down-up from 0x70000000 to 0xf0000000 which gives about
      2GB of stack + dynamic mmap() space.
      
      So support the top-down method, and we need to override the
      generic helper function in order to deal with D-cache coloring.
      
      With these changes I was able to squeeze out a mmap() just over
      3.6GB in size in a 32-bit process.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a91690dd
    • D
      [SPARC64]: Fix %tstate ASI handling in start_thread{,32}() · 0f05da6d
      David S. Miller 提交于
      Niagara helps us find a ancient bug in the sparc64 port :-)
      
      The ASI_* values are plain constant defines, thus signed 32-bit
      on sparc64.  To put shift this into the regs->tstate value we were
      doing or'ing "(ASI_PNF << 24)" into there.
      
      ASI_PNF is 0x82 and shifted left by 24 makes that topmost bit the
      sign bit in a 32-bit value.  This would get sign extended to 64-bits
      and thus corrupt the top-half of the reg->tstate value.
      
      This never caused problems in pre-Niagara cpus because the only thing
      up there were the condition code values.  But Niagara has the global
      register level field, and this all 1's value is illegal there so
      Niagara gives an illegal instruction trap due to this bug.
      
      I'm pretty sure this bug is about as old as the sparc64 port itself.
      
      This also points out that we weren't setting ASI_PNF for 32-bit tasks.
      We should, so fix that while we're here.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0f05da6d
    • D
      [SPARC64]: Move away from virtual page tables, part 1. · 74bf4312
      David S. Miller 提交于
      We now use the TSB hardware assist features of the UltraSPARC
      MMUs.
      
      SMP is currently knowingly broken, we need to find another place
      to store the per-cpu base pointers.  We hid them away in the TSB
      base register, and that obviously will not work any more :-)
      
      Another known broken case is non-8KB base page size.
      
      Also noticed that flush_tlb_all() is not referenced anywhere, only
      the internal __flush_tlb_all() (local cpu only) is used by the
      sparc64 port, so we can get rid of flush_tlb_all().
      
      The kernel gets it's own 8KB TSB (swapper_tsb) and each address space
      gets it's own private 8K TSB.  Later we can add code to dynamically
      increase the size of per-process TSB as the RSS grows.  An 8KB TSB is
      good enough for up to about a 4MB RSS, after which the TSB starts to
      incur many capacity and conflict misses.
      
      We even accumulate OBP translations into the kernel TSB.
      
      Another area for refinement is large page size support.  We could use
      a secondary address space TSB to handle those.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      74bf4312
  6. 13 1月, 2006 1 次提交
  7. 30 8月, 2005 1 次提交
  8. 22 6月, 2005 1 次提交
    • D
      [SPARC64]: Add prefetch support. · 7049e680
      David S. Miller 提交于
      The implementation is optimal for UltraSPARC-III and later.
      It will work, however suboptimally, on UltraSPARC-II and
      be treated as a NOP on UltraSPARC-I.
      
      It is not worth code patching this thing as the highest cost
      is the code space, and code patching cannot eliminate that.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7049e680
  9. 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