Re: [patch] voluntary-preempt-2.6.8.1-P6

Lee Revell
2004-08-21T03:44:27Z

On Fri, 2004-08-20 at 15:55, Ingo Molnar wrote:
> i've uploaded the -P6 patch:
>
> http://redhat.com/~mingo/voluntary-preempt/voluntary-preempt-2.6.8.1-P6
>

Here's a 171 usec latency from ext3_free_blocks:

preemption latency trace v1.0.1
-------------------------------
latency: 171 us, entries: 2 (2)
-----------------
| task: evolution/863, uid:1000 nice:0 policy:0 rt_prio:0
-----------------
=> started at: ext3_free_blocks+0x1d0/0x4b0
=> ended at: ext3_free_blocks+0x229/0x4b0
=======>
00000001 0.000ms (+0.000ms): ext3_free_blocks (ext3_free_data)
00000001 0.167ms (+0.167ms): sub_preempt_count (ext3_free_blocks)

Also I have noticed a pattern with the XFree86 schedule() latencies,
they all have a section like this:

04000002 0.003ms (+0.000ms): effective_prio (recalc_task_prio)
04000002 0.003ms (+0.000ms): enqueue_task (schedule)
00000002 0.006ms (+0.003ms): __switch_to (schedule)
00000002 0.088ms (+0.082ms): finish_task_switch (schedule)
00010002 0.090ms (+0.001ms): do_IRQ (finish_task_switch)
00010003 0.091ms (+0.000ms): mask_and_ack_8259A (do_IRQ)

04000002 0.002ms (+0.000ms): effective_prio (recalc_task_prio)
04000002 0.002ms (+0.000ms): enqueue_task (schedule)
00000002 0.005ms (+0.002ms): __switch_to (schedule)
00000002 0.067ms (+0.062ms): finish_task_switch (schedule)
00010002 0.068ms (+0.001ms): do_IRQ (finish_task_switch)
00010003 0.069ms (+0.000ms): mask_and_ack_8259A (do_IRQ)

I presume the 04000002 -> 00000002 is some interrupt being unmasked (or
interrupts being globally enabled), then there's a 60-80 usec latency in
schedule().

Lee