I’d like to add something to this thread. I found another solution for the stuttering problem by the purest of serendipity. It may not be (probably isn’t) a solution for everybody, but it works for me on my desktop.
Until a month ago, I had never used a wifi connection, always an ethernet connection. But a month ago I installed a wifi card to try wifi out. The card was immediately recognized, and I had no problem with the wifi. I could easily switch from wired to wifi, and vice versa, via NetworkManager. But when on the wired connection the sound stutter problem arose.
First of all, I think the OP is correct. The problem arises when you have, what we might call, a chimerical system: a system with both a wifi and a wired connection. And the culprit, as the OP suggested, is wpa_supplicant, which will periodically hog the cpu. (If you google ‘wpa_supplicant hogs cpu’, you will see a number of bugs lodged against wpa_supplicant for this problem.) The stutter (really more of a short-lived flutter) occurs when you use the wired connection and the wifi connection is still active. I never experience it when I am using the wifi connection. The suggestion to prevent the wifi connection starting via NetworkManager, while it worked in preventing the flutter when on the wired connection, presented its own problem: When I started out on the wired connection, then wanted to use the wifi connection, I could switch to it, but then, if I switched back to the wired connection, the wifi connection was still active, and I had the flutter problem. Not being very knowledgeable about wifi connections (but I’m learning), I didn’t know how to deactivate the wifi connection. Now, here comes the serendipitously found solution.
Months before the sound problem, I had another problem on my system. I like to plug my cellphone into a usb port in the morning for a slow charge (it’s a new Pixel). But a few months ago, I began having problems mounting the phone. It would mount-dismount rapidly. Sometimes it would charge, sometimes it wouldn’t. I solved this problem by installing tlp on my system and configuring it (in /etc/defautl/tlp) to exclude usb devices from autosuspend:
# Set to 0 to disable, 1 to enable USB autosuspend feature.
USB_AUTOSUSPEND=0
(In what was probably over-kill, I went through and excluded all usb devices individually).
Of course, none of that is really germane to the sound flutter problem, but I just thought I’d record it here. The solution to the sound problem via tlp is this: tlp has two commands you can run nonroot in a terminal:
wifi off
wifi on
When I run** wifi off**, if I look in NetworkManager, I do not see any wifi connections at all. None. All I see is my wired connection. I don’t know how tlp does this (cuts power to the wifi card?), but it’s as if the card isn’t there any more. Thereafter with the wired connection, no sound flutter. If I want to use my wifi connection, I just run wifi on, and there it is in NetworkManager (with all my neighbors’ connections). If I want to switch back to my wired connection, I just run wifi off again.
I hope someone finds this useful.