1. 12 3月, 2016 1 次提交
  2. 02 3月, 2016 1 次提交
  3. 01 12月, 2015 1 次提交
  4. 15 10月, 2014 2 次提交
    • A
      powerpc: Rename __get_SP() to current_stack_pointer() · acf620ec
      Anton Blanchard 提交于
      Michael points out that __get_SP() is a pretty horrible
      function name. Let's give it a better name.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      acf620ec
    • A
      powerpc: Reimplement __get_SP() as a function not a define · bfe9a2cf
      Anton Blanchard 提交于
      Li Zhong points out an issue with our current __get_SP()
      implementation. If ftrace function tracing is enabled (ie -pg
      profiling using _mcount) we spill a stack frame on 64bit all the
      time.
      
      If a function calls __get_SP() and later calls a function that is
      tail call optimised, we will pop the stack frame and the value
      returned by __get_SP() is no longer valid. An example from Li can
      be found in save_stack_trace -> save_context_stack:
      
      c0000000000432c0 <.save_stack_trace>:
      c0000000000432c0:       mflr    r0
      c0000000000432c4:       std     r0,16(r1)
      c0000000000432c8:       stdu    r1,-128(r1) <-- stack frame for _mcount
      c0000000000432cc:       std     r3,112(r1)
      c0000000000432d0:       bl      <._mcount>
      c0000000000432d4:       nop
      
      c0000000000432d8:       mr      r4,r1 <-- __get_SP()
      
      c0000000000432dc:       ld      r5,632(r13)
      c0000000000432e0:       ld      r3,112(r1)
      c0000000000432e4:       li      r6,1
      
      c0000000000432e8:       addi    r1,r1,128 <-- pop stack frame
      
      c0000000000432ec:       ld      r0,16(r1)
      c0000000000432f0:       mtlr    r0
      c0000000000432f4:       b       <.save_context_stack> <-- tail call optimized
      
      save_context_stack ends up with a stack pointer below the current
      one, and it is likely to be scribbled over.
      
      Fix this by making __get_SP() a function which returns the
      callers stack frame. Also replace inline assembly which grabs
      the stack pointer in save_stack_trace and show_stack with
      __get_SP().
      
      This also fixes an issue with perf_arch_fetch_caller_regs().
      It currently unwinds the stack once, which will skip a
      valid stack frame on a leaf function. With the __get_SP() fixes
      in this patch, we never need to unwind the stack frame to get
      to the first interesting frame.
      
      We have to export __get_SP() because perf_arch_fetch_caller_regs()
      (which is used in modules) calls it from a header file.
      Reported-by: NLi Zhong <zhong@linux.vnet.ibm.com>
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      bfe9a2cf
  5. 25 9月, 2014 6 次提交
  6. 30 4月, 2014 1 次提交
    • P
      powerpc: memcpy optimization for 64bit LE · 00f554fa
      Philippe Bergheaud 提交于
      Unaligned stores take alignment exceptions on POWER7 running in little-endian.
      This is a dumb little-endian base memcpy that prevents unaligned stores.
      Once booted the feature fixup code switches over to the VMX copy loops
      (which are already endian safe).
      
      The question is what we do before that switch over. The base 64bit
      memcpy takes alignment exceptions on POWER7 so we can't use it as is.
      Fixing the causes of alignment exception would slow it down, because
      we'd need to ensure all loads and stores are aligned either through
      rotate tricks or bytewise loads and stores. Either would be bad for
      all other 64bit platforms.
      
      [ I simplified the loop a bit - Anton ]
      Signed-off-by: NPhilippe Bergheaud <felix@linux.vnet.ibm.com>
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      00f554fa
  7. 28 4月, 2014 1 次提交
  8. 11 10月, 2013 4 次提交
  9. 14 8月, 2013 2 次提交
  10. 14 5月, 2013 1 次提交
  11. 06 10月, 2012 1 次提交
  12. 01 10月, 2012 1 次提交
  13. 28 5月, 2012 1 次提交
  14. 06 5月, 2012 1 次提交
  15. 29 3月, 2012 1 次提交
  16. 01 11月, 2011 1 次提交
  17. 27 7月, 2011 1 次提交
  18. 19 5月, 2011 1 次提交
  19. 29 11月, 2010 1 次提交
  20. 01 8月, 2010 1 次提交
  21. 31 5月, 2010 1 次提交
  22. 17 5月, 2010 3 次提交
  23. 25 4月, 2010 1 次提交
    • A
      KVM: PPC: Add helpers to call FPU instructions · 963cf3dc
      Alexander Graf 提交于
      To emulate paired single instructions, we need to be able to call FPU
      operations from within the kernel. Since we don't want gcc to spill
      arbitrary FPU code everywhere, we tell it to use a soft fpu.
      
      Since we know we can really call the FPU in safe areas, let's also add
      some calls that we can later use to actually execute real world FPU
      operations on the host's FPU.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      963cf3dc
  24. 01 3月, 2010 1 次提交
  25. 24 11月, 2009 1 次提交
  26. 30 10月, 2009 1 次提交
  27. 08 1月, 2009 1 次提交
  28. 21 12月, 2008 1 次提交