Re: [LAU] reducing xruns (System configuration)

From: Ralf Mardorf <ralf.mardorf@email-addr-hidden-dsl.net>
Date: Thu Jul 19 2018 - 18:00:26 EEST

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@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@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@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@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@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
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@lists.linuxaudio.org
https://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Thu Jul 19 20:15:01 2018

This archive was generated by hypermail 2.1.8 : Thu Jul 19 2018 - 20:15:02 EEST