[LAU] [Jack+Debian RT] Cannot create RT messagebuffer thread: Operation not permitted

0 1 f111110101011 at gmail.com
Sat Apr 5 14:08:29 UTC 2014


I solved my main problems, it was related to my X Session Manager (slim).

The problem was running, from an X Terminal:
chrt 70 echo foo
... gave some "failed to set pid 0's policy: Opération non permise" error.

The same command ran from a VT console (CTRL+ALT+F1) didn't show this 
error message.
I hence installed lightdm instead of slim and it solved the issue.

Other optimizations were made with:

/etc/sysctl.d/realtime.conf

dev.hpet.max-user-freq = 3072
fs.inotify.max_user_watches = 524288
kernel.hung_task_timeout_secs = 0
kernel.shmmax = 0x7fffffff
vm.swappiness = 10

And:

/etc/udev/rules.d/10-realtime.rules

KERNEL=="hpet", MODE="0660", GROUP="audio"
KERNEL=="rtc0", MODE="0660", GROUP="audio"

Now the result of the perl script looks much nicer:

./realTimeConfigQuickScan.pl
== GUI-enabled checks ==
Checking if you are root... no - good
Checking filesystem 'noatime' parameter... not found - warning
/boot does not have the 'noatime' parameter set
For more information, see 
http://wiki.linuxaudio.org/wiki/system_configuration#filesystems
Checking CPU Governors... CPU 0: 'performance' CPU 1: 'performance' - good
Checking swappiness... 10 - good
Checking for resource-intensive background processes... none found - good
Checking checking sysctl inotify max_user_watches... >= 524288 - good
Checking access to the high precision event timer... readable - good
Checking access to the real-time clock... readable - good
Checking whether you're in the 'audio' group... yes - good
Checking for multiple 'audio' groups... no - good
Checking the ability to prioritize processes with chrt... yes - good
Checking kernel support for high resolution timers... found - good
Kernel with Real-Time Preemption... found - good
Checking if kernel system timer is set to 1000 hz... not found - not good
Try setting CONFIG_HZ to 1000

Checking kernel support for tickless timer... not found - not good
Try enabling tickless timer support (CONFIG_NO_HZ)

== Other checks ==
Checking filesystem types... ok.
not found.
** Warning: no tmpfs partition mounted on /tmp
    For more information, see:
    - http://wiki.linuxaudio.org/wiki/system_configuration#tmpfs
    - http://lowlatency.linuxaudio.org
** Set $SOUND_CARD_IRQ to the IRQ of your soundcard to enable more checks.
    Find your sound card's IRQ by looking at '/proc/interrupts' and lspci.


I'm still experiencing Xruns however, and may have to dig further.

Regards,

01


Le 04/04/2014 15:32, 0 1 a écrit :
> Hello,
>
> I've been using a realtime kernel some time ago. I hadn't a very 
> intensive use of it so I didn't even notice if its configuration was 
> very right or wrong, it seemed fine, but I ended up uninstalling it 
> and doing fine without.
>
> As of now I'm running Debian Jessie, and lately I've been trying the 
> latest kernel Debian from their repos (currently, from wheezy-backports).
>
> However, JACK can't seem to get to work with realtime. Here is part of 
> the log:
>
>
>
> 14:11:39.082 JACK démarre...
> 14:11:39.083 /usr/bin/jackd -r -dalsa -r44100 -p512 -n2 -D -Chw:Pro,0 
> -Phw:Pro,0
> Cannot connect to server socket err = Aucun fichier ou dossier de ce type
> Cannot connect to server request channel
> jack server is not running or cannot be started
> 14:11:39.110 JACK a été démarrer avec le PID=3903.
> Cannot create RT messagebuffer thread: Operation not permitted (1)
> Retrying messagebuffer thread without RT scheduling
> Messagebuffer not realtime; consider enabling RT scheduling for user
> no message buffer overruns
> Cannot create RT messagebuffer thread: Operation not permitted (1)
> Retrying messagebuffer thread without RT scheduling
> Messagebuffer not realtime; consider enabling RT scheduling for user
> no message buffer overruns
> Gtk-Message: (for origin information, set GTK_DEBUG): failed to 
> retrieve property `GtkRange::activate-slider' of type `gboolean' from 
> rc file value "((GString*) 0x1cb8c40)" of type `GString'
> Cannot create RT messagebuffer thread: Operation not permitted (1)
> Retrying messagebuffer thread without RT scheduling
> Messagebuffer not realtime; consider enabling RT scheduling for user
> no message buffer overruns
> jackdmp 1.9.10
>
>
>
>
> Here is the content of /etc/security/limits.d/audio.conf
>
> # Provided by the jackd package.
> #
> # Changes to this file will be preserved.
> #
> # If you want to enable/disable realtime permissions, run
> #
> #    dpkg-reconfigure -p high jackd
>
> @audio   -  rtprio     95
> @audio   -  memlock    unlimited
> #@audio   -  nice      -19
>
> Note: the dpkg-reconfigure is "wrong" since in my case I use "jackd2".
>
>
>
> Content of /etc/default/rtirq:
> (...)
> # IRQ thread service names
> # (space separated list, from higher to lower priority).
> RTIRQ_NAME_LIST="rtc snd usb i8042"
>
> # Highest priority.
> RTIRQ_PRIO_HIGH=90
>
> # Priority decrease step.
> RTIRQ_PRIO_DECR=5
>
> # Lowest priority.
> RTIRQ_PRIO_LOW=51
>
> # Whether to reset all IRQ threads to SCHED_OTHER.
> RTIRQ_RESET_ALL=0
>
> # On kernel configurations that support it,
> # which services should be NOT threaded
> # (space separated list).
> RTIRQ_NON_THREADED="rtc snd"
>
> # Process names which will be forced to the
> # highest realtime priority range (99-91)
> # (space separated list, from highest to lower priority).
> # RTIRQ_HIGH_LIST="timer"
>
>
>
> Results of a few commands,
>
> $ uname -a
> Linux cacacomp 3.12-1-rt-amd64 #1 SMP PREEMPT RT Debian 3.12.9-1+rt1 
> (2014-02-20) x86_64 GNU/Linux
>
>
> $ cat /boot/config-3.12-1-rt-amd64 | grep PREEMPT
> CONFIG_TREE_PREEMPT_RCU=y
> CONFIG_PREEMPT_RCU=y
> CONFIG_PREEMPT_NOTIFIERS=y
> CONFIG_PREEMPT=y
> CONFIG_PREEMPT_RT_BASE=y
> CONFIG_HAVE_PREEMPT_LAZY=y
> CONFIG_PREEMPT_LAZY=y
> # CONFIG_PREEMPT_NONE is not set
> # CONFIG_PREEMPT_VOLUNTARY is not set
> # CONFIG_PREEMPT__LL is not set
> # CONFIG_PREEMPT_RTB is not set
> CONFIG_PREEMPT_RT_FULL=y
> CONFIG_PREEMPT_COUNT=y
> CONFIG_DEBUG_PREEMPT=y
> # CONFIG_PREEMPT_TRACER is not set
>
>
>
> $ cat /boot/config-3.12-1-rt-amd64 | grep _RT_
> CONFIG_RT_MUTEXES=y
> CONFIG_PREEMPT_RT_BASE=y
> CONFIG_PREEMPT_RT_FULL=y
> # CONFIG_DEBUG_RT_MUTEXES is not set
> # CONFIG_RT_MUTEX_TESTER is not set
>
>
>
> # lsusb
> Bus 002 Device 003: ID 5986:0315 Acer, Inc
> Bus 002 Device 004: ID 0763:2012 Midiman M-Audio Fast Track Pro
> Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>
> => I have a M-Audio Fast Track Pro USB card.
>
>
>
> # grep CONFIG_RT_GROUP_SCHED /boot/config-3.12-1-rt-amd64
> #
> (empty, this string isn't in my kernel config file)
>
>
>
> I realize I didn't tick "realtime" in qjackctl, so I start it again 
> but JACK log is the same:
>
> 15:12:46.782 JACK démarre...
> 15:12:46.783 /usr/bin/jackd -v -dalsa -r44100 -p512 -n2 -D -Chw:Pro,0 
> -Phw:Pro,0
> Cannot connect to server socket err = Aucun fichier ou dossier de ce type
> Cannot connect to server request channel
> jack server is not running or cannot be started
> 15:12:46.797 JACK a été démarrer avec le PID=7290.
> Cannot create RT messagebuffer thread: Operation not permitted (1)
> Retrying messagebuffer thread without RT scheduling
> Messagebuffer not realtime; consider enabling RT scheduling for user
> no message buffer overruns
> Cannot create RT messagebuffer thread: Operation not permitted (1)
> Retrying messagebuffer thread without RT scheduling
> Messagebuffer not realtime; consider enabling RT scheduling for user
> no message buffer overruns
> Cannot create RT messagebuffer thread: Operation not permitted (1)
> Retrying messagebuffer thread without RT scheduling
> Messagebuffer not realtime; consider enabling RT scheduling for user
> no message buffer overruns
> jackdmp 1.9.10
> ...
>
> There are very few references of this specific error message I found 
> on the web, but none seem to be related with my case.
>
>
>
> # service rtirq status
>
>   PID CLS RTPRIO  NI PRI %CPU STAT COMMAND
>    45 FF      90   - 130  0.0 S    irq/8-rtc0
>   556 FF      85   - 125  0.0 S    irq/43-snd_hda_
>   429 FF      80   - 120  0.0 S    irq/16-ehci_hcd
>   430 FF      79   - 119  5.3 S    irq/23-ehci_hcd
>    44 FF      75   - 115  0.0 S    irq/1-i8042
>    43 FF      74   - 114  0.6 S    irq/12-i8042
>    30 FF      50   -  90  0.0 S    irq/9-acpi
>   128 FF      50   -  90  0.0 S    irq/40-ahci
>   424 FF      50   -  90  0.0 S    irq/41-mei_me
>   431 FF      50   -  90  0.0 S    irq/16-mmc0
>   456 FF      50   -  90  0.6 S    irq/18-rtl_pci
>   499 FF      50   -  90  0.0 S    irq/16-jmb38x_m
>   522 FF      50   -  90  0.0 S    irq/42-i915
>  2675 FF      50   -  90  0.0 S    irq/44-eth0
>     3 FF       1   -  41  0.0 S    ksoftirqd/0
>    19 FF       1   -  41  0.0 S    ksoftirqd/1
>
> $ ./realTimeConfigQuickScan.pl
> == GUI-enabled checks ==
> Checking if you are root... no - good
> Checking filesystem 'noatime' parameter... not found - warning
> /boot does not have the 'noatime' parameter set
> For more information, see 
> http://wiki.linuxaudio.org/wiki/system_configuration#filesystems
> Checking CPU Governors... CPU 0: 'powersave' CPU 1: 'powersave'  - not 
> good
> Set CPU Governors to 'performance' with 'cpufreq-set -c <cpunr> -g 
> performance'
> See also: http://linuxmusicians.com/viewtopic.php?f=27&t=844
> Checking swappiness... 60 - not good
> ** vm.swappiness is larger than 10
> set it with '/sbin/sysctl -w vm.swappiness=10'
> See also: 
> http://linuxmusicians.com/viewtopic.php?f=27&t=452&start=30#p8916
> Checking for resource-intensive background processes... none found - good
> Checking checking sysctl inotify max_user_watches... < 524288 - not good
> increase max_user_watches by adding 'fs.inotify.max_user_watches = 
> 524288' to /etc/sysctl.conf and rebooting
> For more information, see 
> http://wiki.linuxaudio.org/wiki/system_configuration#sysctlconf
> Checking access to the high precision event timer... readable - good
> Checking access to the real-time clock... readable - good
> Checking whether you're in the 'audio' group... yes - good
> Checking for multiple 'audio' groups... no - good
> chrt: failed to set pid 0's policy: Opération non permise
> Checking the ability to prioritize processes with chrt... no - not good
> Could not assign a 80 rtprio value. Set up limits.conf.
> For more information, see 
> http://wiki.linuxaudio.org/wiki/system_configuration#limitsconfaudioconf
> Checking kernel support for high resolution timers... found - good
> Kernel with Real-Time Preemption... found - good
> Checking if kernel system timer is set to 1000 hz... not found - not good
> Try setting CONFIG_HZ to 1000
>
> Checking kernel support for tickless timer... not found - not good
> Try enabling tickless timer support (CONFIG_NO_HZ)
>
> == Other checks ==
> Checking filesystem types... ok.
> not found.
> ** Warning: no tmpfs partition mounted on /tmp
>    For more information, see:
>    - http://wiki.linuxaudio.org/wiki/system_configuration#tmpfs
>    - http://lowlatency.linuxaudio.org
> ** Set $SOUND_CARD_IRQ to the IRQ of your soundcard to enable more 
> checks.
>    Find your sound card's IRQ by looking at '/proc/interrupts' and lspci.
>
>
>
>
>
> So, I'd like to know what prevents Jack from getting RT priorities.
> And that's about all. I'm stuck. Hope you guys see where is the 
> problem more than I do and can point my to some direction.
>
> Regards,
>
> 01



More information about the Linux-audio-user mailing list