lkml.org 
[lkml]   [2004]   [Aug]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [patch] voluntary-preempt-2.6.8.1-P2
    From
    Date
    Ingo Molnar wrote :
    > here's -P2:
    >
    > http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.8.1-P2
    >
    > Changes since -P1:
    >
    > - trace interrupted kernel code (via hardirqs, NMIs and pagefaults)
    >
    > - yet another shot at trying to fix the IO-APIC/USB issues.
    >
    > - mcount speedups - tracing should be faster
    >
    > Ingo

    I think I stumbled across some bugs/false positives.
    Those tests were run with acpi=off, so that this specific issue doesn't
    interfere. voluntary_preemption is set to 3 throughout.

    The first problem was already reported by Lee Revell. Creating a new tab
    in gnome-terminal gives :

    [...]
    0.064ms (+0.000ms): preempt_schedule (try_to_wake_up)
    0.065ms (+0.000ms): preempt_schedule (copy_page_range)
    0.065ms (+0.000ms): preempt_schedule (copy_page_range)
    [... plenty of preempt_schedule (copy_page_range) skipped ...]
    0.202ms (+0.000ms): preempt_schedule (copy_page_range)
    0.202ms (+0.000ms): preempt_schedule (copy_page_range)
    0.202ms (+0.000ms): check_preempt_timing (touch_preempt_timing)

    This is induced by kernel_preemption=0 and disappears with
    kernel_preemption=1. It seems to be a side-effect of the current design.
    Is there a way to avoid this ?

    The second one still involves creating a new tab in gnome-terminal, but
    with kernel_preemption=1 :

    preemption latency trace v1.0
    -----------------------------
    latency: 130 us, entries: 6 (6)
    process: gnome-terminal/14381, uid: 1000
    nice: 0, policy: 0, rt_priority: 0
    =======>
    0.000ms (+0.000ms): __vma_link_rb (copy_mm)
    0.000ms (+0.000ms): rb_insert_color (copy_mm)
    0.000ms (+0.000ms): __rb_rotate_left (rb_insert_color)
    0.000ms (+0.000ms): copy_page_range (copy_mm)
    0.000ms (+0.000ms): pte_alloc_map (copy_page_range)
    0.127ms (+0.126ms): check_preempt_timing (touch_preempt_timing)

    When entering check_preempt_timing, preempt_thresh was 0, and
    preempt_max_latency had been freshly reset to 100. It should have
    triggered this code :
    if (latency < preempt_max_latency)
    goto out;
    but for some reason it didn't (or there is a problem in the tracing
    code, not showing events that would have increased 'latency').

    Thomas


    -
    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: 2005-03-22 14:05    [W:0.022 / U:63.608 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site