lkml.org 
[lkml]   [2007]   [May]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 9/9] Scheduler profiling - Use conditional calls
    Use conditional calls with lower d-cache hit in optimized version as a
    condition for scheduler profiling call.

    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

    ---
    kernel/profile.c | 4 ++++
    kernel/sched.c | 4 +++-
    2 files changed, 7 insertions(+), 1 deletion(-)

    Index: linux-2.6-lttng/kernel/profile.c
    ===================================================================
    --- linux-2.6-lttng.orig/kernel/profile.c 2007-05-30 08:42:29.000000000 -0400
    +++ linux-2.6-lttng/kernel/profile.c 2007-05-30 08:45:22.000000000 -0400
    @@ -23,6 +23,7 @@
    #include <linux/profile.h>
    #include <linux/highmem.h>
    #include <linux/mutex.h>
    +#include <linux/condcall.h>
    #include <asm/sections.h>
    #include <asm/semaphore.h>
    #include <asm/irq_regs.h>
    @@ -92,6 +93,8 @@
    printk(KERN_INFO "kernel profiling enabled (shift: %ld)\n",
    prof_shift);
    }
    + if (prof_on)
    + BUG_ON(cond_call_arm("profile_on"));
    return 1;
    }
    __setup("profile=", profile_setup);
    @@ -556,6 +559,7 @@
    return 0;
    out_cleanup:
    prof_on = 0;
    + cond_call_disarm("profile_on");
    smp_mb();
    on_each_cpu(profile_nop, NULL, 0, 1);
    for_each_online_cpu(cpu) {
    Index: linux-2.6-lttng/kernel/sched.c
    ===================================================================
    --- linux-2.6-lttng.orig/kernel/sched.c 2007-05-30 08:43:02.000000000 -0400
    +++ linux-2.6-lttng/kernel/sched.c 2007-05-30 08:45:22.000000000 -0400
    @@ -59,6 +59,7 @@
    #include <linux/kprobes.h>
    #include <linux/delayacct.h>
    #include <linux/reciprocal_div.h>
    +#include <linux/condcall.h>

    #include <asm/tlb.h>
    #include <asm/unistd.h>
    @@ -2990,7 +2991,8 @@
    print_irqtrace_events(prev);
    dump_stack();
    }
    - profile_hit(SCHED_PROFILING, __builtin_return_address(0));
    + cond_call(profile_on,
    + profile_hit(SCHED_PROFILING, __builtin_return_address(0)));

    /*
    * The idle thread is not allowed to schedule!
    --
    Mathieu Desnoyers
    Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal
    OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-05-30 16:09    [W:0.056 / U:30.776 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site