RE: ipipe 4.19: spurious APIC interrupt when setting rt_igp to up

2019-07-10 Thread Lange Norbert via Xenomai


> -Original Message-
> From: Jan Kiszka 
> Sent: Dienstag, 9. Juli 2019 19:54
> To: Lange Norbert ; Xenomai
> (xenomai@xenomai.org) ; Philippe Gerum
> 
> Subject: Re: ipipe 4.19: spurious APIC interrupt when setting rt_igp to up
>
> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR
> ATTACHMENTS.
>
>
> On 09.07.19 18:33, Jan Kiszka wrote:
> > On 09.07.19 18:21, Lange Norbert wrote:
> >> Hello,
> >>
> >> maxcpus=1 still causes the spurious int, this time fully locking up.
> >>
> >> I attached the debug/irq directory after the cause.
> >>> Some things that might be relevant:
> >> -   the SOC would use PINCTRL_BROXTON under linux, but this is disabled
> (not fixed up for Xenomai)
> >> -   I have the regular igb driver in use, and am unbinding the network card
> prior to binding the rt_igp driver
> >>
> >
> > Thanks. What's the interrupt number that Xenomai is using? Should be
> > the same that the Linux driver is using as well.
>
> Found already: Should be IRQ 130-132 for device 00:03.0. If the directory
> state was like that while Xenomai was still holding those interrupts, the
> problem it that there are no vectors assigned to them. Can you confirm that
> rt_igb was still loaded and the interface was up?

Well, the bug happens when bringing up the interface.

# modprobe rt_igb
[  117.274639] rt_igb :03:00.0: Intel(R) Gigabit Ethernet Network Connection
[  117.281800] rt_igb :03:00.0: enp3s0: (PCIe:2.5Gb/s:Width x1) 
22:20:47:8d:0f:c9
[  117.289397] rt_igb :03:00.0: enp3s0: PBA No: FF-0FF
[  117.294997] rt_igb :03:00.0: Using MSI-X interrupts. 1 rx queue(s), 1 tx 
queue(s)
[  117.303500] [Xenomai] HIPASE PPS on SDP0
[  117.307529] sdhci-pci :00:1b.0: SDHCI controller found [8086:5aca] (rev 
b)

# rtifconfig enp3s0 up
[  166.503855] spurious APIC interrupt through vector ff on CPU#0, should never 
happen.

> Are those interrupts MSI or MSI-X? Can't read that from the logs.

MSI-X from the kernel log.

>
> I probably need to get some rt_igb running somewhere...
>
> Jan
>
> --
> Siemens AG, Corporate Technology, CT RDA IOT SES-DE Corporate
> Competence Center Embedded Linux


This message and any attachments are solely for the use of the intended 
recipients. They may contain privileged and/or confidential information or 
other information protected from disclosure. If you are not an intended 
recipient, you are hereby notified that you received this email in error and 
that any review, dissemination, distribution or copying of this email and any 
attachment is strictly prohibited. If you have received this email in error, 
please contact the sender and delete the message and any attachment from your 
system.

ANDRITZ HYDRO GmbH


Rechtsform/ Legal form: Gesellschaft mit beschränkter Haftung / Corporation

Firmensitz/ Registered seat: Wien

Firmenbuchgericht/ Court of registry: Handelsgericht Wien

Firmenbuchnummer/ Company registration: FN 61833 g

DVR: 0605077

UID-Nr.: ATU14756806


Thank You



RE: Best way to detect if a filedescriptor is a cobalt filedescriptor (/socket)

2019-07-10 Thread Lange Norbert via Xenomai


> -Original Message-
> From: Jan Kiszka 
> Sent: Mittwoch, 10. Juli 2019 08:13
> To: Lange Norbert ; Xenomai
> (xenomai@xenomai.org) ; Philippe Gerum
> 
> Subject: Re: Best way to detect if a filedescriptor is a cobalt filedescriptor
> (/socket)
>
> E-MAIL FROM A NON-ANDRITZ SOURCE: AS A SECURITY MEASURE, PLEASE
> EXERCISE CAUTION WITH E-MAIL CONTENT AND ANY LINKS OR
> ATTACHMENTS.
>
>
> On 09.07.19 16:49, Lange Norbert via Xenomai wrote:
> > Hi,
> >
> > I am opening a packetsocket, which is supposed to be realtime.
> > Unfortunatly if the rtpacket (rtnet?) module is not loaded, then this will
> just silently fall back to a linux packet socket. Then later demote thread
> during accesses.
> >
> > How would I be able to detect this early during startup? I could
> __STD(close) the descriptor and check the returncode for EBADF I suppose...
> >
>
> Yeah, looks this is some feature we lost while embedding the RTDM file
> descriptor range into the regular Linux space.

My scheme does not work either, __STD(close) seems to return 0 for the cobalt 
fd,
But doesn’t seem to do anything beyond that.

Note: I am using Philippe's "cobalt: switch hand over status to -ENODEV for 
non-RTDM fd" patch,
so potential it’s a regression of this patch.

> We could either add a compile-time or runtime feature to libcobalt that
> permits to disable this silent fallback again or introduce alternative open 
> and
> socket implementations that do not expose this behavior. Spontaneously, I
> would be in favor or a runtime switch for the existing implementations.

I assumed that __RT(open) would call the __cobalt_open function (without 
fallback),
__STD(open) would call libc' open, and  __wrap_open would be the only function 
trying both.
Turns out that __wrap and __cobalt are identical, but I don’t understand the 
reasoning behind it.

Norbert


This message and any attachments are solely for the use of the intended 
recipients. They may contain privileged and/or confidential information or 
other information protected from disclosure. If you are not an intended 
recipient, you are hereby notified that you received this email in error and 
that any review, dissemination, distribution or copying of this email and any 
attachment is strictly prohibited. If you have received this email in error, 
please contact the sender and delete the message and any attachment from your 
system.

ANDRITZ HYDRO GmbH


Rechtsform/ Legal form: Gesellschaft mit beschränkter Haftung / Corporation

Firmensitz/ Registered seat: Wien

Firmenbuchgericht/ Court of registry: Handelsgericht Wien

Firmenbuchnummer/ Company registration: FN 61833 g

DVR: 0605077

UID-Nr.: ATU14756806


Thank You



[Xenomai] c++11 issue

2019-07-10 Thread Cris Almaraz via Xenomai
Hi all,

I have a problem similar to the one described in
https://xenomai.org/pipermail/xenomai/2018-February/038373.html.

Compiling with -std=c++11 and adding the headers:
#include 
#include 

Error extract:
In file included from /usr/xenomai/include/xenomai/tunables.h:21:0,
 from myApplication.cpp:
/usr/xenomai/include/boilerplate/tunables.h:72:15: error: variable or
field ‘__assign_cpu_affinity_config’ declared void  static inline
define_config_tunable(cpu_affinity, cpu_set_t, cpus)
   ^
/usr/xenomai/include/boilerplate/tunables.h:72:15: error: expected
primary-expression before ‘)’ token  static inline
define_config_tunable(cpu_affinity, cpu_set_t, cpus) ...

Do you have any ideas how to solve the issue? I noticed that there is
no answer for the previous mail.

Thank you in advance and best regards,
Cristina.

System configuration:
Xenomai 3.0.9 Core Mercury
CentOS 7.4



[PATCH] boilerplate: Fix bogus "typeof(type)" in macros

2019-07-10 Thread Jan Kiszka via Xenomai
From: Jan Kiszka 

This was ignored by most compilers so far, but it breaks at least under
c++11.

Reported-by: Stéphane Ancelot 
Reported-by: Cris Almaraz 
Signed-off-by: Jan Kiszka 
---

Thanks for reporting (and sorry for the long patch delay). This should
fix it.

 include/boilerplate/tunables.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/boilerplate/tunables.h b/include/boilerplate/tunables.h
index db8523be67..38f414e455 100644
--- a/include/boilerplate/tunables.h
+++ b/include/boilerplate/tunables.h
@@ -37,10 +37,10 @@ static inline int __may_change_config_tunable(void)
__read_ ## __name ## _ ## __scope

 #define __define_tunable(__name, __type, __val, __scope)   \
-   void __tunable_set_call(__name, __scope)(typeof(__type) __val)
+   void __tunable_set_call(__name, __scope)(__type __val)

 #define __read_tunable(__name, __type, __scope)\
-   typeof(__type) __tunable_get_call(__name, __scope)(void)
+   __type __tunable_get_call(__name, __scope)(void)

 #define define_config_tunable(__name, __type, __val)   \
__define_tunable(__name, __type, __val, config)
--
2.16.4



AW: use of posix function clock_gettime

2019-07-10 Thread Mario Molitor via Xenomai
> First of all, all in-kernel APIs have been deprecated and removed in favor of 
> RTDM driver APIs. However, RTDM does not expose this clock directly. You can 
> only do rtdm_clock_read (realtime) or rtdm_clock_read_monotonic().

This was also my recognising after reading the code and the information was not 
really new. Anyway in meantime I have found a workaround/ solution for our 
problem.

>We could add a host_realtime API to RTDM if there is a good use case. And that 
>would include a reason why the timestamp adjustment (monotonic -> 
>host-realtime) cannot be done in the userspace application that consumes the 
>driver data.

>From my point of view make this always sense if a measurement value needs an 
>accurate Timestamp by the creating. The other applications which could need 
>this are fieldbus application. 
Our measurement system gets her measurement value in the Kernel-Space in a 
Xenomia-IRQ and in this case was the old Functionality very smart. 
A new Functionality RTDM_ host_realtime would be close this gap and would by 
also make the RTDM Clock-service completely.

Mario

HBK





Re: [PATCH] boilerplate: Fix bogus "typeof(type)" in macros

2019-07-10 Thread Philippe Gerum via Xenomai
On 7/10/19 9:39 PM, Jan Kiszka via Xenomai wrote:
> From: Jan Kiszka 
> 
> This was ignored by most compilers so far, but it breaks at least under
> c++11.

This was hardly ignored since this evaluates to a required type
information, the issue is rather with typeof() belonging to the GNU
extension set. Building with -std=gnu++11 solves that issue with the
current implementation which generally assumes those extensions are enabled.

> 
> Reported-by: Stéphane Ancelot 
> Reported-by: Cris Almaraz 
> Signed-off-by: Jan Kiszka 
> ---
> 
> Thanks for reporting (and sorry for the long patch delay). This should
> fix it.
> 
>  include/boilerplate/tunables.h | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/include/boilerplate/tunables.h b/include/boilerplate/tunables.h
> index db8523be67..38f414e455 100644
> --- a/include/boilerplate/tunables.h
> +++ b/include/boilerplate/tunables.h
> @@ -37,10 +37,10 @@ static inline int __may_change_config_tunable(void)
>   __read_ ## __name ## _ ## __scope
> 
>  #define __define_tunable(__name, __type, __val, __scope) \
> - void __tunable_set_call(__name, __scope)(typeof(__type) __val)
> + void __tunable_set_call(__name, __scope)(__type __val)
> 
>  #define __read_tunable(__name, __type, __scope)  \
> - typeof(__type) __tunable_get_call(__name, __scope)(void)
> + __type __tunable_get_call(__name, __scope)(void)
> 
>  #define define_config_tunable(__name, __type, __val) \
>   __define_tunable(__name, __type, __val, config)
> --


That won't work with non-trivial type expr like this one:

int (*foo_handler)(void);

define_config_tunable(foobar, int (*)(void), handler)
{
foo_handler = handler;
}

And we have those in the field already.

-- 
Philippe.



Re: ipipe 4.19: spurious APIC interrupt when setting rt_igp to up

2019-07-10 Thread Jan Kiszka via Xenomai
On 09.07.19 19:54, Jan Kiszka wrote:
> On 09.07.19 18:33, Jan Kiszka wrote:
>> On 09.07.19 18:21, Lange Norbert wrote:
>>> Hello,
>>>
>>> maxcpus=1 still causes the spurious int, this time fully locking up.
>>>
>>> I attached the debug/irq directory after the cause.
>>>> Some things that might be relevant:
>>> -   the SOC would use PINCTRL_BROXTON under linux, but this is disabled 
>>> (not fixed up for Xenomai)
>>> -   I have the regular igb driver in use, and am unbinding the network card 
>>> prior to binding the rt_igp driver
>>>
>>
>> Thanks. What's the interrupt number that Xenomai is using? Should be the same
>> that the Linux driver is using as well.
> 
> Found already: Should be IRQ 130-132 for device 00:03.0. If the directory 
> state
> was like that while Xenomai was still holding those interrupts, the problem it
> that there are no vectors assigned to them. Can you confirm that rt_igb was
> still loaded and the interface was up?
> 
> Are those interrupts MSI or MSI-X? Can't read that from the logs.
> 
> I probably need to get some rt_igb running somewhere...
> 

Still no luck, even on a box with a igb-driven NIC (I350):

[  667.928036] rt_igb :06:00.1: Intel(R) Gigabit Ethernet Network Connection
[  667.928064] rt_igb :06:00.1: rteth0: (PCIe:5.0Gb/s:Width x4) 
00:25:90:5d:10:19
[  667.928149] rt_igb :06:00.1: rteth0: PBA No: 010A00-000
[  667.928153] rt_igb :06:00.1: Using MSI-X interrupts. 1 rx queue(s), 1 tx 
queue(s)
xeon-d:~ # cat /proc/xenomai/irq 
  IRQ CPU0...CPU15
   47:   0...   79 rteth0-TxRx-0

I'm currently using the two attached patches on top of ipipe-core-4.19.57-x86-3.

Did you cross-check if the running kernel contains the fix(es)?

Jan

-- 
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
-- next part --
A non-text attachment was scrubbed...
Name: 0001-ipipe-Activate-IRQ-in-ipipe_enable_irq.patch
Type: text/x-patch
Size: 1011 bytes
Desc: not available
URL: 
<http://xenomai.org/pipermail/xenomai/attachments/20190710/55e16f8f/attachment.bin>
-- next part --
A non-text attachment was scrubbed...
Name: 0002-x86-ipipe-Make-sure-IRQs-are-active-when-setting-aff.patch
Type: text/x-patch
Size: 1391 bytes
Desc: not available
URL: 
<http://xenomai.org/pipermail/xenomai/attachments/20190710/55e16f8f/attachment-0001.bin>


Re: [PATCH] boilerplate: Fix bogus "typeof(type)" in macros

2019-07-10 Thread Jan Kiszka via Xenomai
On 10.07.19 22:50, Philippe Gerum wrote:
> On 7/10/19 9:39 PM, Jan Kiszka via Xenomai wrote:
>> From: Jan Kiszka 
>>
>> This was ignored by most compilers so far, but it breaks at least under
>> c++11.
>
> This was hardly ignored since this evaluates to a required type
> information, the issue is rather with typeof() belonging to the GNU
> extension set. Building with -std=gnu++11 solves that issue with the
> current implementation which generally assumes those extensions are enabled.

If these two cases are the only ones that prevent standard-conforming builds ouf
our external headers, I would be in favor of overcoming that limitation. But if
it should be just the tip of the iceberg, it's likely not worth it.

>
>>
>> Reported-by: Stéphane Ancelot 
>> Reported-by: Cris Almaraz 
>> Signed-off-by: Jan Kiszka 
>> ---
>>
>> Thanks for reporting (and sorry for the long patch delay). This should
>> fix it.
>>
>>  include/boilerplate/tunables.h | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/boilerplate/tunables.h b/include/boilerplate/tunables.h
>> index db8523be67..38f414e455 100644
>> --- a/include/boilerplate/tunables.h
>> +++ b/include/boilerplate/tunables.h
>> @@ -37,10 +37,10 @@ static inline int __may_change_config_tunable(void)
>>  __read_ ## __name ## _ ## __scope
>>
>>  #define __define_tunable(__name, __type, __val, __scope)\
>> -void __tunable_set_call(__name, __scope)(typeof(__type) __val)
>> +void __tunable_set_call(__name, __scope)(__type __val)
>>
>>  #define __read_tunable(__name, __type, __scope) \
>> -typeof(__type) __tunable_get_call(__name, __scope)(void)
>> +__type __tunable_get_call(__name, __scope)(void)
>>
>>  #define define_config_tunable(__name, __type, __val)\
>>  __define_tunable(__name, __type, __val, config)
>> --
>
>
> That won't work with non-trivial type expr like this one:
>
> int (*foo_handler)(void);
>
> define_config_tunable(foobar, int (*)(void), handler)
> {
>   foo_handler = handler;
> }
>
> And we have those in the field already.
>

Out of tree? I didn't find any in-tree build issues.

Jan



[PATCH 1/2] demo/alchemy/altency: Use sigdebug_reason()

2019-07-10 Thread Richard Weinberger via Xenomai
Since cobalt adds 0xfccf to si_value we can no longer
use the raw value.

Signed-off-by: Richard Weinberger 
---
 demo/alchemy/altency.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/demo/alchemy/altency.c b/demo/alchemy/altency.c
index 83cc806b5d7f..4b49755edaba 100644
--- a/demo/alchemy/altency.c
+++ b/demo/alchemy/altency.c
@@ -461,7 +461,7 @@ static void sigdebug(int sig, siginfo_t *si, void *context)
 {
const char fmt[] = "%s, aborting.\n"
"(enabling CONFIG_XENO_OPT_DEBUG_TRACE_RELAX may help)\n";
-   unsigned int reason = si->si_value.sival_int;
+   unsigned int reason = sigdebug_reason(si);
int n __attribute__ ((unused));
static char buffer[256];
 
-- 
2.16.4




[PATCH 2/2] alchemy/mutex: Fix typo in comment

2019-07-10 Thread Richard Weinberger via Xenomai
s/rt_mutex_acquite/rt_mutex_acquire

Signed-off-by: Richard Weinberger 
---
 lib/alchemy/mutex.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/alchemy/mutex.c b/lib/alchemy/mutex.c
index ffdc2dbea323..42cd1375b34b 100644
--- a/lib/alchemy/mutex.c
+++ b/lib/alchemy/mutex.c
@@ -182,7 +182,7 @@ out:
  *
  * - -EBUSY is returned upon an attempt to destroy the object
  * referenced by @a mutex while it is referenced (for example, while
- * being used in a rt_mutex_acquite(), rt_mutex_acquire_timed() or
+ * being used in a rt_mutex_acquire(), rt_mutex_acquire_timed() or
  * rt_mutex_acquire_until() by another task).
  *
  * @apitags{mode-unrestricted, switch-secondary}
-- 
2.16.4




[PATCH v2] boilerplate: Fix non-conforming usage of typeof in interface, headers

2019-07-10 Thread Jan Kiszka via Xenomai
From: Jan Kiszka 

This fixes build breakages when using standard-conforming build, e.g.
-std=c++11.

Reported-by: Stéphane Ancelot 
Reported-by: Cris Almaraz 
Signed-off-by: Jan Kiszka 
---

This should make everyone happy.

 include/boilerplate/tunables.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/boilerplate/tunables.h b/include/boilerplate/tunables.h
index db8523be67..397ffc8939 100644
--- a/include/boilerplate/tunables.h
+++ b/include/boilerplate/tunables.h
@@ -37,10 +37,10 @@ static inline int __may_change_config_tunable(void)
__read_ ## __name ## _ ## __scope

 #define __define_tunable(__name, __type, __val, __scope)   \
-   void __tunable_set_call(__name, __scope)(typeof(__type) __val)
+   void __tunable_set_call(__name, __scope)(__typeof__(__type) __val)

 #define __read_tunable(__name, __type, __scope)\
-   typeof(__type) __tunable_get_call(__name, __scope)(void)
+   __typeof__(__type) __tunable_get_call(__name, __scope)(void)

 #define define_config_tunable(__name, __type, __val)   \
__define_tunable(__name, __type, __val, config)
--
2.16.4



Enable/Disable of ftrace events crashes kernel

2019-07-10 Thread Richard Weinberger via Xenomai
Hi!

I can reliable kill Linux on qemu by writing a few times 1 and 0 to
/sys/kernel/debug/tracing/events/cobalt_core/enable

Didn't test on real hardware so far.
The following splat happened on ipipe-core-4.19.57-x86-3 plus
xenomai-git as of today.

[   33.664656] Kernel panic - not syncing: Machine halted.
[   33.665323] CPU: 2 PID: 2088 Comm: bash Not tainted 4.19.57 #1
[   33.666142] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.11.0-0-g63451fc-prebuilt.qemu-project.org 04/01/2014
[   33.667524] I-pipe domain: Linux
[   33.667895] Call Trace:
[   33.668354]  <#DF>
[   33.668695]  dump_stack+0x8e/0xb3
[   33.669104]  panic+0xdd/0x238
[   33.669456]  df_debug+0x24/0x30
[   33.669834]  do_double_fault+0x95/0x120
[   33.670323]  double_fault+0x3f/0x60
[   33.670794] RIP: 0010:xnintr_core_clock_handler+0xad/0x370
[   33.671426] Code: c0 48 09 c2 49 89 96 80 1a 00 00 49 8d ae 88 1a
00 00 48 8d 59 08 48 87 5d 00 48 c7 c0 d0 e3 02 00 48 83 01 01 cc 1f
44 00 00 <41> 8b 86 10 03 00 00 49 81 4e 08 00 40 00 00 83 c0 01 41 89
86 10
[   33.673615] RSP: 0018:964ebbb03f58 EFLAGS: 00010002
[   33.674235] RAX: 0002e3d0 RBX: 964ebbb315c0 RCX: 964ebbb3bb00
[   33.675079] RDX: 0013d41dbbce RSI: fc25fc34 RDI: 964ebbb315c0
[   33.675923] RBP: 964ebbb31748 R08: 964ebb000249 R09: 0002e320
[   33.676761] R10: 0040 R11:  R12: 0002
[   33.677600] R13: 0002fcc0 R14: 964ebbb2fcc0 R15: 964ebbb2fcc0
[   33.678444]  
[   33.678704]  
[   33.678955]  dispatch_irq_head+0x84/0x110
[   33.679437]  __ipipe_handle_irq+0x7c/0x1d0
[   33.679927]  apic_timer_interrupt+0x12/0x40
[   33.680448]  
[   33.680805] RIP: 0010:smp_call_function_many+0x1e0/0x250
[   33.681505] Code: 5f 97 00 3b 05 d5 70 47 01 0f 83 99 fe ff ff 48
63 c8 48 8b 13 48 03 14 cd 00 b7 c9 ac 8b 4a 18 83 e1 01 74 0a f3 90
8b 4a 18 <83> e1 01 75 f6 eb c8 48 c7 c2 20 b9 f5 ac 48 89 ee 89 df e8
b8 5f
[   33.684312] RSP: 0018:a2478079bc00 EFLAGS: 0202 ORIG_RAX:
ff13
[   33.685347] RAX: 0001 RBX: 964ebbb35a00 RCX: 0003
[   33.686198] RDX: 964ebbab9c80 RSI:  RDI: 964ebbb35a08
[   33.687044] RBP: 964ebbb35a08 R08: 000b R09: aba22300
[   33.687883] R10: a2478079bc20 R11: f000 R12: aba22200
[   33.688725] R13:  R14: 0001 R15: 0040
[   33.689577]  ? optimize_nops+0xe0/0xe0
[   33.690055]  ? alternatives_text_reserved+0x60/0x60
[   33.690643]  ? optimize_nops+0xe0/0xe0
[   33.691092]  ? xnintr_core_clock_handler+0xa9/0x370
[   33.691657]  ? trace_event_raw_event_irq_event+0xa0/0xa0
[   33.692489]  on_each_cpu+0x23/0x50
[   33.692902]  ? xnintr_core_clock_handler+0xa8/0x370
[   33.693464]  text_poke_bp+0x63/0xe0
[   33.693875]  __jump_label_transform.isra.0+0x12f/0x140
[   33.694466]  arch_jump_label_transform+0x26/0x40
[   33.695093]  __jump_label_update+0x78/0xb0
[   33.695567]  static_key_slow_inc_cpuslocked+0x83/0x90
[   33.696147]  static_key_slow_inc+0x11/0x20
[   33.696622]  tracepoint_probe_register_prio+0x214/0x290
[   33.697241]  __ftrace_event_enable_disable+0x96/0x260
[   33.697905]  __ftrace_set_clr_event_nolock+0xe8/0x130
[   33.698488]  system_enable_write+0xb3/0xf0
[   33.698537] BUG: Unhandled exception over domain Xenomai at
0xabb5413d - switching to ROOT
[   33.699032]  __vfs_write+0x31/0x180
[   33.700443]  ? selinux_file_permission+0x118/0x130
[   33.700979]  ? security_file_permission+0x27/0xb0
[   33.701491]  vfs_write+0xa8/0x190
[   33.701856]  ksys_write+0x55/0xd0
[   33.702220]  do_syscall_64+0x64/0x160
[   33.702644]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[   33.703210] RIP: 0033:0x7fcc38f5bd04
[   33.703603] Code: 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b7 0f
1f 80 00 00 00 00 8b 05 2a fb 2c 00 48 63 ff 85 c0 75 13 b8 01 00 00
00 0f 05 <48> 3d 00 f0 ff ff 77 54 f3 c3 66 90 55 53 48 89 d5 48 89 f3
48 83
[   33.705712] RSP: 002b:7ffd5b051008 EFLAGS: 0246 ORIG_RAX:
0001
[   33.706673] RAX: ffda RBX: 0002 RCX: 7fcc38f5bd04
[   33.707552] RDX: 0002 RSI: 564c21421700 RDI: 0001
[   33.708399] RBP: 564c21421700 R08: 000a R09: 
[   33.709264] R10: 000a R11: 0246 R12: 0002
[   33.710197] R13: 0001 R14: 7fcc39227720 R15: 0002
[   33.711080] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.19.57 #1
[   33.711974] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.11.0-0-g63451fc-prebuilt.qemu-project.org 04/01/2014
[   33.715226] I-pipe domain: Linux
[   33.715730] Call Trace:
[   33.716176]  <#DF>
[   33.716529]  dump_stack+0x8e/0xb3
[   33.717053]  __ipipe_trap_prologue+0x1cd/0x220
[   33.717578]  double_fault+0x24/0x60
[   33.717993] RIP: 0010:xnintr_core_clock_handler+0xad/0x370
[   33.718672] C