08 Sep, 2005

1 commit

  • This patch fixes a race condition where in system used to hang or sometime
    crash within minutes when kprobes are inserted on ISR routine and a task
    routine.

    The fix has been stress tested on i386, ia64, pp64 and on x86_64. To
    reproduce the problem insert kprobes on schedule() and do_IRQ() functions
    and you should see hang or system crash.

    Signed-off-by: Anil S Keshavamurthy
    Signed-off-by: Ananth N Mavinakayanahalli
    Acked-by: Prasanna S Panchamukhi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Keshavamurthy Anil S
     

28 Jun, 2005

2 commits

  • The following is a patch provided by Ananth Mavinakayanahalli that implements
    the new PPC64 specific parts of the new function return probe design.

    NOTE: Since getting Ananth's patch, I changed trampoline_probe_handler()
    to consume each of the outstanding return probem instances (feedback
    on my original RFC after Ananth cut a patch), and also added the
    arch_init() function (adding arch specific initialization.) I have
    cross compiled but have not testing this on a PPC64 machine.

    Changes include:
    * Addition of kretprobe_trampoline to act as a dummy function for instrumented
    functions to return to, and for the return probe infrastructure to place
    a kprobe on on, gaining control so that the return probe handler
    can be called, and so that the instruction pointer can be moved back
    to the original return address.
    * Addition of arch_init(), allowing a kprobe to be registered on
    kretprobe_trampoline
    * Addition of trampoline_probe_handler() which is used as the pre_handler
    for the kprobe inserted on kretprobe_implementation. This is the function
    that handles the details for calling the return probe handler function
    and returning control back at the original return address
    * Addition of arch_prepare_kretprobe() which is setup as the pre_handler
    for a kprobe registered at the beginning of the target function by
    kernel/kprobes.c so that a return probe instance can be setup when
    a caller enters the target function. (A return probe instance contains
    all the needed information for trampoline_probe_handler to do it's job.)
    * Hooks added to the exit path of a task so that we can cleanup any left-over
    return probe instances (i.e. if a task dies while inside a targeted function
    then the return probe instance was reserved at the beginning of the function
    but the function never returns so we need to mark the instance as unused.)

    Signed-off-by: Rusty Lynch
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rusty Lynch
     
  • Now that PPC64 has no-execute support, here is a second try to fix the
    single step out of line during kprobe execution. Kprobes on x86_64 already
    solved this problem by allocating an executable page and using it as the
    scratch area for stepping out of line. Reuse that.

    Signed-off-by: Ananth N Mavinakayanahalli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ananth N Mavinakayanahalli
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds