1. 28 10月, 2009 2 次提交
    • A
      powerpc: tracing: Add powerpc tracepoints for timer entry and exit · 6795b85c
      Anton Blanchard 提交于
      We can monitor the effectiveness of our power management of both the
      kernel and hypervisor by probing the timer interrupt. For example, on
      this box we see 10.37s timer interrupts on an idle core:
      
      <idle>-0     [010]  3900.671297: timer_interrupt_entry: pt_regs=c0000000ce1e7b10
      <idle>-0     [010]  3900.671302: timer_interrupt_exit: pt_regs=c0000000ce1e7b10
      
      <idle>-0     [010]  3911.042963: timer_interrupt_entry: pt_regs=c0000000ce1e7b10
      <idle>-0     [010]  3911.042968: timer_interrupt_exit: pt_regs=c0000000ce1e7b10
      
      <idle>-0     [010]  3921.414630: timer_interrupt_entry: pt_regs=c0000000ce1e7b10
      <idle>-0     [010]  3921.414635: timer_interrupt_exit: pt_regs=c0000000ce1e7b10
      
      Since we have a 207MHz decrementer it will go negative and fire every 10.37s
      even if Linux is completely idle.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      6795b85c
    • A
      powerpc: tracing: Add powerpc tracepoints for interrupt entry and exit · 1bf4af16
      Anton Blanchard 提交于
      This adds powerpc-specific tracepoints for interrupt entry and exit.
      
      While we already have generic irq_handler_entry and irq_handler_exit
      tracepoints there are cases on our virtualised powerpc machines where an
      interrupt is presented to the OS, but subsequently handled by the hypervisor.
      This means no OS interrupt handler is invoked.
      
      Here is an example on a POWER6 machine with the patch below applied:
      
      <idle>-0     [006]  3243.949840744: irq_entry: pt_regs=c0000000ce31fb10
      <idle>-0     [006]  3243.949850520: irq_exit: pt_regs=c0000000ce31fb10
      
      <idle>-0     [007]  3243.950218208: irq_entry: pt_regs=c0000000ce323b10
      <idle>-0     [007]  3243.950224080: irq_exit: pt_regs=c0000000ce323b10
      
      <idle>-0     [000]  3244.021879320: irq_entry: pt_regs=c000000000a63aa0
      <idle>-0     [000]  3244.021883616: irq_handler_entry: irq=87 handler=eth0
      <idle>-0     [000]  3244.021887328: irq_handler_exit: irq=87 return=handled
      <idle>-0     [000]  3244.021897408: irq_exit: pt_regs=c000000000a63aa0
      
      Here we see two phantom interrupts (no handler was invoked), followed
      by a real interrupt for eth0. Without the tracepoints in this patch we
      would have missed the phantom interrupts.
      Signed-off-by: NAnton Blanchard <anton@samba.org>
      Acked-by: NSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1bf4af16