1. 04 2月, 2019 1 次提交
  2. 03 2月, 2019 2 次提交
  3. 01 2月, 2019 1 次提交
  4. 31 1月, 2019 6 次提交
    • J
      powerpc/livepatch: return -ERRNO values in save_stack_trace_tsk_reliable() · 3de27dcf
      Joe Lawrence 提交于
      To match its x86 counterpart, save_stack_trace_tsk_reliable() should
      return -EINVAL in cases that it is currently returning 1.  No caller is
      currently differentiating non-zero error codes, but let's keep the
      arch-specific implementations consistent.
      Signed-off-by: NJoe Lawrence <joe.lawrence@redhat.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      3de27dcf
    • J
      powerpc/livepatch: small cleanups in save_stack_trace_tsk_reliable() · 29a77bbb
      Joe Lawrence 提交于
      Mostly cosmetic changes:
      
      - Group common stack pointer code at the top
      - Simplify the first frame logic
      - Code stackframe iteration into for...loop construct
      - Check for trace->nr_entries overflow before adding any into the array
      Suggested-by: NNicolai Stange <nstange@suse.de>
      Signed-off-by: NJoe Lawrence <joe.lawrence@redhat.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      29a77bbb
    • J
      powerpc/livepatch: relax reliable stack tracer checks for first-frame · 18be3760
      Joe Lawrence 提交于
      The bottom-most stack frame (the first to be unwound) may be largely
      uninitialized, for the "Power Architecture 64-Bit ELF V2 ABI" only
      requires its backchain pointer to be set.
      
      The reliable stack tracer should be careful when verifying this frame:
      skip checks on STACK_FRAME_LR_SAVE and STACK_FRAME_MARKER offsets that
      may contain uninitialized residual data.
      
      Fixes: df78d3f6 ("powerpc/livepatch: Implement reliable stack tracing for the consistency model")
      Signed-off-by: NJoe Lawrence <joe.lawrence@redhat.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      18be3760
    • N
      powerpc/64s: Make reliable stacktrace dependency clearer · a50d3250
      Nicolai Stange 提交于
      Make the HAVE_RELIABLE_STACKTRACE Kconfig option depend on
      PPC_BOOK3S_64 for documentation purposes. Before this patch, it
      depended on PPC64 && CPU_LITTLE_ENDIAN and because CPU_LITTLE_ENDIAN
      implies PPC_BOOK3S_64, there's no functional change here.
      Signed-off-by: NNicolai Stange <nstange@suse.de>
      Signed-off-by: NJoe Lawrence <joe.lawrence@redhat.com>
      [mpe: Split out of larger patch]
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      a50d3250
    • N
      powerpc/64s: Clear on-stack exception marker upon exception return · eddd0b33
      Nicolai Stange 提交于
      The ppc64 specific implementation of the reliable stacktracer,
      save_stack_trace_tsk_reliable(), bails out and reports an "unreliable
      trace" whenever it finds an exception frame on the stack. Stack frames
      are classified as exception frames if the STACK_FRAME_REGS_MARKER
      magic, as written by exception prologues, is found at a particular
      location.
      
      However, as observed by Joe Lawrence, it is possible in practice that
      non-exception stack frames can alias with prior exception frames and
      thus, that the reliable stacktracer can find a stale
      STACK_FRAME_REGS_MARKER on the stack. It in turn falsely reports an
      unreliable stacktrace and blocks any live patching transition to
      finish. Said condition lasts until the stack frame is
      overwritten/initialized by function call or other means.
      
      In principle, we could mitigate this by making the exception frame
      classification condition in save_stack_trace_tsk_reliable() stronger:
      in addition to testing for STACK_FRAME_REGS_MARKER, we could also take
      into account that for all exceptions executing on the kernel stack
        - their stack frames's backlink pointers always match what is saved
          in their pt_regs instance's ->gpr[1] slot and that
        - their exception frame size equals STACK_INT_FRAME_SIZE, a value
          uncommonly large for non-exception frames.
      
      However, while these are currently true, relying on them would make
      the reliable stacktrace implementation more sensitive towards future
      changes in the exception entry code. Note that false negatives, i.e.
      not detecting exception frames, would silently break the live patching
      consistency model.
      
      Furthermore, certain other places (diagnostic stacktraces, perf, xmon)
      rely on STACK_FRAME_REGS_MARKER as well.
      
      Make the exception exit code clear the on-stack
      STACK_FRAME_REGS_MARKER for those exceptions running on the "normal"
      kernel stack and returning to kernelspace: because the topmost frame
      is ignored by the reliable stack tracer anyway, returns to userspace
      don't need to take care of clearing the marker.
      
      Furthermore, as I don't have the ability to test this on Book 3E or 32
      bits, limit the change to Book 3S and 64 bits.
      
      Fixes: df78d3f6 ("powerpc/livepatch: Implement reliable stack tracing for the consistency model")
      Reported-by: NJoe Lawrence <joe.lawrence@redhat.com>
      Signed-off-by: NNicolai Stange <nstange@suse.de>
      Signed-off-by: NJoe Lawrence <joe.lawrence@redhat.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      eddd0b33
    • M
      powerpc/perf: Add mem access events to sysfs · ab4510e9
      Madhavan Srinivasan 提交于
      Add mem-loads/mem-stores events to sysfs.
      The event is formed based on raw event encoding.
      Primary PMU event used here is PM_MRK_INST_CMPL
      along with MMCRA[SM] modes and Thresholding bit
      Signed-off-by: NMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Signed-off-by: NMichael Ellerman <mpe@ellerman.id.au>
      ab4510e9
  5. 30 1月, 2019 6 次提交
  6. 15 1月, 2019 11 次提交
  7. 14 1月, 2019 11 次提交
  8. 08 1月, 2019 1 次提交
  9. 06 1月, 2019 1 次提交