Closed glyndon closed 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.
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.
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.
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.
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.
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.
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?