On 24 January 2011 09:21, Kurt Taylor <kurt.taylor at linaro.org> wrote: > > On 20 January 2011 16:45, pl bossart <bossart.nospam at gmail.com> wrote: > >> > Along with increasing the buffer size, the tsched wakeup watermark will >> need >> > to be increased, although my initial prototype code did not do that. I >> > waited until the watermark increased to the point where there were no >> more >> > underruns before using powertop. On my PC, it seems like the process for >> > decreasing the watermark is very aggressive, maybe to the point of >> causing >> > more underruns than needed. >> > >> > I plan on doing more testing, but on an ARM based platform, obviously, I >> am >> > looking for a buffer growth tuning for ARM that will reduce CPU wakes. >> For >> > dynamic growth, I am thinking that with the check_left_to_play >> (alsa-sink.c) >> > when woken by a timeout, it would be a good time to try to increase >> buffer >> > size and hopefully allowing ARM to go to a lower power state on long >> plays. >> > The buffer would be set back to normal default when rewinding, etc. >> >> You can't really change the size of the buffer, it's defined when you >> define the hw_params. You can only change the timer value. It think >> the 'buffer growth' you want is already handled by the concept of >> latency. >> We've also experimented with larger buffers. It's not clear to me that >> you really benefit from 8+ sec buffers. You have other wake-ups in the >> system that will reduce the benefits of long sleeps. Also as you said >> the timer watermark needs to take the tlength into account, a fixed >> initial value isn't very good. >> And last there is still a wake every 1.5s due to the auto-timing >> update. It would need to be changed to depend on the latency value. >> It's been on my TODO list but I still don't understand how the >> smoother parameters need to be changed. >> -Pierre >> > > > Thanks for your reply Pierre. > > I am still learning and so I spent some time this weekend experimenting. I > tried again to show larger buffer size would help, but there was really very > little difference, just as you suggested. I then tried to change the buffer > size during a playback, when we woke on_timeout in alsa_sink.c and > snd_pcm_hw_params failed. In fact, due to the failure, the module was > actually unloaded. > > I will do more experimentation on watermark reduction and auto-timing > update with relationship to latency and learn that code better. I was > wondering if you could elaborate on what you had on your TODO list for this > area with regards to smoother parameters. > > I am following the dynamic sample rate discussion as that also may help CPU > on ARM. Any other comments and suggestions of areas to look at would also > be appreciated. > > Kurt Taylor (irc krtaylor) > > Any other thoughts on buffer size growth? Is there a way to increase it during playback that I may have missed? Kurt Taylor (irc krtaylor) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20110125/2270ba4b/attachment.htm>