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

0 1 f111110101011 at gmail.com
Fri Apr 4 13:32:17 UTC 2014


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