1. 26 3月, 2008 2 次提交
  2. 25 3月, 2008 1 次提交
    • D
      [SPARC64]: Make save_stack_trace() more efficient. · 85a79353
      David S. Miller 提交于
      Doing a 'flushw' every stack trace capture creates so much overhead
      that it makes lockdep next to unusable.
      
      We only care about the frame pointer chain and the function caller
      program counters, so flush those by hand to the stack frame.
      
      This is significantly more efficient than a 'flushw' because:
      
      1) We only save 16 bytes per active register window to the stack.
      
      2) This doesn't push the entire register window context of the current
         call chain out of the cpu, forcing register window fill traps as we
         return back down.
      
      Note that we can't use 'restore' and 'save' instructions to move
      around the register windows because that wouldn't work on Niagara
      processors.  They optimize 'save' into a new register window by
      simply clearing out the registers instead of pulling them in from
      the on-chip register window backing store.
      
      Based upon a report by Tom Callaway.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      85a79353
  3. 24 3月, 2008 2 次提交
  4. 22 3月, 2008 1 次提交
    • D
      [SPARC64]: Remove most limitations to kernel image size. · 64658743
      David S. Miller 提交于
      Currently kernel images are limited to 8MB in size, and this causes
      problems especially when enabling features that take up a lot of
      kernel image space such as lockdep.
      
      The code now will align the kernel image size up to 4MB and map that
      many locked TLB entries.  So, the only practical limitation is the
      number of available locked TLB entries which is 16 on Cheetah and 64
      on pre-Cheetah sparc64 cpus.  Niagara cpus don't actually have hw
      locked TLB entry support.  Rather, the hypervisor transparently
      provides support for "locked" TLB entries since it runs with physical
      addressing and does the initial TLB miss processing.
      
      Fully utilizing this change requires some help from SILO, a patch for
      which will be submitted to the maintainer.  Essentially, SILO will
      only currently map up to 8MB for the kernel image and that needs to be
      increased.
      
      Note that neither this patch nor the SILO bits will help with network
      booting.  The openfirmware code will only map up to a certain amount
      of kernel image during a network boot and there isn't much we can to
      about that other than to implemented a layered network booting
      facility.  Solaris has this, and calls it "wanboot" and we may
      implement something similar at some point.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      64658743
  5. 19 3月, 2008 1 次提交
  6. 04 3月, 2008 3 次提交
  7. 29 2月, 2008 3 次提交
  8. 27 2月, 2008 1 次提交
    • D
      [SPARC64]: Loosen checks in exception table handling. · 622eaec6
      David S. Miller 提交于
      Some parts of the kernel now do things like do *_user() accesses while
      set_fs(KERNEL_DS) that fault on purpose.
      
      See, for example, the code added by changeset
      a0c1e907 ("futex: runtime enable pi
      and robust functionality").
      
      That trips up the ASI sanity checking we make in do_kernel_fault().
      
      Just remove it for now.  Maybe we can add it back later with an added
      conditional which looks at the current get_fs() value.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      622eaec6
  9. 25 2月, 2008 11 次提交
  10. 24 2月, 2008 15 次提交