[pulseaudio-tickets] [Bug 84585] Issue of CPU usage with HiFiBerry driver snd_soc_hifiberry_amp with Debian Wheezy kernel 3.12.28

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Oct 20 06:42:57 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=84585

--- Comment #74 from Alessandro Ferri <alessandroferri_015 at fastwebnet.it> ---
Hi Raymond,
Following your comment I have tried to run the following test. 
On /etc/pulse/system.pa I added the following line: 

load-module module-alsa-card device_id=0 tsched=true tsched_buffer_size=256072
tsched_buffer_watermark=120268

With this new setup, the CPU usage from pulseaudio is reduced by (without new
line): 

pi at raspberrypi ~ $ top

top - 14:54:41 up 2 min,  2 users,  load average: 1.55, 0.62, 0.23
Tasks:  92 total,   1 running,  91 sleeping,   0 stopped,   0 zombie
%Cpu(s): 52.1 us, 26.1 sy,  0.0 ni, 18.9 id,  0.0 wa,  0.0 hi,  2.9 si,  0.0 st
KiB Mem:    447856 total,   137808 used,   310048 free,    14860 buffers
KiB Swap:   102396 total,        0 used,   102396 free,    67372 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND           
 2337 pulse      9 -11 87984 4832 3532 S  58.7  1.1   0:21.36 pulseaudio        
 2416 pi        20   0  117m 5176 2424 S  16.7  1.2   0:05.73 shairport         
 2527 root      20   0 22004  10m 4664 S   1.6  2.5   0:02.85 Xorg              
 2742 pi        20   0  4668 1384 1040 R   1.3  0.3   0:00.80 top               

to with the new line:

pi at raspberrypi ~ $ top

top - 14:42:30 up 2 min,  2 users,  load average: 1.27, 0.56, 0.22
Tasks:  93 total,   2 running,  91 sleeping,   0 stopped,   0 zombie
%Cpu(s): 40.4 us, 24.6 sy,  0.0 ni, 32.0 id,  0.0 wa,  0.0 hi,  3.0 si,  0.0 st
KiB Mem:    447856 total,   136800 used,   311056 free,    14868 buffers
KiB Swap:   102396 total,        0 used,   102396 free,    67812 cached

  PID USER      PR  NI  VIRT  RES  SHR S  %CPU %MEM    TIME+  COMMAND           
 2369 pi        20   0  150m 4760 3632 R  42.7  1.1   0:15.26 pulseaudio        
 2365 pi        20   0  115m 3940 2544 S  19.0  0.9   0:06.01 shairport         
 2666 root      20   0 22004  10m 4664 S   1.6  2.5   0:02.85 Xorg              
 2757 pi        20   0  4672 1384 1040 R   1.6  0.3   0:00.90 top               

That is substantially decreased from 58% to 42% of CPU.
This could be a good clue?
I have tried to change the parameters in this way:

tsched_buffer_size=1024288
tsched_buffer_watermark=481072

tsched_buffer_size=512144
tsched_buffer_watermark=240536

but there are not differences.
I attach again the report of pulseaudio Log verbose. What configuration should
I use and which modules to establish 30 ms wakeup watermark and the minimal
latency?

Best regards.

(In reply to Raymond from comment #71)
> 
> latency seem fixed at 105ms 3.12.25 with 30ms wakeup
> 
> 
> 
> 126|   0.000) I: [pulseaudio] sink-input.c:     media.name = "Shairport
> Stream"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:     application.name =
> "AirAni-b35336"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:     native-protocol.peer =
> "UNIX socket client"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:    
> native-protocol.version = "26"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:     application.process.id
> = "4160"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:    
> application.process.user = "pi"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:    
> application.process.host = "raspberrypi"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:    
> application.process.binary = "shairport"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:     application.language =
> "C"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:     window.x11.display =
> ":0.0"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:    
> application.process.machine_id = "d3670ff77a0bb988a953e7f053a3f4e7"
> (   9.126|   0.000) I: [pulseaudio] sink-input.c:    
> module-stream-restore.id = "sink-input-by-application-name:AirAni-b35336"
> (   9.139|   0.012) I: [pulseaudio] protocol-native.c: Requested
> tlength=250.00 ms, minreq=20.00 ms
> (   9.139|   0.000) D: [pulseaudio] protocol-native.c: Adjust latency mode
> enabled, configuring sink latency to half of overall latency.
> (   9.140|   0.000) D: [alsa-sink] alsa-sink.c: Cutting sleep time for the
> initial iterations by half.
> (   9.140|   0.000) D: [alsa-sink] alsa-sink.c: Cutting sleep time for the
> initial iterations by half.
> (   9.149|   0.008) D: [pulseaudio] protocol-native.c: Requested
> latency=105.00 ms, Received latency=105.00 ms
> (   9.149|   0.000) D: [pulseaudio] memblockq.c: memblockq requested:
> maxlength=4194304, tlength=25580, base=4, prebuf=22056, minreq=3528
> maxrewind=0
> (   9.149|   0.000) D: [pulseaudio] memblockq.c: memblockq sanitized:
> maxlength=4194304, tlength=25580, base=4, prebuf=22056, minreq=3528
> maxrewind=0
> (   9.150|   0.000) I: [pulseaudio] protocol-native.c: Final latency 250.01
> ms = 105.01 ms + 2*20.00 ms + 105.00 ms
> (   9.150|   0.000) D: [alsa-sink] alsa-sink.c: Cutting sleep time for the
> initial iterations by half.
> (   9.151|   0.000) D: [alsa-sink] alsa-sink.c: Latency set to 105.00ms
> (   9.151|   0.000) D: [alsa-sink] alsa-sink.c: hwbuf_unused=334280
> (   9.151|   0.000) D: [alsa-sink] alsa-sink.c: setting avail_min=87319
> (   9.152|   0.000) D: [alsa-sink] alsa-sink.c: Requesting rewind due to
> latency change.
> (   9.152|   0.000) D: [alsa-sink] alsa-sink.c: Requested to rewind 352800
> bytes.
> (   9.152|   0.000) D: [alsa-sink] alsa-sink.c: Limited to 347040 bytes.
> (   9.153|   0.000) D: [alsa-sink] alsa-sink.c: before: 86760
> (   9.153|   0.000) D: [alsa-sink] alsa-sink.c: after: 86760
> (   9.153|   0.000) D: [alsa-sink] alsa-sink.c: Rewound 347040 bytes.
> (   9.153|   0.000) D: [alsa-sink] sink.c: Processing rewind...
> (   9.154|   0.000) D: [alsa-sink] sink-input.c: Have to rewind 347040 bytes
> on render memblockq.
> (   9.154|   0.000) D: [alsa-sink] source.c: Processing rewind...
> (   9.155|   0.001) D: [pulseaudio] core-subscribe.c: Dropped redundant
> event due to change event.
> (   9.156|   0.000) D: [pulseaudio] reserve-wrap.c: Device lock status of
> reserve-monitor-wrapper at Audio0 changed: not busy
> (   9.159|   0.002) D: [pulseaudio] protocol-dbus.c: Interface
> org.PulseAudio.Core1.Stream added for object
> /org/pulseaudio/core1/playback_stream0
> (  11.862|   2.703) I: [alsa-sink] alsa-sink.c: Underrun!
> (  11.863|   0.000) I: [alsa-sink] alsa-sink.c: Increasing wakeup watermark
> to 30.00 ms

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-bugs/attachments/20141020/1cbf5430/attachment.html>


More information about the pulseaudio-bugs mailing list