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

From: 0 1 <f111110101011@email-addr-hidden>
Date: Fri Apr 04 2014 - 16:32:17 EEST

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
_______________________________________________
Linux-audio-user mailing list
Linux-audio-user@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-user
Received on Fri Apr 4 20:15:03 2014

This archive was generated by hypermail 2.1.8 : Fri Apr 04 2014 - 20:15:03 EEST