On Thu, 2 Mar 2006, Lee Revell wrote: > On Fri, 2006-03-03 at 00:13 +0100, Guennadi Liakhovetski wrote: > > On Thu, 2 Mar 2006, Lee Revell wrote: > > > > > Try enabling latency tracing in the kernel config and see what you get > > > in /proc/latency_trace. > > That's for user triggered latency tracing, you want the standard kernel > latency tracer: > > echo 1 > /proc/sys/kernel/trace_enabled > echo 0 > /proc/sys/kernel/preempt_max_latency
Aha, that was the key:-) > Then try nice -n -20 arecord ..., once you get some underruns: > > cat /proc/latency_trace Ok, there's "nothing" there - nothing near the xrun value I've just got: overrun!!! (at least 35.525 ms long) and in /proc/latency_trace preemption latency trace v1.1.5 on 2.6.15.4-rt16 -------------------------------------------------------------------- latency: 64 us, #36/36, CPU#0 | (M:rt VP:0, KP:0, SP:1 HP:1) ----------------- | task: softirq-timer/0-3 (uid:0 nice:0 policy:1 rt_prio:1) ----------------- _------=> CPU# / _-----=> irqs-off | / _----=> need-resched || / _---=> hardirq/softirq ||| / _--=> preempt-depth |||| / ||||| delay cmd pid ||||| time | caller \ / ||||| \ | / pdflush-104 0D.h3 0us : __trace_start_sched_wakeup (try_to_wake_up) pdflush-104 0D.h3 1us : __trace_start_sched_wakeup <<...>-3> (62 0) pdflush-104 0Dnh2 1us : try_to_wake_up <<...>-3> (62 74) pdflush-104 0Dnh2 1us : check_raw_flags (try_to_wake_up) pdflush-104 0Dnh1 2us : preempt_schedule (try_to_wake_up) pdflush-104 0Dnh1 2us : wake_up_process (wakeup_softirqd) pdflush-104 0Dnh1 3us : check_raw_flags (raise_softirq) pdflush-104 0Dnh1 3us : rcu_pending (update_process_times) pdflush-104 0Dnh1 3us : scheduler_tick (update_process_times) pdflush-104 0Dnh1 3us : sched_clock (scheduler_tick) pdflush-104 0Dnh2 4us : task_timeslice (scheduler_tick) pdflush-104 0Dnh1 5us : preempt_schedule (scheduler_tick) pdflush-104 0Dnh1 5us : softlockup_tick (update_process_times) pdflush-104 0Dnh2 6us : note_interrupt (__do_IRQ) pdflush-104 0Dnh2 6us : enable_8259A_irq (__do_IRQ) pdflush-104 0Dnh3 8us : check_raw_flags (enable_8259A_irq) pdflush-104 0Dnh2 8us : preempt_schedule (enable_8259A_irq) pdflush-104 0Dnh1 8us : preempt_schedule (__do_IRQ) pdflush-104 0Dnh1 9us : irq_exit (do_IRQ) pdflush-104 0Dn.1 9us+< (608) pdflush-104 0.n.. 41us : preempt_schedule (_mmx_memcpy) pdflush-104 0Dn.. 41us : __schedule (preempt_schedule) pdflush-104 0Dn.. 41us : profile_hit (__schedule) pdflush-104 0Dn.1 42us : sched_clock (__schedule) pdflush-104 0D..2 42us+: trace_array (__schedule) pdflush-104 0D..2 47us : trace_array <<...>-3> (62 62) pdflush-104 0D..2 48us : trace_array <pdflush-104> (74 78) pdflush-104 0D..2 49us : trace_array <<...>-2984> (76 78) pdflush-104 0D..2 50us+: trace_array (__schedule) <...>-3 0D..2 59us : __switch_to (__schedule) <...>-3 0D..2 60us : __schedule <pdflush-104> (74 62) <...>-3 0...1 61us : trace_stop_sched_switched (__schedule) <...>-3 0D..2 62us : trace_stop_sched_switched <<...>-3> (62 0) <...>-3 0D..2 63us : trace_stop_sched_switched (__schedule) vim:ft=help Then I tried switching lapic again on, then removing "nmi_watchdog=2", and even "acpi=off" - nothing helps. No more ideas... What now? Can we do some smart arecord profiling?... Thanks Guennadi --- Guennadi Liakhovetski ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ Alsa-user mailing list Alsa-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-user