Re: [LAU] [SOLVED] Crackles in audio, drifting intermittent noise etc.

From: termtech <termtech@email-addr-hidden>
Date: Wed Nov 30 2016 - 03:02:25 EET

On Monday, November 28, 2016 11:55:19 PM EST Fernando Lopez-Lezcano wrote:
> On 11/01/2016 11:45 PM, termtech wrote:
> > On Tuesday, November 1, 2016 2:36:21 PM EDT Chris Caudle wrote:
> ...
>
> > Yesterday I read somewhere, and was reminded, that audio
> >
> > processing is a 'serial' task that may not benefit well from
> > n-core CPUs and therefore one should choose a CPU with the
> > highest possible clock and try to run with fewer cores.
>
> At least on Linux this is not necessarily true. It all depends on the
> software you run and what it can do. If it is single threaded yes,
> higher clock speed would help. If not, multiple cores can help. I
> usually use all cores for the stuff I do.
>
> > I must mention something that adds mud, but clears it up more:
> >
> > When I try the on-board sound, or an old spare PCI SoundBlaster Live!,
> >
> > the sound is actually OK ;-)
>
> Ah... something related to the pci bus then?
>
> Looking at the waveform it looks like the glitches happen every 256
> samples (more or less). And the glitch itself seems to be around (more
> or less) 8 samples wide at its widest. Then it gets narrower and
> narrower towards the end, then it is just one sample wide and finally it
> disappears...
>
> Very weird...
>
> > I've yet to verify that statement for this replacement PC, but it's true
> > for>
> > the unit it replaced. That test did not bode well for this Delta1010
> > card.
>
> What motherboard does the pc have?

It's an ASUS P7P55LX and I've updated the BIOS to the latest.

> On linux the output of dmidecode would have that information. Does it
> have more than one PCI slot? I presume you tried on all of them if it
> has more than one, right?

Correct. This one has a few, while the cheaper original replacement
 PC only had one. Both exhibited the problem.

> > For that reason I may chalk this up to just a weird combination
> >
> > of this older PCI sound card (PCI rev 2.0 or 2.1 I think) and this
> > new-fangled MB and CPU.
>
> That could very well be the problem. I have had problems with PCI RME
> soundcards not being happy with a newer faster motherboard and processor
> (they worked fine in older hardware). Progress, I guess. Never managed
> to fix it or really diagnose it, sorry.
>
> Now as to why the problem stops when you disable two cpus? Wow. How
> about disabling just one? I can only think of some hardware interrupt
> routing problem as a possible cause. But a problem that comes and goes?
>
> In Linux if you can see this (as root):
> cat /sys/devices/system/cpu/cpu1/online
>
> You could disable just one cpu while the system is running (you should
> have four):
> For example, running as root this will disable your last cpu:
>
> echo 0 > cat /sys/devices/system/cpu/cpu3/online
>
> This should re-enable it:
>
> echo 1 > cat /sys/devices/system/cpu/cpu3/online

THANK YOU! IT WORKS! AWESOME!
Now I don't have to reboot to change cores!

The command as given did not work, though.
I used something similar to a command Ralf gave me:
        echo 1| sudo tee /sys/devices/system/cpu/cpu3/online
I'm just in a hurry and rusty on my Unix command syntax ;-)

The results:
There is no 'online' flag for core-0, which I guess makes sense.
There always must be at least one core running, I suppose.

Fascinating! ANY one or two of the cores are OK,
 yet ANY three or all four of them causes the noises.

I love how I can change it ad hoc. I'm fooling with the settings
 while Jack is running and I'm listening to my test tone for
 30 minutes now on core-0 and core-3, and it's fine.

> (not that this would be a fix, just curious)
> You could also see which cpu is handling the soundcard interrupts if you
> check out this:
>
> cat /proc/interrupts

cat /proc/interrupts
           CPU0 CPU3
  0: 86 0 IO-APIC 2-edge timer
  1: 996 4902 IO-APIC 1-edge i8042
  8: 1 0 IO-APIC 8-edge rtc0
  9: 0 0 IO-APIC 9-fasteoi acpi
 16: 29 0 IO-APIC 16-fasteoi ehci_hcd:usb1
 17: 157179 2086259 IO-APIC 17-fasteoi snd_ice1712
 23: 2454 4075 IO-APIC 23-fasteoi ehci_hcd:usb2
 24: 9623332 0 HPET-MSI 2-edge hpet2
 25: 10 1390859 HPET-MSI 3-edge hpet3
 26: 9 114668 HPET-MSI 4-edge
 27: 9 56553 HPET-MSI 5-edge
 29: 450 11519 PCI-MSI 1048576-edge enp2s0
 30: 8421 16342 PCI-MSI 512000-edge 0000:00:1f.2
 31: 393689 28980 PCI-MSI 524288-edge nvkm
NMI: 861 809 Non-maskable interrupts
LOC: 20 24 Local timer interrupts
SPU: 0 0 Spurious interrupts
PMI: 861 809 Performance monitoring interrupts
IWI: 1 0 IRQ work interrupts
RTR: 10 2 APIC ICR read retries
RES: 804163 498891 Rescheduling interrupts
CAL: 159206 103077 Function call interrupts
TLB: 3291 3930 TLB shootdowns
TRM: 0 0 Thermal event interrupts
THR: 0 0 Threshold APIC interrupts
DFR: 0 0 Deferred Error APIC interrupts
MCE: 0 0 Machine check exceptions
MCP: 27 34 Machine check polls
ERR: 0
MIS: 0
PIN: 0 0 Posted-interrupt notification event
PIW: 0 0 Posted-interrupt wakeup event

Here's the card after 5 minutes (of perfect sound):
           CPU0 CPU3
 17: 157179 2107520 IO-APIC 17-fasteoi snd_ice1712

--------------------------

Here's the card on three cores:
           CPU0 CPU2 CPU3
 17: 157179 66130 2132276 IO-APIC 17-fasteoi snd_ice1712

And after 5 minutes (of pops, glitches and drifting):
           CPU0 CPU2 CPU3
 17: 157179 75079 2177916 IO-APIC 17-fasteoi snd_ice1712

NOTE: I already tried CPU interrupt affinity tools! I forget how exactly ATM.
But I made damn sure it was working by examining the interupt list and
 it was 'all zeros' for the other THREE cores after several minutes. I tried
 tying them specifically to each core, including core-0, and it did NOT work,
 the noises were still there.

> Each column is one cpu, each row is one interrupt source. The one
> corresponding to your soundcard should be incrementing...
>
> > Maybe there's hope that a driver tweak could help?
> > The Windows driver hasn't been updated in four years.
> > Maybe it and the Linux driver share the same problem - needing an update?
>
> Are you running a reasonably recent kernel? "uname -r" would tell you
> what you are booting. If both Win* and Linux have the same problem that
> would seem to point to hardware. Not good news.

4.4.0-47-generic #68-Ubuntu SMP Wed Oct 26 19:39:52 UTC 2016 x86_64 x86_64
x86_64 GNU/Linux

> > But then, this MB and the other one are from around 2009/2010 or so.
> > If not then it's likely just this hardware combo.
> > Heck it could still be /this/ specific unit.
> > It would be nice to get some verification from similar users...
> >
> > It's just so weird. A brutal stupid ironic introduction to n-core CPUs.
> > Happy I can play keys now though. Persistence pays. No new card!
> > And at least my *guitar* doesn't need a freakin' CPU, just my brain :-)
> :
> :-(
>
> Good luck!
> -- Fernando

Thanks. I hope someone might make a driver fix or something.
At best, a simple configuration file tweak (go Linux!).
I've debugged and contributed to sound drivers before, but whew that's
 major and this might involve PCI or CPU drivers or who knows what,
 I've no time for it right now :-(

Tim.

_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Wed Nov 30 04:15:02 2016

This archive was generated by hypermail 2.1.8 : Wed Nov 30 2016 - 04:15:02 EET