[lkml]   [2004]   [Nov]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[patch] Real-Time Preemption, -RT-2.6.10-rc1-mm3-V0.7.23

    i have released the -V0.7.23 Real-Time Preemption patch, which can be
    downloaded from the usual place:

    this release includes fixes, development/debugging improvements and
    latency improvements and other speedups.

    the biggest change is the reworked timing/tracing framework. Wakeup
    timing became a compile-time thing and can be selected independently of
    the preemption mode - i.e. it can now be used on near-vanilla !PREEMPT
    kernels too, providing good wakeup-latency comparison of the various
    preemption models.

    irqs-off and preempt-off critical section timing/tracing can be selected
    if wakeup timing is disabled, the two options can be selected separately
    or together as well.

    another improvement is that wakeup-timing now works correctly on SMP too
    - the tracer 'follows' the highest-priority task in the system as it
    gets bounced between CPUs and always traces the CPU where the task is

    other changes since -V0.7.22:

    - semaphore livelock fix: feedback from Mark H. Johnson pinpointed a
    bug in the down_trylock() semaphore code: if preempted in the wrong
    moment a lower-prio task could cause a higher-prio task to livelock
    indefinitely. This fix could solve the 'keventd looping' problem
    reported by Mark.

    the fix is to make the down_trylock() code a bit simpler, but this
    also introduces the potential for down_trylock() to get 'spurious'
    locking-rejects. Hopefully this wont be a big problem - we dont
    really guarantee that down_trylock() succeeds - but code using higher
    semaphore counts to track resources could be negatively impacted by
    this. We'll see.

    - console assert fix: implemented a different type of fbcon
    RT-preemption handling variant, this could solve the assert reported
    by Amit Shah.

    - debugging improvement: implemented a sequence counter for max latency
    traces. This has the advantage of solving the 'slow console on SMP
    problem': the latency-timing code used to get confused by another CPU
    printing a timing message to a slow console and thus delaying that
    other CPU. Now any latency that gets generated while a maximum is
    printed is skipped.

    - further shrunk the non-debug size of struct rt_mutex by moving the
    save_state logic into the debug paths - size is now 4 machine-words.

    - fixed CONFIG_HIGHMEM latencies: all atomic-kmap APIs are now wrapped
    seemlessly and in a preemptible way.

    - implemented an IO-APIC register cache to speed up the IRQ-redirection
    latency hotpath. Also, made the POST flush a bit faster.

    - disable KGDB if PREEMPT_RT - it's broken for now.

    - move some runtime checks to under DEBUG_PREEMPT - this speeds up

    to create a -V0.7.23 tree from scratch, the patching order is:

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 14:07    [W:0.023 / U:108.424 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site