1. 17 7月, 2008 1 次提交
    • I
      ftrace: fix merge buglet · 8e9509c8
      Ingo Molnar 提交于
      -tip testing found a bootup hang here:
      
        initcall anon_inode_init+0x0/0x130 returned 0 after 0 msecs
        calling  acpi_event_init+0x0/0x57
      
      the bootup should have continued with:
      
        initcall acpi_event_init+0x0/0x57 returned 0 after 45 msecs
      
      but it hung hard there instead.
      
      bisection led to this commit:
      
      | commit 5806b81a
      | Merge: d14c8a68... 6712e299...
      | Author: Ingo Molnar <mingo@elte.hu>
      | Date:   Mon Jul 14 16:11:52 2008 +0200
      |     Merge branch 'auto-ftrace-next' into tracing/for-linus
      
      turns out that i made this mistake in the merge:
      
        ifdef CONFIG_FTRACE
        # Do not profile debug utilities
        CFLAGS_REMOVE_tsc_64.o = -pg
        CFLAGS_REMOVE_tsc_32.o = -pg
      
      those two files got unified meanwhile - so the dont-profile annotation
      got lost. The proper rule is:
      
        CFLAGS_REMOVE_tsc.o = -pg
      
      i guess this could have been caught sooner if the CFLAGS_REMOVE* kbuild
      rule aborted the build if it met a target that does not exist anymore?
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      8e9509c8
  2. 11 7月, 2008 4 次提交
  3. 09 7月, 2008 2 次提交
  4. 08 7月, 2008 7 次提交
  5. 27 6月, 2008 2 次提交
  6. 25 6月, 2008 1 次提交
  7. 05 6月, 2008 1 次提交
  8. 04 6月, 2008 1 次提交
  9. 26 5月, 2008 1 次提交
  10. 25 5月, 2008 1 次提交
  11. 24 5月, 2008 8 次提交
    • T
      x86: rename the i8259_32/64.c leftovers to irqinit_32/64.c · ec42418f
      Thomas Gleixner 提交于
      The leftovers of the i8259 unification have nothing to do with i8259
      at all. They contain interrupt init code and the i8259_xx name is just
      misleading now.
      
      Rename them to irqinit_32/64.c
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      ec42418f
    • P
      x86: automatical unification of i8259.c · 21fd5132
      Pavel Machek 提交于
      Make conversion of i8259 very mechanical -- i8259 was generated by
       diff -D, with too different parts left in i8259_32 and
      i8259_64.c. Only "by hand" changes were removal of #ifdef from middle
      of the comment (prevented compilation) and removal of one static to
      allow splitting into files.
      
      Of course, it will need some cleanups now, and those will follow.
      Signed-of-by: NPavel Machek <pavel@suse.cz>
      21fd5132
    • T
      x86: rename the i8259_32/64.c leftovers to initirq_32/64.c · f20b11e7
      Thomas Gleixner 提交于
      The leftovers of the i8259 unification have nothing to do with i8259
      at all. They contain interrupt init code and the i8259_xx name is just
      misleading now.
      
      Rename them to initirq_32/64.c
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      f20b11e7
    • P
      x86: automatical unification of i8259.c · 40bd2174
      Pavel Machek 提交于
      Make conversion of i8259 very mechanical -- i8259 was generated by
      40bd2174
    • P
      x86 mmiotrace: move files into arch/x86/mm/. · ff3a3e9b
      Pekka Paalanen 提交于
      Signed-off-by: NPekka Paalanen <pq@iki.fi>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      ff3a3e9b
    • P
      x86: mmiotrace - trace memory mapped IO · 8b7d89d0
      Pekka Paalanen 提交于
      Mmiotrace is a tool for trapping memory mapped IO (MMIO) accesses within
      the kernel. It is used for debugging and especially for reverse
      engineering evil binary drivers.
      
      Mmiotrace works by wrapping the ioremap family of kernel functions and
      marking the returned pages as not present. Access to the IO memory
      triggers a page fault, which will be handled by mmiotrace's custom page
      fault handler. This will single-step the faulted instruction with the
      MMIO page marked as present. Access logs are directed to user space via
      relay and debug_fs.
      
      This page fault approach is necessary, because binary drivers have
      readl/writel etc. calls inlined and therefore extremely difficult to
      trap with with e.g. kprobes.
      
      This patch depends on the custom page fault handlers patch.
      Signed-off-by: NPekka Paalanen <pq@iki.fi>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      8b7d89d0
    • S
      ftrace: use the new kbuild CFLAGS_REMOVE for x86/kernel directory · 7fa09f24
      Steven Rostedt 提交于
      This patch removes the Makefile turd and uses the nice CFLAGS_REMOVE macro
      in the x86/kernel directory.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      7fa09f24
    • S
      ftrace: dynamic enabling/disabling of function calls · 3d083395
      Steven Rostedt 提交于
      This patch adds a feature to dynamically replace the ftrace code
      with the jmps to allow a kernel with ftrace configured to run
      as fast as it can without it configured.
      
      The way this works, is on bootup (if ftrace is enabled), a ftrace
      function is registered to record the instruction pointer of all
      places that call the function.
      
      Later, if there's still any code to patch, a kthread is awoken
      (rate limited to at most once a second) that performs a stop_machine,
      and replaces all the code that was called with a jmp over the call
      to ftrace. It only replaces what was found the previous time. Typically
      the system reaches equilibrium quickly after bootup and there's no code
      patching needed at all.
      
      e.g.
      
        call ftrace  /* 5 bytes */
      
      is replaced with
      
        jmp 3f  /* jmp is 2 bytes and we jump 3 forward */
      3:
      
      When we want to enable ftrace for function tracing, the IP recording
      is removed, and stop_machine is called again to replace all the locations
      of that were recorded back to the call of ftrace.  When it is disabled,
      we replace the code back to the jmp.
      
      Allocation is done by the kthread. If the ftrace recording function is
      called, and we don't have any record slots available, then we simply
      skip that call. Once a second a new page (if needed) is allocated for
      recording new ftrace function calls.  A large batch is allocated at
      boot up to get most of the calls there.
      
      Because we do this via stop_machine, we don't have to worry about another
      CPU executing a ftrace call as we modify it. But we do need to worry
      about NMI's so all functions that might be called via nmi must be
      annotated with notrace_nmi. When this code is configured in, the NMI code
      will not call notrace.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      3d083395
  12. 07 5月, 2008 1 次提交
  13. 01 5月, 2008 1 次提交
  14. 29 4月, 2008 1 次提交
  15. 27 4月, 2008 3 次提交
  16. 20 4月, 2008 5 次提交