PromyLOPh / pianobar

Console-based pandora.com player
http://6xq.net/pianobar/
Other
1.74k stars 323 forks source link

audio stutter/warble during disk I/O after upgrade to Stretch #630

Closed glyndon closed 7 years ago

glyndon commented 7 years ago

Latest code has been running well on Raspbian Jessie. Upgraded to Stretch. Now, whenever any process performs I/O, the pianobar playback audio stutters. renice to -20 didn't help at all.

What details could I supply that would be helpful in identifying the cause?

PromyLOPh commented 7 years ago

I assume you are using a Raspberry Pi? If so which revision? Which pianobar version are are we talking about (i.e. compiled from git, Debian repository + version number)? Since I have access to a Pi 2B I can test this myself later this week, but it needs to be upgraded first.

glyndon commented 7 years ago

Yes, a Pi 1B, with a C-Media USB audio device. Code is compiled from git (2016.06.02-dev). libav 12.1, compiled locally.

glyndon commented 7 years ago

I can report (unhappily) that after building pianobar on a fresh install of Raspbian 'stretch' (from a virgin image), the problem does still occur for me. (I had been hoping the problem was caused by having dist-upgraded the OS in-place) Once disk I/O began in earnest during audio playback, the warbling ensued.

PromyLOPh commented 7 years ago

My setup is slightly different (Pi 2B, analog audio output; libav and pianobar are both the same though) and I cannot reproduce the issue, even with dd if=/dev/mmcblk0 of=/dev/null running concurrently. So this is an issue with either your configuration or hardware (Pi 1B not powerful enough?). I doubt I can help you with either, sorry.

glyndon commented 7 years ago

Thanks for trying. I'll give it a try on a 2B, and post what I find, in case it helps someone who runs into this syndrome.

Seems like whatever changed had to be in the OS update. The 1B machine has been sufficient up 'til this point, with pianobar using a consistent 17% CPU and never stuttering even while I compile libav on it. My guess is that the [disk driver in the] OS now presumes a multi-core machine by default and became 'greedy' to boost performance. Not a bad thing, except on single-core machines.

glyndon commented 7 years ago

Confirmed. I have a Pi2B which I upgraded to Stretch in the same manner as the Pi1B, and pianobar plays smoothly on the Pi2B. Same binary - copied over from the 1B, where it stutters under Stretch but not Jessie. Looks like I'll have to find a new use for the 1B.