Re: [alsa-devel] 1010lt (ice1712) asoundrc for 6 virtual mono cards question
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@gmail.com wrote:
Thanks a lot Jaroslav, I'll apply your suggestions and I'll report here
On 4/13/07, Jaroslav Kysela perex@suse.cz 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@suse.cz Linux Kernel Sound Maintainer ALSA Project, SUSE Labs
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@gmail.com 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@gmail.com wrote:
Thanks a lot Jaroslav, I'll apply your suggestions and I'll report here
On 4/13/07, Jaroslav Kysela perex@suse.cz 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@suse.cz Linux Kernel Sound Maintainer ALSA Project, SUSE Labs
At Fri, 13 Apr 2007 16:34:55 +0200, Giovanni Maruzzelli wrote:
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.
Which ALSA version are you using?
The CPU usage is relatively easy to analyze. For example, you can try oprofile.
Takashi
Hi all, please let me know how I can give more/different info and testing.
my app makes a simple readi-writei loop (with a select before the readi) on six virtual asym duplex devices each one with 1 channel, S16_LE, 8000hz
In this case I'm using a 1010lt (ice 1712).
the issue that puzzles me is that the cpu load stay at 0.0% all the time, with very strong spikes at regular intervals. I've seen this exact same behavior also using arecord/aplay and test/latency on plugins, and I suspect is not specific for ice1712, but for any card type.
I've oprofiled alsa-lib 1-0-13, both using dmix-dsnoop asound.conf and using dshare-dsnoop devices.
Before each run I've : # opcontrol --shutdown # opcontrol --reset # opcontrol --no-vmlinux # opcontrol --start
The two results follows, at the end the asound.conf with dsnoop-dshare (the other one simply substitute dmix to dshare) TAKE NOTE that the running times was very different, so different number of samples:
******************************* opreport -l /usr/lib/libasound.so.2.0.0 using dsnoop-dmix devices gives me: samples % symbol name 4806 21.5913 mix_areas2 3550 15.9486 snd_pcm_linear_convert 3262 14.6547 snd_pcm_area_copy 936 4.2050 snd_pcm_state 771 3.4638 snd_pcm_dmix_sync_area 760 3.4143 snd_pcm_generic_state 713 3.2032 snd_pcm_hw_state 623 2.7989 snd_pcm_dsnoop_sync_ptr 382 1.7162 snd_pcm_read_areas 378 1.6982 snd_pcm_mmap_begin 365 1.6398 snd_pcm_write_areas 345 1.5499 snd_pcm_plugin_avail_update 308 1.3837 snd_pcm_mmap_commit 303 1.3612 snd_pcm_dmix_sync_ptr 293 1.3163 snd_pcm_hwsync 272 1.2220 .plt 253 1.1366 snd_pcm_areas_from_buf 230 1.0333 __i686.get_pc_thunk.bx 227 1.0198 snd_pcm_readi 215 0.9659 snd_pcm_dsnoop_state 208 0.9345 snd_timer_read 197 0.8850 snd_pcm_plugin_write_areas 194 0.8716 snd_pcm_dmix_mmap_commit 186 0.8356 snd_timer_hw_read 185 0.8311 snd_pcm_dmix_state 168 0.7548 snd_pcm_plugin_read_areas 166 0.7458 snd_pcm_writei 153 0.6874 snd_pcm_dsnoop_mmap_commit 145 0.6514 snd_pcm_generic_hwsync 145 0.6514 snd_pcm_plugin_readi 135 0.6065 snd_pcm_avail_update 133 0.5975 snd_pcm_mmap_appl_forward 124 0.5571 snd_pcm_dsnoop_hwsync 120 0.5391 snd_pcm_direct_clear_timer_queue 120 0.5391 snd_pcm_linear_write_areas 119 0.5346 snd_pcm_plugin_writei 101 0.4537 snd_pcm_dmix_avail_update 94 0.4223 snd_pcm_linear_read_areas ..........................
***************************************** opreport -l /usr/lib/libasound.so.2.0.0 using dsnoop-dshare devices gives me: samples % symbol name 7818 29.4175 snd_pcm_area_copy 5332 20.0632 snd_pcm_linear_convert 1161 4.3686 snd_pcm_state 849 3.1946 snd_pcm_hw_state 770 2.8974 snd_pcm_dsnoop_sync_ptr 768 2.8898 snd_pcm_generic_state 679 2.5549 snd_pcm_dshare_sync_area 500 1.8814 snd_pcm_read_areas 484 1.8212 snd_pcm_write_areas 482 1.8137 snd_pcm_mmap_begin 442 1.6632 snd_pcm_plugin_avail_update 398 1.4976 snd_pcm_hwsync 397 1.4938 snd_pcm_mmap_commit 343 1.2906 snd_pcm_dshare_mmap_commit 323 1.2154 snd_pcm_areas_from_buf 322 1.2116 snd_pcm_dshare_sync_ptr 319 1.2003 .plt 305 1.1477 snd_pcm_direct_clear_timer_queue 299 1.1251 __i686.get_pc_thunk.bx 292 1.0987 snd_timer_hw_read 281 1.0573 snd_pcm_dsnoop_state 274 1.0310 snd_timer_read 272 1.0235 snd_pcm_dsnoop_mmap_commit 232 0.8730 snd_pcm_plugin_write_areas 227 0.8542 snd_pcm_plugin_read_areas 222 0.8353 snd_pcm_mmap_appl_forward 222 0.8353 snd_pcm_readi 219 0.8241 snd_pcm_plugin_readi 202 0.7601 snd_pcm_dshare_state 192 0.7225 snd_pcm_generic_hwsync 189 0.7112 snd_pcm_writei 184 0.6924 snd_pcm_plugin_writei 177 0.6660 snd_pcm_dsnoop_hwsync 169 0.6359 snd_pcm_linear_read_areas 164 0.6171 snd_pcm_avail_update 161 0.6058 snd_pcm_dshare_avail_update 155 0.5832 snd_pcm_format_physical_width 137 0.5155 snd_pcm_linear_write_areas 82 0.3085 __i686.get_pc_thunk.cx 81 0.3048 snd_pcm_dsnoop_avail_update 76 0.2860 snd_pcm_dshare_hwsync 29 0.1091 get_char 26 0.0978 check_linear_format 17 0.0640 snd_pcm_build_linear_format 16 0.0602 snd_pcm_format_mask_test 16 0.0602 snd_pcm_hw_refine_soft 15 0.0564 _snd_config_search 12 0.0452 get_nonwhite 12 0.0452 snd_input_getc 11 0.0414 snd_pcm_plug_slave_format 10 0.0376 get_string *********************************************************************
That is the asoundrc with dsnoop-dshare (dmix), my app was using the cell3-cell8 devices:
########### begin ################### 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.p3 { type dshare #ipc_key 123456789 ipc_key 56789 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 p3 }
pcm.p4 { type dshare #ipc_key 123456789 ipc_key 56789 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 p4 }
pcm.p5 { type dshare #ipc_key 123456789 ipc_key 56789 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 p5 }
pcm.p6 { type dshare #ipc_key 123456789 ipc_key 56789 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 p6 }
pcm.p7 { type dshare #ipc_key 123456789 ipc_key 56789 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 p7 }
pcm.p8 { type dshare #ipc_key 123456789 ipc_key 56789 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 p8 }
#################################### #################################### pcm.cell3 { type asym playback.pcm "play3" capture.pcm "capt3" } pcm.cell4 { type asym playback.pcm "play4" capture.pcm "capt4" }
pcm.cell5 { type asym playback.pcm "play5" capture.pcm "capt5" } pcm.cell6 { type asym playback.pcm "play6" capture.pcm "capt6" } pcm.cell7 { type asym playback.pcm "play7" capture.pcm "capt7" } pcm.cell8 { type asym playback.pcm "play8" capture.pcm "capt8" }
#################################### #################################### ctl.cell3 { type hw card 0 } ctl.cell4 { type hw card 0 } ctl.cell5 { type hw card 0 } ctl.cell6 { type hw card 0 } ctl.cell7 { type hw card 0 } ctl.cell8 { type hw card 0 }
########### end ###################
On 4/17/07, Takashi Iwai tiwai@suse.de wrote:
At Fri, 13 Apr 2007 16:34:55 +0200, Giovanni Maruzzelli wrote:
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.
Which ALSA version are you using?
The CPU usage is relatively easy to analyze. For example, you can try oprofile.
Takashi
participants (2)
-
Giovanni Maruzzelli
-
Takashi Iwai