Hi folks, On Thu, Jan 17, 2008 at 11:13:26AM +0100, Wolfgang Grandegger wrote: > It builds and runs fine on my Icecube-MPC5200 board, now also with the > latency tracer enabled. That's great. Still, "cyclictest -n -p80 -i1000" > reports latencies up to 400 us and therefore I tried to trigger and save > a high latency trace using: > > # ./cyclictest -n -p80 -i1000 -b400 > 1.21 0.33 0.11 4/42 1048 > > T: 0 ( 914) P:80 I:1000 C: 38726 Min: 61 Act: 107 Avg: 106 > Max: 377 > [ 91.042169] ( cyclictest-914 |#0): new 39733427 us user-latency. > bash-3.00# cat /proc/latency_trace > trace.log > I was doing some tests on my mpc5200b Board to reproduce the high latency as measured by wolfgang. I ran some tests with while [ 1 ]; do ls /bin;done as non-rt workload, as in Wolfgangs Scenario. Now I also got some strange values. My latency lies at round about 100 and the max. latency keep pending normally at about 150us-200us. However the max. value will occasionally break out to very high values. I got a max. about 850us after some rounds of measurement, which is definitively too high for the processor. I made some traces and attached the last "interesting" path to this mail. trace_600_1.log and trace_600_2.log are both taken with -b600. For comparation I also added a "normal" trace taken with -b150. In the traces with abnormal long latency there're a big "hole" between the last call, which is clockevents_program_event() in both long traces and the actual schedule() call. The holes are both about 600 us long, which is the main part of the latency actually. Two important things I also noted during my tests: 1. I got the unusual latencies on a system booted with nfsrootfs. I ran the same test scenario on system booted from flash and got no extraordinory results. After serveral hours test my max. latency lies at round about 200us. 2. Even on a nfsrootfs system I could not get the high latencies if I run hackbench as non-rt workload. Hence I suppose the unusual results are caused by network/Filesystemaccess. However I have no idea what could be the reason for the "hole"s in the trace. Looks almost like the cpu is doing nothing. As I don't have a trace on other architecture at hand at the moment. I can't say for 100 procent if the tracer is "missing" anything. Any comments, ideas? cheers Luotao Fu -- Dipl.-Ing. Luotao Fu | Phone: +49-5121-206917-3 Pengutronix - Linux Solutions for Science and Industry Entwicklungszentrum Nord http://www.pengutronix.de
cyclicte-16669 0D..2 2203085us+: __schedule+0x1f4/0x40c <IRQ-131-151> (150 180) cyclicte-16669 0D..1 2203115us+: enqueue_hrtimer+0x48/0x194 ( 394 1ca956ec c3a11e98) cyclicte-16669 0D..2 2203129us+: deactivate_task+0x58/0x9c <cyclicte-16669> (180 5) IRQ-131-151 0D..2 2203135us+: __schedule+0x1f4/0x40c <cyclicte-16669> (180 150) IRQ-131-151 0D..3 2203160us+: task_setprio+0xc0/0x258 <cyclicte-16668> (0 150) IRQ-131-151 0D..3 2203164us+: task_setprio+0x13c/0x258 ( 0 0 0) IRQ-131-151 0D.h1 2203173us+: hrtimer_interrupt+0xa8/0x2d0 ( 394 1c9cb6c7 0) IRQ-131-151 0D.h2 2203176us+: hrtimer_interrupt+0x128/0x2d0 ( 394 1c9c3800 c02d6788) IRQ-131-151 0D.h2 2203199us+: activate_task+0x58/0x9c <softirq--5> (150 4) IRQ-131-151 0D.h2 2203217us+: activate_task+0x58/0x9c <softirq--12> (150 5) IRQ-131-151 0D.h2 2203224us+: enqueue_hrtimer+0x48/0x194 ( 394 1d34ce80 c02d6788) IRQ-131-151 0D.h1 2203231us+: clockevents_program_event+0x7c/0x1d0 ( 394 1ca956ec bc1d7) IRQ-131-151 0D..2 2203250us+: deactivate_task+0x58/0x9c <IRQ-131-151> (150 6) cyclicte-16668 0D..2 2203259us+: __schedule+0x1f4/0x40c <IRQ-131-151> (150 150) cyclicte-16668 0D..2 2203272us+: activate_task+0x58/0x9c <IRQ-131-151> (150 5) cyclicte-16668 0D..2 2203282us+: task_setprio+0x184/0x258 <cyclicte-16668> (150 0) cyclicte-16668 0DN.2 2203291us+: task_setprio+0x13c/0x258 ( 0 1 0) softirq--5 0D..2 2203306us+: __schedule+0x1f4/0x40c <cyclicte-16668> (0 150) softirq--5 0D..2 2203340us+: deactivate_task+0x58/0x9c <softirq--5> (150 6) softirq--12 0D..2 2203346us+: __schedule+0x1f4/0x40c <softirq--5> (150 150) softirq--12 0D..2 2203361us+: deactivate_task+0x58/0x9c <softirq--12> (150 5) IRQ-131-151 0D..2 2203367us+: __schedule+0x1f4/0x40c <softirq--12> (150 150) IRQ-131-151 0D..1 2203401us+: activate_task+0x58/0x9c <softirq--9> (150 4) IRQ-131-151 0D..2 2203428us+: deactivate_task+0x58/0x9c <IRQ-131-151> (150 5) softirq--9 0D..2 2203435us+: __schedule+0x1f4/0x40c <IRQ-131-151> (150 150) softirq--9 0D..2 2203454us+: deactivate_task+0x58/0x9c <softirq--9> (150 4) cyclicte-16668 0D..2 2203465us+: __schedule+0x1f4/0x40c <softirq--9> (150 0) cyclicte-16668 0D.h2 2203491us+: activate_task+0x58/0x9c <IRQ-131-151> (150 3) cyclicte-16668 0D.h2 2203494us+: __trace_start_sched_wakeup+0x14c/0x184 <IRQ-131-151> (49 -1) cyclicte-16668 0DNh2 2203500us+: __trace_start_sched_wakeup+0x14c/0x184 <IRQ-131-151> (49 -1) cyclicte-16668 0DNh2 2203501us+: try_to_wake_up+0x184/0x1a4 <IRQ-131-151> (150 0) IRQ-131-151 0D..2 2203519us+: __schedule+0x1f4/0x40c <cyclicte-16668> (0 150) IRQ-131-151 0D..3 2203539us+: task_setprio+0xc0/0x258 <cyclicte-16668> (0 150) IRQ-131-151 0D..3 2203544us+: task_setprio+0x13c/0x258 ( 0 0 0) IRQ-131-151 0D..2 2203554us+: deactivate_task+0x58/0x9c <IRQ-131-151> (150 4) cyclicte-16668 0D..2 2203559us+: __schedule+0x1f4/0x40c <IRQ-131-151> (150 150) cyclicte-16668 0D..2 2203570us+: activate_task+0x58/0x9c <IRQ-131-151> (150 3) cyclicte-16668 0D..2 2203577us+: task_setprio+0x184/0x258 <cyclicte-16668> (150 0) cyclicte-16668 0DN.2 2203583us+: task_setprio+0x13c/0x258 ( 0 1 0) IRQ-131-151 0D..2 2203594us+: __schedule+0x1f4/0x40c <cyclicte-16668> (0 150) IRQ-131-151 0D..1 2203605us+: activate_task+0x58/0x9c <softirq--9> (150 4) IRQ-131-151 0D..2 2203631us+: deactivate_task+0x58/0x9c <IRQ-131-151> (150 5) softirq--9 0D..2 2203636us+: __schedule+0x1f4/0x40c <IRQ-131-151> (150 150) softirq--9 0D..2 2203654us+: deactivate_task+0x58/0x9c <softirq--9> (150 4) cyclicte-16668 0D..2 2203663us+: __schedule+0x1f4/0x40c <softirq--9> (150 0) cyclicte-16668 0D..1 2203711us+: enqueue_hrtimer+0x48/0x194 ( 394 1d3d76bb c3a15ea8) cyclicte-16668 0D..2 2203726us+: deactivate_task+0x58/0x9c <cyclicte-16668> (0 3) sh-19600 0D..2 2203742us!: __schedule+0x1f4/0x40c <cyclicte-16668> (0 0) sh-19600 0D.h1 2204020us+: hrtimer_interrupt+0xa8/0x2d0 ( 394 1ca99383 0) sh-19600 0D.h2 2204025us+: hrtimer_interrupt+0x128/0x2d0 ( 394 1ca956ec c3a11e98) sh-19600 0D.h3 2204039us+: activate_task+0x58/0x9c <cyclicte-16669> (180 2) sh-19600 0D.h3 2204044us+: __trace_start_sched_wakeup+0x14c/0x184 <cyclicte-16669> (19 -1) sh-19600 0DNh3 2204050us+: __trace_start_sched_wakeup+0x14c/0x184 <cyclicte-16669> (19 -1) sh-19600 0DNh3 2204051us+: try_to_wake_up+0x184/0x1a4 <cyclicte-16669> (180 0) sh-19600 0DNh1 2204058us!: clockevents_program_event+0x7c/0x1d0 ( 394 1d34ce80 8a9639) cyclicte-16669 0D..2 2204680us : __schedule+0x1f4/0x40c <sh-19600> (0 180)
cyclicte-1193 0D..2 2211546us+: __schedule+0x1f4/0x40c <softirq--6> (150 180) cyclicte-1193 0D..1 2211575us+: enqueue_hrtimer+0x48/0x194 ( 1846 4569198 c3a33e98) cyclicte-1193 0D..1 2211583us+: clockevents_program_event+0x7c/0x1d0 ( 1846 4569198 dbc5e) cyclicte-1193 0D..2 2211597us+: deactivate_task+0x58/0x9c <cyclicte-1193> (180 4) softirq--6 0D..2 2211603us+: __schedule+0x1f4/0x40c <cyclicte-1193> (180 150) softirq--6 0D..2 2211625us+: deactivate_task+0x58/0x9c <softirq--6> (150 3) sh-1902 0D..2 2211637us+: __schedule+0x1f4/0x40c <softirq--6> (150 0) sh-1902 0D..2 2211689us+: deactivate_task+0x58/0x9c <sh-1902> (0 2) sh-449 0D..2 2211704us+: __schedule+0x1f4/0x40c <sh-1902> (0 0) sh-449 0D.h2 2211762us+: activate_task+0x58/0x9c <IRQ-192-149> (150 1) sh-449 0D.h2 2211767us+: __trace_start_sched_wakeup+0x14c/0x184 <IRQ-192-149> (49 -1) sh-449 0DNh2 2211772us+: __trace_start_sched_wakeup+0x14c/0x184 <IRQ-192-149> (49 -1) sh-449 0DNh2 2211773us+: try_to_wake_up+0x184/0x1a4 <IRQ-192-149> (150 0) IRQ-192-149 0D..2 2211792us+: __schedule+0x1f4/0x40c <sh-449> (0 150) IRQ-192-149 0D..1 2211821us+: activate_task+0x58/0x9c <softirq--7> (150 2) IRQ-192-149 0D..2 2211839us+: deactivate_task+0x58/0x9c <IRQ-192-149> (150 3) softirq--7 0D..2 2211846us!: __schedule+0x1f4/0x40c <IRQ-192-149> (150 150) softirq--7 0D..1 2211957us+: activate_task+0x58/0x9c <sh-1902> (0 2) softirq--7 0D.h2 2212039us+: activate_task+0x58/0x9c <IRQ-193-150> (150 3) softirq--7 0D..2 2212072us+: deactivate_task+0x58/0x9c <softirq--7> (150 4) IRQ-193-150 0D..2 2212083us+: __schedule+0x1f4/0x40c <softirq--7> (150 150) IRQ-193-150 0D..1 2212098us+: activate_task+0x58/0x9c <softirq--6> (150 3) IRQ-193-150 0D..2 2212111us+: deactivate_task+0x58/0x9c <IRQ-193-150> (150 4) softirq--6 0D..2 2212118us+: __schedule+0x1f4/0x40c <IRQ-193-150> (150 150) softirq--6 0D..2 2212139us+: deactivate_task+0x58/0x9c <softirq--6> (150 3) sh-1902 0D..2 2212152us!: __schedule+0x1f4/0x40c <softirq--6> (150 0) sh-1902 0D.h1 2212501us+: hrtimer_interrupt+0xa8/0x2d0 ( 1846 456cfc8 0) sh-1902 0D.h2 2212507us+: hrtimer_interrupt+0x128/0x2d0 ( 1846 4569198 c3a33e98) sh-1902 0D.h3 2212521us+: activate_task+0x58/0x9c <cyclicte-1193> (180 2) sh-1902 0D.h3 2212526us+: __trace_start_sched_wakeup+0x14c/0x184 <cyclicte-1193> (19 -1) sh-1902 0DNh3 2212533us+: __trace_start_sched_wakeup+0x14c/0x184 <cyclicte-1193> (19 -1) sh-1902 0DNh3 2212534us+: try_to_wake_up+0x184/0x1a4 <cyclicte-1193> (180 0) sh-1902 0DNh1 2212541us!: clockevents_program_event+0x7c/0x1d0 ( 1846 4820f3a 2a9658) cyclicte-1193 0D..2 2213164us : __schedule+0x1f4/0x40c <sh-1902> (0 180)
cyclicte-12651 0D..2 2241836us+: __schedule+0x1f4/0x40c <sh-12822> (0 180) cyclicte-12651 0D..1 2241863us+: enqueue_hrtimer+0x48/0x194 ( 2038 2ae2bf80 c3b57e98) cyclicte-12651 0D..1 2241871us+: clockevents_program_event+0x7c/0x1d0 ( 2038 2ae2bf80 d8949) cyclicte-12651 0D..2 2241886us+: deactivate_task+0x58/0x9c <cyclicte-12651> (180 2) sh-12822 0D..2 2241898us!: __schedule+0x1f4/0x40c <cyclicte-12651> (180 0) sh-12822 0D..1 2242158us+: activate_task+0x58/0x9c <telnetd-423> (0 1) sh-12822 0DN.1 2242172us+: try_to_wake_up+0x184/0x1a4 <telnetd-423> (0 0) telnetd-423 0D..2 2242198us+: __schedule+0x1f4/0x40c <sh-12822> (0 0) telnetd-423 0D..2 2242253us+: deactivate_task+0x58/0x9c <telnetd-423> (0 2) sh-12822 0D..2 2242264us+: __schedule+0x1f4/0x40c <telnetd-423> (0 0) sh-12822 0D..2 2242274us+: activate_task+0x58/0x9c <telnetd-423> (0 1) sh-12822 0DN.2 2242281us+: try_to_wake_up+0x184/0x1a4 <telnetd-423> (0 0) telnetd-423 0D..2 2242293us+: __schedule+0x1f4/0x40c <sh-12822> (0 0) telnetd-423 0D..2 2242339us+: deactivate_task+0x58/0x9c <telnetd-423> (0 2) sh-12822 0D..2 2242351us!: __schedule+0x1f4/0x40c <telnetd-423> (0 0) sh-12822 0D..3 2242490us+: activate_task+0x58/0x9c <telnetd-423> (0 1) sh-12822 0DN.3 2242499us+: try_to_wake_up+0x184/0x1a4 <telnetd-423> (0 0) telnetd-423 0D..2 2242516us!: __schedule+0x1f4/0x40c <sh-12822> (0 0) telnetd-423 0D..2 2242774us+: deactivate_task+0x58/0x9c <telnetd-423> (0 2) sh-12822 0D..2 2242796us+: __schedule+0x1f4/0x40c <telnetd-423> (0 0) sh-12822 0D.h2 2242819us+: activate_task+0x58/0x9c <IRQ-193-150> (150 1) sh-12822 0D.h2 2242824us+: __trace_start_sched_wakeup+0x14c/0x184 <IRQ-193-150> (49 -1) sh-12822 0DNh2 2242828us+: __trace_start_sched_wakeup+0x14c/0x184 <IRQ-193-150> (49 -1) sh-12822 0DNh2 2242830us+: try_to_wake_up+0x184/0x1a4 <IRQ-193-150> (150 0) IRQ-193-150 0D..2 2242846us+: __schedule+0x1f4/0x40c <sh-12822> (0 150) IRQ-193-150 0D.h. 2242860us+: hrtimer_interrupt+0xa8/0x2d0 ( 2038 2ae44ab9 0) IRQ-193-150 0D.h1 2242863us+: hrtimer_interrupt+0x128/0x2d0 ( 2038 2ae2bf80 c3b57e98) IRQ-193-150 0D.h2 2242871us+: activate_task+0x58/0x9c <cyclicte-12651> (180 2) IRQ-193-150 0D.h2 2242875us+: __trace_start_sched_wakeup+0x14c/0x184 <cyclicte-12651> (19 -1) IRQ-193-150 0DNh2 2242877us : __trace_start_sched_wakeup+0x14c/0x184 <cyclicte-12651> (19 -1) IRQ-193-150 0DNh2 2242878us+: try_to_wake_up+0x184/0x1a4 <cyclicte-12651> (180 150) IRQ-193-150 0DNh. 2242885us+: clockevents_program_event+0x7c/0x1d0 ( 2038 2aea5400 5a227) cyclicte-12651 0D..2 2242900us : __schedule+0x1f4/0x40c <IRQ-193-150> (150 180)
Attachment:
signature.asc
Description: Digital signature