Chord 2qute and my DOP challenge

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
OK. The chain configures your soundcard transfer identically for both PCM and DoP modes. CPU has lots of power to convert DSD to DoP, 4 cores. I do not like the 8k IRQ/s, every single USB highspeed frame. IMO it should be much less. But I am no XHCI specialist, guys from alsa will be able to say more.

Now let's try to find out what those DoP glitches are. Very likely alsa xruns (buffer underruns) which should be reported somewhere in squeezelite log and to kernel console.

First we will enable xrun_debug:

Code:
sudo sh -c 'echo 1 >  /proc/asound/card1/pcm0p/xrun_debug'

please check your xrun_debug is enabled by:

Code:
hestia@hestia:~$ cat /proc/asound/card1/pcm0p/xrun_debug
1

Now start playing. After the glitches, check your kernel log buffer with command

Code:
dmesg

You may see something like:

Code:
[26375.778394] XRUN: pcmC1D0p:0
[26375.783890] XRUN: pcmC1D0p:0
[26375.785220] XRUN: pcmC1D0p:0
 
Last edited:
OK. The chain configures your soundcard transfer identically for both PCM and DoP modes. CPU has lots of power to convert DSD to DoP, 4 cores. I do not like the 8k IRQ/s, every single USB highspeed frame. IMO it should be much less. But I am no XHCI specialist, guys from alsa will be able to say more.

Now let's try to find out what those DoP glitches are. Very likely alsa xruns (buffer underruns) which should be reported somewhere in squeezelite log and to kernel console.

First we will enable xrun_debug:

Code:
sudo sh -c 'echo 1 >  /proc/asound/card1/pcm0p/xrun_debug'

please check your xrun_debug is enabled by:

Code:
hestia@hestia:~$ cat /proc/asound/card1/pcm0p/xrun_debug
1

Now start playing. After the glitches, check your kernel log buffer with command

Code:
dmesg

You may see something like:

Code:
[26375.778394] XRUN: pcmC1D0p:0
[26375.783890] XRUN: pcmC1D0p:0
[26375.785220] XRUN: pcmC1D0p:0

don't have this xrun_debug in /proc checked everywhere
Code:
sudo sh -c 'echo 1 >  /proc/asound/card1/pcm0p/xrun_debug'

what does that means ???

I got a fallout again ....

find /proc/asound/ | grep -i 'xrun'

returns nothing..
 
Last edited:
Code:
This page describes the build-in ALSA driver tool to debug PCM ring buffer positions.
/proc/asound/card#/pcm0p/xrun_debug
Replace '#' with your card number (usually 0). This proc file can enable various debugging tools. 
The [b]CONFIG_SND_PCM_XRUN_DEBUG[/b], [b]CONFIG_SND_VERBOSE_PROCFS[/b], [b]CONFIG_SND_DEBUG[/b] options must be enabled in your kernel 
(if xrun_debug proc file is present - this feature is enabled).

Does this means I need to compile a kernel ???
 
/usr/bin/squeezelite -o hw:D2Qute -n michael -a :::0 -D -d output=debug -f /tmp/squeezelite.log -s 172.16.0.93
Code:
[15:03:22.852089] output_init_alsa:873 init output
[15:03:22.852138] output_init_alsa:902 requested alsa_buffer: 40 alsa_period: 4 format: any mmap: 0
[15:03:22.852151] output_init_common:347 outputbuf size: 3528000
[15:03:22.852176] output_init_common:371 idle timeout: 0
[15:03:22.960402] output_init_common:411 supported rates: 384000 352800 192000 176400 96000 88200 48000 44100 32000 
[15:03:22.984841] output_init_alsa:928 memory locked
[15:03:22.984991] output_init_alsa:951 set output sched fifo rt: 45
[15:03:22.985014] output_thread:621 open output device: hw:D2Qute
[15:03:22.985525] alsa_open:338 opening device at: 44100
[15:03:22.985740] alsa_open:389 opened device hw:D2Qute using format: S32_LE sample rate: 44100 mmap: 0
[15:03:22.985773] alsa_open:468 buffer: 40 period: 4 -> buffer size: 1764 period size: 441
[15:03:22.995575] set_volume:229 setting internal gain left: 65536 right: 65536
[15:03:22.995661] set_volume:229 setting internal gain left: 65536 right: 65536
[15:03:23.092522] _output_frames:62 start buffer frames: 104448
[15:03:23.092556] _output_frames:147 track start sample rate: 176400 replay_gain: 0
[15:03:23.102610] output_thread:621 open output device: hw:D2Qute
[15:03:23.107018] alsa_open:338 opening device at: 176400
[15:03:23.107197] alsa_open:389 opened device hw:D2Qute using format: S32_LE sample rate: 176400 mmap: 0
[15:03:23.107221] alsa_open:468 buffer: 40 period: 4 -> buffer size: 7056 period size: 1764

It just have a 1-2 secs stop do you see anything in this log , I don't...
 
Last edited:
I have download the kernel-header linux49-headers their is a .config file
in /usr/lib/modules/4.9.39-1-MANJARO/build its long and content in SND is.

cat ./.config | grep 'SND'
Code:
CONFIG_SND=m
CONFIG_SND_TIMER=m
CONFIG_SND_PCM=m
CONFIG_SND_PCM_ELD=y
CONFIG_SND_PCM_IEC958=y
CONFIG_SND_DMAENGINE_PCM=m
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_COMPRESS_OFFLOAD=m
CONFIG_SND_JACK=y
CONFIG_SND_JACK_INPUT_DEV=y
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=m
CONFIG_SND_PCM_OSS=m
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_PCM_TIMER=y
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_HRTIMER=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_DYNAMIC_MINORS=y
CONFIG_SND_MAX_CARDS=32
# CONFIG_SND_SUPPORT_OLD_API is not set
CONFIG_SND_PROC_FS=y
CONFIG_SND_VERBOSE_PROCFS=y
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_RAWMIDI_SEQ=m
CONFIG_SND_OPL3_LIB_SEQ=m
# CONFIG_SND_OPL4_LIB_SEQ is not set
# CONFIG_SND_SBAWE_SEQ is not set
CONFIG_SND_EMU10K1_SEQ=m
CONFIG_SND_MPU401_UART=m
CONFIG_SND_OPL3_LIB=m
CONFIG_SND_VX_LIB=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_DRIVERS=y
# CONFIG_SND_PCSP is not set
CONFIG_SND_DUMMY=m
CONFIG_SND_ALOOP=m
CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_MTS64=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_PORTMAN2X4=m
CONFIG_SND_AC97_POWER_SAVE=y
CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
CONFIG_SND_SB_COMMON=m
CONFIG_SND_PCI=y
CONFIG_SND_AD1889=m
CONFIG_SND_ALS300=m
CONFIG_SND_ALS4000=m
CONFIG_SND_ALI5451=m
CONFIG_SND_ASIHPI=m
CONFIG_SND_ATIIXP=m
CONFIG_SND_ATIIXP_MODEM=m
CONFIG_SND_AU8810=m
CONFIG_SND_AU8820=m
CONFIG_SND_AU8830=m
CONFIG_SND_AW2=m
CONFIG_SND_AZT3328=m
CONFIG_SND_BT87X=m
# CONFIG_SND_BT87X_OVERCLOCK is not set
CONFIG_SND_CA0106=m
CONFIG_SND_CMIPCI=m
CONFIG_SND_OXYGEN_LIB=m
CONFIG_SND_OXYGEN=m
CONFIG_SND_CS4281=m
CONFIG_SND_CS46XX=m
CONFIG_SND_CS46XX_NEW_DSP=y
CONFIG_SND_CTXFI=m
CONFIG_SND_DARLA20=m
CONFIG_SND_GINA20=m
CONFIG_SND_LAYLA20=m
CONFIG_SND_DARLA24=m
CONFIG_SND_GINA24=m
CONFIG_SND_LAYLA24=m
CONFIG_SND_MONA=m
CONFIG_SND_MIA=m
CONFIG_SND_ECHO3G=m
CONFIG_SND_INDIGO=m
CONFIG_SND_INDIGOIO=m
CONFIG_SND_INDIGODJ=m
CONFIG_SND_INDIGOIOX=m
CONFIG_SND_INDIGODJX=m
CONFIG_SND_EMU10K1=m
CONFIG_SND_EMU10K1X=m
CONFIG_SND_ENS1370=m
CONFIG_SND_ENS1371=m
CONFIG_SND_ES1938=m
CONFIG_SND_ES1968=m
CONFIG_SND_ES1968_INPUT=y
CONFIG_SND_ES1968_RADIO=y
CONFIG_SND_FM801=m
CONFIG_SND_FM801_TEA575X_BOOL=y
CONFIG_SND_HDSP=m
CONFIG_SND_HDSPM=m
CONFIG_SND_ICE1712=m
CONFIG_SND_ICE1724=m
CONFIG_SND_INTEL8X0=m
CONFIG_SND_INTEL8X0M=m
CONFIG_SND_KORG1212=m
CONFIG_SND_LOLA=m
CONFIG_SND_LX6464ES=m
CONFIG_SND_MAESTRO3=m
CONFIG_SND_MAESTRO3_INPUT=y
CONFIG_SND_MIXART=m
CONFIG_SND_NM256=m
CONFIG_SND_PCXHR=m
CONFIG_SND_RIPTIDE=m
CONFIG_SND_RME32=m
CONFIG_SND_RME96=m
CONFIG_SND_RME9652=m
CONFIG_SND_SONICVIBES=m
CONFIG_SND_TRIDENT=m
CONFIG_SND_VIA82XX=m
CONFIG_SND_VIA82XX_MODEM=m
CONFIG_SND_VIRTUOSO=m
CONFIG_SND_VX222=m
CONFIG_SND_YMFPCI=m
CONFIG_SND_HDA=m
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=1
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
CONFIG_SND_HDA_CODEC_CA0132=m
CONFIG_SND_HDA_CODEC_CA0132_DSP=y
CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_CORE=m
CONFIG_SND_HDA_DSP_LOADER=y
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_EXT_CORE=m
CONFIG_SND_HDA_PREALLOC_SIZE=4096
CONFIG_SND_SPI=y
CONFIG_SND_USB=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_UA101=m
CONFIG_SND_USB_USX2Y=m
CONFIG_SND_USB_CAIAQ=m
CONFIG_SND_USB_CAIAQ_INPUT=y
CONFIG_SND_USB_US122L=m
CONFIG_SND_USB_6FIRE=m
CONFIG_SND_USB_HIFACE=m
CONFIG_SND_BCD2000=m
CONFIG_SND_USB_LINE6=m
CONFIG_SND_USB_POD=m
CONFIG_SND_USB_PODHD=m
CONFIG_SND_USB_TONEPORT=m
CONFIG_SND_USB_VARIAX=m
CONFIG_SND_FIREWIRE=y
CONFIG_SND_FIREWIRE_LIB=m
CONFIG_SND_DICE=m
CONFIG_SND_OXFW=m
CONFIG_SND_ISIGHT=m
CONFIG_SND_FIREWORKS=m
CONFIG_SND_BEBOB=m
CONFIG_SND_FIREWIRE_DIGI00X=m
CONFIG_SND_FIREWIRE_TASCAM=m
CONFIG_SND_PCMCIA=y
CONFIG_SND_VXPOCKET=m
CONFIG_SND_PDAUDIOCF=m
CONFIG_SND_SOC=m
CONFIG_SND_SOC_AC97_BUS=y
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y
CONFIG_SND_SOC_COMPRESS=y
CONFIG_SND_SOC_TOPOLOGY=y
CONFIG_SND_SOC_AMD_ACP=m
# CONFIG_SND_ATMEL_SOC is not set
CONFIG_SND_DESIGNWARE_I2S=m
CONFIG_SND_DESIGNWARE_PCM=m
# CONFIG_SND_SOC_FSL_ASRC is not set
# CONFIG_SND_SOC_FSL_SAI is not set
# CONFIG_SND_SOC_FSL_SSI is not set
# CONFIG_SND_SOC_FSL_SPDIF is not set
# CONFIG_SND_SOC_FSL_ESAI is not set
# CONFIG_SND_SOC_IMX_AUDMUX is not set
# CONFIG_SND_SOC_IMG is not set
CONFIG_SND_SST_MFLD_PLATFORM=m
CONFIG_SND_SST_IPC=m
CONFIG_SND_SST_IPC_ACPI=m
CONFIG_SND_SOC_INTEL_SST=m
CONFIG_SND_SOC_INTEL_SST_FIRMWARE=m
CONFIG_SND_SOC_INTEL_SST_ACPI=m
CONFIG_SND_SOC_INTEL_SST_MATCH=m
CONFIG_SND_SOC_INTEL_HASWELL=m
CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
# CONFIG_SND_SOC_XTFPGA_I2S is not set
CONFIG_SND_SOC_I2C_AND_SPI=m
CONFIG_SND_SOC_AC97_CODEC=m
# CONFIG_SND_SOC_ADAU1701 is not set
# CONFIG_SND_SOC_ADAU7002 is not set
# CONFIG_SND_SOC_AK4104 is not set
# CONFIG_SND_SOC_AK4554 is not set
# CONFIG_SND_SOC_AK4613 is not set
# CONFIG_SND_SOC_AK4642 is not set
# CONFIG_SND_SOC_AK5386 is not set
# CONFIG_SND_SOC_ALC5623 is not set
# CONFIG_SND_SOC_BT_SCO is not set
# CONFIG_SND_SOC_CS35L32 is not set
# CONFIG_SND_SOC_CS35L33 is not set
# CONFIG_SND_SOC_CS42L51_I2C is not set
# CONFIG_SND_SOC_CS42L52 is not set
# CONFIG_SND_SOC_CS42L56 is not set
# CONFIG_SND_SOC_CS42L73 is not set
# CONFIG_SND_SOC_CS4265 is not set
# CONFIG_SND_SOC_CS4270 is not set
# CONFIG_SND_SOC_CS4271_I2C is not set
# CONFIG_SND_SOC_CS4271_SPI is not set
# CONFIG_SND_SOC_CS42XX8_I2C is not set
# CONFIG_SND_SOC_CS4349 is not set
# CONFIG_SND_SOC_CS53L30 is not set
CONFIG_SND_SOC_DA7219=m
CONFIG_SND_SOC_DMIC=m
CONFIG_SND_SOC_HDMI_CODEC=m
# CONFIG_SND_SOC_ES8328 is not set
# CONFIG_SND_SOC_GTM601 is not set
CONFIG_SND_SOC_HDAC_HDMI=m
# CONFIG_SND_SOC_INNO_RK3036 is not set
CONFIG_SND_SOC_MAX98090=m
CONFIG_SND_SOC_MAX98357A=m
# CONFIG_SND_SOC_MAX98504 is not set
# CONFIG_SND_SOC_MAX9860 is not set
# CONFIG_SND_SOC_PCM1681 is not set
# CONFIG_SND_SOC_PCM179X_I2C is not set
# CONFIG_SND_SOC_PCM179X_SPI is not set
# CONFIG_SND_SOC_PCM3168A_I2C is not set
# CONFIG_SND_SOC_PCM3168A_SPI is not set
# CONFIG_SND_SOC_PCM512x_I2C is not set
# CONFIG_SND_SOC_PCM512x_SPI is not set
CONFIG_SND_SOC_RL6231=m
CONFIG_SND_SOC_RL6347A=m
CONFIG_SND_SOC_RT286=m
CONFIG_SND_SOC_RT298=m
# CONFIG_SND_SOC_RT5616 is not set
# CONFIG_SND_SOC_RT5631 is not set
CONFIG_SND_SOC_RT5640=m
CONFIG_SND_SOC_RT5645=m
CONFIG_SND_SOC_RT5651=m
CONFIG_SND_SOC_RT5663=m
CONFIG_SND_SOC_RT5670=m
CONFIG_SND_SOC_RT5677=m
CONFIG_SND_SOC_RT5677_SPI=m
# CONFIG_SND_SOC_SGTL5000 is not set
CONFIG_SND_SOC_SI476X=m
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set
CONFIG_SND_SOC_SPDIF=m
# CONFIG_SND_SOC_SSM2602_SPI is not set
# CONFIG_SND_SOC_SSM2602_I2C is not set
CONFIG_SND_SOC_SSM4567=m
# CONFIG_SND_SOC_STA32X is not set
# CONFIG_SND_SOC_STA350 is not set
# CONFIG_SND_SOC_STI_SAS is not set
# CONFIG_SND_SOC_TAS2552 is not set
# CONFIG_SND_SOC_TAS5086 is not set
# CONFIG_SND_SOC_TAS571X is not set
# CONFIG_SND_SOC_TAS5720 is not set
# CONFIG_SND_SOC_TFA9879 is not set
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set
# CONFIG_SND_SOC_TLV320AIC31XX is not set
# CONFIG_SND_SOC_TLV320AIC3X is not set
CONFIG_SND_SOC_TS3A227E=m
# CONFIG_SND_SOC_WM8510 is not set
# CONFIG_SND_SOC_WM8523 is not set
# CONFIG_SND_SOC_WM8580 is not set
# CONFIG_SND_SOC_WM8711 is not set
# CONFIG_SND_SOC_WM8728 is not set
# CONFIG_SND_SOC_WM8731 is not set
# CONFIG_SND_SOC_WM8737 is not set
# CONFIG_SND_SOC_WM8741 is not set
# CONFIG_SND_SOC_WM8750 is not set
# CONFIG_SND_SOC_WM8753 is not set
# CONFIG_SND_SOC_WM8770 is not set
# CONFIG_SND_SOC_WM8776 is not set
# CONFIG_SND_SOC_WM8804_I2C is not set
# CONFIG_SND_SOC_WM8804_SPI is not set
# CONFIG_SND_SOC_WM8903 is not set
# CONFIG_SND_SOC_WM8960 is not set
# CONFIG_SND_SOC_WM8962 is not set
# CONFIG_SND_SOC_WM8974 is not set
# CONFIG_SND_SOC_WM8978 is not set
# CONFIG_SND_SOC_WM8985 is not set
# CONFIG_SND_SOC_NAU8810 is not set
CONFIG_SND_SOC_NAU8825=m
# CONFIG_SND_SOC_TPA6130A2 is not set
CONFIG_SND_SIMPLE_CARD_UTILS=m
CONFIG_SND_SIMPLE_CARD=m
 
I think the only unusual thing is the very frequent irq every usb frame which is not common. But we will ask at the alsa mailing list.

Another check - does the USB irq rate stop when the playback is stopped? I want to make sure the crazy 8k/s is caused by communication with the soundcard.
 
I think the only unusual thing is the very frequent irq every usb frame which is not common. But we will ask at the alsa mailing list.

Another check - does the USB irq rate stop when the playback is stopped? I want to make sure the crazy 8k/s is caused by communication with the soundcard.

Code:
122:   10450996    4417919  137114916    6112645  IR-PCI-MSI 327680-edge      xhci_hcd
122:   10451095    4417953  137114985    6112675  IR-PCI-MSI 327680-edge      xhci_hcd

(10451095+4417953+137114985+6112675)-(10450996+4417919+137114916+6112645) = 232/30 = 7.7 irq / secs

only 7 irqs per secs , when not playing.
 
OK. The chain configures your soundcard transfer identically for both PCM and DoP modes. CPU has lots of power to convert DSD to DoP, 4 cores. I do not like the 8k IRQ/s, every single USB highspeed frame. IMO it should be much less. But I am no XHCI specialist, guys from alsa will be able to say more.

Now let's try to find out what those DoP glitches are. Very likely alsa xruns (buffer underruns) which should be reported somewhere in squeezelite log and to kernel console.

First we will enable xrun_debug:

Code:
sudo sh -c 'echo 1 >  /proc/asound/card1/pcm0p/xrun_debug'

please check your xrun_debug is enabled by:

Code:
hestia@hestia:~$ cat /proc/asound/card1/pcm0p/xrun_debug
1

Now start playing. After the glitches, check your kernel log buffer with command

Code:
dmesg

You may see something like:

Code:
[26375.778394] XRUN: pcmC1D0p:0
[26375.783890] XRUN: pcmC1D0p:0
[26375.785220] XRUN: pcmC1D0p:0

I have build my own kernel based on 4.9.40 as close to Arch as possible.

cat /proc/asound/card1/pcm0p/xrun_debug
Code:
1

I'll have a look what dmesg logs.
 
I think you will see the same - no xruns. They would have been reported by squeezelite.

Have you ever worked with wireshark? We may have to use it to capture the usb traffic to check the async feedback. We will see what the mailinglist produces.

Nope, but just tell me what to do. I'm building a newer kernel just in case I want to try it out.

Still using the stock Arch kernel here, so no hokus pokus..
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.