btw, I tried the latency.c app in polling mode too (./latency -P plughw:0 -C plughw:0 -f S16_LE -c 1 -r 8000 -m 320 -M 960 -s 600 -p) with same "spiking" results. Further hints? On 4/13/07, Giovanni Maruzzelli <gmaruzz.lists@xxxxxxxxx> wrote: > I applied the first hint from Jaroslav (at the end of this post the > new asound.conf), but the problem seems not gone: one time each 256 > seconds I get a very strong cpu load spike, that is maybe related (my > guess) to the usage of plugin (maybe periodic cleaning each 256 > secs?). When there is no spike, the cpu load is 0.0% with occasional > 0.1% any 60-90 secs. > > I ran the latency test code with plughw:0 (I can't use latency.c with > my virtual cards because they can't link the in and out togheter) > using the blocking mode, real time, no poll. Any 256 secs, spike! (a > cpu load for latency.c of 45.00%, for roughly a sec, with the > cumulated cpu time of the latency.c app reported from top -d 1.0 > passing from: > 0:00.01 > to: > 0:00.64 > to: > 0:01.26 > etc, any 256 seconds. > > > latency.c output: > > ./latency -P plughw:0 -C plughw:0 -f S16_LE -c 1 -r 8000 -m 320 -M > 960 -s 600 -b > Playback device is plughw:0 > Capture device is plughw:0 > Parameters are 8000Hz, S16_LE, 1 channels, blocking mode > Wanted tick time: 0us, poll mode: no > Loop limit is 4800000 frames, minimum latency = 320, maximum latency = 960 > Plug PCM: Route conversion PCM (sformat=S32_LE) > Transformation table: > 0 <- 0 > 1 <- 0 > 2 <- 0 > 3 <- 0 > 4 <- 0 > 5 <- 0 > 6 <- 0 > 7 <- 0 > 8 <- 0 > 9 <- 0 > Its setup is: > stream : PLAYBACK > access : RW_INTERLEAVED > format : S16_LE > subformat : STD > channels : 1 > rate : 8000 > exact rate : 8000 (8000/1) > msbits : 16 > buffer_size : 320 > period_size : 160 > period_time : 20000 > tick_time : 10000 > tstamp_mode : NONE > period_step : 1 > sleep_min : 0 > avail_min : 160 > xfer_align : 1 > start_threshold : 2147483647 > stop_threshold : 320 > silence_threshold: 0 > silence_size : 0 > boundary : 1342177280 > Slave: Hardware PCM card 0 'M Audio Delta 1010LT' device 0 subdevice 0 > Its setup is: > stream : PLAYBACK > access : MMAP_INTERLEAVED > format : S32_LE > subformat : STD > channels : 10 > rate : 8000 > exact rate : 8000 (8000/1) > msbits : 24 > buffer_size : 320 > period_size : 160 > period_time : 20000 > tick_time : 10000 > tstamp_mode : NONE > period_step : 1 > sleep_min : 0 > avail_min : 160 > xfer_align : 1 > start_threshold : 2147483647 > stop_threshold : 320 > silence_threshold: 0 > silence_size : 0 > boundary : 1342177280 > Plug PCM: Route conversion PCM (sformat=S32_LE) > Transformation table: > 0 <- 0*0.0833333 + 1*0.0833333 + 2*0.0833333 + 3*0.0833333 + > 4*0.0833333 + 5*0.0833333 + 6*0.0833333 + 7*0.0833333 + 8*0.0833333 + > 9*0.0833333 + 10*0.0833333 + 11*0.0833333 > Its setup is: > stream : CAPTURE > access : RW_INTERLEAVED > format : S16_LE > subformat : STD > channels : 1 > rate : 8000 > exact rate : 8000 (8000/1) > msbits : 16 > buffer_size : 320 > period_size : 160 > period_time : 20000 > tick_time : 10000 > tstamp_mode : NONE > period_step : 1 > sleep_min : 0 > avail_min : 160 > xfer_align : 1 > start_threshold : 2147483647 > stop_threshold : 320 > silence_threshold: 0 > silence_size : 0 > boundary : 1342177280 > Slave: Hardware PCM card 0 'M Audio Delta 1010LT' device 0 subdevice 0 > Its setup is: > stream : CAPTURE > access : MMAP_INTERLEAVED > format : S32_LE > subformat : STD > channels : 12 > rate : 8000 > exact rate : 8000 (8000/1) > msbits : 24 > buffer_size : 320 > period_size : 160 > period_time : 20000 > tick_time : 10000 > tstamp_mode : NONE > period_step : 1 > sleep_min : 0 > avail_min : 160 > xfer_align : 1 > start_threshold : 2147483647 > stop_threshold : 320 > silence_threshold: 0 > silence_size : 0 > boundary : 1342177280 > Trying latency 320 frames, 40000.000us, 40.000000ms (25.0000Hz) > Success > Playback: > *** frames = 4800320 *** > state : RUNNING > trigger_time: 1176471431.639255951 > tstamp : 1176472031.482713139 > delay : 317 > avail : 3 > avail_max : 192 > Capture: > *** frames = 4800000 *** > state : RUNNING > trigger_time: 1176471431.639255951 > tstamp : 1176472031.482757926 > delay : 1 > avail : 1 > avail_max : 189 > Maximum read: 160 frames > Maximum read latency: 20000.000us, 20.000000ms (50.0000Hz) > Hardware sync > Playback time = 1176471431.639255, Record time = 1176471431.639255, diff = 0 > > new asound.conf: > > pcm.c3 { > type dsnoop > ipc_key 56789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 12 > format S32_LE > } > bindings { > 0 2 > } > } > pcm.capt3 { > type plug > slave.pcm c3 > } > > pcm.c4 { > type dsnoop > ipc_key 56789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 12 > format S32_LE > } > bindings { > 0 3 > } > } > pcm.capt4 { > type plug > slave.pcm c4 > } > > > pcm.c5 { > type dsnoop > ipc_key 56789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 12 > format S32_LE > } > bindings { > 0 4 > } > } > pcm.capt5 { > type plug > slave.pcm c5 > } > > > pcm.c6 { > type dsnoop > ipc_key 56789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 12 > format S32_LE > } > bindings { > 0 5 > } > } > pcm.capt6 { > type plug > slave.pcm c6 > } > > pcm.c7 { > type dsnoop > ipc_key 56789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 12 > format S32_LE > } > bindings { > 0 6 > } > } > pcm.capt7 { > type plug > slave.pcm c7 > } > > > pcm.c8 { > type dsnoop > ipc_key 56789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 12 > format S32_LE > } > bindings { > 0 7 > } > } > pcm.capt8 { > type plug > slave.pcm c8 > } > > ############################# > ############################# > > pcm.s3 { > type dshare > ipc_key 123456789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 10 > format S32_LE > } > bindings { > 0 2 > } > } > pcm.play3 { > type plug > slave.pcm s3 > } > > pcm.s4 { > type dshare > ipc_key 123456789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 10 > format S32_LE > } > bindings { > 0 3 > } > } > pcm.play4 { > type plug > slave.pcm s4 > } > > pcm.s5 { > type dshare > ipc_key 123456789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 10 > format S32_LE > } > bindings { > 0 4 > } > } > pcm.play5 { > type plug > slave.pcm s5 > } > > pcm.s6 { > type dshare > ipc_key 123456789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 10 > format S32_LE > } > bindings { > 0 5 > } > } > pcm.play6 { > type plug > slave.pcm s6 > } > > pcm.s7 { > type dshare > ipc_key 123456789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 10 > format S32_LE > } > bindings { > 0 6 > } > } > pcm.play7 { > type plug > slave.pcm s7 > } > > > pcm.s8 { > type dshare > ipc_key 123456789 > slave { > pcm "hw:0,0" > rate 8000 > period_time 0 > period_size 320 > channels 10 > format S32_LE > } > bindings { > 0 7 > } > } > pcm.play8 { > type plug > slave.pcm s8 > } > > > > > > > > > > On 4/13/07, Giovanni Maruzzelli <gmaruzz.lists@xxxxxxxxx> wrote: > > Thanks a lot Jaroslav, I'll apply your suggestions and I'll report here > > > > On 4/13/07, Jaroslav Kysela <perex@xxxxxxx> wrote: > > > On Fri, 13 Apr 2007, Giovanni Maruzzelli wrote: > > > > > > > Dear Alsa developers, > > > > > > > > I want to use a 1010lt (ice1712 driver) as 6 analog mono duplex cards. > > > > > > > > I want to use the /etc/asound.conf (.asoundrc) to split the card (that > > > > has 8 in and 8 out - but I use just 6 in/out), with minimal latency. > > > > > > > > I mean, I want to record and play (duplex) from/to each virtual card > > > > concurrently and from separate application instances. > > > > > > > > My app works with S16_LE, 8000, mono. > > > > > > > > Is the following asound.conf (.asoundrc) correct and efficient for this? > > > > > > Use dsnoop bindings rather than routing (ttable) for capture too, > > > otherwise alsa-lib works with all channels internally. > > > > > > > I got spikes of cpu load (at 5-6%) on each virtual card any roughly > > > > 256 seconds when using a(play|record) to record or play from/to any > > > > > > aplay|arecord is not very good test. Use latency test code - available in > > > alsa-lib/test directory. > > > > > > Jaroslav > > > > > > ----- > > > Jaroslav Kysela <perex@xxxxxxx> > > > Linux Kernel Sound Maintainer > > > ALSA Project, SUSE Labs > > > > > > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel