[LAU] reducing xruns (System configuration)

Ralf Mardorf ralf.mardorf at alice-dsl.net
Thu Jul 19 17:00:26 CEST 2018


On Thu, 19 Jul 2018 14:20:29 +0200, Max wrote:
>On 18.07.2018 22:38, Ralf Mardorf wrote:
>> On Wed, 18 Jul 2018 21:15:21 +0200, Max wrote:  
>>> On 18.07.2018 19:58, Ralf Mardorf wrote:  
>>>> /etc/init.d/rtirq status  
>>>
>>>    PID CLS RTPRIO  NI PRI %CPU STAT COMMAND
>>>    441 FF      50   -  90  0.0 S    irq/29-mei_me
>>>    527 FF      50   -  90  0.0 S    irq/31-iwlwifi
>>>      8 TS       -   0  19  0.0 S    ksoftirqd/0
>>>     18 TS       -   0  19  0.0 S    ksoftirqd/1
>>>     24 TS       -   0  19  0.0 S    ksoftirqd/2
>>>     30 TS       -   0  19  0.0 S    ksoftirqd/3
>>>     36 TS       -   0  19  0.0 S    ksoftirqd/4
>>>     42 TS       -   0  19  0.0 S    ksoftirqd/5
>>>     48 TS       -   0  19  0.0 S    ksoftirqd/6
>>>     54 TS       -   0  19  0.0 S    ksoftirqd/7
>>>  
>>>> grep RTIRQ_NAME_LIST /etc/default/rtirq  
>>>
>>> # RTIRQ_NAME_LIST="rtc snd usb i8042" # old
>>> RTIRQ_NAME_LIST="snd usb i8042"  
>> 
>> That's most likely the culprit or at least the major culprit. Nothing
>> has got rt priority.
>> 
>> Are you sure that you are running the lowlatency kernel? If not, than
>> you need the boot option 'threadirqs'.
>> 
>> What's the output of
>> 
>> uname -rm  
>
>4.17.8-041708-lowlatency x86_64
>
>> Before you boot the lowlatency kernel or a generic kernel with
>> boot option 'threadirqs', make USB the head and remove the keyboard
>> from this list, IOW change it to RTIRQ_NAME_LIST="usb snd"  
>could you elaborate how?

Hi,

yesno!

I can explain how to change the rtirq configuration line from

  RTIRQ_NAME_LIST="snd usb i8042"

to

  RTIRQ_NAME_LIST="usb snd"

Run

  sudo $EDITOR /etc/default/rtirq

and edit this line.

I can't explain why some 3rd party lowlatency kernel doesn't work with
the installed rtirq script. I'm already not a friend of Ubuntu and
Ubuntu flavours, let alone a friend of 3rd party repositories and
derivatives that are not supported by Ubuntu.

I'm using Arch Linux, but to help novices, I've got an Ubuntu install. I
always try to help even users of Ubuntu derivatives, but it's not
always possible, since it's often way to obscure, what is done by 3rd
party maintainers.

Maybe this lowlatency kernel requires usage of the 'threadirqs' boot
option. If so, add it to your boot loaders configuration file. The
bootloader on my machine is syslinux, this is how it does look like for
the syslinux configuration file:

[rocketmouse at archlinux ~]$ grep -A3 '\^threadirqs' /boot/syslinux/syslinux.cfg
    MENU LABEL Arch Linux ^threadirqs
    LINUX ../vmlinuz-linux
    APPEND root=LABEL=archlinux ro threadirqs
    INITRD ../intel-ucode.img,../initramfs-linux.img

I didn't test, if the page table isolation stuff has got impact on
real-time performance, maybe you want to disable it, if so add 'nopti':

[rocketmouse at archlinux ~]$ grep -A3 '\^nopti' /boot/syslinux/syslinux.cfg
    MENU LABEL Arch Linux threadirqs ^nopti
    LINUX ../vmlinuz-linux
    APPEND root=LABEL=archlinux ro threadirqs nopti
    INITRD ../intel-ucode.img,../initramfs-linux.img

Btw. your output of /etc/init.d/rtirq status look similar to this one:

[rocketmouse at archlinux ~]$ rtirq status

  PID CLS RTPRIO  NI PRI %CPU STAT COMMAND	
  158 FF      90   - 130  0.0 S    irq/16-ehci_hcd	
  163 FF      90   - 130  0.0 S    irq/24-xhci_hcd	
  161 FF      89   - 129  0.0 S    irq/23-ehci_hcd	
  309 FF      85   - 125  0.0 S    irq/16-snd_hdsp	
  327 FF      80   - 120  0.0 S    irq/16-snd_ice1	
   38 FF      50   -  90  0.0 S    irq/9-acpi	
  157 FF      50   -  90  0.0 S    irq/1-i8042	
  164 FF      50   -  90  0.0 S    irq/25-ahci[000	
  275 FF      50   -  90  0.0 S    irq/5-parport0	
  284 FF      50   -  90  0.0 S    irq/27-mei_me	
  288 FF      50   -  90  0.0 S    irq/8-rtc0	
  298 FF      50   -  90  0.0 S    irq/18-i801_smb	
  356 FF      50   -  90  0.0 S    irq/28-i915	
  376 FF      50   -  90  0.0 S    irq/29-snd_hda_	
  541 FF      50   -  90  0.0 S    irq/26-enp3s0	
    8 TS       -   0  19  0.0 S    ksoftirqd/0	
   21 TS       -   0  19  0.0 S    ksoftirqd/1	

[rocketmouse at archlinux ~]$ uname -rm
4.17.7-1-ARCH x86_64

IOW USB should be on top of the rt priority list.

What's the output of 'systemctl status rtirq'?

[rocketmouse at archlinux ~]$ systemctl status rtirq
● rtirq.service - Realtime IRQ thread system tuning
   Loaded: loaded (/usr/lib/systemd/system/rtirq.service; enabled; vendor preset: disabled)
   Active: active (exited) since Wed 2018-07-18 05:31:47 CEST; 1 day 11h ago
 Main PID: 864 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   Memory: 0B
   CGroup: /system.slice/rtirq.service

Jul 18 05:31:47 archlinux systemd[1]: Starting Realtime IRQ thread system tuning...
Jul 18 05:31:47 archlinux rtirq[864]: Setting IRQ priorities: start [ehci_hcd] irq=16 pid=158 prio=90: OK.
Jul 18 05:31:47 archlinux rtirq[864]: Setting IRQ priorities: start [ehci_hcd] irq=23 pid=161 prio=89: OK.
Jul 18 05:31:47 archlinux rtirq[864]: Setting IRQ priorities: start [xhci_hcd] irq=24 pid=163 prio=90: OK.
Jul 18 05:31:47 archlinux rtirq[864]: Setting IRQ priorities: start [snd_hdsp] irq=16 pid=309 prio=85: OK.
Jul 18 05:31:47 archlinux rtirq[864]: Setting IRQ priorities: start [snd_ice1] irq=16 pid=327 prio=80: OK.
Jul 18 05:31:47 archlinux systemd[1]: Started Realtime IRQ thread system tuning.

Regards,
Ralf

-- 
pacman -Q linux{,-rt{-cornflower,,-securityink,-pussytoes}}|cut -d\  -f2
4.17.7-1
4.16.18_rt9-1
4.16.15_rt7-1
4.16.12_rt5-1
4.14.34_rt27-1


More information about the Linux-audio-user mailing list